@evinvest/uikit 0.30.0 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +267 -73
- package/dist/{chunk-3IPB4QQJ.js → chunk-35SPIU4U.js} +10 -6
- package/dist/chunk-35SPIU4U.js.map +1 -0
- package/dist/components/{accordion.js → atomic/accordion.js} +3 -3
- package/dist/components/atomic/accordion.js.map +1 -0
- package/dist/components/{alert-dialog.js → atomic/alert-dialog.js} +11 -10
- package/dist/components/atomic/alert-dialog.js.map +1 -0
- package/dist/components/{alert.js → atomic/alert.js} +2 -2
- package/dist/components/atomic/alert.js.map +1 -0
- package/dist/components/atomic/animated-number-columns.js +105 -0
- package/dist/components/atomic/animated-number-columns.js.map +1 -0
- package/dist/components/{avatar.js → atomic/avatar.js} +2 -2
- package/dist/components/atomic/avatar.js.map +1 -0
- package/dist/components/{badge.js → atomic/badge.js} +4 -4
- package/dist/components/atomic/badge.js.map +1 -0
- package/dist/components/{band.js → atomic/band.js} +2 -2
- package/dist/components/atomic/band.js.map +1 -0
- package/dist/components/{breadcrumb.js → atomic/breadcrumb.js} +3 -3
- package/dist/components/atomic/breadcrumb.js.map +1 -0
- package/dist/components/{button-group.js → atomic/button-group.js} +3 -3
- package/dist/components/atomic/button-group.js.map +1 -0
- package/dist/components/{button.js → atomic/button.js} +7 -15
- package/dist/components/atomic/button.js.map +1 -0
- package/dist/components/{calendar.js → atomic/calendar.js} +2 -2
- package/dist/components/atomic/calendar.js.map +1 -0
- package/dist/components/{card.js → atomic/card.js} +2 -2
- package/dist/components/atomic/card.js.map +1 -0
- package/dist/components/{checkbox.js → atomic/checkbox.js} +4 -4
- package/dist/components/atomic/checkbox.js.map +1 -0
- package/dist/components/{collapsible.js → atomic/collapsible.js} +1 -1
- package/dist/components/atomic/collapsible.js.map +1 -0
- package/dist/components/{command.js → atomic/command.js} +9 -7
- package/dist/components/atomic/command.js.map +1 -0
- package/dist/components/{container.js → atomic/container.js} +2 -2
- package/dist/components/atomic/container.js.map +1 -0
- package/dist/components/{context-menu.js → atomic/context-menu.js} +62 -14
- package/dist/components/atomic/context-menu.js.map +1 -0
- package/dist/components/{dialog.js → atomic/dialog.js} +11 -10
- package/dist/components/atomic/dialog.js.map +1 -0
- package/dist/components/{drawer.js → atomic/drawer.js} +10 -8
- package/dist/components/atomic/drawer.js.map +1 -0
- package/dist/components/{dropdown-menu.js → atomic/dropdown-menu.js} +74 -15
- package/dist/components/atomic/dropdown-menu.js.map +1 -0
- package/dist/components/{empty.js → atomic/empty.js} +2 -2
- package/dist/components/atomic/empty.js.map +1 -0
- package/dist/components/atomic/field-context.js.map +1 -0
- package/dist/components/atomic/form-row.js +51 -0
- package/dist/components/atomic/form-row.js.map +1 -0
- package/dist/components/{hover-card.js → atomic/hover-card.js} +8 -8
- package/dist/components/atomic/hover-card.js.map +1 -0
- package/dist/components/{info-tip.js → atomic/info-tip.js} +10 -10
- package/dist/components/atomic/info-tip.js.map +1 -0
- package/dist/components/{input-otp.js → atomic/input-otp.js} +3 -3
- package/dist/components/atomic/input-otp.js.map +1 -0
- package/dist/components/{input.js → atomic/input.js} +3 -3
- package/dist/components/atomic/input.js.map +1 -0
- package/dist/components/{kbd.js → atomic/kbd.js} +2 -2
- package/dist/components/atomic/kbd.js.map +1 -0
- package/dist/components/atomic/key-value.js +68 -0
- package/dist/components/atomic/key-value.js.map +1 -0
- package/dist/components/{label.js → atomic/label.js} +2 -2
- package/dist/components/atomic/label.js.map +1 -0
- package/dist/components/{menubar.js → atomic/menubar.js} +48 -14
- package/dist/components/atomic/menubar.js.map +1 -0
- package/dist/components/{native-select.js → atomic/native-select.js} +6 -7
- package/dist/components/atomic/native-select.js.map +1 -0
- package/dist/components/{navigation-menu.js → atomic/navigation-menu.js} +11 -12
- package/dist/components/atomic/navigation-menu.js.map +1 -0
- package/dist/components/{pagination.js → atomic/pagination.js} +1 -1
- package/dist/components/atomic/pagination.js.map +1 -0
- package/dist/components/{popover.js → atomic/popover.js} +10 -10
- package/dist/components/atomic/popover.js.map +1 -0
- package/dist/components/{progress.js → atomic/progress.js} +2 -2
- package/dist/components/atomic/progress.js.map +1 -0
- package/dist/components/{radio-group.js → atomic/radio-group.js} +4 -4
- package/dist/components/atomic/radio-group.js.map +1 -0
- package/dist/components/{scroll-area.js → atomic/scroll-area.js} +2 -2
- package/dist/components/atomic/scroll-area.js.map +1 -0
- package/dist/components/{section-descriptor.js → atomic/section-descriptor.js} +2 -2
- package/dist/components/atomic/section-descriptor.js.map +1 -0
- package/dist/components/{select-listbox.js → atomic/select-listbox.js} +1 -1
- package/dist/components/atomic/select-listbox.js.map +1 -0
- package/dist/components/{select.js → atomic/select.js} +26 -16
- package/dist/components/atomic/select.js.map +1 -0
- package/dist/components/{separator.js → atomic/separator.js} +2 -2
- package/dist/components/atomic/separator.js.map +1 -0
- package/dist/components/{sheet.js → atomic/sheet.js} +11 -10
- package/dist/components/atomic/sheet.js.map +1 -0
- package/dist/components/{sidebar.js → atomic/sidebar.js} +5 -5
- package/dist/components/atomic/sidebar.js.map +1 -0
- package/dist/components/{skeleton.js → atomic/skeleton.js} +2 -2
- package/dist/components/atomic/skeleton.js.map +1 -0
- package/dist/components/{slider.js → atomic/slider.js} +3 -3
- package/dist/components/atomic/slider.js.map +1 -0
- package/dist/components/{sonner.js → atomic/sonner.js} +2 -2
- package/dist/components/atomic/sonner.js.map +1 -0
- package/dist/components/{spinner.js → atomic/spinner.js} +1 -1
- package/dist/components/atomic/spinner.js.map +1 -0
- package/dist/components/atomic/status-item.js +42 -0
- package/dist/components/atomic/status-item.js.map +1 -0
- package/dist/components/{switch.js → atomic/switch.js} +4 -4
- package/dist/components/atomic/switch.js.map +1 -0
- package/dist/components/{table.js → atomic/table.js} +2 -2
- package/dist/components/atomic/table.js.map +1 -0
- package/dist/components/{tabs.js → atomic/tabs.js} +4 -4
- package/dist/components/atomic/tabs.js.map +1 -0
- package/dist/components/{textarea.js → atomic/textarea.js} +3 -3
- package/dist/components/atomic/textarea.js.map +1 -0
- package/dist/components/{toggle-group.js → atomic/toggle-group.js} +2 -2
- package/dist/components/atomic/toggle-group.js.map +1 -0
- package/dist/components/{toggle.js → atomic/toggle.js} +3 -3
- package/dist/components/atomic/toggle.js.map +1 -0
- package/dist/components/{tooltip.js → atomic/tooltip.js} +8 -8
- package/dist/components/atomic/tooltip.js.map +1 -0
- package/dist/components/atomic/use-count-tween.js +42 -0
- package/dist/components/atomic/use-count-tween.js.map +1 -0
- package/dist/components/derived/animated-number.js +157 -0
- package/dist/components/derived/animated-number.js.map +1 -0
- package/dist/components/{carousel.js → derived/carousel.js} +4 -4
- package/dist/components/derived/carousel.js.map +1 -0
- package/dist/components/derived/command-palette.js +119 -0
- package/dist/components/derived/command-palette.js.map +1 -0
- package/dist/components/derived/confirm-dialog.js +123 -0
- package/dist/components/derived/confirm-dialog.js.map +1 -0
- package/dist/components/{date-time-picker.js → derived/date-time-picker.js} +8 -8
- package/dist/components/derived/date-time-picker.js.map +1 -0
- package/dist/components/{field.js → derived/field.js} +6 -6
- package/dist/components/derived/field.js.map +1 -0
- package/dist/components/{form.js → derived/form.js} +4 -4
- package/dist/components/derived/form.js.map +1 -0
- package/dist/components/derived/icon-button.js +35 -0
- package/dist/components/derived/icon-button.js.map +1 -0
- package/dist/components/{input-group.js → derived/input-group.js} +5 -5
- package/dist/components/derived/input-group.js.map +1 -0
- package/dist/components/{item.js → derived/item.js} +4 -4
- package/dist/components/derived/item.js.map +1 -0
- package/dist/components/derived/popover-form.js +60 -0
- package/dist/components/derived/popover-form.js.map +1 -0
- package/dist/components/derived/settings.js +94 -0
- package/dist/components/derived/settings.js.map +1 -0
- package/dist/components/shell/account-list.js +128 -0
- package/dist/components/shell/account-list.js.map +1 -0
- package/dist/components/shell/account-menu-profile.js +114 -0
- package/dist/components/shell/account-menu-profile.js.map +1 -0
- package/dist/components/shell/account-menu.js +97 -0
- package/dist/components/shell/account-menu.js.map +1 -0
- package/dist/components/shell/account-settings-dialog.js +84 -0
- package/dist/components/shell/account-settings-dialog.js.map +1 -0
- package/dist/components/{app-shell.js → shell/app-shell.js} +10 -1
- package/dist/components/shell/app-shell.js.map +1 -0
- package/dist/components/shell/aside.js +140 -0
- package/dist/components/shell/aside.js.map +1 -0
- package/dist/components/{auth-wall.js → shell/auth-wall.js} +1 -1
- package/dist/components/shell/auth-wall.js.map +1 -0
- package/dist/components/{bottom-tab-bar.js → shell/bottom-tab-bar.js} +1 -1
- package/dist/components/shell/bottom-tab-bar.js.map +1 -0
- package/dist/components/shell/chat-composer.js +141 -0
- package/dist/components/shell/chat-composer.js.map +1 -0
- package/dist/components/shell/chat-message.js +195 -0
- package/dist/components/shell/chat-message.js.map +1 -0
- package/dist/components/shell/chat-panel.js +137 -0
- package/dist/components/shell/chat-panel.js.map +1 -0
- package/dist/components/shell/chat-stream-text.js +69 -0
- package/dist/components/shell/chat-stream-text.js.map +1 -0
- package/dist/components/shell/chat-typing.js +26 -0
- package/dist/components/shell/chat-typing.js.map +1 -0
- package/dist/components/{footer.js → shell/footer.js} +1 -1
- package/dist/components/shell/footer.js.map +1 -0
- package/dist/components/shell/header-controls.js +149 -0
- package/dist/components/shell/header-controls.js.map +1 -0
- package/dist/components/{list-rows.js → shell/list-rows.js} +1 -1
- package/dist/components/shell/list-rows.js.map +1 -0
- package/dist/components/{logo.js → shell/logo.js} +1 -1
- package/dist/components/shell/logo.js.map +1 -0
- package/dist/components/{mobile-app-bar.js → shell/mobile-app-bar.js} +1 -1
- package/dist/components/shell/mobile-app-bar.js.map +1 -0
- package/dist/components/{nav-badge.js → shell/nav-badge.js} +1 -1
- package/dist/components/shell/nav-badge.js.map +1 -0
- package/dist/components/shell/nav-collapse.js +142 -0
- package/dist/components/shell/nav-collapse.js.map +1 -0
- package/dist/components/shell/nav-link.js.map +1 -0
- package/dist/components/shell/nav-model.js.map +1 -0
- package/dist/components/{page-frame.js → shell/page-frame.js} +3 -6
- package/dist/components/shell/page-frame.js.map +1 -0
- package/dist/components/{resource-error.js → shell/resource-error.js} +4 -4
- package/dist/components/shell/resource-error.js.map +1 -0
- package/dist/components/shell/section-nav.js +139 -0
- package/dist/components/shell/section-nav.js.map +1 -0
- package/dist/components/shell/settled.js.map +1 -0
- package/dist/components/shell/shell-icons.js.map +1 -0
- package/dist/components/{shell-nav.js → shell/shell-nav.js} +81 -39
- package/dist/components/shell/shell-nav.js.map +1 -0
- package/dist/components/shell/smart-header.js +53 -0
- package/dist/components/shell/smart-header.js.map +1 -0
- package/dist/components/{status-screen.js → shell/status-screen.js} +3 -3
- package/dist/components/shell/status-screen.js.map +1 -0
- package/dist/components/{system-banner.js → shell/system-banner.js} +23 -13
- package/dist/components/shell/system-banner.js.map +1 -0
- package/dist/components/{top-bar.js → shell/top-bar.js} +5 -4
- package/dist/components/shell/top-bar.js.map +1 -0
- package/dist/components/shell/use-shell-nav.js.map +1 -0
- package/dist/components/shell/workspace-tab.js +140 -0
- package/dist/components/shell/workspace-tab.js.map +1 -0
- package/dist/generated/accent.js +2 -2
- package/dist/generated/accent.js.map +1 -1
- package/dist/generated/account-list.js +35 -0
- package/dist/generated/account-list.js.map +1 -0
- package/dist/generated/account-settings-dialog.js +27 -0
- package/dist/generated/account-settings-dialog.js.map +1 -0
- package/dist/generated/alert-dialog.js +1 -1
- package/dist/generated/alert-dialog.js.map +1 -1
- package/dist/generated/alert.js +2 -2
- package/dist/generated/alert.js.map +1 -1
- package/dist/generated/aside.js +36 -0
- package/dist/generated/aside.js.map +1 -0
- package/dist/generated/badge.js +7 -6
- package/dist/generated/badge.js.map +1 -1
- package/dist/generated/band.js +1 -1
- package/dist/generated/band.js.map +1 -1
- package/dist/generated/breadcrumb.js +2 -2
- package/dist/generated/breadcrumb.js.map +1 -1
- package/dist/generated/button-group.js +2 -2
- package/dist/generated/button-group.js.map +1 -1
- package/dist/generated/button.js +4 -4
- package/dist/generated/button.js.map +1 -1
- package/dist/generated/card.js +6 -6
- package/dist/generated/card.js.map +1 -1
- package/dist/generated/chat-composer.js +21 -0
- package/dist/generated/chat-composer.js.map +1 -0
- package/dist/generated/chat-message.js +86 -0
- package/dist/generated/chat-message.js.map +1 -0
- package/dist/generated/chat-typing.js +9 -0
- package/dist/generated/chat-typing.js.map +1 -0
- package/dist/generated/command-palette.js +17 -0
- package/dist/generated/command-palette.js.map +1 -0
- package/dist/generated/command.js +2 -2
- package/dist/generated/command.js.map +1 -1
- package/dist/generated/confirm-dialog.js +28 -0
- package/dist/generated/confirm-dialog.js.map +1 -0
- package/dist/generated/context-menu.js +1 -1
- package/dist/generated/context-menu.js.map +1 -1
- package/dist/generated/date-time-picker.js +1 -1
- package/dist/generated/date-time-picker.js.map +1 -1
- package/dist/generated/dialog.js +1 -1
- package/dist/generated/dialog.js.map +1 -1
- package/dist/generated/drawer.js +1 -1
- package/dist/generated/drawer.js.map +1 -1
- package/dist/generated/dropdown-menu.js +1 -1
- package/dist/generated/dropdown-menu.js.map +1 -1
- package/dist/generated/form-row.js +17 -0
- package/dist/generated/form-row.js.map +1 -0
- package/dist/generated/header-controls.js +56 -0
- package/dist/generated/header-controls.js.map +1 -0
- package/dist/generated/icon-button.js +13 -0
- package/dist/generated/icon-button.js.map +1 -0
- package/dist/generated/key-value.js +15 -0
- package/dist/generated/key-value.js.map +1 -0
- package/dist/generated/menubar.js +1 -1
- package/dist/generated/menubar.js.map +1 -1
- package/dist/generated/navigation-menu.js +1 -1
- package/dist/generated/navigation-menu.js.map +1 -1
- package/dist/generated/popover-form.js +13 -0
- package/dist/generated/popover-form.js.map +1 -0
- package/dist/generated/section-label.js +10 -0
- package/dist/generated/section-label.js.map +1 -0
- package/dist/generated/select.js +15 -3
- package/dist/generated/select.js.map +1 -1
- package/dist/generated/settings.js +36 -0
- package/dist/generated/settings.js.map +1 -0
- package/dist/generated/sheet.js +1 -1
- package/dist/generated/sheet.js.map +1 -1
- package/dist/generated/slider.js +1 -1
- package/dist/generated/slider.js.map +1 -1
- package/dist/generated/smart-header.js +11 -0
- package/dist/generated/smart-header.js.map +1 -0
- package/dist/generated/sonner.js +4 -4
- package/dist/generated/sonner.js.map +1 -1
- package/dist/generated/status-item.js +17 -0
- package/dist/generated/status-item.js.map +1 -0
- package/dist/generated/system-banner.js +33 -0
- package/dist/generated/system-banner.js.map +1 -0
- package/dist/generated/top-bar.js +9 -0
- package/dist/generated/top-bar.js.map +1 -0
- package/dist/generated/workspace-tab.js +17 -0
- package/dist/generated/workspace-tab.js.map +1 -0
- package/dist/icons/select-chevron.js.map +1 -0
- package/dist/icons/ui-icons.js +77 -0
- package/dist/icons/ui-icons.js.map +1 -0
- package/dist/index.d.ts +852 -156
- package/dist/index.js +96 -76
- package/dist/lib/cn.js +8 -1
- package/dist/lib/cn.js.map +1 -1
- package/dist/lib/number-parts.js +90 -0
- package/dist/lib/number-parts.js.map +1 -0
- package/dist/palette-cli.js +1 -1
- package/dist/palette.d.ts +6 -4
- package/dist/palette.js +3 -1
- package/dist/primitives/dismissable-layer.js +76 -4
- package/dist/primitives/dismissable-layer.js.map +1 -1
- package/dist/primitives/focus-scope.js +20 -5
- package/dist/primitives/focus-scope.js.map +1 -1
- package/dist/primitives/use-floating.js +16 -1
- package/dist/primitives/use-floating.js.map +1 -1
- package/dist/primitives/use-reduced-motion.js +20 -0
- package/dist/primitives/use-reduced-motion.js.map +1 -0
- package/package.json +2 -2
- package/styles/ev.css +281 -49
- package/styles/theme.css +335 -39
- package/styles/tokens.css +643 -103
- package/dist/chunk-3IPB4QQJ.js.map +0 -1
- package/dist/components/accordion.js.map +0 -1
- package/dist/components/account-menu.js +0 -70
- package/dist/components/account-menu.js.map +0 -1
- package/dist/components/alert-dialog.js.map +0 -1
- package/dist/components/alert.js.map +0 -1
- package/dist/components/app-shell.js.map +0 -1
- package/dist/components/auth-wall.js.map +0 -1
- package/dist/components/avatar.js.map +0 -1
- package/dist/components/badge.js.map +0 -1
- package/dist/components/band.js.map +0 -1
- package/dist/components/bottom-tab-bar.js.map +0 -1
- package/dist/components/breadcrumb.js.map +0 -1
- package/dist/components/button-group.js.map +0 -1
- package/dist/components/button.js.map +0 -1
- package/dist/components/calendar.js.map +0 -1
- package/dist/components/card.js.map +0 -1
- package/dist/components/carousel.js.map +0 -1
- package/dist/components/checkbox.js.map +0 -1
- package/dist/components/collapsible.js.map +0 -1
- package/dist/components/command.js.map +0 -1
- package/dist/components/container.js.map +0 -1
- package/dist/components/context-menu.js.map +0 -1
- package/dist/components/date-time-picker.js.map +0 -1
- package/dist/components/dialog.js.map +0 -1
- package/dist/components/drawer.js.map +0 -1
- package/dist/components/dropdown-menu.js.map +0 -1
- package/dist/components/empty.js.map +0 -1
- package/dist/components/field-context.js.map +0 -1
- package/dist/components/field.js.map +0 -1
- package/dist/components/footer.js.map +0 -1
- package/dist/components/form.js.map +0 -1
- package/dist/components/hover-card.js.map +0 -1
- package/dist/components/info-tip.js.map +0 -1
- package/dist/components/input-group.js.map +0 -1
- package/dist/components/input-otp.js.map +0 -1
- package/dist/components/input.js.map +0 -1
- package/dist/components/item.js.map +0 -1
- package/dist/components/kbd.js.map +0 -1
- package/dist/components/label.js.map +0 -1
- package/dist/components/list-rows.js.map +0 -1
- package/dist/components/logo.js.map +0 -1
- package/dist/components/menubar.js.map +0 -1
- package/dist/components/mobile-app-bar.js.map +0 -1
- package/dist/components/native-select.js.map +0 -1
- package/dist/components/nav-badge.js.map +0 -1
- package/dist/components/nav-link.js.map +0 -1
- package/dist/components/nav-model.js.map +0 -1
- package/dist/components/navigation-menu.js.map +0 -1
- package/dist/components/page-frame.js.map +0 -1
- package/dist/components/pagination.js.map +0 -1
- package/dist/components/popover.js.map +0 -1
- package/dist/components/progress.js.map +0 -1
- package/dist/components/radio-group.js.map +0 -1
- package/dist/components/resource-error.js.map +0 -1
- package/dist/components/scroll-area.js.map +0 -1
- package/dist/components/section-descriptor.js.map +0 -1
- package/dist/components/section-nav.js +0 -86
- package/dist/components/section-nav.js.map +0 -1
- package/dist/components/select-chevron.js.map +0 -1
- package/dist/components/select-listbox.js.map +0 -1
- package/dist/components/select.js.map +0 -1
- package/dist/components/separator.js.map +0 -1
- package/dist/components/settled.js.map +0 -1
- package/dist/components/sheet.js.map +0 -1
- package/dist/components/shell-icons.js.map +0 -1
- package/dist/components/shell-nav.js.map +0 -1
- package/dist/components/sidebar.js.map +0 -1
- package/dist/components/skeleton.js.map +0 -1
- package/dist/components/slider.js.map +0 -1
- package/dist/components/sonner.js.map +0 -1
- package/dist/components/spinner.js.map +0 -1
- package/dist/components/status-screen.js.map +0 -1
- package/dist/components/switch.js.map +0 -1
- package/dist/components/system-banner.js.map +0 -1
- package/dist/components/table.js.map +0 -1
- package/dist/components/tabs.js.map +0 -1
- package/dist/components/terminal.js +0 -206
- package/dist/components/terminal.js.map +0 -1
- package/dist/components/textarea.js.map +0 -1
- package/dist/components/toggle-group.js.map +0 -1
- package/dist/components/toggle.js.map +0 -1
- package/dist/components/tooltip.js.map +0 -1
- package/dist/components/top-bar.js.map +0 -1
- package/dist/components/use-shell-nav.js.map +0 -1
- package/dist/generated/terminal.js +0 -70
- package/dist/generated/terminal.js.map +0 -1
- /package/dist/components/{field-context.js → atomic/field-context.js} +0 -0
- /package/dist/components/{nav-link.js → shell/nav-link.js} +0 -0
- /package/dist/components/{nav-model.js → shell/nav-model.js} +0 -0
- /package/dist/components/{settled.js → shell/settled.js} +0 -0
- /package/dist/components/{shell-icons.js → shell/shell-icons.js} +0 -0
- /package/dist/components/{use-shell-nav.js → shell/use-shell-nav.js} +0 -0
- /package/dist/{components → icons}/select-chevron.js +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -274,8 +274,8 @@ declare function mergeRefs<T>(...refs: Array<React.Ref<T> | undefined>): React.R
|
|
|
274
274
|
declare const alertVariants: {
|
|
275
275
|
readonly neutral: "bg-card text-ink border-border";
|
|
276
276
|
readonly destructive: "text-accent-error bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-ink-mid";
|
|
277
|
-
readonly success: "text-positive bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-ink-mid";
|
|
278
|
-
readonly info: "text-accent-info bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-ink-mid";
|
|
277
|
+
readonly success: "text-positive-ink bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-ink-mid";
|
|
278
|
+
readonly info: "text-accent-info-ink bg-card [&>svg]:text-current *:data-[slot=alert-description]:text-ink-mid";
|
|
279
279
|
};
|
|
280
280
|
type AlertVariant = keyof typeof alertVariants;
|
|
281
281
|
|
|
@@ -291,11 +291,12 @@ declare function AvatarImage({ className, onError, ...props }: React.ComponentPr
|
|
|
291
291
|
declare function AvatarFallback({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
292
292
|
|
|
293
293
|
declare const badgeVariants: {
|
|
294
|
-
readonly
|
|
295
|
-
readonly
|
|
296
|
-
readonly
|
|
297
|
-
readonly
|
|
298
|
-
readonly
|
|
294
|
+
readonly neutral: "border-chip-neutral-border bg-chip-neutral-bg text-ink-mid [a&]:hover:bg-active";
|
|
295
|
+
readonly primary: "border-chip-primary-border bg-chip-primary-bg text-primary-ink [a&]:hover:bg-hover";
|
|
296
|
+
readonly positive: "border-chip-positive-border bg-chip-positive-bg text-positive-ink [a&]:hover:bg-hover";
|
|
297
|
+
readonly info: "border-chip-info-border bg-chip-info-bg text-accent-info-ink [a&]:hover:bg-hover";
|
|
298
|
+
readonly warn: "border-chip-warn-border bg-chip-warn-bg text-accent-warn [a&]:hover:bg-hover";
|
|
299
|
+
readonly error: "border-chip-error-border bg-chip-error-bg text-accent-error [a&]:hover:bg-hover";
|
|
299
300
|
};
|
|
300
301
|
type BadgeVariant = keyof typeof badgeVariants;
|
|
301
302
|
|
|
@@ -319,18 +320,18 @@ declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProp
|
|
|
319
320
|
declare const accentTextClasses: {
|
|
320
321
|
readonly trace: "text-accent-trace";
|
|
321
322
|
readonly debug: "text-accent-debug";
|
|
322
|
-
readonly info: "text-accent-info";
|
|
323
|
+
readonly info: "text-accent-info-ink";
|
|
323
324
|
readonly warn: "text-accent-warn";
|
|
324
325
|
readonly error: "text-accent-error";
|
|
325
326
|
};
|
|
326
327
|
type Accent = keyof typeof accentTextClasses;
|
|
327
328
|
|
|
328
329
|
declare const buttonVariantClasses: {
|
|
329
|
-
readonly primary: "bg-primary text-on-primary hover:bg-primary
|
|
330
|
+
readonly primary: "bg-primary text-on-primary hover:bg-primary-hover focus-visible:ring-0 focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring";
|
|
330
331
|
readonly secondary: "bg-secondary text-on-secondary hover:bg-secondary/80 focus-visible:ring-0 focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring";
|
|
331
|
-
readonly outline: "border border-
|
|
332
|
+
readonly outline: "border border-border bg-secondary text-ink hover:bg-[image:linear-gradient(var(--hover),var(--hover))]";
|
|
332
333
|
readonly ghost: "hover:bg-hover hover:text-ink";
|
|
333
|
-
readonly destructive: "bg-
|
|
334
|
+
readonly destructive: "border border-button-danger-border bg-button-danger-bg text-button-danger-ink hover:bg-button-danger-hover focus-visible:ring-0 focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring";
|
|
334
335
|
readonly link: "text-primary-ink underline-offset-4 hover:underline";
|
|
335
336
|
};
|
|
336
337
|
type ButtonVariant = keyof typeof buttonVariantClasses;
|
|
@@ -361,7 +362,7 @@ interface ButtonVariantsOptions {
|
|
|
361
362
|
* The accent fuses after the variant so it recolours whatever the variant set.
|
|
362
363
|
*/
|
|
363
364
|
declare function buttonVariants({ variant, size, icon, accent, className, }?: ButtonVariantsOptions): string;
|
|
364
|
-
interface ButtonProps extends React.
|
|
365
|
+
interface ButtonProps extends React.ComponentPropsWithoutRef<"button"> {
|
|
365
366
|
variant?: ButtonVariant;
|
|
366
367
|
size?: ButtonSize;
|
|
367
368
|
icon?: boolean;
|
|
@@ -371,7 +372,7 @@ interface ButtonProps extends React.ComponentProps<"button"> {
|
|
|
371
372
|
* call to action is still a link. */
|
|
372
373
|
href?: string;
|
|
373
374
|
}
|
|
374
|
-
declare
|
|
375
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
375
376
|
|
|
376
377
|
declare const buttonGroupOrientationClasses: {
|
|
377
378
|
readonly horizontal: "[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none";
|
|
@@ -1227,7 +1228,7 @@ interface DropdownMenuCheckboxItemProps extends React.ComponentProps<"div"> {
|
|
|
1227
1228
|
checked?: boolean;
|
|
1228
1229
|
disabled?: boolean;
|
|
1229
1230
|
}
|
|
1230
|
-
declare function DropdownMenuCheckboxItem({ className, children, checked, disabled, onClick, ...props }: DropdownMenuCheckboxItemProps): React.JSX.Element;
|
|
1231
|
+
declare function DropdownMenuCheckboxItem({ className, children, checked, disabled, onClick, onKeyDown, ...props }: DropdownMenuCheckboxItemProps): React.JSX.Element;
|
|
1231
1232
|
interface DropdownMenuRadioGroupProps extends Omit<React.ComponentProps<"div">, "onChange"> {
|
|
1232
1233
|
value?: string;
|
|
1233
1234
|
onValueChange?: (value: string) => void;
|
|
@@ -1254,8 +1255,8 @@ declare function DropdownMenuSub({ open, defaultOpen, onOpenChange, children }:
|
|
|
1254
1255
|
interface DropdownMenuSubTriggerProps extends React.ComponentProps<"div"> {
|
|
1255
1256
|
inset?: boolean;
|
|
1256
1257
|
}
|
|
1257
|
-
declare function DropdownMenuSubTrigger({ className, inset, children, onClick, ...props }: DropdownMenuSubTriggerProps): React.JSX.Element;
|
|
1258
|
-
declare function DropdownMenuSubContent({ className, children, ...props }: React.ComponentProps<"div">): React.JSX.Element | null;
|
|
1258
|
+
declare function DropdownMenuSubTrigger({ className, inset, children, onClick, onKeyDown, ...props }: DropdownMenuSubTriggerProps): React.JSX.Element;
|
|
1259
|
+
declare function DropdownMenuSubContent({ className, children, onKeyDown, ...props }: React.ComponentProps<"div">): React.JSX.Element | null;
|
|
1259
1260
|
|
|
1260
1261
|
interface ContextMenuProps {
|
|
1261
1262
|
open?: boolean;
|
|
@@ -1283,7 +1284,7 @@ interface ContextMenuCheckboxItemProps extends React.ComponentProps<"div"> {
|
|
|
1283
1284
|
checked?: boolean;
|
|
1284
1285
|
disabled?: boolean;
|
|
1285
1286
|
}
|
|
1286
|
-
declare function ContextMenuCheckboxItem({ className, children, checked, disabled, onClick, ...props }: ContextMenuCheckboxItemProps): React.JSX.Element;
|
|
1287
|
+
declare function ContextMenuCheckboxItem({ className, children, checked, disabled, onClick, onKeyDown, ...props }: ContextMenuCheckboxItemProps): React.JSX.Element;
|
|
1287
1288
|
interface ContextMenuRadioGroupProps extends Omit<React.ComponentProps<"div">, "onChange"> {
|
|
1288
1289
|
value?: string;
|
|
1289
1290
|
onValueChange?: (value: string) => void;
|
|
@@ -1310,8 +1311,8 @@ declare function ContextMenuSub({ open, defaultOpen, onOpenChange, children }: C
|
|
|
1310
1311
|
interface ContextMenuSubTriggerProps extends React.ComponentProps<"div"> {
|
|
1311
1312
|
inset?: boolean;
|
|
1312
1313
|
}
|
|
1313
|
-
declare function ContextMenuSubTrigger({ className, inset, children, onClick, ...props }: ContextMenuSubTriggerProps): React.JSX.Element;
|
|
1314
|
-
declare function ContextMenuSubContent({ className, children, ...props }: React.ComponentProps<"div">): React.JSX.Element | null;
|
|
1314
|
+
declare function ContextMenuSubTrigger({ className, inset, children, onClick, onKeyDown, ...props }: ContextMenuSubTriggerProps): React.JSX.Element;
|
|
1315
|
+
declare function ContextMenuSubContent({ className, children, onKeyDown, ...props }: React.ComponentProps<"div">): React.JSX.Element | null;
|
|
1315
1316
|
|
|
1316
1317
|
declare function Menubar({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
1317
1318
|
interface MenubarMenuProps {
|
|
@@ -1356,10 +1357,10 @@ interface MenubarSubProps {
|
|
|
1356
1357
|
children?: React.ReactNode;
|
|
1357
1358
|
}
|
|
1358
1359
|
declare function MenubarSub({ open, defaultOpen, onOpenChange, children }: MenubarSubProps): React.JSX.Element;
|
|
1359
|
-
declare function MenubarSubTrigger({ className, inset, children, onClick, ...props }: React.ComponentProps<"div"> & {
|
|
1360
|
+
declare function MenubarSubTrigger({ className, inset, children, onClick, onKeyDown, ...props }: React.ComponentProps<"div"> & {
|
|
1360
1361
|
inset?: boolean;
|
|
1361
1362
|
}): React.JSX.Element;
|
|
1362
|
-
declare function MenubarSubContent({ className, children, ...props }: React.ComponentProps<"div">): React.JSX.Element | null;
|
|
1363
|
+
declare function MenubarSubContent({ className, children, onKeyDown, ...props }: React.ComponentProps<"div">): React.JSX.Element | null;
|
|
1363
1364
|
|
|
1364
1365
|
/**
|
|
1365
1366
|
* Fused canonical trigger class string, the mirror of Rust's
|
|
@@ -1530,9 +1531,9 @@ declare const selectTriggerSizeClasses: {
|
|
|
1530
1531
|
};
|
|
1531
1532
|
type SelectTriggerSize = keyof typeof selectTriggerSizeClasses;
|
|
1532
1533
|
declare const nativeSelectSizeClasses: {
|
|
1533
|
-
readonly sm: "h-
|
|
1534
|
-
readonly md: "h-
|
|
1535
|
-
readonly lg: "h-
|
|
1534
|
+
readonly sm: "h-6";
|
|
1535
|
+
readonly md: "h-7";
|
|
1536
|
+
readonly lg: "h-11 pr-11 pl-3 text-base pointer-fine:text-base";
|
|
1536
1537
|
};
|
|
1537
1538
|
type NativeSelectSize = keyof typeof nativeSelectSizeClasses;
|
|
1538
1539
|
|
|
@@ -1747,9 +1748,9 @@ declare function DateTimePicker({ value: valueProp, defaultValue, onChange, min,
|
|
|
1747
1748
|
|
|
1748
1749
|
declare const toastVariantClasses: {
|
|
1749
1750
|
readonly neutral: "bg-popover text-ink border-border";
|
|
1750
|
-
readonly positive: "bg-popover text-ink border-positive
|
|
1751
|
-
readonly info: "bg-popover text-ink border-border";
|
|
1752
|
-
readonly warn: "bg-popover text-ink border-
|
|
1751
|
+
readonly positive: "bg-popover text-ink border-chip-positive-border";
|
|
1752
|
+
readonly info: "bg-popover text-ink border-chip-info-border";
|
|
1753
|
+
readonly warn: "bg-popover text-ink border-accent-warn/50";
|
|
1753
1754
|
readonly error: "bg-popover text-ink border-accent-error/50";
|
|
1754
1755
|
};
|
|
1755
1756
|
type ToastVariant = keyof typeof toastVariantClasses;
|
|
@@ -1831,123 +1832,6 @@ declare function FormControl({ error, ...props }: React.ComponentProps<typeof Sl
|
|
|
1831
1832
|
declare function FormDescription({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
|
|
1832
1833
|
declare function FormMessage({ className, children, ...props }: React.ComponentProps<"p">): React.JSX.Element | null;
|
|
1833
1834
|
|
|
1834
|
-
declare const terminalAreaClasses: {
|
|
1835
|
-
readonly ticker: "lg:col-span-3 lg:row-start-1";
|
|
1836
|
-
readonly chart: "lg:col-start-1 lg:row-start-2";
|
|
1837
|
-
readonly book: "lg:col-start-2 lg:row-start-2";
|
|
1838
|
-
readonly form: "lg:col-start-3 lg:row-start-2";
|
|
1839
|
-
readonly orders: "lg:col-span-3 lg:row-start-3";
|
|
1840
|
-
};
|
|
1841
|
-
type TerminalArea = keyof typeof terminalAreaClasses;
|
|
1842
|
-
declare const bookSideClasses: {
|
|
1843
|
-
readonly bid: "text-positive";
|
|
1844
|
-
readonly ask: "text-accent-error";
|
|
1845
|
-
};
|
|
1846
|
-
type BookSide = keyof typeof bookSideClasses;
|
|
1847
|
-
declare const orderSideClasses: {
|
|
1848
|
-
readonly buy: "bg-positive text-on-positive hover:bg-positive/90";
|
|
1849
|
-
readonly sell: "bg-accent-error text-on-accent-error hover:bg-accent-error/90";
|
|
1850
|
-
};
|
|
1851
|
-
type OrderSide = keyof typeof orderSideClasses;
|
|
1852
|
-
|
|
1853
|
-
/**
|
|
1854
|
-
* The trading terminal — an order book over an investment product's shares,
|
|
1855
|
-
* laid out like a spot exchange: ticker, then chart | book | order form, then
|
|
1856
|
-
* the trader's own orders. Every pane is a slot; the chart host is empty on
|
|
1857
|
-
* purpose (the plotting engine is the consumer's), the open-orders table is
|
|
1858
|
-
* `Table`, the tabs over it are `Tabs`.
|
|
1859
|
-
*/
|
|
1860
|
-
/**
|
|
1861
|
-
* The frame: a phone stacks the panes in DOM order, `lg` and up places them
|
|
1862
|
-
* by `TerminalArea` on a viewport-bound grid.
|
|
1863
|
-
*/
|
|
1864
|
-
declare function Terminal({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
1865
|
-
interface TerminalPaneProps extends React.ComponentProps<"section"> {
|
|
1866
|
-
area: TerminalArea;
|
|
1867
|
-
}
|
|
1868
|
-
/**
|
|
1869
|
-
* One cell of the frame. `area` is where it sits on the desktop grid;
|
|
1870
|
-
* `TerminalPaneHeader` and `TerminalPaneBody` go inside.
|
|
1871
|
-
*/
|
|
1872
|
-
declare function TerminalPane({ area, className, ...props }: TerminalPaneProps): React.JSX.Element;
|
|
1873
|
-
declare function TerminalPaneHeader({ className, ...props }: React.ComponentProps<"header">): React.JSX.Element;
|
|
1874
|
-
/** The scrolling part of a pane. */
|
|
1875
|
-
declare function TerminalPaneBody({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
1876
|
-
/**
|
|
1877
|
-
* The sized host a plotting engine mounts into. Renders nothing itself; a
|
|
1878
|
-
* consumer mounts its chart on the element (via `ref`) or fills it with
|
|
1879
|
-
* children. `forwardRef` rather than a `ref` prop so the handle also reaches
|
|
1880
|
-
* the element under React 18, where function components drop `ref`.
|
|
1881
|
-
*/
|
|
1882
|
-
declare const TerminalChart: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
1883
|
-
/**
|
|
1884
|
-
* The strip across the top; holds `TickerStat`s. Already placed in the
|
|
1885
|
-
* `ticker` slot.
|
|
1886
|
-
*/
|
|
1887
|
-
declare function TerminalTicker({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
1888
|
-
interface TickerStatProps extends Omit<React.ComponentProps<"div">, "children"> {
|
|
1889
|
-
label: React.ReactNode;
|
|
1890
|
-
value: React.ReactNode;
|
|
1891
|
-
}
|
|
1892
|
-
/**
|
|
1893
|
-
* A labelled figure in the ticker. `className` lands on the figure, so a
|
|
1894
|
-
* change figure passes its valence colour there.
|
|
1895
|
-
*/
|
|
1896
|
-
declare function TickerStat({ label, value, className, ...props }: TickerStatProps): React.JSX.Element;
|
|
1897
|
-
/** The book: `OrderBookHead`, then ask rows, `OrderBookSpread`, bid rows. */
|
|
1898
|
-
declare function OrderBook({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
1899
|
-
interface OrderBookHeadProps extends Omit<React.ComponentProps<"div">, "children"> {
|
|
1900
|
-
price: React.ReactNode;
|
|
1901
|
-
size: React.ReactNode;
|
|
1902
|
-
total: React.ReactNode;
|
|
1903
|
-
}
|
|
1904
|
-
/** The three column captions — price, size, total — in the consumer's words. */
|
|
1905
|
-
declare function OrderBookHead({ price, size, total, className, ...props }: OrderBookHeadProps): React.JSX.Element;
|
|
1906
|
-
interface OrderBookRowProps extends Omit<React.ComponentProps<"div">, "children"> {
|
|
1907
|
-
side: BookSide;
|
|
1908
|
-
price: React.ReactNode;
|
|
1909
|
-
size: React.ReactNode;
|
|
1910
|
-
total: React.ReactNode;
|
|
1911
|
-
/**
|
|
1912
|
-
* This level's cumulative size as a fraction of the deepest level shown
|
|
1913
|
-
* (`0..=1`); it sizes the bar behind the figures.
|
|
1914
|
-
*/
|
|
1915
|
-
depth?: number;
|
|
1916
|
-
}
|
|
1917
|
-
/** One price level. */
|
|
1918
|
-
declare function OrderBookRow({ side, price, size, total, depth, className, ...props }: OrderBookRowProps): React.JSX.Element;
|
|
1919
|
-
/**
|
|
1920
|
-
* The line between asks and bids: the consumer passes the mid and the spread
|
|
1921
|
-
* as it wants them formatted.
|
|
1922
|
-
*/
|
|
1923
|
-
declare function OrderBookSpread({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
1924
|
-
interface TradesTapeRowProps extends Omit<React.ComponentProps<"div">, "children"> {
|
|
1925
|
-
side: BookSide;
|
|
1926
|
-
price: React.ReactNode;
|
|
1927
|
-
size: React.ReactNode;
|
|
1928
|
-
time: React.ReactNode;
|
|
1929
|
-
}
|
|
1930
|
-
/** One print in the tape: price coloured by the aggressor's side, then size and time. */
|
|
1931
|
-
declare function TradesTapeRow({ side, price, size, time, className, ...props }: TradesTapeRowProps): React.JSX.Element;
|
|
1932
|
-
/**
|
|
1933
|
-
* The order form. Owns no state: the consumer wires the inputs and handles
|
|
1934
|
-
* `onSubmit`; the default is prevented here so a submit never navigates.
|
|
1935
|
-
*/
|
|
1936
|
-
declare function OrderForm({ className, onSubmit, ...props }: React.ComponentProps<"form">): React.JSX.Element;
|
|
1937
|
-
interface OrderFormRowProps extends Omit<React.ComponentProps<"div">, "children"> {
|
|
1938
|
-
label: React.ReactNode;
|
|
1939
|
-
value: React.ReactNode;
|
|
1940
|
-
}
|
|
1941
|
-
/** A label / figure line in the order summary — cost, fee, what is available. */
|
|
1942
|
-
declare function OrderFormRow({ label, value, className, ...props }: OrderFormRowProps): React.JSX.Element;
|
|
1943
|
-
interface OrderFormSubmitProps extends Omit<React.ComponentProps<"button">, "type"> {
|
|
1944
|
-
side?: OrderSide;
|
|
1945
|
-
}
|
|
1946
|
-
/** The submit, filled in the colour of the intent. */
|
|
1947
|
-
declare function OrderFormSubmit({ side, className, ...props }: OrderFormSubmitProps): React.JSX.Element;
|
|
1948
|
-
/** The open-orders pane with nothing in it. */
|
|
1949
|
-
declare function OpenOrdersEmpty({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
|
|
1950
|
-
|
|
1951
1835
|
/** Where the shell swaps the bottom tab bar for the rail. */
|
|
1952
1836
|
type ShellBreakpoint = "md" | "lg";
|
|
1953
1837
|
interface AppShellProps extends React.ComponentProps<"div"> {
|
|
@@ -1959,6 +1843,8 @@ interface AppShellProps extends React.ComponentProps<"div"> {
|
|
|
1959
1843
|
topBar?: React.ReactNode;
|
|
1960
1844
|
/** Strips above the page (`SystemBanner`s). An empty slot takes no room. */
|
|
1961
1845
|
banner?: React.ReactNode;
|
|
1846
|
+
/** Right of the content column: an `AsidePanel` and its `AsideRail`, side by side. Sticks like the rail. */
|
|
1847
|
+
aside?: React.ReactNode;
|
|
1962
1848
|
/** Default `lg`. */
|
|
1963
1849
|
breakpoint?: ShellBreakpoint;
|
|
1964
1850
|
/** Props for the `<main>` the page renders into (an `id` for a skip link, say). */
|
|
@@ -1974,7 +1860,30 @@ interface AppShellProps extends React.ComponentProps<"div"> {
|
|
|
1974
1860
|
* by itself when it cannot fit. The column reserves the tab bar's height plus
|
|
1975
1861
|
* the bottom safe area, so the bar never covers content.
|
|
1976
1862
|
*/
|
|
1977
|
-
declare function AppShell({ rail, tabBar, topBar, banner, breakpoint, mainProps, className, children, ...props }: AppShellProps): React.JSX.Element;
|
|
1863
|
+
declare function AppShell({ rail, tabBar, topBar, banner, aside, breakpoint, mainProps, className, children, ...props }: AppShellProps): React.JSX.Element;
|
|
1864
|
+
|
|
1865
|
+
/** What a nav group takes to become a section that opens and closes. */
|
|
1866
|
+
interface NavGroupCollapse {
|
|
1867
|
+
/**
|
|
1868
|
+
* Draws the group's `label` as a header with a chevron and lets the rows fold
|
|
1869
|
+
* away. Needs a `label`. Off by default so an existing rail keeps its static
|
|
1870
|
+
* eyebrow.
|
|
1871
|
+
*/
|
|
1872
|
+
collapsible?: boolean;
|
|
1873
|
+
/** Open on mount. Default: open exactly when the group holds the current item. */
|
|
1874
|
+
defaultOpen?: boolean;
|
|
1875
|
+
/** Controlled open state; pair with `onOpenChange`. */
|
|
1876
|
+
open?: boolean;
|
|
1877
|
+
onOpenChange?: (open: boolean) => void;
|
|
1878
|
+
/** A landing page: the label navigates to it and only the chevron toggles. */
|
|
1879
|
+
href?: string;
|
|
1880
|
+
}
|
|
1881
|
+
interface NavCollapseLabels {
|
|
1882
|
+
/** Spoken before the group's name on a closed section's chevron. Default `"Expand"`. */
|
|
1883
|
+
expand?: string;
|
|
1884
|
+
/** Spoken before the group's name on an open section's chevron. Default `"Collapse"`. */
|
|
1885
|
+
collapse?: string;
|
|
1886
|
+
}
|
|
1978
1887
|
|
|
1979
1888
|
/**
|
|
1980
1889
|
* How a {@link NavItem} decides it is the current one.
|
|
@@ -2022,7 +1931,7 @@ interface NavItem {
|
|
|
2022
1931
|
disabled?: boolean;
|
|
2023
1932
|
}
|
|
2024
1933
|
/** A titled run of items; the rail draws one marker per group. */
|
|
2025
|
-
interface NavGroup {
|
|
1934
|
+
interface NavGroup extends NavGroupCollapse {
|
|
2026
1935
|
id: string;
|
|
2027
1936
|
/** The eyebrow above the rows; also the list's accessible name. */
|
|
2028
1937
|
label?: React.ReactNode;
|
|
@@ -2070,7 +1979,7 @@ interface NavLinkCallbacks {
|
|
|
2070
1979
|
onNavigate?: ((item: NavItem) => void) | undefined;
|
|
2071
1980
|
}
|
|
2072
1981
|
|
|
2073
|
-
interface ShellNavLabels {
|
|
1982
|
+
interface ShellNavLabels extends NavCollapseLabels {
|
|
2074
1983
|
/** Accessible name of the nav holding `groups`. Default `"Main"`. */
|
|
2075
1984
|
primary?: string;
|
|
2076
1985
|
/** Accessible name of the nav holding `footerGroups`. Default `"Account"`. */
|
|
@@ -2093,6 +2002,8 @@ interface ShellNavProps extends Omit<React.ComponentProps<"aside">, "children">,
|
|
|
2093
2002
|
/** Replaces a row's content (icon, label, badge); the link, `aria-current` and the marker stay the kit's. */
|
|
2094
2003
|
renderItem?: (item: NavItem, state: NavItemState) => React.ReactNode;
|
|
2095
2004
|
labels?: ShellNavLabels;
|
|
2005
|
+
/** Makes every labelled group collapsible; a group's own `collapsible` wins. Default `false`. */
|
|
2006
|
+
collapsible?: boolean;
|
|
2096
2007
|
}
|
|
2097
2008
|
/**
|
|
2098
2009
|
* The app's left rail: data-driven groups, a footer block pinned to the bottom,
|
|
@@ -2103,7 +2014,7 @@ interface ShellNavProps extends Omit<React.ComponentProps<"aside">, "children">,
|
|
|
2103
2014
|
* (see {@link resolveActiveNavItem}) — so overlapping `prefix` items are safe.
|
|
2104
2015
|
* Visibility (roles, flags) is the caller's: pass only the items to show.
|
|
2105
2016
|
*/
|
|
2106
|
-
declare function ShellNav({ groups, footerGroups, pathname, linkComponent, header, footer, renderItem, onItemIntent, onNavigate, labels, className, ...props }: ShellNavProps): React.JSX.Element;
|
|
2017
|
+
declare function ShellNav({ groups, footerGroups, pathname, linkComponent, header, footer, renderItem, onItemIntent, onNavigate, labels, collapsible, className, ...props }: ShellNavProps): React.JSX.Element;
|
|
2107
2018
|
|
|
2108
2019
|
type NavBadgeVariant = "pill" | "corner";
|
|
2109
2020
|
interface NavBadgeProps extends Omit<React.ComponentProps<"span">, "children"> {
|
|
@@ -2186,6 +2097,53 @@ interface TopBarProps extends React.ComponentProps<"header"> {
|
|
|
2186
2097
|
*/
|
|
2187
2098
|
declare function TopBar({ start, end, className, ...props }: TopBarProps): React.JSX.Element;
|
|
2188
2099
|
|
|
2100
|
+
interface AccountMenuTab {
|
|
2101
|
+
id: string;
|
|
2102
|
+
label: React.ReactNode;
|
|
2103
|
+
/** Shown instead of the menu body when this tab is current; the first tab is always the menu itself. */
|
|
2104
|
+
content?: React.ReactNode;
|
|
2105
|
+
}
|
|
2106
|
+
interface AccountMenuProfile {
|
|
2107
|
+
/** Under the name on the profile card, e.g. "Free". */
|
|
2108
|
+
plan?: string;
|
|
2109
|
+
/** Makes the card a menu item that runs this and closes the menu, e.g. to open the account settings. */
|
|
2110
|
+
onOpenProfile?: () => void;
|
|
2111
|
+
tabs?: readonly AccountMenuTab[];
|
|
2112
|
+
/** Names the tab row for assistive tech. Default `"Sections"`. */
|
|
2113
|
+
tabsLabel?: string;
|
|
2114
|
+
/** Current tab id (controlled). */
|
|
2115
|
+
tab?: string;
|
|
2116
|
+
onTabChange?: (id: string) => void;
|
|
2117
|
+
/** A row with a short value badge on the right ("EN"); picking it runs `onSelect`. */
|
|
2118
|
+
language?: {
|
|
2119
|
+
label: string;
|
|
2120
|
+
value: string;
|
|
2121
|
+
onSelect?: () => void;
|
|
2122
|
+
};
|
|
2123
|
+
/** A row with a switch; the menu closes after a toggle. */
|
|
2124
|
+
darkTheme?: {
|
|
2125
|
+
label: string;
|
|
2126
|
+
checked: boolean;
|
|
2127
|
+
onCheckedChange: (checked: boolean) => void;
|
|
2128
|
+
};
|
|
2129
|
+
/** A submenu of radio options; the current one's label shows on the row. */
|
|
2130
|
+
colorTheme?: {
|
|
2131
|
+
label: string;
|
|
2132
|
+
value: string;
|
|
2133
|
+
options: readonly {
|
|
2134
|
+
id: string;
|
|
2135
|
+
label: string;
|
|
2136
|
+
}[];
|
|
2137
|
+
onValueChange: (id: string) => void;
|
|
2138
|
+
};
|
|
2139
|
+
/** Glyphs for the rows, so the kit carries no icon set. */
|
|
2140
|
+
icons?: {
|
|
2141
|
+
language?: React.ReactNode;
|
|
2142
|
+
darkTheme?: React.ReactNode;
|
|
2143
|
+
colorTheme?: React.ReactNode;
|
|
2144
|
+
};
|
|
2145
|
+
}
|
|
2146
|
+
|
|
2189
2147
|
interface AccountMenuLabels {
|
|
2190
2148
|
/** Accessible name of the trigger. Default `"Account"`. */
|
|
2191
2149
|
trigger?: string;
|
|
@@ -2210,6 +2168,11 @@ interface AccountMenuProps {
|
|
|
2210
2168
|
onSignOut: () => void;
|
|
2211
2169
|
linkComponent?: React.ElementType;
|
|
2212
2170
|
labels?: AccountMenuLabels;
|
|
2171
|
+
/**
|
|
2172
|
+
* The wide profile form: tabs, a profile card, language and theme rows. Absent,
|
|
2173
|
+
* the menu is the compact one it always was.
|
|
2174
|
+
*/
|
|
2175
|
+
profile?: AccountMenuProfile;
|
|
2213
2176
|
className?: string;
|
|
2214
2177
|
}
|
|
2215
2178
|
/**
|
|
@@ -2217,7 +2180,7 @@ interface AccountMenuProps {
|
|
|
2217
2180
|
* center, the service's groups, switching, signing out — so every service's
|
|
2218
2181
|
* menu reads the same; a service adds groups and nothing else.
|
|
2219
2182
|
*/
|
|
2220
|
-
declare function AccountMenu({ account, manageHref, switchHref, groups, onSignOut, linkComponent, labels, className, }: AccountMenuProps): React.JSX.Element;
|
|
2183
|
+
declare function AccountMenu({ account, manageHref, switchHref, groups, onSignOut, linkComponent, labels, profile, className, }: AccountMenuProps): React.JSX.Element;
|
|
2221
2184
|
|
|
2222
2185
|
interface MobileAppBarLabels {
|
|
2223
2186
|
/** Accessible name of the back control. Default `"Back"`. */
|
|
@@ -2248,7 +2211,12 @@ interface MobileAppBarProps extends Omit<React.ComponentProps<"header">, "title"
|
|
|
2248
2211
|
*/
|
|
2249
2212
|
declare function MobileAppBar({ title, back, right, linkComponent, hideFrom, labels, className, ...props }: MobileAppBarProps): React.JSX.Element;
|
|
2250
2213
|
|
|
2251
|
-
|
|
2214
|
+
declare const sectionLabelToneClasses: {
|
|
2215
|
+
readonly muted: "text-ink-soft";
|
|
2216
|
+
readonly accent: "text-primary-ink";
|
|
2217
|
+
};
|
|
2218
|
+
type SectionLabelTone = keyof typeof sectionLabelToneClasses;
|
|
2219
|
+
|
|
2252
2220
|
interface SectionLabelProps extends React.HTMLAttributes<HTMLElement> {
|
|
2253
2221
|
as?: React.ElementType;
|
|
2254
2222
|
/** `muted` labels a group or a section; `accent` announces a hero figure. */
|
|
@@ -2307,14 +2275,14 @@ interface SectionNavItem {
|
|
|
2307
2275
|
trailing?: React.ReactNode;
|
|
2308
2276
|
disabled?: boolean;
|
|
2309
2277
|
}
|
|
2310
|
-
interface SectionNavGroup {
|
|
2278
|
+
interface SectionNavGroup extends NavGroupCollapse {
|
|
2311
2279
|
id: string;
|
|
2312
2280
|
label?: React.ReactNode;
|
|
2313
2281
|
/** One line under the label saying what kind of thing lives here. */
|
|
2314
2282
|
description?: React.ReactNode;
|
|
2315
2283
|
items: readonly SectionNavItem[];
|
|
2316
2284
|
}
|
|
2317
|
-
interface SectionNavLabels {
|
|
2285
|
+
interface SectionNavLabels extends NavCollapseLabels {
|
|
2318
2286
|
/** Accessible name of the nav. Default `"Sections"`. */
|
|
2319
2287
|
nav?: string;
|
|
2320
2288
|
}
|
|
@@ -2326,6 +2294,8 @@ interface SectionNavProps extends Omit<React.ComponentProps<"nav">, "children">
|
|
|
2326
2294
|
onValueChange?: (id: string) => void;
|
|
2327
2295
|
linkComponent?: React.ElementType;
|
|
2328
2296
|
labels?: SectionNavLabels;
|
|
2297
|
+
/** Makes every labelled group collapsible; a group's own `collapsible` wins. Default `false`. */
|
|
2298
|
+
collapsible?: boolean;
|
|
2329
2299
|
}
|
|
2330
2300
|
/**
|
|
2331
2301
|
* A screen's own section rail — settings panes, a document's chapters: grouped
|
|
@@ -2333,7 +2303,7 @@ interface SectionNavProps extends Omit<React.ComponentProps<"nav">, "children">
|
|
|
2333
2303
|
* is `ShellNav`; this one lives inside a page, so it carries a tint rather than
|
|
2334
2304
|
* the rail's solid marker and does not slide.
|
|
2335
2305
|
*/
|
|
2336
|
-
declare function SectionNav({ groups, value, onValueChange, linkComponent, labels, className, ...props }: SectionNavProps): React.JSX.Element;
|
|
2306
|
+
declare function SectionNav({ groups, value, onValueChange, linkComponent, labels, collapsible, className, ...props }: SectionNavProps): React.JSX.Element;
|
|
2337
2307
|
|
|
2338
2308
|
interface ResourceErrorLabels {
|
|
2339
2309
|
/** The retry button. Default `"Try again"`. */
|
|
@@ -2367,7 +2337,14 @@ type ResourceErrorProps = ResourceErrorBase & ({
|
|
|
2367
2337
|
*/
|
|
2368
2338
|
declare function ResourceError(props: ResourceErrorProps): React.JSX.Element;
|
|
2369
2339
|
|
|
2370
|
-
|
|
2340
|
+
declare const systemBannerIconToneClasses: {
|
|
2341
|
+
readonly neutral: "text-ink-soft";
|
|
2342
|
+
readonly primary: "text-primary-ink";
|
|
2343
|
+
readonly info: "text-accent-info-ink";
|
|
2344
|
+
readonly warn: "text-accent-warn";
|
|
2345
|
+
};
|
|
2346
|
+
type SystemBannerTone = keyof typeof systemBannerIconToneClasses;
|
|
2347
|
+
|
|
2371
2348
|
interface SystemBannerLabels {
|
|
2372
2349
|
/** The close button. Default `"Dismiss"`. */
|
|
2373
2350
|
dismiss?: string;
|
|
@@ -2381,6 +2358,8 @@ interface SystemBannerProps extends Omit<React.ComponentProps<"div">, "title"> {
|
|
|
2381
2358
|
icon?: React.ReactNode;
|
|
2382
2359
|
/** Shows a close button; remembering the dismissal is the caller's. */
|
|
2383
2360
|
onDismiss?: () => void;
|
|
2361
|
+
/** A link or button after the message. */
|
|
2362
|
+
action?: React.ReactNode;
|
|
2384
2363
|
labels?: SystemBannerLabels;
|
|
2385
2364
|
}
|
|
2386
2365
|
/**
|
|
@@ -2388,7 +2367,7 @@ interface SystemBannerProps extends Omit<React.ComponentProps<"div">, "title"> {
|
|
|
2388
2367
|
* comes from, and whether a dismissal sticks, are the caller's. Put it in
|
|
2389
2368
|
* `AppShell`'s `banner` slot; several stack with a gap.
|
|
2390
2369
|
*/
|
|
2391
|
-
declare function SystemBanner({ tone, title, icon, onDismiss, labels, className, children, ...props }: SystemBannerProps): React.JSX.Element;
|
|
2370
|
+
declare function SystemBanner({ tone, title, icon, onDismiss, action, labels, className, children, ...props }: SystemBannerProps): React.JSX.Element;
|
|
2392
2371
|
|
|
2393
2372
|
interface SettledProps extends Omit<React.ComponentProps<"div">, "children"> {
|
|
2394
2373
|
/** True while the data this surface needs is in flight. */
|
|
@@ -2414,4 +2393,721 @@ interface SettledProps extends Omit<React.ComponentProps<"div">, "children"> {
|
|
|
2414
2393
|
*/
|
|
2415
2394
|
declare function Settled({ loading, skeleton, children, ...props }: SettledProps): React.JSX.Element;
|
|
2416
2395
|
|
|
2417
|
-
|
|
2396
|
+
type RollDirection = 1 | -1 | 0;
|
|
2397
|
+
|
|
2398
|
+
interface AnimatedNumberProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "children" | "prefix"> {
|
|
2399
|
+
value: number;
|
|
2400
|
+
/** Passed to `Intl.NumberFormat`: currency, percent, compact, `signDisplay`... */
|
|
2401
|
+
format?: Intl.NumberFormatOptions;
|
|
2402
|
+
locales?: Intl.LocalesArgument;
|
|
2403
|
+
/** `roll`: digit columns spin. `count`: the number is tweened and re-formatted each frame. Default `roll`. */
|
|
2404
|
+
mode?: "roll" | "count";
|
|
2405
|
+
/**
|
|
2406
|
+
* Roll only. `1` every column spins up, `-1` down, `0` each column takes its
|
|
2407
|
+
* shorter way. Default: up when the value rose, down when it fell.
|
|
2408
|
+
*/
|
|
2409
|
+
trend?: RollDirection;
|
|
2410
|
+
/** Milliseconds one change takes: the spin in `roll` (default 750), the whole tween in `count` (default 800). */
|
|
2411
|
+
duration?: number;
|
|
2412
|
+
prefix?: React.ReactNode;
|
|
2413
|
+
suffix?: React.ReactNode;
|
|
2414
|
+
/** Announce each new value politely. Off by default: a ticker would talk over the page. */
|
|
2415
|
+
live?: boolean;
|
|
2416
|
+
/** Animate the first render from `from`. The server markup still prints `value`. */
|
|
2417
|
+
animateOnMount?: boolean;
|
|
2418
|
+
/** The first-render start with `animateOnMount`. Default `0`. */
|
|
2419
|
+
from?: number;
|
|
2420
|
+
}
|
|
2421
|
+
/**
|
|
2422
|
+
* A number that animates when `value` changes. `roll` (default) spins each
|
|
2423
|
+
* digit column like an odometer; `count` tweens the number itself. Both format
|
|
2424
|
+
* with `Intl.NumberFormat`, inherit font and colour, and swap instantly under
|
|
2425
|
+
* `prefers-reduced-motion`. The final formatted value is in the DOM once, as
|
|
2426
|
+
* text for assistive tech and for copying; the moving glyphs are `aria-hidden`.
|
|
2427
|
+
*/
|
|
2428
|
+
declare function AnimatedNumber({ value, format, locales, mode, trend, duration, prefix, suffix, live, animateOnMount, from, className, style, ...props }: AnimatedNumberProps): React.JSX.Element;
|
|
2429
|
+
|
|
2430
|
+
interface CountTweenOptions {
|
|
2431
|
+
/** Milliseconds from the old value to the new one. Default `800`. */
|
|
2432
|
+
duration?: number;
|
|
2433
|
+
/** Maps progress 0..1 to eased progress 0..1. Default ease-out cubic. */
|
|
2434
|
+
easing?: (progress: number) => number;
|
|
2435
|
+
/** Count up from here on the first render. Default `0`; only read with `animateOnMount`. */
|
|
2436
|
+
from?: number;
|
|
2437
|
+
/** Tween on the first render too. Off by default so the server markup is the final value. */
|
|
2438
|
+
animateOnMount?: boolean;
|
|
2439
|
+
}
|
|
2440
|
+
/**
|
|
2441
|
+
* The number a count-up is showing right now, for custom renderers (charts,
|
|
2442
|
+
* labels). It returns `value` itself on the first render and whenever nothing
|
|
2443
|
+
* is in flight, so a server render prints the final figure. A new `value`
|
|
2444
|
+
* mid-flight restarts from what is on screen. Reduced motion returns `value`
|
|
2445
|
+
* with no frames at all.
|
|
2446
|
+
*/
|
|
2447
|
+
declare function useCountTween(value: number, options?: CountTweenOptions): number;
|
|
2448
|
+
|
|
2449
|
+
declare const iconButtonSizeClasses: {
|
|
2450
|
+
readonly sm: "h-6";
|
|
2451
|
+
readonly md: "h-7";
|
|
2452
|
+
readonly touch: "";
|
|
2453
|
+
};
|
|
2454
|
+
type IconButtonSize = keyof typeof iconButtonSizeClasses;
|
|
2455
|
+
|
|
2456
|
+
type IconButtonVariant = "outline" | "ghost";
|
|
2457
|
+
interface IconButtonProps extends Omit<React.ComponentPropsWithoutRef<"button">, "aria-label" | "children"> {
|
|
2458
|
+
/** Required: a glyph alone names nothing. */
|
|
2459
|
+
"aria-label": string;
|
|
2460
|
+
/** The glyph, 16 px. */
|
|
2461
|
+
children: React.ReactNode;
|
|
2462
|
+
variant?: IconButtonVariant;
|
|
2463
|
+
size?: IconButtonSize;
|
|
2464
|
+
/** Toggled on: the active fill, and `aria-pressed` for assistive tech. */
|
|
2465
|
+
pressed?: boolean;
|
|
2466
|
+
/** Shown in a Tooltip on hover and focus. */
|
|
2467
|
+
tooltip?: React.ReactNode;
|
|
2468
|
+
}
|
|
2469
|
+
/**
|
|
2470
|
+
* A square button holding one glyph. It forwards its ref (also on React 18,
|
|
2471
|
+
* where function components drop `ref`) so it can be the child of any
|
|
2472
|
+
* `asChild` trigger; with a `tooltip` the same element anchors the tooltip.
|
|
2473
|
+
*/
|
|
2474
|
+
declare const IconButton: React.ForwardRefExoticComponent<IconButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
2475
|
+
|
|
2476
|
+
declare const statusDotClasses: {
|
|
2477
|
+
readonly positive: "bg-positive";
|
|
2478
|
+
readonly neutral: "bg-ink-soft";
|
|
2479
|
+
readonly warn: "bg-accent-warn";
|
|
2480
|
+
readonly error: "bg-accent-error";
|
|
2481
|
+
readonly muted: "bg-ink-soft/50";
|
|
2482
|
+
};
|
|
2483
|
+
type StatusTone = keyof typeof statusDotClasses;
|
|
2484
|
+
|
|
2485
|
+
interface StatusDotProps extends React.ComponentProps<"span"> {
|
|
2486
|
+
tone?: StatusTone;
|
|
2487
|
+
}
|
|
2488
|
+
/** The 6 px dot alone; decorative, so the text next to it must carry the meaning. */
|
|
2489
|
+
declare function StatusDot({ tone, className, ...props }: StatusDotProps): React.JSX.Element;
|
|
2490
|
+
interface StatusItemProps extends React.ComponentProps<"span"> {
|
|
2491
|
+
tone?: StatusTone;
|
|
2492
|
+
/** A figure after the label, e.g. a latency. */
|
|
2493
|
+
value?: React.ReactNode;
|
|
2494
|
+
}
|
|
2495
|
+
/** A dot and a short label: connection, sync, environment. */
|
|
2496
|
+
declare function StatusItem({ tone, value, className, children, ...props }: StatusItemProps): React.JSX.Element;
|
|
2497
|
+
|
|
2498
|
+
interface WorkspaceTabsProps extends Omit<React.ComponentProps<"div">, "onChange" | "defaultValue"> {
|
|
2499
|
+
value?: string;
|
|
2500
|
+
defaultValue?: string;
|
|
2501
|
+
onValueChange?: (value: string) => void;
|
|
2502
|
+
}
|
|
2503
|
+
/**
|
|
2504
|
+
* A row of open workspaces. Arrow keys move focus (Home/End jump); selecting is
|
|
2505
|
+
* Enter, Space or a click, so moving through the row never swaps the screen.
|
|
2506
|
+
*/
|
|
2507
|
+
declare function WorkspaceTabs({ value, defaultValue, onValueChange, className, onKeyDown, ...props }: WorkspaceTabsProps): React.JSX.Element;
|
|
2508
|
+
interface WorkspaceTabProps extends Omit<React.ComponentProps<"button">, "value"> {
|
|
2509
|
+
value: string;
|
|
2510
|
+
/** Leading glyph; the layers glyph by default. */
|
|
2511
|
+
icon?: React.ReactNode;
|
|
2512
|
+
/** Adds a close button; Delete and Backspace on the tab close it too. */
|
|
2513
|
+
onClose?: () => void;
|
|
2514
|
+
/** Names the close button, e.g. "Close Trading". */
|
|
2515
|
+
closeLabel?: string;
|
|
2516
|
+
}
|
|
2517
|
+
declare function WorkspaceTab({ value, icon, onClose, closeLabel, className, children, onClick, onKeyDown, ...props }: WorkspaceTabProps): React.JSX.Element;
|
|
2518
|
+
|
|
2519
|
+
interface KeyValueLabels {
|
|
2520
|
+
/** The copy button. Default `"Copy {label}"` (just `"Copy"` when the label is not text). */
|
|
2521
|
+
copy?: string;
|
|
2522
|
+
/** The polite announcement after a copy. Default `"Copied"`. */
|
|
2523
|
+
copied?: string;
|
|
2524
|
+
}
|
|
2525
|
+
interface KeyValueProps extends Omit<React.ComponentProps<"div">, "children"> {
|
|
2526
|
+
label: React.ReactNode;
|
|
2527
|
+
value: React.ReactNode;
|
|
2528
|
+
/** Adds a copy button for this text. */
|
|
2529
|
+
copyText?: string;
|
|
2530
|
+
labels?: KeyValueLabels;
|
|
2531
|
+
}
|
|
2532
|
+
/** A small label over its value, with an optional copy button. */
|
|
2533
|
+
declare function KeyValue({ label, value, copyText, labels, className, ...props }: KeyValueProps): React.JSX.Element;
|
|
2534
|
+
|
|
2535
|
+
interface FormRowProps extends Omit<React.ComponentProps<"div">, "title"> {
|
|
2536
|
+
label: React.ReactNode;
|
|
2537
|
+
/** The id of the control in `children`; renders the label as a `<label for>`. */
|
|
2538
|
+
htmlFor?: string;
|
|
2539
|
+
/** A line under the label. */
|
|
2540
|
+
description?: React.ReactNode;
|
|
2541
|
+
/** A caption under the control, e.g. a format hint. */
|
|
2542
|
+
hint?: React.ReactNode;
|
|
2543
|
+
/** Hairline under the row. Default true; the last row of a group turns it off. */
|
|
2544
|
+
divider?: boolean;
|
|
2545
|
+
}
|
|
2546
|
+
/**
|
|
2547
|
+
* Label on the left, the value or its control on the right; they stack on a
|
|
2548
|
+
* phone. A plain `div`, not `ListRow`: it is a form field row, not a list item,
|
|
2549
|
+
* and its label column has a fixed width so controls line up down the page.
|
|
2550
|
+
*/
|
|
2551
|
+
declare function FormRow({ label, htmlFor, description, hint, divider, className, children, ...props }: FormRowProps): React.JSX.Element;
|
|
2552
|
+
|
|
2553
|
+
declare const settingsSectionToneClasses: {
|
|
2554
|
+
readonly default: "border-border";
|
|
2555
|
+
readonly danger: "border-accent-error";
|
|
2556
|
+
};
|
|
2557
|
+
type SettingsSectionTone = keyof typeof settingsSectionToneClasses;
|
|
2558
|
+
|
|
2559
|
+
interface SettingsLayoutProps extends Omit<React.ComponentProps<"div">, "title"> {
|
|
2560
|
+
/** The section rail (`SectionNav`), 256 wide from `lg` up and on top below it. */
|
|
2561
|
+
nav: React.ReactNode;
|
|
2562
|
+
}
|
|
2563
|
+
/**
|
|
2564
|
+
* Rail on the left, cards in the main column; centres a 1408 px measure. The column is a
|
|
2565
|
+
* div: `AppShell` already renders the page's `<main>`.
|
|
2566
|
+
*/
|
|
2567
|
+
declare function SettingsLayout({ nav, className, children, ...props }: SettingsLayoutProps): React.JSX.Element;
|
|
2568
|
+
interface SettingsSectionProps extends Omit<React.ComponentProps<"section">, "title"> {
|
|
2569
|
+
title: React.ReactNode;
|
|
2570
|
+
description?: React.ReactNode;
|
|
2571
|
+
/** Top-right control, e.g. a "Create team" button. */
|
|
2572
|
+
action?: React.ReactNode;
|
|
2573
|
+
/** `danger` draws the destructive-zone edge. */
|
|
2574
|
+
tone?: SettingsSectionTone;
|
|
2575
|
+
/** Rows run edge to edge with their hairlines; otherwise the body is padded. */
|
|
2576
|
+
flush?: boolean;
|
|
2577
|
+
}
|
|
2578
|
+
/** A settings card: title, a line saying what it is for, then the body. */
|
|
2579
|
+
declare function SettingsSection({ title, description, action, tone, flush, className, children, ...props }: SettingsSectionProps): React.JSX.Element;
|
|
2580
|
+
interface SettingsRowProps extends FormRowProps {
|
|
2581
|
+
/** Keeps label and control on one line at every width, control at the end: for a switch or a button. */
|
|
2582
|
+
inline?: boolean;
|
|
2583
|
+
}
|
|
2584
|
+
/** A `FormRow` for settings; `inline` suits toggles. */
|
|
2585
|
+
declare function SettingsRow({ inline, className, ...props }: SettingsRowProps): React.JSX.Element;
|
|
2586
|
+
|
|
2587
|
+
interface AccountSettingsSection {
|
|
2588
|
+
id: string;
|
|
2589
|
+
label: React.ReactNode;
|
|
2590
|
+
icon?: React.ReactNode;
|
|
2591
|
+
content: React.ReactNode;
|
|
2592
|
+
}
|
|
2593
|
+
interface AccountSettingsDialogLabels {
|
|
2594
|
+
/** The close button. Default `"Close"`. */
|
|
2595
|
+
close?: string;
|
|
2596
|
+
}
|
|
2597
|
+
interface AccountSettingsDialogProps {
|
|
2598
|
+
open?: boolean;
|
|
2599
|
+
defaultOpen?: boolean;
|
|
2600
|
+
onOpenChange?: (open: boolean) => void;
|
|
2601
|
+
/** The heading of the content pane. */
|
|
2602
|
+
title: React.ReactNode;
|
|
2603
|
+
description?: React.ReactNode;
|
|
2604
|
+
/** One sidebar entry each; the active one's `content` fills the pane. */
|
|
2605
|
+
sections: readonly AccountSettingsSection[];
|
|
2606
|
+
value?: string;
|
|
2607
|
+
defaultValue?: string;
|
|
2608
|
+
onValueChange?: (id: string) => void;
|
|
2609
|
+
/** Pinned under the sidebar entries: sign out, language. */
|
|
2610
|
+
sidebarFooter?: React.ReactNode;
|
|
2611
|
+
labels?: AccountSettingsDialogLabels;
|
|
2612
|
+
className?: string;
|
|
2613
|
+
}
|
|
2614
|
+
/**
|
|
2615
|
+
* The account modal: a vertical tab rail on the left, the active section on
|
|
2616
|
+
* the right. Sections are the caller's, so Profile and Security (or any other)
|
|
2617
|
+
* are built from `SettingsSection` and `SettingsRow` inside `content`.
|
|
2618
|
+
*/
|
|
2619
|
+
declare function AccountSettingsDialog({ open, defaultOpen, onOpenChange, title, description, sections, value, defaultValue, onValueChange, sidebarFooter, labels, className, }: AccountSettingsDialogProps): React.JSX.Element;
|
|
2620
|
+
|
|
2621
|
+
declare const confirmDialogIconToneClasses: {
|
|
2622
|
+
readonly default: "bg-muted text-ink-mid";
|
|
2623
|
+
readonly danger: "bg-chip-error-bg text-accent-error";
|
|
2624
|
+
};
|
|
2625
|
+
type ConfirmDialogTone = keyof typeof confirmDialogIconToneClasses;
|
|
2626
|
+
|
|
2627
|
+
interface ConfirmDialogLabels {
|
|
2628
|
+
cancel?: string;
|
|
2629
|
+
/** Shown when `onConfirm` rejects with something that has no message. */
|
|
2630
|
+
error?: string;
|
|
2631
|
+
}
|
|
2632
|
+
interface ConfirmDialogProps {
|
|
2633
|
+
open?: boolean;
|
|
2634
|
+
defaultOpen?: boolean;
|
|
2635
|
+
onOpenChange?: (open: boolean) => void;
|
|
2636
|
+
/** Opens the dialog; wrapped with `asChild`, so pass one button. */
|
|
2637
|
+
trigger?: React.ReactNode;
|
|
2638
|
+
title: React.ReactNode;
|
|
2639
|
+
description?: React.ReactNode;
|
|
2640
|
+
tone?: ConfirmDialogTone;
|
|
2641
|
+
confirmLabel: React.ReactNode;
|
|
2642
|
+
/**
|
|
2643
|
+
* Resolve to close the dialog. While a returned promise is pending both
|
|
2644
|
+
* buttons are disabled and Escape and outside clicks do nothing; a rejection
|
|
2645
|
+
* keeps the dialog open and shows its message under the text.
|
|
2646
|
+
*/
|
|
2647
|
+
onConfirm: () => void | Promise<void>;
|
|
2648
|
+
/** Replaces the tone's glyph. */
|
|
2649
|
+
icon?: React.ReactNode;
|
|
2650
|
+
labels?: ConfirmDialogLabels;
|
|
2651
|
+
className?: string;
|
|
2652
|
+
}
|
|
2653
|
+
declare function ConfirmDialog({ open, defaultOpen, onOpenChange, trigger, title, description, tone, confirmLabel, onConfirm, icon, labels, className, }: ConfirmDialogProps): React.JSX.Element;
|
|
2654
|
+
|
|
2655
|
+
interface AccountListProps extends Omit<React.ComponentProps<"div">, "onChange" | "defaultValue"> {
|
|
2656
|
+
value?: string;
|
|
2657
|
+
defaultValue?: string;
|
|
2658
|
+
onValueChange?: (value: string) => void;
|
|
2659
|
+
/** Accessible name of the group, e.g. "Accounts". */
|
|
2660
|
+
"aria-label": string;
|
|
2661
|
+
}
|
|
2662
|
+
/**
|
|
2663
|
+
* Pick the account you act as: one is current, arrows move and select
|
|
2664
|
+
* (radio-group semantics), so the current account is the only tab stop.
|
|
2665
|
+
*/
|
|
2666
|
+
declare function AccountList({ value, defaultValue, onValueChange, className, onKeyDown, ...props }: AccountListProps): React.JSX.Element;
|
|
2667
|
+
interface AccountListItemProps extends Omit<React.ComponentProps<"div">, "value" | "title"> {
|
|
2668
|
+
value: string;
|
|
2669
|
+
name: React.ReactNode;
|
|
2670
|
+
/** A line under the name: handle, email. */
|
|
2671
|
+
handle?: React.ReactNode;
|
|
2672
|
+
/** Replaces the initial-in-a-square default. */
|
|
2673
|
+
avatar?: React.ReactNode;
|
|
2674
|
+
/** Role badges after the name block. */
|
|
2675
|
+
badges?: React.ReactNode;
|
|
2676
|
+
/** A figure at the end, set in the serif face: a balance. */
|
|
2677
|
+
figure?: React.ReactNode;
|
|
2678
|
+
/** Controls beside the row (a menu button); they cannot live inside the radio. */
|
|
2679
|
+
actions?: React.ReactNode;
|
|
2680
|
+
disabled?: boolean;
|
|
2681
|
+
}
|
|
2682
|
+
declare function AccountListItem({ value, name, handle, avatar, badges, figure, actions, disabled, className, ...props }: AccountListItemProps): React.JSX.Element;
|
|
2683
|
+
|
|
2684
|
+
interface PopoverFormLabels {
|
|
2685
|
+
submit?: string;
|
|
2686
|
+
reset?: string;
|
|
2687
|
+
}
|
|
2688
|
+
interface PopoverFormProps {
|
|
2689
|
+
open?: boolean;
|
|
2690
|
+
defaultOpen?: boolean;
|
|
2691
|
+
onOpenChange?: (open: boolean) => void;
|
|
2692
|
+
/** The button that opens the form; wrapped with `asChild`, so pass one element. */
|
|
2693
|
+
trigger: React.ReactNode;
|
|
2694
|
+
title: React.ReactNode;
|
|
2695
|
+
/** The fields: `Field`s with an `Input`, `Select` or `Checkbox`. */
|
|
2696
|
+
children: React.ReactNode;
|
|
2697
|
+
/** Called on submit; the popover closes afterwards. */
|
|
2698
|
+
onSubmit?: (event: React.FormEvent<HTMLFormElement>) => void;
|
|
2699
|
+
/** Called when Reset is pressed; native fields are reset by the browser first. */
|
|
2700
|
+
onReset?: () => void;
|
|
2701
|
+
labels?: PopoverFormLabels;
|
|
2702
|
+
className?: string;
|
|
2703
|
+
}
|
|
2704
|
+
/** A filter-style form in a popover: a title, fields, Reset and Apply. */
|
|
2705
|
+
declare function PopoverForm({ open, defaultOpen, onOpenChange, trigger, title, children, onSubmit, onReset, labels, className, }: PopoverFormProps): React.JSX.Element;
|
|
2706
|
+
|
|
2707
|
+
interface CommandPaletteItem {
|
|
2708
|
+
id: string;
|
|
2709
|
+
label: string;
|
|
2710
|
+
icon?: React.ReactNode;
|
|
2711
|
+
/** Shown at the row end, e.g. "⌘N". */
|
|
2712
|
+
shortcut?: string;
|
|
2713
|
+
/** Extra words the search matches besides the label. */
|
|
2714
|
+
keywords?: readonly string[];
|
|
2715
|
+
disabled?: boolean;
|
|
2716
|
+
onSelect: () => void;
|
|
2717
|
+
}
|
|
2718
|
+
interface CommandPaletteGroup {
|
|
2719
|
+
id: string;
|
|
2720
|
+
heading?: string;
|
|
2721
|
+
items: readonly CommandPaletteItem[];
|
|
2722
|
+
}
|
|
2723
|
+
interface CommandPaletteLabels {
|
|
2724
|
+
/** Names the dialog for assistive tech. Default `"Command palette"`. */
|
|
2725
|
+
title?: string;
|
|
2726
|
+
placeholder?: string;
|
|
2727
|
+
empty?: string;
|
|
2728
|
+
navigate?: string;
|
|
2729
|
+
select?: string;
|
|
2730
|
+
close?: string;
|
|
2731
|
+
}
|
|
2732
|
+
interface CommandPaletteProps {
|
|
2733
|
+
open?: boolean;
|
|
2734
|
+
defaultOpen?: boolean;
|
|
2735
|
+
onOpenChange?: (open: boolean) => void;
|
|
2736
|
+
groups: readonly CommandPaletteGroup[];
|
|
2737
|
+
labels?: CommandPaletteLabels;
|
|
2738
|
+
className?: string;
|
|
2739
|
+
}
|
|
2740
|
+
/**
|
|
2741
|
+
* Search-and-run over a list of actions. Choosing a row runs it and closes the
|
|
2742
|
+
* palette. Pair it with `useCommandPaletteShortcut` for ⌘K / Ctrl+K.
|
|
2743
|
+
*/
|
|
2744
|
+
declare function CommandPalette({ open, defaultOpen, onOpenChange, groups, labels, className, }: CommandPaletteProps): React.JSX.Element;
|
|
2745
|
+
/**
|
|
2746
|
+
* Calls `onTrigger` on ⌘K (Mac) or Ctrl+K, and keeps the browser from taking
|
|
2747
|
+
* the key (Chrome focuses the address bar on Ctrl+K in some layouts). Matches the
|
|
2748
|
+
* physical key (`code`), so it also works on a Russian or other non-Latin layout.
|
|
2749
|
+
*/
|
|
2750
|
+
declare function useCommandPaletteShortcut(onTrigger: () => void, enabled?: boolean): void;
|
|
2751
|
+
|
|
2752
|
+
declare const headerBalanceToneClasses: {
|
|
2753
|
+
readonly default: "text-ink";
|
|
2754
|
+
readonly warn: "text-accent-warn";
|
|
2755
|
+
};
|
|
2756
|
+
type HeaderBalanceTone = keyof typeof headerBalanceToneClasses;
|
|
2757
|
+
|
|
2758
|
+
interface HeaderBalanceProps extends Omit<React.HTMLAttributes<HTMLElement>, "children"> {
|
|
2759
|
+
/** Only meaningful with `onClick`. */
|
|
2760
|
+
disabled?: boolean;
|
|
2761
|
+
label?: React.ReactNode;
|
|
2762
|
+
/** The figure, already formatted: "$0.00". Ignored when `amount` is given. */
|
|
2763
|
+
value?: React.ReactNode;
|
|
2764
|
+
/** The figure as a number: it rolls to each new amount, formatted by `format` and `locales`. */
|
|
2765
|
+
amount?: number;
|
|
2766
|
+
/** Formatting for `amount`. Default: USD currency. */
|
|
2767
|
+
format?: Intl.NumberFormatOptions;
|
|
2768
|
+
locales?: Intl.LocalesArgument;
|
|
2769
|
+
/** True until the balance is known; the figure then reveals in place of the skeleton. */
|
|
2770
|
+
loading?: boolean;
|
|
2771
|
+
/** A glyph before the label. */
|
|
2772
|
+
icon?: React.ReactNode;
|
|
2773
|
+
/** `warn` colours the figure as a low-funds signal. */
|
|
2774
|
+
tone?: HeaderBalanceTone;
|
|
2775
|
+
}
|
|
2776
|
+
/** "Balance: $0.00" in the header; a button only when given `onClick`. */
|
|
2777
|
+
declare function HeaderBalance({ label, value, amount, format, locales, loading, icon, tone, onClick, disabled, className, ...props }: HeaderBalanceProps): React.JSX.Element;
|
|
2778
|
+
interface HeaderNotification {
|
|
2779
|
+
id: string;
|
|
2780
|
+
title: React.ReactNode;
|
|
2781
|
+
description?: React.ReactNode;
|
|
2782
|
+
/** Already formatted: "2m ago". */
|
|
2783
|
+
time?: React.ReactNode;
|
|
2784
|
+
unread?: boolean;
|
|
2785
|
+
}
|
|
2786
|
+
interface NotificationBellLabels {
|
|
2787
|
+
/** The bell's name. Default `"Notifications"`. */
|
|
2788
|
+
trigger?: string;
|
|
2789
|
+
/** Spoken after the name when something is unread; gets the count. Default `"{n} unread"`. */
|
|
2790
|
+
unread?: (count: number) => string;
|
|
2791
|
+
/** Default `"No notifications"`. */
|
|
2792
|
+
empty?: string;
|
|
2793
|
+
}
|
|
2794
|
+
interface NotificationBellProps {
|
|
2795
|
+
notifications: readonly HeaderNotification[];
|
|
2796
|
+
onSelect?: (id: string) => void;
|
|
2797
|
+
labels?: NotificationBellLabels;
|
|
2798
|
+
/** Under the list: "View all". */
|
|
2799
|
+
footer?: React.ReactNode;
|
|
2800
|
+
className?: string;
|
|
2801
|
+
}
|
|
2802
|
+
/** The bell with an unread dot; the list opens in a popover. */
|
|
2803
|
+
declare function NotificationBell({ notifications, onSelect, labels, footer, className }: NotificationBellProps): React.JSX.Element;
|
|
2804
|
+
interface HeaderSearchProps extends React.ComponentProps<"button"> {
|
|
2805
|
+
placeholder?: string;
|
|
2806
|
+
/** The shortcut hint at the end. Default: `⌘K` on Apple platforms, `Ctrl K` elsewhere. */
|
|
2807
|
+
shortcut?: string;
|
|
2808
|
+
}
|
|
2809
|
+
/** A button dressed as the search field; it opens the palette rather than taking input. */
|
|
2810
|
+
declare function HeaderSearch({ placeholder, shortcut, className, ...props }: HeaderSearchProps): React.JSX.Element;
|
|
2811
|
+
|
|
2812
|
+
type SmartHeaderState = "default" | "collapsed" | "banner" | "search";
|
|
2813
|
+
interface SmartHeaderProps extends Omit<React.ComponentProps<"div">, "children"> {
|
|
2814
|
+
/**
|
|
2815
|
+
* `default` — bar, toolbar and context line; `collapsed` — the toolbar folds
|
|
2816
|
+
* into the bar as `collapsed`; `banner` — a banner row above one bar;
|
|
2817
|
+
* `search` — one bar with the `palette` under it.
|
|
2818
|
+
*/
|
|
2819
|
+
state?: SmartHeaderState;
|
|
2820
|
+
/** Brand, workspace tabs: the left side of the bar. */
|
|
2821
|
+
start?: React.ReactNode;
|
|
2822
|
+
/** The right side of the bar: icon actions, balance, bell, account menu. */
|
|
2823
|
+
end?: React.ReactNode;
|
|
2824
|
+
/** The folded toolbar, between `start` and `end`; shown in `collapsed` only. */
|
|
2825
|
+
collapsed?: React.ReactNode;
|
|
2826
|
+
/** A `SystemBanner`; shown in `banner` only. */
|
|
2827
|
+
banner?: React.ReactNode;
|
|
2828
|
+
/** The second row, 44 high; shown in `default` only. */
|
|
2829
|
+
toolbar?: React.ReactNode;
|
|
2830
|
+
/** The slim line on the page fill under the toolbar; shown in `default` only. */
|
|
2831
|
+
context?: React.ReactNode;
|
|
2832
|
+
/** A `CommandPalette` or any panel that drops from the bar; shown in `search` only. */
|
|
2833
|
+
palette?: React.ReactNode;
|
|
2834
|
+
}
|
|
2835
|
+
/**
|
|
2836
|
+
* A page header that adapts to scroll and alerts. The bar is the same in every
|
|
2837
|
+
* state, so switching never moves the brand or the account: only the rows
|
|
2838
|
+
* around it come and go. Layout only; the caller owns the state and its trigger
|
|
2839
|
+
* (a scroll observer, a feed status, the search button).
|
|
2840
|
+
*/
|
|
2841
|
+
declare function SmartHeader({ state, start, end, collapsed, banner, toolbar, context, palette, className, ...props }: SmartHeaderProps): React.JSX.Element;
|
|
2842
|
+
|
|
2843
|
+
declare const asidePanelSideClasses: {
|
|
2844
|
+
readonly left: "border-r border-border";
|
|
2845
|
+
readonly right: "border-l border-border";
|
|
2846
|
+
};
|
|
2847
|
+
type AsidePanelSide = keyof typeof asidePanelSideClasses;
|
|
2848
|
+
|
|
2849
|
+
interface AsideHeaderLabels {
|
|
2850
|
+
back?: string;
|
|
2851
|
+
close?: string;
|
|
2852
|
+
}
|
|
2853
|
+
interface AsideHeaderProps extends Omit<React.ComponentProps<"div">, "title"> {
|
|
2854
|
+
title: React.ReactNode;
|
|
2855
|
+
/** Shows the back button first. */
|
|
2856
|
+
onBack?: () => void;
|
|
2857
|
+
/** Shows the close button last. */
|
|
2858
|
+
onClose?: () => void;
|
|
2859
|
+
/** `IconButton`s between the title and the close button: pin, more. */
|
|
2860
|
+
actions?: React.ReactNode;
|
|
2861
|
+
labels?: AsideHeaderLabels;
|
|
2862
|
+
}
|
|
2863
|
+
/** The 44 px title row of an aside. */
|
|
2864
|
+
declare function AsideHeader({ title, onBack, onClose, actions, labels, className, ...props }: AsideHeaderProps): React.JSX.Element;
|
|
2865
|
+
interface AsideRailItem {
|
|
2866
|
+
id: string;
|
|
2867
|
+
/** Names the button and fills its tooltip. */
|
|
2868
|
+
label: string;
|
|
2869
|
+
icon: React.ReactNode;
|
|
2870
|
+
}
|
|
2871
|
+
interface AsideRailProps extends Omit<React.ComponentProps<"div">, "onChange"> {
|
|
2872
|
+
items: readonly AsideRailItem[];
|
|
2873
|
+
/** Pinned to the bottom, e.g. settings. */
|
|
2874
|
+
endItems?: readonly AsideRailItem[];
|
|
2875
|
+
/** The open aside's id; `null` when all are closed. */
|
|
2876
|
+
value: string | null;
|
|
2877
|
+
/** Pressing the open item's button asks for `null`. */
|
|
2878
|
+
onValueChange: (id: string | null) => void;
|
|
2879
|
+
/** Accessible name of the rail. Default `"Panels"`. */
|
|
2880
|
+
"aria-label"?: string;
|
|
2881
|
+
}
|
|
2882
|
+
/** The 44 px strip of icon buttons that opens and closes the asides. */
|
|
2883
|
+
declare function AsideRail({ items, endItems, value, onValueChange, className, "aria-label": ariaLabel, ...props }: AsideRailProps): React.JSX.Element;
|
|
2884
|
+
type AsidePanelMode = "docked" | "overlay";
|
|
2885
|
+
interface AsidePanelProps extends Omit<React.ComponentProps<"aside">, "title"> {
|
|
2886
|
+
/** Names the panel. */
|
|
2887
|
+
"aria-label": string;
|
|
2888
|
+
mode?: AsidePanelMode;
|
|
2889
|
+
/** Which edge of the screen it hugs. Default `right`. */
|
|
2890
|
+
side?: AsidePanelSide;
|
|
2891
|
+
open?: boolean;
|
|
2892
|
+
/**
|
|
2893
|
+
* Escape, the scrim and the drawer drag call it with `false`. A docked panel
|
|
2894
|
+
* is only dismissable this way where it falls back to the drawer (below `md`).
|
|
2895
|
+
*/
|
|
2896
|
+
onOpenChange?: (open: boolean) => void;
|
|
2897
|
+
/** An `AsideHeader`. */
|
|
2898
|
+
header?: React.ReactNode;
|
|
2899
|
+
/** Sticky under the body: actions. */
|
|
2900
|
+
footer?: React.ReactNode;
|
|
2901
|
+
/**
|
|
2902
|
+
* Below this width the panel floats on a drawer so the content keeps its room.
|
|
2903
|
+
* `false` keeps it docked (or on a sheet) at every width, for a framed preview
|
|
2904
|
+
* or an embedded layout where the viewport says nothing about the room.
|
|
2905
|
+
*/
|
|
2906
|
+
collapseBelow?: "md" | false;
|
|
2907
|
+
/** Docked 380 (260 for a left navigation), overlay 420: a width class overrides it. */
|
|
2908
|
+
className?: string;
|
|
2909
|
+
}
|
|
2910
|
+
/**
|
|
2911
|
+
* A side panel. `docked` sits in the layout and takes room from the content;
|
|
2912
|
+
* `overlay` floats over a scrim on a Sheet. Below `md` both use a bottom Drawer.
|
|
2913
|
+
* The edge facing the content is the only border.
|
|
2914
|
+
*/
|
|
2915
|
+
declare function AsidePanel({ mode, side, open, onOpenChange, header, footer, collapseBelow, className, children, ...props }: AsidePanelProps): React.JSX.Element | null;
|
|
2916
|
+
|
|
2917
|
+
declare const chatBubbleVariantClasses: {
|
|
2918
|
+
readonly user: "max-w-105 rounded-lg border border-border bg-secondary px-3.5 py-2.5";
|
|
2919
|
+
readonly assistant: "py-0.5";
|
|
2920
|
+
readonly muted: "max-w-105 rounded-lg border border-border-subtle bg-muted px-3.5 py-2.5";
|
|
2921
|
+
};
|
|
2922
|
+
type ChatBubbleVariant = keyof typeof chatBubbleVariantClasses;
|
|
2923
|
+
declare const chatStatusDotClasses: {
|
|
2924
|
+
readonly running: "bg-primary-ink motion-safe:animate-pulse";
|
|
2925
|
+
readonly done: "bg-ink-soft";
|
|
2926
|
+
};
|
|
2927
|
+
type ChatStatusState = keyof typeof chatStatusDotClasses;
|
|
2928
|
+
declare const chatToolMetaClasses: {
|
|
2929
|
+
readonly running: "text-primary-ink";
|
|
2930
|
+
readonly done: "text-ink-soft";
|
|
2931
|
+
readonly error: "text-accent-error";
|
|
2932
|
+
};
|
|
2933
|
+
type ChatToolState = keyof typeof chatToolMetaClasses;
|
|
2934
|
+
|
|
2935
|
+
interface ChatBubbleProps extends React.ComponentProps<"div"> {
|
|
2936
|
+
variant?: ChatBubbleVariant;
|
|
2937
|
+
/**
|
|
2938
|
+
* Still receiving text: a soft caret pulses after it, and string children
|
|
2939
|
+
* fade in word by word (`ChatStreamText`). Stays set until the text is complete.
|
|
2940
|
+
*/
|
|
2941
|
+
streaming?: boolean;
|
|
2942
|
+
}
|
|
2943
|
+
/** One block of message text; `assistant` has no box so long answers read as a page. */
|
|
2944
|
+
declare function ChatBubble({ variant, streaming, className, children, ...props }: ChatBubbleProps): React.JSX.Element;
|
|
2945
|
+
interface ChatMessageProps extends Omit<React.ComponentProps<"div">, "role"> {
|
|
2946
|
+
role: "assistant" | "user";
|
|
2947
|
+
/** "Assistant", "You". */
|
|
2948
|
+
name?: React.ReactNode;
|
|
2949
|
+
/** Already formatted: "13:04". */
|
|
2950
|
+
time?: React.ReactNode;
|
|
2951
|
+
/** The assistant's tile; a default sparkle tile when omitted. */
|
|
2952
|
+
avatar?: React.ReactNode;
|
|
2953
|
+
/** Drops the name row and the avatar, for a narrow dock. */
|
|
2954
|
+
compact?: boolean;
|
|
2955
|
+
}
|
|
2956
|
+
/** A turn: who spoke, when, then the bubbles and markers. Fades in and rises once when it mounts. */
|
|
2957
|
+
declare function ChatMessage({ role, name, time, avatar, compact, className, children, ...props }: ChatMessageProps): React.JSX.Element;
|
|
2958
|
+
type ChatMarkerProps = Omit<React.ComponentProps<"div">, "title"> & ({
|
|
2959
|
+
type: "status";
|
|
2960
|
+
state?: ChatStatusState;
|
|
2961
|
+
} | {
|
|
2962
|
+
type: "tool";
|
|
2963
|
+
state?: ChatToolState;
|
|
2964
|
+
/** The tool's name. */
|
|
2965
|
+
title: React.ReactNode;
|
|
2966
|
+
detail?: React.ReactNode;
|
|
2967
|
+
/** The right-hand note: "Running…", "0.4s", "Failed · 1.2s". */
|
|
2968
|
+
meta?: React.ReactNode;
|
|
2969
|
+
} | {
|
|
2970
|
+
type: "separator";
|
|
2971
|
+
});
|
|
2972
|
+
/** The quiet lines between messages: progress, a tool call, or a day break. */
|
|
2973
|
+
declare function ChatMarker(allProps: ChatMarkerProps): React.JSX.Element;
|
|
2974
|
+
interface ChatAttachmentProps extends Omit<React.ComponentProps<"div">, "children"> {
|
|
2975
|
+
type?: "file" | "image";
|
|
2976
|
+
state?: "ready" | "uploading";
|
|
2977
|
+
name: string;
|
|
2978
|
+
/** "PDF · 1.2 MB"; while uploading, defaults to the percentage. */
|
|
2979
|
+
meta?: React.ReactNode;
|
|
2980
|
+
/** 0 to 100, while uploading. */
|
|
2981
|
+
progress?: number;
|
|
2982
|
+
/** Shows the remove button. */
|
|
2983
|
+
onRemove?: () => void;
|
|
2984
|
+
/** Default `"Remove {name}"`. */
|
|
2985
|
+
removeLabel?: string;
|
|
2986
|
+
}
|
|
2987
|
+
/** A card for a file in a message or in the composer. */
|
|
2988
|
+
declare function ChatAttachment({ type, state, name, meta, progress, onRemove, removeLabel, className, ...props }: ChatAttachmentProps): React.JSX.Element;
|
|
2989
|
+
|
|
2990
|
+
interface ChatStreamTextProps extends Omit<React.ComponentProps<"span">, "children"> {
|
|
2991
|
+
/** The text so far. Pass the whole growing string; only the appended tail animates. */
|
|
2992
|
+
text: string;
|
|
2993
|
+
/**
|
|
2994
|
+
* The text is still growing. A string that is already complete when this
|
|
2995
|
+
* mounts as `false` shows at once, with no entrance.
|
|
2996
|
+
*/
|
|
2997
|
+
streaming?: boolean;
|
|
2998
|
+
}
|
|
2999
|
+
/**
|
|
3000
|
+
* Text that arrives word by word. New words fade in from a soft blur and settle
|
|
3001
|
+
* (motion.css); words already on screen are never touched again. Once a word has
|
|
3002
|
+
* landed it folds into one plain text node, so a long reply costs a handful of
|
|
3003
|
+
* elements, not thousands. The text content stays exactly `text`.
|
|
3004
|
+
*/
|
|
3005
|
+
declare function ChatStreamText({ text, streaming, ...props }: ChatStreamTextProps): React.JSX.Element;
|
|
3006
|
+
|
|
3007
|
+
interface ChatTypingProps extends Omit<React.ComponentProps<"span">, "children"> {
|
|
3008
|
+
/** Names the state for assistive tech. Default `"Assistant is thinking"`. */
|
|
3009
|
+
label?: string;
|
|
3010
|
+
}
|
|
3011
|
+
/**
|
|
3012
|
+
* The wait before the first token: three dots whose opacity ripples. Under
|
|
3013
|
+
* reduced motion CSS swaps them for a still "…". It is a status region, so a
|
|
3014
|
+
* screen reader hears the label once when it appears.
|
|
3015
|
+
*/
|
|
3016
|
+
declare function ChatTyping({ label, className, ...props }: ChatTypingProps): React.JSX.Element;
|
|
3017
|
+
|
|
3018
|
+
interface ModelOption {
|
|
3019
|
+
id: string;
|
|
3020
|
+
label: string;
|
|
3021
|
+
}
|
|
3022
|
+
interface ModelChipProps {
|
|
3023
|
+
models: readonly ModelOption[];
|
|
3024
|
+
value: string;
|
|
3025
|
+
onValueChange: (id: string) => void;
|
|
3026
|
+
/** Names the menu. Default `"Model"`. */
|
|
3027
|
+
"aria-label"?: string;
|
|
3028
|
+
className?: string;
|
|
3029
|
+
}
|
|
3030
|
+
/** The small bordered button naming the model; opens a radio menu of the options. */
|
|
3031
|
+
declare function ModelChip({ models, value, onValueChange, "aria-label": ariaLabel, className }: ModelChipProps): React.JSX.Element;
|
|
3032
|
+
interface ChatComposerLabels {
|
|
3033
|
+
/** Names the message field. Default `"Message"`. */
|
|
3034
|
+
field?: string;
|
|
3035
|
+
send?: string;
|
|
3036
|
+
stop?: string;
|
|
3037
|
+
attach?: string;
|
|
3038
|
+
}
|
|
3039
|
+
interface ChatComposerProps extends Omit<React.ComponentProps<"div">, "onChange" | "defaultValue"> {
|
|
3040
|
+
value?: string;
|
|
3041
|
+
defaultValue?: string;
|
|
3042
|
+
onValueChange?: (value: string) => void;
|
|
3043
|
+
/** Enter or the send button, with the trimmed text. The field clears afterwards. */
|
|
3044
|
+
onSend: (text: string) => void;
|
|
3045
|
+
/** The assistant is answering: the button becomes Stop. Enter still queues a follow-up. */
|
|
3046
|
+
streaming?: boolean;
|
|
3047
|
+
onStop?: () => void;
|
|
3048
|
+
placeholder?: string;
|
|
3049
|
+
/** Shows the attach button. */
|
|
3050
|
+
onAttach?: () => void;
|
|
3051
|
+
/** A row of `ChatAttachment`s above the field. */
|
|
3052
|
+
attachments?: React.ReactNode;
|
|
3053
|
+
/** Model chips and other toolbar controls, after the attach button. */
|
|
3054
|
+
tools?: React.ReactNode;
|
|
3055
|
+
/** A caption in the toolbar: "Enter to send · Shift+Enter for a new line". */
|
|
3056
|
+
hint?: React.ReactNode;
|
|
3057
|
+
disabled?: boolean;
|
|
3058
|
+
labels?: ChatComposerLabels;
|
|
3059
|
+
}
|
|
3060
|
+
declare function ChatComposer({ value, defaultValue, onValueChange, onSend, streaming, onStop, placeholder, onAttach, attachments, tools, hint, disabled, labels, className, ...props }: ChatComposerProps): React.JSX.Element;
|
|
3061
|
+
|
|
3062
|
+
interface ChatPanelLabels {
|
|
3063
|
+
/** The scroll-to-end button. Default `"Jump to latest"`. */
|
|
3064
|
+
jump?: string;
|
|
3065
|
+
/** Names the log region. Default `"Conversation"`. */
|
|
3066
|
+
log?: string;
|
|
3067
|
+
}
|
|
3068
|
+
interface ChatPanelProps extends Omit<React.ComponentProps<"div">, "children"> {
|
|
3069
|
+
/** `ChatMessage`s and `ChatMarker`s, oldest first. */
|
|
3070
|
+
children?: React.ReactNode;
|
|
3071
|
+
/** Shown instead of the log while there is nothing to read. */
|
|
3072
|
+
empty?: React.ReactNode;
|
|
3073
|
+
/** The composer, under the log. */
|
|
3074
|
+
composer?: React.ReactNode;
|
|
3075
|
+
/**
|
|
3076
|
+
* The last turn is still arriving. The log is marked busy, so a screen reader
|
|
3077
|
+
* waits for the finished text instead of announcing every chunk.
|
|
3078
|
+
*/
|
|
3079
|
+
streaming?: boolean;
|
|
3080
|
+
labels?: ChatPanelLabels;
|
|
3081
|
+
}
|
|
3082
|
+
/**
|
|
3083
|
+
* The conversation: a scrolling log that follows new content while the reader
|
|
3084
|
+
* is at the end, and lets go the moment they scroll up. The jump button brings
|
|
3085
|
+
* them back. The log is a polite live region, so new turns are announced
|
|
3086
|
+
* without taking focus.
|
|
3087
|
+
*/
|
|
3088
|
+
declare function ChatPanel({ children, empty, composer, streaming, labels, className, ...props }: ChatPanelProps): React.JSX.Element;
|
|
3089
|
+
interface ChatDockLabels extends ChatPanelLabels {
|
|
3090
|
+
/** The launcher bar's name when collapsed. Default `"Open assistant"`. */
|
|
3091
|
+
open?: string;
|
|
3092
|
+
/** Default `"Collapse"`. */
|
|
3093
|
+
collapse?: string;
|
|
3094
|
+
}
|
|
3095
|
+
interface ChatDockProps extends Omit<React.ComponentProps<"section">, "title" | "children"> {
|
|
3096
|
+
title: React.ReactNode;
|
|
3097
|
+
expanded?: boolean;
|
|
3098
|
+
defaultExpanded?: boolean;
|
|
3099
|
+
onExpandedChange?: (expanded: boolean) => void;
|
|
3100
|
+
/** Header buttons before collapse: history. */
|
|
3101
|
+
actions?: React.ReactNode;
|
|
3102
|
+
/** The launcher bar's text when collapsed. */
|
|
3103
|
+
prompt?: string;
|
|
3104
|
+
children?: React.ReactNode;
|
|
3105
|
+
empty?: React.ReactNode;
|
|
3106
|
+
composer?: React.ReactNode;
|
|
3107
|
+
streaming?: boolean;
|
|
3108
|
+
labels?: ChatDockLabels;
|
|
3109
|
+
}
|
|
3110
|
+
/** The assistant docked in a column: a launcher bar when collapsed, header + conversation + composer when open. */
|
|
3111
|
+
declare function ChatDock({ title, expanded, defaultExpanded, onExpandedChange, actions, prompt, children, empty, composer, streaming, labels, className, ...props }: ChatDockProps): React.JSX.Element;
|
|
3112
|
+
|
|
3113
|
+
export { type Accent, Accordion, AccordionContent, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, AccountList, AccountListItem, type AccountListItemProps, type AccountListProps, AccountMenu, type AccountMenuLabels, type AccountMenuProfile, type AccountMenuProps, type AccountMenuTab, AccountSettingsDialog, type AccountSettingsDialogLabels, type AccountSettingsDialogProps, type AccountSettingsSection, Alert, AlertDescription, AlertDialog, AlertDialogAction, type AlertDialogActionProps, AlertDialogCancel, type AlertDialogCancelProps, AlertDialogContent, type AlertDialogContentProps, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, type AlertDialogOverlayProps, type AlertDialogProps, AlertDialogTitle, AlertDialogTrigger, type AlertDialogTriggerProps, type AlertProps, AlertTitle, type AlertVariant, type Align, AnimatedNumber, type AnimatedNumberProps, AppShell, type AppShellProps, AsideHeader, type AsideHeaderLabels, type AsideHeaderProps, AsidePanel, type AsidePanelMode, type AsidePanelProps, AsideRail, type AsideRailItem, type AsideRailProps, AuthWall, type AuthWallProps, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, type BadgeVariant, BottomTabBar, type BottomTabBarLabels, type BottomTabBarProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, type BreadcrumbLinkProps, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, type ButtonGroupOrientation, type ButtonGroupProps, ButtonGroupSeparator, ButtonGroupText, type ButtonGroupTextProps, type ButtonProps, type ButtonSize, type ButtonVariant, type ButtonVariantsOptions, Calendar, type CalendarProps, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselEdgeFade, CarouselItem, CarouselNext, CarouselPrevious, type CarouselProps, ChatAttachment, type ChatAttachmentProps, ChatBubble, type ChatBubbleProps, type ChatBubbleVariant, ChatComposer, type ChatComposerLabels, type ChatComposerProps, ChatDock, type ChatDockLabels, type ChatDockProps, ChatMarker, type ChatMarkerProps, ChatMessage, type ChatMessageProps, ChatPanel, type ChatPanelLabels, type ChatPanelProps, ChatStreamText, type ChatStreamTextProps, ChatTyping, type ChatTypingProps, Check, Checkbox, type CheckboxProps, Collapsible, CollapsibleContent, type CollapsibleProps, CollapsibleTrigger, Command, CommandDialog, type CommandDialogProps, CommandEmpty, CommandGroup, type CommandGroupProps, CommandInput, CommandItem, type CommandItemProps, CommandList, CommandPalette, type CommandPaletteGroup, type CommandPaletteItem, type CommandPaletteLabels, type CommandPaletteProps, type CommandProps, CommandSeparator, CommandShortcut, ConfirmDialog, type ConfirmDialogLabels, type ConfirmDialogProps, type ConfirmDialogTone, Container, type ContainerProps, ContextMenu, ContextMenuCheckboxItem, type ContextMenuCheckboxItemProps, ContextMenuContent, ContextMenuGroup, ContextMenuItem, type ContextMenuItemProps, ContextMenuLabel, type ContextMenuLabelProps, ContextMenuPortal, type ContextMenuProps, ContextMenuRadioGroup, type ContextMenuRadioGroupProps, ContextMenuRadioItem, type ContextMenuRadioItemProps, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, type ContextMenuSubProps, ContextMenuSubTrigger, type ContextMenuSubTriggerProps, ContextMenuTrigger, type ContextMenuTriggerProps, type CountTweenOptions, DateTimePicker, type DateTimePickerLabels, type DateTimePickerProps, Dialog, DialogClose, type DialogCloseProps, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, type DialogOverlayProps, DialogPortal, type DialogPortalProps, type DialogProps, DialogTitle, DialogTrigger, type DialogTriggerProps, type DismissEvent, DismissableLayerScope, Display, Drawer, DrawerClose, type DrawerCloseProps, DrawerContent, DrawerDescription, type DrawerDirection, DrawerFooter, DrawerHeader, DrawerOverlay, type DrawerProps, DrawerTitle, DrawerTrigger, type DrawerTriggerProps, DropdownMenu, DropdownMenuCheckboxItem, type DropdownMenuCheckboxItemProps, DropdownMenuContent, type DropdownMenuContentProps, DropdownMenuGroup, DropdownMenuItem, type DropdownMenuItemProps, DropdownMenuLabel, type DropdownMenuLabelProps, DropdownMenuPortal, type DropdownMenuProps, DropdownMenuRadioGroup, type DropdownMenuRadioGroupProps, DropdownMenuRadioItem, type DropdownMenuRadioItemProps, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, type DropdownMenuSubProps, DropdownMenuSubTrigger, type DropdownMenuSubTriggerProps, DropdownMenuTrigger, type DropdownMenuTriggerProps, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, type EmptyMediaProps, type EmptyMediaVariant, EmptyTitle, Eyebrow, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, type FieldOrientation, FieldSeparator, FieldSet, FieldTitle, type FloatingResult, Footer, type FooterLink, type FooterLinkGroup, type FooterOffice, type FooterProps, Forbidden, Form, FormControl, FormDescription, FormItem, FormLabel, FormMessage, FormRow, type FormRowProps, HeaderBalance, type HeaderBalanceProps, type HeaderNotification, HeaderSearch, type HeaderSearchProps, HoverCard, HoverCardContent, type HoverCardContentProps, type HoverCardProps, HoverCardTrigger, type HoverCardTriggerProps, type HoverIntentHandlers, IconButton, type IconButtonProps, type IconButtonSize, type IconButtonVariant, InfoTip, InfoTipContent, type InfoTipContentProps, type InfoTipProps, InfoTipTrigger, type InfoTipTriggerProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonAlign, type InputGroupAddonProps, InputGroupButton, type InputGroupButtonProps, type InputGroupButtonSize, InputGroupInput, InputGroupText, InputGroupTextarea, InputOTP, InputOTPGroup, type InputOTPProps, InputOTPSeparator, InputOTPSlot, type InputOTPSlotProps, type InputProps, type InputSize, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, type ItemMediaProps, type ItemMediaVariant, type ItemProps, ItemSeparator, type ItemSize, ItemTitle, type ItemVariant, Kbd, KbdGroup, KeyValue, type KeyValueLabels, type KeyValueProps, LAYER_IGNORE_ATTR, Label, ListRow, ListRowLabel, type ListRowLabelProps, type ListRowProps, ListRowValue, ListRows, type ListRowsProps, type ListRowsVariant, Logo, type LogoProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, type MenubarMenuProps, MenubarRadioGroup, type MenubarRadioGroupProps, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, type MenubarSubProps, MenubarSubTrigger, MenubarTrigger, MobileAppBar, type MobileAppBarBack, type MobileAppBarLabels, type MobileAppBarProps, ModelChip, type ModelChipProps, type ModelOption, NativeSelect, NativeSelectGroup, NativeSelectOption, type NativeSelectProps, type NativeSelectSize, NavBadge, type NavBadgeProps, type NavBadgeVariant, type NavCollapseLabels, NavDot, type NavDotProps, type NavDotTone, type NavGroup, type NavGroupCollapse, type NavItem, type NavItemState, type NavMatch, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, type NavigationMenuItemProps, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NotFound, NotificationBell, type NotificationBellLabels, type NotificationBellProps, PageFrame, type PageFrameProps, type PageFrameWidth, PageHeading, type PageHeadingProps, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, type PaginationLinkProps, PaginationNext, PaginationPrevious, type Polarity, Popover, PopoverAnchor, type PopoverAnchorProps, PopoverContent, type PopoverContentProps, PopoverForm, type PopoverFormLabels, type PopoverFormProps, type PopoverProps, PopoverTrigger, type PopoverTriggerProps, Portal, type PortalProps, PortalProvider, type PortalProviderProps, Progress, type ProgressProps, Prose, RadioGroup, RadioGroupItem, type RadioGroupItemProps, type RadioGroupProps, ResourceError, type ResourceErrorLabels, type ResourceErrorProps, ScrollArea, ScrollBar, type ScrollBarOrientation, type ScrollBarProps, Section, SectionDescriptor, type SectionDescriptorProps, SectionHead, type SectionHeadProps, SectionLabel, type SectionLabelProps, type SectionLabelTone, SectionNav, type SectionNavGroup, type SectionNavItem, type SectionNavLabels, type SectionNavProps, type SectionProps, Select, SelectContent, type SelectContentProps, SelectGroup, SelectItem, type SelectItemProps, SelectLabel, type SelectProps, SelectSeparator, SelectTrigger, type SelectTriggerProps, type SelectTriggerSize, SelectValue, type SelectValueProps, Separator, type SeparatorOrientation, type SeparatorProps, ServerError, type ServerErrorProps, SettingsLayout, type SettingsLayoutProps, SettingsRow, type SettingsRowProps, SettingsSection, type SettingsSectionProps, Settled, type SettledProps, Sheet, SheetClose, type SheetCloseProps, SheetContent, type SheetContentProps, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, type SheetOverlayProps, type SheetProps, SheetTitle, SheetTrigger, type SheetTriggerProps, type ShellBreakpoint, ShellNav, type ShellNavLabels, type ShellNavProps, type Side, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, type SidebarGroupLabelProps, SidebarHeader, SidebarInset, SidebarMenu, SidebarMenuButton, type SidebarMenuButtonProps, type SidebarMenuButtonSize, SidebarMenuItem, type SidebarProps, SidebarProvider, type SidebarProviderProps, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, type SliderProps, Slot, type SlotProps, SmartHeader, type SmartHeaderProps, type SmartHeaderState, Spinner, Stat, type StatProps, StatusDot, type StatusDotProps, StatusItem, type StatusItemProps, type StatusLinkData, type StatusPageProps, StatusScreen, type StatusScreenProps, type StatusTone, type Surface, Switch, type SwitchProps, SystemBanner, type SystemBannerLabels, type SystemBannerProps, type SystemBannerTone, Table, type TableAlign, TableBody, TableCaption, TableCard, TableCell, type TableCellProps, type TableDensity, TableFooter, TableHead, type TableHeadProps, TableHeader, type TableProps, TableRow, type TableVariant, Tabs, TabsContent, type TabsContentProps, TabsList, type TabsProps, TabsTrigger, type TabsTriggerProps, Textarea, type TextareaProps, type TextareaSize, type Toast, type ToastFn, type ToastOptions, type ToastPosition, type ToastState, type ToastVariant, Toaster, type ToasterProps, Toggle, ToggleGroup, ToggleGroupItem, type ToggleGroupItemProps, type ToggleGroupProps, type ToggleProps, type ToggleSize, type ToggleVariant, type ToggleVariantsOptions, Tooltip, TooltipContent, type TooltipContentProps, type TooltipProps, TooltipProvider, type TooltipProviderProps, TooltipTrigger, type TooltipTriggerProps, TopBar, type TopBarProps, WorkspaceTab, type WorkspaceTabProps, WorkspaceTabs, type WorkspaceTabsProps, buttonVariants, cn, isNavItemActive, isPlainLeftClick, mergeRefs, navItemMatch, navigationMenuTriggerStyle, resolveActiveNavItem, statusCtaClass, toast, toggleVariants, useCommandPaletteShortcut, useControllableState, useCountTween, useDismissableLayer, useFloating, useFocusScope, useHoverIntent, usePendingNavigation, usePresence, useRovingFocus, useSidebar };
|