@agent-native/core 0.76.2 → 0.76.4
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/corpus/core/CHANGELOG.md +14 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/agent/durable-background.ts +8 -7
- package/corpus/core/src/client/AgentPanel.tsx +3 -3
- package/corpus/core/src/client/AgentTaskCard.tsx +2 -1
- package/corpus/core/src/client/AppearancePicker.tsx +1 -1
- package/corpus/core/src/client/AssistantChat.tsx +3 -3
- package/corpus/core/src/client/CommandMenu.tsx +4 -4
- package/corpus/core/src/client/ErrorBoundary.tsx +1 -1
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +11 -11
- package/corpus/core/src/client/NewWorkspaceAppFlow.tsx +5 -5
- package/corpus/core/src/client/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/core/src/client/components/ui/sheet.tsx +1 -1
- package/corpus/core/src/client/composer/ComposerPlusMenu.tsx +6 -6
- package/corpus/core/src/client/composer/MentionPopover.tsx +4 -4
- package/corpus/core/src/client/composer/PastedTextChip.tsx +3 -3
- package/corpus/core/src/client/composer/PromptComposer.tsx +3 -3
- package/corpus/core/src/client/composer/TiptapComposer.tsx +16 -16
- package/corpus/core/src/client/guided-questions.tsx +6 -8
- package/corpus/core/src/client/i18n.tsx +2 -2
- package/corpus/core/src/client/integrations/IntegrationCard.tsx +2 -2
- package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +4 -4
- package/corpus/core/src/client/notifications/NotificationsBell.tsx +3 -3
- package/corpus/core/src/client/onboarding/OnboardingBanner.tsx +3 -3
- package/corpus/core/src/client/onboarding/OnboardingPanel.tsx +17 -10
- package/corpus/core/src/client/org/OrgSwitcher.tsx +13 -11
- package/corpus/core/src/client/org/TeamPage.tsx +2 -2
- package/corpus/core/src/client/settings/AgentsSection.tsx +3 -3
- package/corpus/core/src/client/settings/AutomationsSection.tsx +3 -3
- package/corpus/core/src/client/settings/SecretsSection.tsx +2 -2
- package/corpus/core/src/client/settings/SettingsPanel.tsx +5 -7
- package/corpus/core/src/client/settings/SettingsSection.tsx +1 -1
- package/corpus/core/src/client/settings/UsageSection.tsx +3 -3
- package/corpus/core/src/client/settings/VoiceTranscriptionSection.tsx +3 -3
- package/corpus/core/src/client/sharing/ShareButton.tsx +7 -7
- package/corpus/core/src/client/sharing/ShareDialog.tsx +3 -3
- package/corpus/core/src/deploy/build.ts +2 -2
- package/corpus/core/src/styles/agent-conversation.css +10 -10
- package/corpus/core/src/styles/blocks.css +2 -2
- package/corpus/core/src/styles/rich-markdown-editor.css +2 -2
- package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/calendar.tsx +6 -6
- package/corpus/templates/analytics/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/analytics/app/components/ui/command.tsx +2 -2
- package/corpus/templates/analytics/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/analytics/app/components/ui/date-picker.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/analytics/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/analytics/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/analytics/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/analytics/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/analytics/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/select.tsx +3 -3
- package/corpus/templates/analytics/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/analytics/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/analytics/app/components/ui/table.tsx +2 -2
- package/corpus/templates/analytics/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/assets/app/components/layout/Layout.tsx +2 -2
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +12 -12
- package/corpus/templates/assets/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/assets/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/assets/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/assets/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/assets/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/assets/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/assets/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/assets/app/components/ui/select.tsx +3 -3
- package/corpus/templates/assets/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/assets/app/components/ui/table.tsx +2 -2
- package/corpus/templates/assets/app/routes/library.tsx +3 -3
- package/corpus/templates/assets/app/routes/settings.tsx +1 -1
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +5 -5
- package/corpus/templates/brain/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/brain/app/components/ui/select.tsx +3 -3
- package/corpus/templates/brain/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/brain/app/components/ui/table.tsx +2 -2
- package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +6 -6
- package/corpus/templates/calendar/app/components/calendar/GoogleSetupWizard.tsx +3 -3
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +11 -9
- package/corpus/templates/calendar/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/calendar/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/calendar/app/components/ui/command.tsx +2 -2
- package/corpus/templates/calendar/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/calendar/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/calendar/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/calendar/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/calendar/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/calendar/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/calendar/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/select.tsx +3 -3
- package/corpus/templates/calendar/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/calendar/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/calendar/app/components/ui/sonner.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/table.tsx +2 -2
- package/corpus/templates/calendar/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/calendar/app/pages/Settings.tsx +5 -5
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +9 -9
- package/corpus/templates/chat/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/chat/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/chat/app/components/ui/command.tsx +2 -2
- package/corpus/templates/chat/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/chat/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/chat/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/chat/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/chat/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/chat/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/chat/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/select.tsx +3 -3
- package/corpus/templates/chat/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/chat/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/chat/app/components/ui/table.tsx +2 -2
- package/corpus/templates/chat/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/clips/app/components/capture-install-options.tsx +3 -3
- package/corpus/templates/clips/app/components/editable-recording-title.tsx +1 -1
- package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +3 -3
- package/corpus/templates/clips/app/components/library/folder-tree.tsx +5 -5
- package/corpus/templates/clips/app/components/library/library-layout.tsx +3 -3
- package/corpus/templates/clips/app/components/library/organization-switcher.tsx +4 -4
- package/corpus/templates/clips/app/components/library/recording-card.tsx +11 -11
- package/corpus/templates/clips/app/components/library/search-bar.tsx +4 -4
- package/corpus/templates/clips/app/components/library/space-card.tsx +1 -1
- package/corpus/templates/clips/app/components/library/tag-input.tsx +1 -1
- package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +2 -2
- package/corpus/templates/clips/app/components/recorder/camera-visualizer.tsx +2 -2
- package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +1 -1
- package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +4 -4
- package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +1 -1
- package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -2
- package/corpus/templates/clips/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/clips/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/clips/app/components/ui/command.tsx +2 -2
- package/corpus/templates/clips/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/clips/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/clips/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/clips/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/clips/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/clips/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/clips/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/select.tsx +3 -3
- package/corpus/templates/clips/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/clips/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/clips/app/components/ui/table.tsx +2 -2
- package/corpus/templates/clips/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +1 -1
- package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +2 -2
- package/corpus/templates/clips/app/components/workspace/invite-dialog.tsx +2 -2
- package/corpus/templates/clips/app/components/workspace/top-creators-table.tsx +6 -6
- package/corpus/templates/clips/app/components/workspace/top-videos-table.tsx +2 -2
- package/corpus/templates/clips/app/routes/_app.dictate.tsx +4 -4
- package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +7 -7
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +1 -1
- package/corpus/templates/clips/app/routes/download.tsx +2 -2
- package/corpus/templates/clips/app/routes/invite.$token.tsx +2 -2
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +3 -3
- package/corpus/templates/clips/app/routes/record.tsx +5 -5
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +7 -7
- package/corpus/templates/content/app/components/EmptyState.tsx +1 -1
- package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +17 -17
- package/corpus/templates/content/app/components/layout/Layout.tsx +2 -2
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +10 -9
- package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +10 -6
- package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +3 -3
- package/corpus/templates/content/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/content/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/content/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/content/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/content/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/content/app/components/ui/table.tsx +2 -2
- package/corpus/templates/content/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/design/app/components/layout/Layout.tsx +3 -3
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +3 -3
- package/corpus/templates/design/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/design/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/design/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/design/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/design/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/design/app/components/ui/command.tsx +2 -2
- package/corpus/templates/design/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/design/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/design/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/design/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/design/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/design/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/design/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/design/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/design/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/design/app/components/ui/select.tsx +3 -3
- package/corpus/templates/design/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/design/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/design/app/components/ui/table.tsx +2 -2
- package/corpus/templates/design/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/design/app/pages/DesignSystems.tsx +6 -8
- package/corpus/templates/design/app/pages/Index.tsx +8 -8
- package/corpus/templates/design/app/pages/NotFound.tsx +1 -1
- package/corpus/templates/design/app/pages/Templates.tsx +2 -2
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +3 -3
- package/corpus/templates/forms/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/calendar.tsx +9 -6
- package/corpus/templates/forms/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/forms/app/components/ui/command.tsx +2 -2
- package/corpus/templates/forms/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/forms/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/forms/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/forms/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/forms/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/forms/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/forms/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/select.tsx +3 -3
- package/corpus/templates/forms/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/forms/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/forms/app/components/ui/table.tsx +2 -2
- package/corpus/templates/forms/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +18 -18
- package/corpus/templates/forms/app/pages/FormsListPage.tsx +9 -9
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +4 -4
- package/corpus/templates/macros/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/command.tsx +2 -2
- package/corpus/templates/macros/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/macros/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/macros/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/macros/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/macros/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/macros/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/macros/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/select.tsx +3 -3
- package/corpus/templates/macros/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/macros/app/components/ui/table.tsx +2 -2
- package/corpus/templates/macros/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/macros/app/routes/_index.tsx +2 -2
- package/corpus/templates/macros/app/routes/analytics.tsx +1 -1
- package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +6 -6
- package/corpus/templates/mail/app/components/email/AttachmentStrip.tsx +2 -2
- package/corpus/templates/mail/app/components/email/EmailListItem.tsx +5 -5
- package/corpus/templates/mail/app/components/email/IntegrationsSidebar.tsx +5 -5
- package/corpus/templates/mail/app/components/email/MobileActionBar.tsx +3 -3
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +10 -10
- package/corpus/templates/mail/app/components/layout/CommandPalette.tsx +1 -1
- package/corpus/templates/mail/app/components/layout/SearchBar.tsx +3 -3
- package/corpus/templates/mail/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/calendar.tsx +4 -4
- package/corpus/templates/mail/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/mail/app/components/ui/command.tsx +2 -2
- package/corpus/templates/mail/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/mail/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/mail/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/mail/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/mail/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/mail/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/mail/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/select.tsx +3 -3
- package/corpus/templates/mail/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/mail/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/mail/app/components/ui/sonner.tsx +2 -2
- package/corpus/templates/mail/app/components/ui/table.tsx +2 -2
- package/corpus/templates/mail/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +10 -10
- package/corpus/templates/plan/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/plan/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/plan/app/components/ui/command.tsx +2 -2
- package/corpus/templates/plan/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/plan/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/plan/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/plan/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/plan/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/plan/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/plan/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/select.tsx +3 -3
- package/corpus/templates/plan/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/plan/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/plan/app/components/ui/table.tsx +2 -2
- package/corpus/templates/plan/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/slides/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/slides/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/slides/app/components/ui/command.tsx +2 -2
- package/corpus/templates/slides/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/slides/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/slides/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/slides/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/slides/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/slides/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/slides/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/select.tsx +3 -3
- package/corpus/templates/slides/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/slides/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/slides/app/components/ui/table.tsx +2 -2
- package/corpus/templates/slides/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/videos/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/videos/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/videos/app/components/ui/command.tsx +2 -2
- package/corpus/templates/videos/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/videos/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/videos/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/videos/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/videos/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/videos/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/videos/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/select.tsx +3 -3
- package/corpus/templates/videos/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/videos/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/videos/app/components/ui/table.tsx +2 -2
- package/corpus/templates/videos/app/components/ui/toast.tsx +3 -3
- package/dist/agent/durable-background.d.ts +2 -2
- package/dist/agent/durable-background.d.ts.map +1 -1
- package/dist/agent/durable-background.js +8 -7
- package/dist/agent/durable-background.js.map +1 -1
- package/dist/client/AgentPanel.js +3 -3
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AgentTaskCard.d.ts.map +1 -1
- package/dist/client/AgentTaskCard.js +1 -1
- package/dist/client/AgentTaskCard.js.map +1 -1
- package/dist/client/AppearancePicker.js +1 -1
- package/dist/client/AppearancePicker.js.map +1 -1
- package/dist/client/AssistantChat.js +3 -3
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/CommandMenu.js +4 -4
- package/dist/client/CommandMenu.js.map +1 -1
- package/dist/client/ErrorBoundary.js +1 -1
- package/dist/client/ErrorBoundary.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +9 -9
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/NewWorkspaceAppFlow.js +5 -5
- package/dist/client/NewWorkspaceAppFlow.js.map +1 -1
- package/dist/client/components/ui/dropdown-menu.js +6 -6
- package/dist/client/components/ui/dropdown-menu.js.map +1 -1
- package/dist/client/components/ui/sheet.js +1 -1
- package/dist/client/components/ui/sheet.js.map +1 -1
- package/dist/client/composer/ComposerPlusMenu.js +5 -5
- package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
- package/dist/client/composer/MentionPopover.js +4 -4
- package/dist/client/composer/MentionPopover.js.map +1 -1
- package/dist/client/composer/PastedTextChip.js +2 -2
- package/dist/client/composer/PastedTextChip.js.map +1 -1
- package/dist/client/composer/PromptComposer.js +3 -3
- package/dist/client/composer/PromptComposer.js.map +1 -1
- package/dist/client/composer/TiptapComposer.js +12 -12
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/guided-questions.d.ts.map +1 -1
- package/dist/client/guided-questions.js +5 -5
- package/dist/client/guided-questions.js.map +1 -1
- package/dist/client/i18n.js +2 -2
- package/dist/client/i18n.js.map +1 -1
- package/dist/client/integrations/IntegrationCard.js +1 -1
- package/dist/client/integrations/IntegrationCard.js.map +1 -1
- package/dist/client/integrations/IntegrationsPanel.js +4 -4
- package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
- package/dist/client/notifications/NotificationsBell.js +3 -3
- package/dist/client/notifications/NotificationsBell.js.map +1 -1
- package/dist/client/onboarding/OnboardingBanner.js +3 -3
- package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.js +15 -10
- package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
- package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
- package/dist/client/org/OrgSwitcher.js +7 -7
- package/dist/client/org/OrgSwitcher.js.map +1 -1
- package/dist/client/org/TeamPage.js +2 -2
- package/dist/client/org/TeamPage.js.map +1 -1
- package/dist/client/settings/AgentsSection.js +3 -3
- package/dist/client/settings/AgentsSection.js.map +1 -1
- package/dist/client/settings/AutomationsSection.js +2 -2
- package/dist/client/settings/AutomationsSection.js.map +1 -1
- package/dist/client/settings/SecretsSection.js +2 -2
- package/dist/client/settings/SecretsSection.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +4 -4
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/SettingsSection.js +1 -1
- package/dist/client/settings/SettingsSection.js.map +1 -1
- package/dist/client/settings/UsageSection.js +2 -2
- package/dist/client/settings/UsageSection.js.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.js +3 -3
- package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
- package/dist/client/sharing/ShareButton.js +6 -6
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/client/sharing/ShareDialog.js +3 -3
- package/dist/client/sharing/ShareDialog.js.map +1 -1
- package/dist/deploy/build.js +2 -2
- package/dist/deploy/build.js.map +1 -1
- package/dist/styles/agent-conversation.css +10 -10
- package/dist/styles/blocks.css +2 -2
- package/dist/styles/rich-markdown-editor.css +2 -2
- package/package.json +1 -1
|
@@ -53,7 +53,11 @@ export function OnboardingPanel({ className, title = "Setup", }) {
|
|
|
53
53
|
return null;
|
|
54
54
|
}
|
|
55
55
|
if (!expanded) {
|
|
56
|
-
return (_jsx("div", { className: className, style: styles.compactBanner, children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("button", { type: "button", onClick: () => setExpanded(true), style: styles.compactBannerBtn, "aria-label": "Expand setup", children: [_jsx("span", { style: allComplete ? styles.checkDone : styles.checkTodo, children: allComplete ? _jsx(IconCheck, { size: 12, strokeWidth: 3 }) : null }), _jsx("span", { style: styles.headerTitle, children: title }), _jsxs("span", { style: styles.headerCounter, children: [completeCount, " of ", totalCount] }), _jsx("span", { style: {
|
|
56
|
+
return (_jsx("div", { className: className, style: styles.compactBanner, children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("button", { type: "button", onClick: () => setExpanded(true), style: styles.compactBannerBtn, "aria-label": "Expand setup", children: [_jsx("span", { style: allComplete ? styles.checkDone : styles.checkTodo, children: allComplete ? _jsx(IconCheck, { size: 12, strokeWidth: 3 }) : null }), _jsx("span", { style: styles.headerTitle, children: title }), _jsxs("span", { style: styles.headerCounter, children: [completeCount, " of ", totalCount] }), _jsx("span", { style: {
|
|
57
|
+
marginInlineStart: "auto",
|
|
58
|
+
opacity: 0.5,
|
|
59
|
+
display: "flex",
|
|
60
|
+
}, children: _jsx(IconChevronDown, { size: 14 }) })] }) }), _jsx(TooltipContent, { children: "Expand setup" })] }) }));
|
|
57
61
|
}
|
|
58
62
|
return (_jsxs("div", { className: className, style: styles.root, children: [_jsxs("div", { style: styles.header, children: [_jsxs("div", { style: styles.headerLeft, children: [allComplete ? (_jsx("span", { style: styles.checkDone, children: _jsx(IconCheck, { size: 12, strokeWidth: 3 }) })) : (_jsx(IconChecklist, { size: 14, style: styles.headerIcon, "aria-hidden": true })), _jsx("span", { style: styles.headerTitle, children: title }), _jsxs("span", { style: styles.headerCounter, children: [completeCount, " of ", totalCount] })] }), _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("button", { type: "button", onClick: () => setExpanded(false), "aria-label": "Collapse onboarding", style: styles.dismissBtn, children: _jsx(IconChevronUp, { size: 14 }) }) }), _jsx(TooltipContent, { children: "Collapse" })] })] }), _jsx("div", { style: styles.list, children: steps.map((step) => (_jsx(StepCard, { step: step, expanded: step.id === currentStepId, onMarkComplete: () => complete(step.id), onRefresh: refresh }, step.id))) }), _jsx("div", { style: styles.footer, children: _jsx("button", { type: "button", onClick: dismiss, style: styles.hideLink, children: "Hide setup" }) })] }));
|
|
59
63
|
}
|
|
@@ -73,7 +77,7 @@ function StepCard({ step, expanded: expandedProp, onMarkComplete, onRefresh, })
|
|
|
73
77
|
return (_jsxs("div", { style: {
|
|
74
78
|
...styles.card,
|
|
75
79
|
...(isDone ? styles.cardDone : null),
|
|
76
|
-
}, children: [_jsxs("button", { type: "button", style: styles.cardHeader, onClick: () => setExpanded((e) => !e), "aria-expanded": expanded, children: [_jsxs("span", { style: styles.cardHeaderLeft, children: [_jsx("span", { style: isDone ? styles.checkDone : styles.checkTodo, children: isDone ? _jsx(IconCheck, { size: 12, strokeWidth: 3 }) : null }), _jsxs("span", { style: styles.cardTitle, children: [step.title, step.required && !isDone && (_jsx("span", { style: styles.requiredPill, children: "required" }))] })] }), _jsx("span", { style: styles.chevron, children: expanded ? (_jsx(IconChevronDown, { size: 14 })) : (_jsx(IconChevronRight, { size: 14 })) })] }), expanded && (_jsxs("div", { style: styles.cardBody, children: [_jsx("p", { style: styles.cardDesc, children: step.description }), _jsx(StepMethods, { step: step, methods: sortedMethods, onCompleted: handleCompleted, onMarkManualComplete: onMarkComplete })] }))] }));
|
|
80
|
+
}, children: [_jsxs("button", { type: "button", style: styles.cardHeader, onClick: () => setExpanded((e) => !e), "aria-expanded": expanded, children: [_jsxs("span", { style: styles.cardHeaderLeft, children: [_jsx("span", { style: isDone ? styles.checkDone : styles.checkTodo, children: isDone ? _jsx(IconCheck, { size: 12, strokeWidth: 3 }) : null }), _jsxs("span", { style: styles.cardTitle, children: [step.title, step.required && !isDone && (_jsx("span", { style: styles.requiredPill, children: "required" }))] })] }), _jsx("span", { style: styles.chevron, children: expanded ? (_jsx(IconChevronDown, { size: 14 })) : (_jsx(IconChevronRight, { size: 14, className: "rtl:-scale-x-100" })) })] }), expanded && (_jsxs("div", { style: styles.cardBody, children: [_jsx("p", { style: styles.cardDesc, children: step.description }), _jsx(StepMethods, { step: step, methods: sortedMethods, onCompleted: handleCompleted, onMarkManualComplete: onMarkComplete })] }))] }));
|
|
77
81
|
}
|
|
78
82
|
function isFormMethod(method) {
|
|
79
83
|
return method.kind === "form";
|
|
@@ -96,7 +100,7 @@ function ManagedProviderMethodGroup({ methods, formMethods, stepId, secondaryLab
|
|
|
96
100
|
const primaryMethod = methods.find((method) => method.kind === "builder-cli-auth") ??
|
|
97
101
|
methods.find((method) => method.primary);
|
|
98
102
|
const otherMethods = methods.filter((method) => method !== primaryMethod && !isFormMethod(method));
|
|
99
|
-
return (_jsxs("div", { style: styles.methods, children: [primaryMethod && (_jsx(MethodBlock, { method: primaryMethod, stepId: stepId, onCompleted: onCompleted, onMarkManualComplete: onMarkManualComplete })), formMethods.length > 0 && (_jsxs("div", { style: styles.secondaryPanel, children: [_jsxs("button", { type: "button", onClick: () => setShowKeyForm((value) => !value), style: styles.secondaryToggle, "aria-expanded": showKeyForm, children: [_jsxs("span", { style: styles.secondaryToggleLeft, children: [_jsx(IconKey, { size: 13, "aria-hidden": true }), _jsx("span", { children: secondaryLabel })] }), _jsx("span", { style: styles.chevron, children: showKeyForm ? (_jsx(IconChevronDown, { size: 14 })) : (_jsx(IconChevronRight, { size: 14 })) })] }), showKeyForm && (_jsx(FormMethodPicker, { methods: formMethods, label: "Provider", onCompleted: onCompleted, embedded: true }))] })), otherMethods.map((method) => (_jsx(MethodBlock, { method: method, stepId: stepId, onCompleted: onCompleted, onMarkManualComplete: onMarkManualComplete }, method.id)))] }));
|
|
103
|
+
return (_jsxs("div", { style: styles.methods, children: [primaryMethod && (_jsx(MethodBlock, { method: primaryMethod, stepId: stepId, onCompleted: onCompleted, onMarkManualComplete: onMarkManualComplete })), formMethods.length > 0 && (_jsxs("div", { style: styles.secondaryPanel, children: [_jsxs("button", { type: "button", onClick: () => setShowKeyForm((value) => !value), style: styles.secondaryToggle, "aria-expanded": showKeyForm, children: [_jsxs("span", { style: styles.secondaryToggleLeft, children: [_jsx(IconKey, { size: 13, "aria-hidden": true }), _jsx("span", { children: secondaryLabel })] }), _jsx("span", { style: styles.chevron, children: showKeyForm ? (_jsx(IconChevronDown, { size: 14 })) : (_jsx(IconChevronRight, { size: 14, className: "rtl:-scale-x-100" })) })] }), showKeyForm && (_jsx(FormMethodPicker, { methods: formMethods, label: "Provider", onCompleted: onCompleted, embedded: true }))] })), otherMethods.map((method) => (_jsx(MethodBlock, { method: method, stepId: stepId, onCompleted: onCompleted, onMarkManualComplete: onMarkManualComplete }, method.id)))] }));
|
|
100
104
|
}
|
|
101
105
|
function FormMethodPicker({ methods, label, onCompleted, embedded, }) {
|
|
102
106
|
const [selectedId, setSelectedId] = useState(methods[0]?.id ?? "");
|
|
@@ -137,7 +141,7 @@ function LinkMethod({ method, onMarkComplete, }) {
|
|
|
137
141
|
// Sentinel URL — treat as "mark this method as the chosen one".
|
|
138
142
|
return (_jsx("button", { type: "button", style: buttonPrimary(method.primary), onClick: onMarkComplete, children: "Use this option" }));
|
|
139
143
|
}
|
|
140
|
-
return (_jsxs("a", { href: url, target: external ? "_blank" : undefined, rel: external ? "noopener noreferrer" : undefined, style: { ...buttonPrimary(method.primary), textDecoration: "none" }, children: ["Continue", external && _jsx(IconExternalLink, { size: 12, style: {
|
|
144
|
+
return (_jsxs("a", { href: url, target: external ? "_blank" : undefined, rel: external ? "noopener noreferrer" : undefined, style: { ...buttonPrimary(method.primary), textDecoration: "none" }, children: ["Continue", external && (_jsx(IconExternalLink, { size: 12, style: { marginInlineStart: 4 } }))] }));
|
|
141
145
|
}
|
|
142
146
|
// ─── form ──────────────────────────────────────────────────────────────────
|
|
143
147
|
function FormMethod({ method, onCompleted, }) {
|
|
@@ -184,7 +188,7 @@ function BuilderCliAuthMethod({ onCompleted, primary, }) {
|
|
|
184
188
|
trackingSource: "onboarding_builder_cli_auth",
|
|
185
189
|
onConnected: onCompleted,
|
|
186
190
|
});
|
|
187
|
-
return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => start(), disabled: connecting, style: { ...buttonPrimary(primary), opacity: connecting ? 0.7 : 1 }, children: connecting ? (_jsxs(_Fragment, { children: [_jsx(IconLoader2, { size: 12, style: {
|
|
191
|
+
return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => start(), disabled: connecting, style: { ...buttonPrimary(primary), opacity: connecting ? 0.7 : 1 }, children: connecting ? (_jsxs(_Fragment, { children: [_jsx(IconLoader2, { size: 12, style: { marginInlineEnd: 4 }, className: "animate-spin" }), "Waiting for Builder..."] })) : ("Connect Builder") }), connecting && (_jsx("p", { style: styles.methodHint, children: "A Builder tab opened. Choose your team or app space there; setup will continue here automatically." })), error && _jsx("p", { style: styles.errText, children: error })] }));
|
|
188
192
|
}
|
|
189
193
|
// ─── agent-task ────────────────────────────────────────────────────────────
|
|
190
194
|
function AgentTaskMethod({ method, stepId: _stepId, }) {
|
|
@@ -228,7 +232,7 @@ function badgeStyle(kind) {
|
|
|
228
232
|
soon: { bg: "rgba(148,163,184,0.15)", fg: "#cbd5e1" },
|
|
229
233
|
}[kind];
|
|
230
234
|
return {
|
|
231
|
-
|
|
235
|
+
marginInlineStart: 6,
|
|
232
236
|
fontSize: 10,
|
|
233
237
|
padding: "1px 6px",
|
|
234
238
|
borderRadius: 4,
|
|
@@ -285,7 +289,7 @@ const styles = {
|
|
|
285
289
|
headerCounter: {
|
|
286
290
|
opacity: 0.5,
|
|
287
291
|
fontSize: 11,
|
|
288
|
-
|
|
292
|
+
marginInlineStart: 4,
|
|
289
293
|
},
|
|
290
294
|
dismissBtn: {
|
|
291
295
|
background: "transparent",
|
|
@@ -324,7 +328,7 @@ const styles = {
|
|
|
324
328
|
color: "inherit",
|
|
325
329
|
padding: "7px 9px",
|
|
326
330
|
cursor: "pointer",
|
|
327
|
-
textAlign: "
|
|
331
|
+
textAlign: "start",
|
|
328
332
|
},
|
|
329
333
|
cardHeaderLeft: {
|
|
330
334
|
display: "flex",
|
|
@@ -367,7 +371,8 @@ const styles = {
|
|
|
367
371
|
border: "1px solid rgba(255,255,255,0.2)",
|
|
368
372
|
},
|
|
369
373
|
cardBody: {
|
|
370
|
-
|
|
374
|
+
paddingBlock: "0 10px",
|
|
375
|
+
paddingInline: "34px 10px",
|
|
371
376
|
display: "flex",
|
|
372
377
|
flexDirection: "column",
|
|
373
378
|
gap: 8,
|
|
@@ -421,7 +426,7 @@ const styles = {
|
|
|
421
426
|
cursor: "pointer",
|
|
422
427
|
fontSize: 11,
|
|
423
428
|
fontWeight: 500,
|
|
424
|
-
textAlign: "
|
|
429
|
+
textAlign: "start",
|
|
425
430
|
},
|
|
426
431
|
secondaryToggleLeft: {
|
|
427
432
|
display: "flex",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OnboardingPanel.js","sourceRoot":"","sources":["../../../src/client/onboarding/OnboardingPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import { agentNativePath } from \"../api-path.js\";\n/**\n * <OnboardingPanel /> — the setup checklist that sits above the agent chat.\n *\n * The active step is expanded; completed steps collapse with a green check;\n * remaining steps sit dimmed below. Each method renders differently based on\n * its `kind` (link / form / builder-cli-auth / agent-task).\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport {\n IconCheck,\n IconChecklist,\n IconChevronDown,\n IconChevronRight,\n IconChevronUp,\n IconExternalLink,\n IconKey,\n IconLoader2,\n} from \"@tabler/icons-react\";\nimport { useOnboarding } from \"./use-onboarding.js\";\nimport { useOnboardingPreviewMode } from \"./use-preview-mode.js\";\nimport { sendToAgentChat } from \"../agent-chat.js\";\nimport { useDevMode } from \"../use-dev-mode.js\";\nimport { useBuilderConnectFlow } from \"../settings/useBuilderStatus.js\";\nimport type {\n OnboardingMethod,\n OnboardingStepStatus,\n} from \"../../onboarding/types.js\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../components/ui/tooltip.js\";\n\ntype FormOnboardingMethod = Extract<OnboardingMethod, { kind: \"form\" }>;\n\ninterface OnboardingPanelProps {\n /** Optional extra styles / classes for the wrapper. */\n className?: string;\n /** Override the built-in title. */\n title?: string;\n}\n\nexport function OnboardingPanel({\n className,\n title = \"Setup\",\n}: OnboardingPanelProps) {\n const previewMode = useOnboardingPreviewMode();\n const onboarding = useOnboarding({ preview: previewMode });\n const { isDevMode } = useDevMode();\n const {\n steps: rawSteps,\n currentStepId: rawCurrentStepId,\n dismissed,\n loading,\n refresh,\n complete,\n dismiss,\n } = onboarding;\n // `database` and `auth` steps only apply to local dev (SQLite default,\n // local-mode auth bypass). In production those are configured via env\n // vars / deployment config, so don't nag the user about them.\n const DEV_ONLY_STEP_IDS = new Set([\"database\", \"auth\"]);\n const steps = isDevMode\n ? rawSteps\n : rawSteps.filter((s) => !DEV_ONLY_STEP_IDS.has(s.id));\n const totalCount = steps.length;\n const completeCount = steps.filter((s) => s.complete).length;\n const allComplete = steps.filter((s) => s.required).every((s) => s.complete);\n const currentStepId = steps.some((s) => s.id === rawCurrentStepId)\n ? rawCurrentStepId\n : (steps.find((s) => s.required && !s.complete)?.id ??\n steps.find((s) => !s.complete)?.id ??\n null);\n // Default expanded. (Older code used `useState(!allComplete)`, but the first\n // render fires with `steps === []` — `[].every()` is vacuously true, so\n // `allComplete` was true and `expanded` got locked to false even after the\n // real incomplete steps loaded.)\n const [expanded, setExpanded] = useState(true);\n\n if (loading || totalCount === 0) return null;\n // Preview mode (dev overlay) bypasses the auto-hide so template authors\n // can render the new-user flow even when their own setup is done.\n if (!previewMode) {\n if (dismissed) return null;\n // Auto-hide once every required step is done — no need to take up sidebar\n // space when there's nothing left to do.\n if (allComplete) return null;\n }\n\n if (!expanded) {\n return (\n <div className={className} style={styles.compactBanner}>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n onClick={() => setExpanded(true)}\n style={styles.compactBannerBtn}\n aria-label=\"Expand setup\"\n >\n <span style={allComplete ? styles.checkDone : styles.checkTodo}>\n {allComplete ? <IconCheck size={12} strokeWidth={3} /> : null}\n </span>\n <span style={styles.headerTitle}>{title}</span>\n <span style={styles.headerCounter}>\n {completeCount} of {totalCount}\n </span>\n <span\n style={{ marginLeft: \"auto\", opacity: 0.5, display: \"flex\" }}\n >\n <IconChevronDown size={14} />\n </span>\n </button>\n </TooltipTrigger>\n <TooltipContent>Expand setup</TooltipContent>\n </Tooltip>\n </div>\n );\n }\n\n return (\n <div className={className} style={styles.root}>\n <div style={styles.header}>\n <div style={styles.headerLeft}>\n {allComplete ? (\n <span style={styles.checkDone}>\n <IconCheck size={12} strokeWidth={3} />\n </span>\n ) : (\n <IconChecklist size={14} style={styles.headerIcon} aria-hidden />\n )}\n <span style={styles.headerTitle}>{title}</span>\n <span style={styles.headerCounter}>\n {completeCount} of {totalCount}\n </span>\n </div>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n onClick={() => setExpanded(false)}\n aria-label=\"Collapse onboarding\"\n style={styles.dismissBtn}\n >\n <IconChevronUp size={14} />\n </button>\n </TooltipTrigger>\n <TooltipContent>Collapse</TooltipContent>\n </Tooltip>\n </div>\n\n <div style={styles.list}>\n {steps.map((step) => (\n <StepCard\n key={step.id}\n step={step}\n expanded={step.id === currentStepId}\n onMarkComplete={() => complete(step.id)}\n onRefresh={refresh}\n />\n ))}\n </div>\n\n <div style={styles.footer}>\n <button type=\"button\" onClick={dismiss} style={styles.hideLink}>\n Hide setup\n </button>\n </div>\n </div>\n );\n}\n\n// ─── StepCard ──────────────────────────────────────────────────────────────\n\nfunction StepCard({\n step,\n expanded: expandedProp,\n onMarkComplete,\n onRefresh,\n}: {\n step: OnboardingStepStatus;\n expanded: boolean;\n onMarkComplete: () => void;\n onRefresh: () => Promise<void>;\n}) {\n const [expanded, setExpanded] = useState(expandedProp);\n useEffect(() => setExpanded(expandedProp), [expandedProp]);\n\n const isDone = step.complete;\n const sortedMethods = [...step.methods].sort((a, b) => {\n if (!!a.primary === !!b.primary) return 0;\n return a.primary ? -1 : 1;\n });\n\n const handleCompleted = async () => {\n await onRefresh();\n };\n\n return (\n <div\n style={{\n ...styles.card,\n ...(isDone ? styles.cardDone : null),\n }}\n >\n <button\n type=\"button\"\n style={styles.cardHeader}\n onClick={() => setExpanded((e) => !e)}\n aria-expanded={expanded}\n >\n <span style={styles.cardHeaderLeft}>\n <span style={isDone ? styles.checkDone : styles.checkTodo}>\n {isDone ? <IconCheck size={12} strokeWidth={3} /> : null}\n </span>\n <span style={styles.cardTitle}>\n {step.title}\n {step.required && !isDone && (\n <span style={styles.requiredPill}>required</span>\n )}\n </span>\n </span>\n <span style={styles.chevron}>\n {expanded ? (\n <IconChevronDown size={14} />\n ) : (\n <IconChevronRight size={14} />\n )}\n </span>\n </button>\n\n {expanded && (\n <div style={styles.cardBody}>\n <p style={styles.cardDesc}>{step.description}</p>\n <StepMethods\n step={step}\n methods={sortedMethods}\n onCompleted={handleCompleted}\n onMarkManualComplete={onMarkComplete}\n />\n </div>\n )}\n </div>\n );\n}\n\nfunction isFormMethod(\n method: OnboardingMethod,\n): method is FormOnboardingMethod {\n return method.kind === \"form\";\n}\n\nfunction StepMethods({\n step,\n methods,\n onCompleted,\n onMarkManualComplete,\n}: {\n step: OnboardingStepStatus;\n methods: OnboardingMethod[];\n onCompleted: () => Promise<void>;\n onMarkManualComplete: () => void;\n}) {\n const formMethods = methods.filter(isFormMethod);\n\n if (step.id === \"llm\" || step.id === \"image-generation\") {\n return (\n <ManagedProviderMethodGroup\n methods={methods}\n formMethods={formMethods}\n stepId={step.id}\n secondaryLabel={\n step.id === \"image-generation\"\n ? \"Add image/video keys\"\n : \"Add your own provider key\"\n }\n onCompleted={onCompleted}\n onMarkManualComplete={onMarkManualComplete}\n />\n );\n }\n\n if (methods.length > 1 && formMethods.length === methods.length) {\n const pickerLabel = step.id === \"auth\" ? \"Sign-in path\" : \"Provider\";\n return (\n <div style={styles.methods}>\n <FormMethodPicker\n methods={formMethods}\n label={pickerLabel}\n onCompleted={onCompleted}\n />\n </div>\n );\n }\n\n return (\n <div style={styles.methods}>\n {methods.map((method) => (\n <MethodBlock\n key={method.id}\n method={method}\n stepId={step.id}\n onCompleted={onCompleted}\n onMarkManualComplete={onMarkManualComplete}\n />\n ))}\n </div>\n );\n}\n\nfunction ManagedProviderMethodGroup({\n methods,\n formMethods,\n stepId,\n secondaryLabel,\n onCompleted,\n onMarkManualComplete,\n}: {\n methods: OnboardingMethod[];\n formMethods: FormOnboardingMethod[];\n stepId: string;\n secondaryLabel: string;\n onCompleted: () => Promise<void>;\n onMarkManualComplete: () => void;\n}) {\n const [showKeyForm, setShowKeyForm] = useState(false);\n const primaryMethod =\n methods.find((method) => method.kind === \"builder-cli-auth\") ??\n methods.find((method) => method.primary);\n const otherMethods = methods.filter(\n (method) => method !== primaryMethod && !isFormMethod(method),\n );\n\n return (\n <div style={styles.methods}>\n {primaryMethod && (\n <MethodBlock\n method={primaryMethod}\n stepId={stepId}\n onCompleted={onCompleted}\n onMarkManualComplete={onMarkManualComplete}\n />\n )}\n\n {formMethods.length > 0 && (\n <div style={styles.secondaryPanel}>\n <button\n type=\"button\"\n onClick={() => setShowKeyForm((value) => !value)}\n style={styles.secondaryToggle}\n aria-expanded={showKeyForm}\n >\n <span style={styles.secondaryToggleLeft}>\n <IconKey size={13} aria-hidden />\n <span>{secondaryLabel}</span>\n </span>\n <span style={styles.chevron}>\n {showKeyForm ? (\n <IconChevronDown size={14} />\n ) : (\n <IconChevronRight size={14} />\n )}\n </span>\n </button>\n {showKeyForm && (\n <FormMethodPicker\n methods={formMethods}\n label=\"Provider\"\n onCompleted={onCompleted}\n embedded\n />\n )}\n </div>\n )}\n\n {otherMethods.map((method) => (\n <MethodBlock\n key={method.id}\n method={method}\n stepId={stepId}\n onCompleted={onCompleted}\n onMarkManualComplete={onMarkManualComplete}\n />\n ))}\n </div>\n );\n}\n\nfunction FormMethodPicker({\n methods,\n label,\n onCompleted,\n embedded,\n}: {\n methods: FormOnboardingMethod[];\n label: string;\n onCompleted: () => Promise<void>;\n embedded?: boolean;\n}) {\n const [selectedId, setSelectedId] = useState(methods[0]?.id ?? \"\");\n\n useEffect(() => {\n if (!methods.some((method) => method.id === selectedId)) {\n setSelectedId(methods[0]?.id ?? \"\");\n }\n }, [methods, selectedId]);\n\n const selectedMethod =\n methods.find((method) => method.id === selectedId) ?? methods[0];\n\n if (!selectedMethod) return null;\n\n return (\n <div style={embedded ? styles.methodPickerEmbedded : styles.method}>\n <label style={styles.pickerLabel}>\n <span style={styles.formLabelText}>{label}</span>\n <select\n value={selectedMethod.id}\n onChange={(event) => setSelectedId(event.target.value)}\n style={styles.select}\n >\n {methods.map((method) => (\n <option key={method.id} value={method.id}>\n {method.label}\n </option>\n ))}\n </select>\n </label>\n {selectedMethod.description && (\n <p style={styles.methodDesc}>{selectedMethod.description}</p>\n )}\n <FormMethod\n key={selectedMethod.id}\n method={selectedMethod}\n onCompleted={onCompleted}\n />\n </div>\n );\n}\n\n// ─── MethodBlock ───────────────────────────────────────────────────────────\n\nfunction MethodBlock({\n method,\n stepId,\n onCompleted,\n onMarkManualComplete,\n}: {\n method: OnboardingMethod;\n stepId: string;\n onCompleted: () => Promise<void>;\n onMarkManualComplete: () => void;\n}) {\n return (\n <div style={method.primary ? styles.methodPrimary : styles.method}>\n <div style={styles.methodHeader}>\n <span style={styles.methodLabel}>\n {method.label}\n {method.badge && (\n <span style={badgeStyle(method.badge)}>{method.badge}</span>\n )}\n </span>\n </div>\n {method.description && (\n <p style={styles.methodDesc}>{method.description}</p>\n )}\n <MethodBody\n method={method}\n stepId={stepId}\n onCompleted={onCompleted}\n onMarkManualComplete={onMarkManualComplete}\n />\n </div>\n );\n}\n\nfunction MethodBody({\n method,\n stepId,\n onCompleted,\n onMarkManualComplete,\n}: {\n method: OnboardingMethod;\n stepId: string;\n onCompleted: () => Promise<void>;\n onMarkManualComplete: () => void;\n}) {\n if (method.disabled) {\n return (\n <button\n type=\"button\"\n disabled\n style={buttonDisabled(method.primary)}\n aria-disabled=\"true\"\n >\n {method.disabledLabel ?? \"Coming soon\"}\n </button>\n );\n }\n\n switch (method.kind) {\n case \"link\":\n return (\n <LinkMethod method={method} onMarkComplete={onMarkManualComplete} />\n );\n case \"form\":\n return <FormMethod method={method} onCompleted={onCompleted} />;\n case \"builder-cli-auth\":\n return (\n <BuilderCliAuthMethod\n onCompleted={onCompleted}\n primary={method.primary}\n />\n );\n case \"agent-task\":\n return <AgentTaskMethod method={method} stepId={stepId} />;\n }\n}\n\n// ─── link ──────────────────────────────────────────────────────────────────\n\nfunction LinkMethod({\n method,\n onMarkComplete,\n}: {\n method: Extract<OnboardingMethod, { kind: \"link\" }>;\n onMarkComplete: () => void;\n}) {\n const { url, external } = method.payload;\n const isNoop = !url || url === \"#\";\n if (isNoop) {\n // Sentinel URL — treat as \"mark this method as the chosen one\".\n return (\n <button\n type=\"button\"\n style={buttonPrimary(method.primary)}\n onClick={onMarkComplete}\n >\n Use this option\n </button>\n );\n }\n return (\n <a\n href={url}\n target={external ? \"_blank\" : undefined}\n rel={external ? \"noopener noreferrer\" : undefined}\n style={{ ...buttonPrimary(method.primary), textDecoration: \"none\" }}\n >\n Continue\n {external && <IconExternalLink size={12} style={{ marginLeft: 4 }} />}\n </a>\n );\n}\n\n// ─── form ──────────────────────────────────────────────────────────────────\n\nfunction FormMethod({\n method,\n onCompleted,\n}: {\n method: Extract<OnboardingMethod, { kind: \"form\" }>;\n onCompleted: () => Promise<void>;\n}) {\n const { fields, writeScope } = method.payload;\n const [values, setValues] = useState<Record<string, string>>({});\n const [saving, setSaving] = useState(false);\n const [err, setErr] = useState<string | null>(null);\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n setSaving(true);\n setErr(null);\n try {\n const vars = fields\n .map((f) => ({ key: f.key, value: (values[f.key] ?? \"\").trim() }))\n .filter((v) => v.value !== \"\");\n if (vars.length === 0) {\n setErr(\"Enter a value first.\");\n return;\n }\n const res = await fetch(agentNativePath(\"/_agent-native/env-vars\"), {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ vars, scope: writeScope ?? \"workspace\" }),\n });\n if (!res.ok) {\n const data = await res.json().catch(() => ({}));\n throw new Error(\n (data as { error?: string }).error ?? `Save failed: ${res.status}`,\n );\n }\n setValues({});\n await onCompleted();\n } catch (e) {\n setErr(e instanceof Error ? e.message : \"Save failed\");\n } finally {\n setSaving(false);\n }\n };\n\n return (\n <form onSubmit={handleSubmit} style={styles.form}>\n {fields.map((f) => (\n <label key={f.key} style={styles.formLabel}>\n <span style={styles.formLabelText}>{f.label}</span>\n <input\n type={f.secret ? \"password\" : \"text\"}\n value={values[f.key] ?? \"\"}\n placeholder={f.placeholder}\n onChange={(e) =>\n setValues((v) => ({ ...v, [f.key]: e.target.value }))\n }\n style={styles.input}\n autoComplete=\"off\"\n spellCheck={false}\n />\n </label>\n ))}\n {err && <p style={styles.errText}>{err}</p>}\n <button\n type=\"submit\"\n disabled={saving}\n style={{ ...buttonPrimary(method.primary), opacity: saving ? 0.6 : 1 }}\n >\n {saving ? \"Saving...\" : \"Save\"}\n </button>\n </form>\n );\n}\n\n// ─── builder-cli-auth ──────────────────────────────────────────────────────\n\nfunction BuilderCliAuthMethod({\n onCompleted,\n primary,\n}: {\n onCompleted: () => Promise<void>;\n primary?: boolean;\n}) {\n const { connecting, error, start } = useBuilderConnectFlow({\n trackingSource: \"onboarding_builder_cli_auth\",\n onConnected: onCompleted,\n });\n\n return (\n <>\n <button\n type=\"button\"\n onClick={() => start()}\n disabled={connecting}\n style={{ ...buttonPrimary(primary), opacity: connecting ? 0.7 : 1 }}\n >\n {connecting ? (\n <>\n <IconLoader2\n size={12}\n style={{ marginRight: 4 }}\n className=\"animate-spin\"\n />\n Waiting for Builder...\n </>\n ) : (\n \"Connect Builder\"\n )}\n </button>\n {connecting && (\n <p style={styles.methodHint}>\n A Builder tab opened. Choose your team or app space there; setup will\n continue here automatically.\n </p>\n )}\n {error && <p style={styles.errText}>{error}</p>}\n </>\n );\n}\n\n// ─── agent-task ────────────────────────────────────────────────────────────\n\nfunction AgentTaskMethod({\n method,\n stepId: _stepId,\n}: {\n method: Extract<OnboardingMethod, { kind: \"agent-task\" }>;\n stepId: string;\n}) {\n const handleClick = () => {\n sendToAgentChat({ message: method.payload.prompt, submit: true });\n };\n return (\n <button\n type=\"button\"\n onClick={handleClick}\n style={buttonPrimary(method.primary)}\n >\n Ask the agent\n </button>\n );\n}\n\n// ─── styles ────────────────────────────────────────────────────────────────\n\nfunction buttonPrimary(primary: boolean | undefined): React.CSSProperties {\n return {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"6px 12px\",\n borderRadius: 6,\n border: primary\n ? \"1px solid transparent\"\n : \"1px solid rgba(255,255,255,0.15)\",\n background: primary ? \"#3b82f6\" : \"rgba(255,255,255,0.04)\",\n color: primary ? \"#fff\" : \"inherit\",\n fontSize: 12,\n fontWeight: 500,\n cursor: \"pointer\",\n };\n}\n\nfunction buttonDisabled(primary: boolean | undefined): React.CSSProperties {\n return {\n ...buttonPrimary(primary),\n border: \"1px solid rgba(255,255,255,0.12)\",\n background: primary ? \"rgba(255,255,255,0.08)\" : \"rgba(255,255,255,0.04)\",\n color: \"rgba(255,255,255,0.5)\",\n cursor: \"not-allowed\",\n };\n}\n\nfunction badgeStyle(\n kind: \"recommended\" | \"beta\" | \"free\" | \"soon\",\n): React.CSSProperties {\n const palette = {\n recommended: { bg: \"rgba(59,130,246,0.15)\", fg: \"#60a5fa\" },\n beta: { bg: \"rgba(6,182,212,0.15)\", fg: \"#22d3ee\" },\n free: { bg: \"rgba(34,197,94,0.15)\", fg: \"#4ade80\" },\n soon: { bg: \"rgba(148,163,184,0.15)\", fg: \"#cbd5e1\" },\n }[kind];\n return {\n marginLeft: 6,\n fontSize: 10,\n padding: \"1px 6px\",\n borderRadius: 4,\n background: palette.bg,\n color: palette.fg,\n fontWeight: 500,\n textTransform: \"uppercase\" as const,\n letterSpacing: 0.3,\n };\n}\n\nconst styles: Record<string, React.CSSProperties> = {\n root: {\n borderBottom: \"1px solid rgba(255,255,255,0.06)\",\n background: \"rgba(255,255,255,0.02)\",\n fontSize: 12,\n display: \"flex\",\n flexDirection: \"column\",\n maxHeight: \"60vh\",\n minHeight: 0,\n },\n compactBanner: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n borderBottom: \"1px solid rgba(255,255,255,0.06)\",\n background: \"rgba(34,197,94,0.04)\",\n fontSize: 12,\n },\n compactBannerBtn: {\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n background: \"transparent\",\n border: \"none\",\n color: \"inherit\",\n cursor: \"pointer\",\n padding: \"6px 12px\",\n flex: 1,\n minWidth: 0,\n },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"8px 12px\",\n },\n headerLeft: {\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n },\n headerIcon: { color: \"#60a5fa\" },\n headerTitle: { fontWeight: 600, fontSize: 12 },\n headerCounter: {\n opacity: 0.5,\n fontSize: 11,\n marginLeft: 4,\n },\n dismissBtn: {\n background: \"transparent\",\n border: \"none\",\n color: \"inherit\",\n opacity: 0.5,\n cursor: \"pointer\",\n padding: 2,\n display: \"flex\",\n },\n list: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: 4,\n padding: \"4px 8px 10px\",\n overflowY: \"auto\",\n minHeight: 0,\n flex: \"1 1 auto\",\n },\n card: {\n border: \"1px solid hsl(var(--border, 0 0% 100%) / 0.06)\",\n borderRadius: 6,\n background: \"hsl(var(--muted, 0 0% 0%) / 0.12)\",\n },\n cardDone: {\n borderColor: \"rgba(34,197,94,0.12)\",\n background: \"rgba(34,197,94,0.025)\",\n },\n cardHeader: {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n background: \"transparent\",\n border: \"none\",\n color: \"inherit\",\n padding: \"7px 9px\",\n cursor: \"pointer\",\n textAlign: \"left\" as const,\n },\n cardHeaderLeft: {\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n minWidth: 0,\n },\n cardTitle: {\n fontSize: 12,\n fontWeight: 500,\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n minWidth: 0,\n flexWrap: \"wrap\" as const,\n },\n requiredPill: {\n fontSize: 10,\n padding: \"1px 5px\",\n borderRadius: 4,\n background: \"rgba(239,68,68,0.12)\",\n color: \"#f87171\",\n fontWeight: 500,\n },\n chevron: { opacity: 0.5 },\n checkDone: {\n width: 16,\n height: 16,\n borderRadius: \"50%\",\n background: \"#22c55e\",\n color: \"#fff\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n checkTodo: {\n width: 16,\n height: 16,\n borderRadius: \"50%\",\n border: \"1px solid rgba(255,255,255,0.2)\",\n },\n cardBody: {\n padding: \"0 10px 10px 34px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n },\n cardDesc: {\n margin: 0,\n opacity: 0.65,\n fontSize: 12,\n lineHeight: 1.4,\n },\n methods: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: 6,\n },\n method: {\n padding: \"8px 10px\",\n border: \"1px solid rgba(255,255,255,0.06)\",\n borderRadius: 6,\n background: \"rgba(255,255,255,0.02)\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 6,\n },\n methodPrimary: {\n padding: \"10px\",\n border: \"1px solid rgba(59,130,246,0.25)\",\n borderRadius: 6,\n background: \"rgba(59,130,246,0.06)\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 6,\n },\n methodHeader: { display: \"flex\", alignItems: \"center\" },\n methodLabel: { fontSize: 12, fontWeight: 500 },\n methodDesc: { margin: 0, opacity: 0.6, fontSize: 11, lineHeight: 1.4 },\n secondaryPanel: {\n paddingTop: 2,\n },\n secondaryToggle: {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 8,\n padding: \"7px 8px\",\n borderRadius: 6,\n border: \"1px solid rgba(255,255,255,0.08)\",\n background: \"rgba(255,255,255,0.025)\",\n color: \"inherit\",\n cursor: \"pointer\",\n fontSize: 11,\n fontWeight: 500,\n textAlign: \"left\" as const,\n },\n secondaryToggleLeft: {\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n minWidth: 0,\n },\n methodPickerEmbedded: {\n paddingTop: 8,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 6,\n },\n pickerLabel: { display: \"flex\", flexDirection: \"column\", gap: 3 },\n form: { display: \"flex\", flexDirection: \"column\", gap: 6 },\n formLabel: { display: \"flex\", flexDirection: \"column\", gap: 2 },\n formLabelText: { fontSize: 11, opacity: 0.6 },\n select: {\n width: \"100%\",\n padding: \"6px 8px\",\n fontSize: 12,\n borderRadius: 5,\n border: \"1px solid rgba(255,255,255,0.1)\",\n background: \"rgba(0,0,0,0.25)\",\n color: \"inherit\",\n outline: \"none\",\n boxSizing: \"border-box\" as const,\n },\n input: {\n width: \"100%\",\n padding: \"6px 8px\",\n fontSize: 12,\n borderRadius: 5,\n border: \"1px solid rgba(255,255,255,0.1)\",\n background: \"rgba(0,0,0,0.25)\",\n color: \"inherit\",\n outline: \"none\",\n boxSizing: \"border-box\" as const,\n },\n methodHint: { margin: 0, fontSize: 11, color: \"rgba(255,255,255,0.62)\" },\n errText: { margin: 0, fontSize: 11, color: \"#f87171\" },\n footer: {\n padding: \"0 12px 10px\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n },\n hideLink: {\n background: \"transparent\",\n border: \"none\",\n color: \"inherit\",\n opacity: 0.5,\n cursor: \"pointer\",\n fontSize: 11,\n padding: \"2px 4px\",\n },\n};\n"]}
|
|
1
|
+
{"version":3,"file":"OnboardingPanel.js","sourceRoot":"","sources":["../../../src/client/onboarding/OnboardingPanel.tsx"],"names":[],"mappings":"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","sourcesContent":["import { agentNativePath } from \"../api-path.js\";\n/**\n * <OnboardingPanel /> — the setup checklist that sits above the agent chat.\n *\n * The active step is expanded; completed steps collapse with a green check;\n * remaining steps sit dimmed below. Each method renders differently based on\n * its `kind` (link / form / builder-cli-auth / agent-task).\n */\n\nimport React, { useState, useEffect } from \"react\";\nimport {\n IconCheck,\n IconChecklist,\n IconChevronDown,\n IconChevronRight,\n IconChevronUp,\n IconExternalLink,\n IconKey,\n IconLoader2,\n} from \"@tabler/icons-react\";\nimport { useOnboarding } from \"./use-onboarding.js\";\nimport { useOnboardingPreviewMode } from \"./use-preview-mode.js\";\nimport { sendToAgentChat } from \"../agent-chat.js\";\nimport { useDevMode } from \"../use-dev-mode.js\";\nimport { useBuilderConnectFlow } from \"../settings/useBuilderStatus.js\";\nimport type {\n OnboardingMethod,\n OnboardingStepStatus,\n} from \"../../onboarding/types.js\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"../components/ui/tooltip.js\";\n\ntype FormOnboardingMethod = Extract<OnboardingMethod, { kind: \"form\" }>;\n\ninterface OnboardingPanelProps {\n /** Optional extra styles / classes for the wrapper. */\n className?: string;\n /** Override the built-in title. */\n title?: string;\n}\n\nexport function OnboardingPanel({\n className,\n title = \"Setup\",\n}: OnboardingPanelProps) {\n const previewMode = useOnboardingPreviewMode();\n const onboarding = useOnboarding({ preview: previewMode });\n const { isDevMode } = useDevMode();\n const {\n steps: rawSteps,\n currentStepId: rawCurrentStepId,\n dismissed,\n loading,\n refresh,\n complete,\n dismiss,\n } = onboarding;\n // `database` and `auth` steps only apply to local dev (SQLite default,\n // local-mode auth bypass). In production those are configured via env\n // vars / deployment config, so don't nag the user about them.\n const DEV_ONLY_STEP_IDS = new Set([\"database\", \"auth\"]);\n const steps = isDevMode\n ? rawSteps\n : rawSteps.filter((s) => !DEV_ONLY_STEP_IDS.has(s.id));\n const totalCount = steps.length;\n const completeCount = steps.filter((s) => s.complete).length;\n const allComplete = steps.filter((s) => s.required).every((s) => s.complete);\n const currentStepId = steps.some((s) => s.id === rawCurrentStepId)\n ? rawCurrentStepId\n : (steps.find((s) => s.required && !s.complete)?.id ??\n steps.find((s) => !s.complete)?.id ??\n null);\n // Default expanded. (Older code used `useState(!allComplete)`, but the first\n // render fires with `steps === []` — `[].every()` is vacuously true, so\n // `allComplete` was true and `expanded` got locked to false even after the\n // real incomplete steps loaded.)\n const [expanded, setExpanded] = useState(true);\n\n if (loading || totalCount === 0) return null;\n // Preview mode (dev overlay) bypasses the auto-hide so template authors\n // can render the new-user flow even when their own setup is done.\n if (!previewMode) {\n if (dismissed) return null;\n // Auto-hide once every required step is done — no need to take up sidebar\n // space when there's nothing left to do.\n if (allComplete) return null;\n }\n\n if (!expanded) {\n return (\n <div className={className} style={styles.compactBanner}>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n onClick={() => setExpanded(true)}\n style={styles.compactBannerBtn}\n aria-label=\"Expand setup\"\n >\n <span style={allComplete ? styles.checkDone : styles.checkTodo}>\n {allComplete ? <IconCheck size={12} strokeWidth={3} /> : null}\n </span>\n <span style={styles.headerTitle}>{title}</span>\n <span style={styles.headerCounter}>\n {completeCount} of {totalCount}\n </span>\n <span\n style={{\n marginInlineStart: \"auto\",\n opacity: 0.5,\n display: \"flex\",\n }}\n >\n <IconChevronDown size={14} />\n </span>\n </button>\n </TooltipTrigger>\n <TooltipContent>Expand setup</TooltipContent>\n </Tooltip>\n </div>\n );\n }\n\n return (\n <div className={className} style={styles.root}>\n <div style={styles.header}>\n <div style={styles.headerLeft}>\n {allComplete ? (\n <span style={styles.checkDone}>\n <IconCheck size={12} strokeWidth={3} />\n </span>\n ) : (\n <IconChecklist size={14} style={styles.headerIcon} aria-hidden />\n )}\n <span style={styles.headerTitle}>{title}</span>\n <span style={styles.headerCounter}>\n {completeCount} of {totalCount}\n </span>\n </div>\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n onClick={() => setExpanded(false)}\n aria-label=\"Collapse onboarding\"\n style={styles.dismissBtn}\n >\n <IconChevronUp size={14} />\n </button>\n </TooltipTrigger>\n <TooltipContent>Collapse</TooltipContent>\n </Tooltip>\n </div>\n\n <div style={styles.list}>\n {steps.map((step) => (\n <StepCard\n key={step.id}\n step={step}\n expanded={step.id === currentStepId}\n onMarkComplete={() => complete(step.id)}\n onRefresh={refresh}\n />\n ))}\n </div>\n\n <div style={styles.footer}>\n <button type=\"button\" onClick={dismiss} style={styles.hideLink}>\n Hide setup\n </button>\n </div>\n </div>\n );\n}\n\n// ─── StepCard ──────────────────────────────────────────────────────────────\n\nfunction StepCard({\n step,\n expanded: expandedProp,\n onMarkComplete,\n onRefresh,\n}: {\n step: OnboardingStepStatus;\n expanded: boolean;\n onMarkComplete: () => void;\n onRefresh: () => Promise<void>;\n}) {\n const [expanded, setExpanded] = useState(expandedProp);\n useEffect(() => setExpanded(expandedProp), [expandedProp]);\n\n const isDone = step.complete;\n const sortedMethods = [...step.methods].sort((a, b) => {\n if (!!a.primary === !!b.primary) return 0;\n return a.primary ? -1 : 1;\n });\n\n const handleCompleted = async () => {\n await onRefresh();\n };\n\n return (\n <div\n style={{\n ...styles.card,\n ...(isDone ? styles.cardDone : null),\n }}\n >\n <button\n type=\"button\"\n style={styles.cardHeader}\n onClick={() => setExpanded((e) => !e)}\n aria-expanded={expanded}\n >\n <span style={styles.cardHeaderLeft}>\n <span style={isDone ? styles.checkDone : styles.checkTodo}>\n {isDone ? <IconCheck size={12} strokeWidth={3} /> : null}\n </span>\n <span style={styles.cardTitle}>\n {step.title}\n {step.required && !isDone && (\n <span style={styles.requiredPill}>required</span>\n )}\n </span>\n </span>\n <span style={styles.chevron}>\n {expanded ? (\n <IconChevronDown size={14} />\n ) : (\n <IconChevronRight size={14} className=\"rtl:-scale-x-100\" />\n )}\n </span>\n </button>\n\n {expanded && (\n <div style={styles.cardBody}>\n <p style={styles.cardDesc}>{step.description}</p>\n <StepMethods\n step={step}\n methods={sortedMethods}\n onCompleted={handleCompleted}\n onMarkManualComplete={onMarkComplete}\n />\n </div>\n )}\n </div>\n );\n}\n\nfunction isFormMethod(\n method: OnboardingMethod,\n): method is FormOnboardingMethod {\n return method.kind === \"form\";\n}\n\nfunction StepMethods({\n step,\n methods,\n onCompleted,\n onMarkManualComplete,\n}: {\n step: OnboardingStepStatus;\n methods: OnboardingMethod[];\n onCompleted: () => Promise<void>;\n onMarkManualComplete: () => void;\n}) {\n const formMethods = methods.filter(isFormMethod);\n\n if (step.id === \"llm\" || step.id === \"image-generation\") {\n return (\n <ManagedProviderMethodGroup\n methods={methods}\n formMethods={formMethods}\n stepId={step.id}\n secondaryLabel={\n step.id === \"image-generation\"\n ? \"Add image/video keys\"\n : \"Add your own provider key\"\n }\n onCompleted={onCompleted}\n onMarkManualComplete={onMarkManualComplete}\n />\n );\n }\n\n if (methods.length > 1 && formMethods.length === methods.length) {\n const pickerLabel = step.id === \"auth\" ? \"Sign-in path\" : \"Provider\";\n return (\n <div style={styles.methods}>\n <FormMethodPicker\n methods={formMethods}\n label={pickerLabel}\n onCompleted={onCompleted}\n />\n </div>\n );\n }\n\n return (\n <div style={styles.methods}>\n {methods.map((method) => (\n <MethodBlock\n key={method.id}\n method={method}\n stepId={step.id}\n onCompleted={onCompleted}\n onMarkManualComplete={onMarkManualComplete}\n />\n ))}\n </div>\n );\n}\n\nfunction ManagedProviderMethodGroup({\n methods,\n formMethods,\n stepId,\n secondaryLabel,\n onCompleted,\n onMarkManualComplete,\n}: {\n methods: OnboardingMethod[];\n formMethods: FormOnboardingMethod[];\n stepId: string;\n secondaryLabel: string;\n onCompleted: () => Promise<void>;\n onMarkManualComplete: () => void;\n}) {\n const [showKeyForm, setShowKeyForm] = useState(false);\n const primaryMethod =\n methods.find((method) => method.kind === \"builder-cli-auth\") ??\n methods.find((method) => method.primary);\n const otherMethods = methods.filter(\n (method) => method !== primaryMethod && !isFormMethod(method),\n );\n\n return (\n <div style={styles.methods}>\n {primaryMethod && (\n <MethodBlock\n method={primaryMethod}\n stepId={stepId}\n onCompleted={onCompleted}\n onMarkManualComplete={onMarkManualComplete}\n />\n )}\n\n {formMethods.length > 0 && (\n <div style={styles.secondaryPanel}>\n <button\n type=\"button\"\n onClick={() => setShowKeyForm((value) => !value)}\n style={styles.secondaryToggle}\n aria-expanded={showKeyForm}\n >\n <span style={styles.secondaryToggleLeft}>\n <IconKey size={13} aria-hidden />\n <span>{secondaryLabel}</span>\n </span>\n <span style={styles.chevron}>\n {showKeyForm ? (\n <IconChevronDown size={14} />\n ) : (\n <IconChevronRight size={14} className=\"rtl:-scale-x-100\" />\n )}\n </span>\n </button>\n {showKeyForm && (\n <FormMethodPicker\n methods={formMethods}\n label=\"Provider\"\n onCompleted={onCompleted}\n embedded\n />\n )}\n </div>\n )}\n\n {otherMethods.map((method) => (\n <MethodBlock\n key={method.id}\n method={method}\n stepId={stepId}\n onCompleted={onCompleted}\n onMarkManualComplete={onMarkManualComplete}\n />\n ))}\n </div>\n );\n}\n\nfunction FormMethodPicker({\n methods,\n label,\n onCompleted,\n embedded,\n}: {\n methods: FormOnboardingMethod[];\n label: string;\n onCompleted: () => Promise<void>;\n embedded?: boolean;\n}) {\n const [selectedId, setSelectedId] = useState(methods[0]?.id ?? \"\");\n\n useEffect(() => {\n if (!methods.some((method) => method.id === selectedId)) {\n setSelectedId(methods[0]?.id ?? \"\");\n }\n }, [methods, selectedId]);\n\n const selectedMethod =\n methods.find((method) => method.id === selectedId) ?? methods[0];\n\n if (!selectedMethod) return null;\n\n return (\n <div style={embedded ? styles.methodPickerEmbedded : styles.method}>\n <label style={styles.pickerLabel}>\n <span style={styles.formLabelText}>{label}</span>\n <select\n value={selectedMethod.id}\n onChange={(event) => setSelectedId(event.target.value)}\n style={styles.select}\n >\n {methods.map((method) => (\n <option key={method.id} value={method.id}>\n {method.label}\n </option>\n ))}\n </select>\n </label>\n {selectedMethod.description && (\n <p style={styles.methodDesc}>{selectedMethod.description}</p>\n )}\n <FormMethod\n key={selectedMethod.id}\n method={selectedMethod}\n onCompleted={onCompleted}\n />\n </div>\n );\n}\n\n// ─── MethodBlock ───────────────────────────────────────────────────────────\n\nfunction MethodBlock({\n method,\n stepId,\n onCompleted,\n onMarkManualComplete,\n}: {\n method: OnboardingMethod;\n stepId: string;\n onCompleted: () => Promise<void>;\n onMarkManualComplete: () => void;\n}) {\n return (\n <div style={method.primary ? styles.methodPrimary : styles.method}>\n <div style={styles.methodHeader}>\n <span style={styles.methodLabel}>\n {method.label}\n {method.badge && (\n <span style={badgeStyle(method.badge)}>{method.badge}</span>\n )}\n </span>\n </div>\n {method.description && (\n <p style={styles.methodDesc}>{method.description}</p>\n )}\n <MethodBody\n method={method}\n stepId={stepId}\n onCompleted={onCompleted}\n onMarkManualComplete={onMarkManualComplete}\n />\n </div>\n );\n}\n\nfunction MethodBody({\n method,\n stepId,\n onCompleted,\n onMarkManualComplete,\n}: {\n method: OnboardingMethod;\n stepId: string;\n onCompleted: () => Promise<void>;\n onMarkManualComplete: () => void;\n}) {\n if (method.disabled) {\n return (\n <button\n type=\"button\"\n disabled\n style={buttonDisabled(method.primary)}\n aria-disabled=\"true\"\n >\n {method.disabledLabel ?? \"Coming soon\"}\n </button>\n );\n }\n\n switch (method.kind) {\n case \"link\":\n return (\n <LinkMethod method={method} onMarkComplete={onMarkManualComplete} />\n );\n case \"form\":\n return <FormMethod method={method} onCompleted={onCompleted} />;\n case \"builder-cli-auth\":\n return (\n <BuilderCliAuthMethod\n onCompleted={onCompleted}\n primary={method.primary}\n />\n );\n case \"agent-task\":\n return <AgentTaskMethod method={method} stepId={stepId} />;\n }\n}\n\n// ─── link ──────────────────────────────────────────────────────────────────\n\nfunction LinkMethod({\n method,\n onMarkComplete,\n}: {\n method: Extract<OnboardingMethod, { kind: \"link\" }>;\n onMarkComplete: () => void;\n}) {\n const { url, external } = method.payload;\n const isNoop = !url || url === \"#\";\n if (isNoop) {\n // Sentinel URL — treat as \"mark this method as the chosen one\".\n return (\n <button\n type=\"button\"\n style={buttonPrimary(method.primary)}\n onClick={onMarkComplete}\n >\n Use this option\n </button>\n );\n }\n return (\n <a\n href={url}\n target={external ? \"_blank\" : undefined}\n rel={external ? \"noopener noreferrer\" : undefined}\n style={{ ...buttonPrimary(method.primary), textDecoration: \"none\" }}\n >\n Continue\n {external && (\n <IconExternalLink size={12} style={{ marginInlineStart: 4 }} />\n )}\n </a>\n );\n}\n\n// ─── form ──────────────────────────────────────────────────────────────────\n\nfunction FormMethod({\n method,\n onCompleted,\n}: {\n method: Extract<OnboardingMethod, { kind: \"form\" }>;\n onCompleted: () => Promise<void>;\n}) {\n const { fields, writeScope } = method.payload;\n const [values, setValues] = useState<Record<string, string>>({});\n const [saving, setSaving] = useState(false);\n const [err, setErr] = useState<string | null>(null);\n\n const handleSubmit = async (e: React.FormEvent) => {\n e.preventDefault();\n setSaving(true);\n setErr(null);\n try {\n const vars = fields\n .map((f) => ({ key: f.key, value: (values[f.key] ?? \"\").trim() }))\n .filter((v) => v.value !== \"\");\n if (vars.length === 0) {\n setErr(\"Enter a value first.\");\n return;\n }\n const res = await fetch(agentNativePath(\"/_agent-native/env-vars\"), {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ vars, scope: writeScope ?? \"workspace\" }),\n });\n if (!res.ok) {\n const data = await res.json().catch(() => ({}));\n throw new Error(\n (data as { error?: string }).error ?? `Save failed: ${res.status}`,\n );\n }\n setValues({});\n await onCompleted();\n } catch (e) {\n setErr(e instanceof Error ? e.message : \"Save failed\");\n } finally {\n setSaving(false);\n }\n };\n\n return (\n <form onSubmit={handleSubmit} style={styles.form}>\n {fields.map((f) => (\n <label key={f.key} style={styles.formLabel}>\n <span style={styles.formLabelText}>{f.label}</span>\n <input\n type={f.secret ? \"password\" : \"text\"}\n value={values[f.key] ?? \"\"}\n placeholder={f.placeholder}\n onChange={(e) =>\n setValues((v) => ({ ...v, [f.key]: e.target.value }))\n }\n style={styles.input}\n autoComplete=\"off\"\n spellCheck={false}\n />\n </label>\n ))}\n {err && <p style={styles.errText}>{err}</p>}\n <button\n type=\"submit\"\n disabled={saving}\n style={{ ...buttonPrimary(method.primary), opacity: saving ? 0.6 : 1 }}\n >\n {saving ? \"Saving...\" : \"Save\"}\n </button>\n </form>\n );\n}\n\n// ─── builder-cli-auth ──────────────────────────────────────────────────────\n\nfunction BuilderCliAuthMethod({\n onCompleted,\n primary,\n}: {\n onCompleted: () => Promise<void>;\n primary?: boolean;\n}) {\n const { connecting, error, start } = useBuilderConnectFlow({\n trackingSource: \"onboarding_builder_cli_auth\",\n onConnected: onCompleted,\n });\n\n return (\n <>\n <button\n type=\"button\"\n onClick={() => start()}\n disabled={connecting}\n style={{ ...buttonPrimary(primary), opacity: connecting ? 0.7 : 1 }}\n >\n {connecting ? (\n <>\n <IconLoader2\n size={12}\n style={{ marginInlineEnd: 4 }}\n className=\"animate-spin\"\n />\n Waiting for Builder...\n </>\n ) : (\n \"Connect Builder\"\n )}\n </button>\n {connecting && (\n <p style={styles.methodHint}>\n A Builder tab opened. Choose your team or app space there; setup will\n continue here automatically.\n </p>\n )}\n {error && <p style={styles.errText}>{error}</p>}\n </>\n );\n}\n\n// ─── agent-task ────────────────────────────────────────────────────────────\n\nfunction AgentTaskMethod({\n method,\n stepId: _stepId,\n}: {\n method: Extract<OnboardingMethod, { kind: \"agent-task\" }>;\n stepId: string;\n}) {\n const handleClick = () => {\n sendToAgentChat({ message: method.payload.prompt, submit: true });\n };\n return (\n <button\n type=\"button\"\n onClick={handleClick}\n style={buttonPrimary(method.primary)}\n >\n Ask the agent\n </button>\n );\n}\n\n// ─── styles ────────────────────────────────────────────────────────────────\n\nfunction buttonPrimary(primary: boolean | undefined): React.CSSProperties {\n return {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"6px 12px\",\n borderRadius: 6,\n border: primary\n ? \"1px solid transparent\"\n : \"1px solid rgba(255,255,255,0.15)\",\n background: primary ? \"#3b82f6\" : \"rgba(255,255,255,0.04)\",\n color: primary ? \"#fff\" : \"inherit\",\n fontSize: 12,\n fontWeight: 500,\n cursor: \"pointer\",\n };\n}\n\nfunction buttonDisabled(primary: boolean | undefined): React.CSSProperties {\n return {\n ...buttonPrimary(primary),\n border: \"1px solid rgba(255,255,255,0.12)\",\n background: primary ? \"rgba(255,255,255,0.08)\" : \"rgba(255,255,255,0.04)\",\n color: \"rgba(255,255,255,0.5)\",\n cursor: \"not-allowed\",\n };\n}\n\nfunction badgeStyle(\n kind: \"recommended\" | \"beta\" | \"free\" | \"soon\",\n): React.CSSProperties {\n const palette = {\n recommended: { bg: \"rgba(59,130,246,0.15)\", fg: \"#60a5fa\" },\n beta: { bg: \"rgba(6,182,212,0.15)\", fg: \"#22d3ee\" },\n free: { bg: \"rgba(34,197,94,0.15)\", fg: \"#4ade80\" },\n soon: { bg: \"rgba(148,163,184,0.15)\", fg: \"#cbd5e1\" },\n }[kind];\n return {\n marginInlineStart: 6,\n fontSize: 10,\n padding: \"1px 6px\",\n borderRadius: 4,\n background: palette.bg,\n color: palette.fg,\n fontWeight: 500,\n textTransform: \"uppercase\" as const,\n letterSpacing: 0.3,\n };\n}\n\nconst styles: Record<string, React.CSSProperties> = {\n root: {\n borderBottom: \"1px solid rgba(255,255,255,0.06)\",\n background: \"rgba(255,255,255,0.02)\",\n fontSize: 12,\n display: \"flex\",\n flexDirection: \"column\",\n maxHeight: \"60vh\",\n minHeight: 0,\n },\n compactBanner: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n borderBottom: \"1px solid rgba(255,255,255,0.06)\",\n background: \"rgba(34,197,94,0.04)\",\n fontSize: 12,\n },\n compactBannerBtn: {\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n background: \"transparent\",\n border: \"none\",\n color: \"inherit\",\n cursor: \"pointer\",\n padding: \"6px 12px\",\n flex: 1,\n minWidth: 0,\n },\n header: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"8px 12px\",\n },\n headerLeft: {\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n },\n headerIcon: { color: \"#60a5fa\" },\n headerTitle: { fontWeight: 600, fontSize: 12 },\n headerCounter: {\n opacity: 0.5,\n fontSize: 11,\n marginInlineStart: 4,\n },\n dismissBtn: {\n background: \"transparent\",\n border: \"none\",\n color: \"inherit\",\n opacity: 0.5,\n cursor: \"pointer\",\n padding: 2,\n display: \"flex\",\n },\n list: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: 4,\n padding: \"4px 8px 10px\",\n overflowY: \"auto\",\n minHeight: 0,\n flex: \"1 1 auto\",\n },\n card: {\n border: \"1px solid hsl(var(--border, 0 0% 100%) / 0.06)\",\n borderRadius: 6,\n background: \"hsl(var(--muted, 0 0% 0%) / 0.12)\",\n },\n cardDone: {\n borderColor: \"rgba(34,197,94,0.12)\",\n background: \"rgba(34,197,94,0.025)\",\n },\n cardHeader: {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n background: \"transparent\",\n border: \"none\",\n color: \"inherit\",\n padding: \"7px 9px\",\n cursor: \"pointer\",\n textAlign: \"start\" as const,\n },\n cardHeaderLeft: {\n display: \"flex\",\n alignItems: \"center\",\n gap: 8,\n minWidth: 0,\n },\n cardTitle: {\n fontSize: 12,\n fontWeight: 500,\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n minWidth: 0,\n flexWrap: \"wrap\" as const,\n },\n requiredPill: {\n fontSize: 10,\n padding: \"1px 5px\",\n borderRadius: 4,\n background: \"rgba(239,68,68,0.12)\",\n color: \"#f87171\",\n fontWeight: 500,\n },\n chevron: { opacity: 0.5 },\n checkDone: {\n width: 16,\n height: 16,\n borderRadius: \"50%\",\n background: \"#22c55e\",\n color: \"#fff\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n checkTodo: {\n width: 16,\n height: 16,\n borderRadius: \"50%\",\n border: \"1px solid rgba(255,255,255,0.2)\",\n },\n cardBody: {\n paddingBlock: \"0 10px\",\n paddingInline: \"34px 10px\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 8,\n },\n cardDesc: {\n margin: 0,\n opacity: 0.65,\n fontSize: 12,\n lineHeight: 1.4,\n },\n methods: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: 6,\n },\n method: {\n padding: \"8px 10px\",\n border: \"1px solid rgba(255,255,255,0.06)\",\n borderRadius: 6,\n background: \"rgba(255,255,255,0.02)\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 6,\n },\n methodPrimary: {\n padding: \"10px\",\n border: \"1px solid rgba(59,130,246,0.25)\",\n borderRadius: 6,\n background: \"rgba(59,130,246,0.06)\",\n display: \"flex\",\n flexDirection: \"column\",\n gap: 6,\n },\n methodHeader: { display: \"flex\", alignItems: \"center\" },\n methodLabel: { fontSize: 12, fontWeight: 500 },\n methodDesc: { margin: 0, opacity: 0.6, fontSize: 11, lineHeight: 1.4 },\n secondaryPanel: {\n paddingTop: 2,\n },\n secondaryToggle: {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 8,\n padding: \"7px 8px\",\n borderRadius: 6,\n border: \"1px solid rgba(255,255,255,0.08)\",\n background: \"rgba(255,255,255,0.025)\",\n color: \"inherit\",\n cursor: \"pointer\",\n fontSize: 11,\n fontWeight: 500,\n textAlign: \"start\" as const,\n },\n secondaryToggleLeft: {\n display: \"flex\",\n alignItems: \"center\",\n gap: 6,\n minWidth: 0,\n },\n methodPickerEmbedded: {\n paddingTop: 8,\n display: \"flex\",\n flexDirection: \"column\",\n gap: 6,\n },\n pickerLabel: { display: \"flex\", flexDirection: \"column\", gap: 3 },\n form: { display: \"flex\", flexDirection: \"column\", gap: 6 },\n formLabel: { display: \"flex\", flexDirection: \"column\", gap: 2 },\n formLabelText: { fontSize: 11, opacity: 0.6 },\n select: {\n width: \"100%\",\n padding: \"6px 8px\",\n fontSize: 12,\n borderRadius: 5,\n border: \"1px solid rgba(255,255,255,0.1)\",\n background: \"rgba(0,0,0,0.25)\",\n color: \"inherit\",\n outline: \"none\",\n boxSizing: \"border-box\" as const,\n },\n input: {\n width: \"100%\",\n padding: \"6px 8px\",\n fontSize: 12,\n borderRadius: 5,\n border: \"1px solid rgba(255,255,255,0.1)\",\n background: \"rgba(0,0,0,0.25)\",\n color: \"inherit\",\n outline: \"none\",\n boxSizing: \"border-box\" as const,\n },\n methodHint: { margin: 0, fontSize: 11, color: \"rgba(255,255,255,0.62)\" },\n errText: { margin: 0, fontSize: 11, color: \"#f87171\" },\n footer: {\n padding: \"0 12px 10px\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n },\n hideLink: {\n background: \"transparent\",\n border: \"none\",\n color: \"inherit\",\n opacity: 0.5,\n cursor: \"pointer\",\n fontSize: 11,\n padding: \"2px 4px\",\n },\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrgSwitcher.d.ts","sourceRoot":"","sources":["../../../src/client/org/OrgSwitcher.tsx"],"names":[],"mappings":"AAuDA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AA2MD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAiD,GAClD,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"OrgSwitcher.d.ts","sourceRoot":"","sources":["../../../src/client/org/OrgSwitcher.tsx"],"names":[],"mappings":"AAuDA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AA2MD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,SAAS,EACT,cAAc,EACd,YAAY,EACZ,YAAiD,GAClD,EAAE,gBAAgB,kDA2blB"}
|
|
@@ -81,7 +81,7 @@ function AppsSubmenu({ apps, isWorkspace, isLoading, dispatchHref, dispatchAllAp
|
|
|
81
81
|
.slice(0, visibleDispatchApp ? undefined : ORG_SWITCHER_MAX_APP_LINKS - 1);
|
|
82
82
|
const shownCount = (dispatchApp ? 1 : 0) + visibleNonDispatch.length;
|
|
83
83
|
const remainingCount = Math.max(overflowCount, apps.length - shownCount);
|
|
84
|
-
return (_jsxs(PopoverPrimitive.Root, { children: [_jsx(PopoverPrimitive.Trigger, { asChild: true, children: _jsxs("button", { type: "button", className: `${ITEM_CLASS} cursor-pointer`, children: [_jsx(IconApps, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "flex-1 text-
|
|
84
|
+
return (_jsxs(PopoverPrimitive.Root, { children: [_jsx(PopoverPrimitive.Trigger, { asChild: true, children: _jsxs("button", { type: "button", className: `${ITEM_CLASS} cursor-pointer`, children: [_jsx(IconApps, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "flex-1 text-start", children: "Apps" }), _jsx("span", { className: "text-[11px] text-muted-foreground", children: isLoading ? (_jsx(IconLoader2, { className: "h-3 w-3 animate-spin" })) : (apps.length) }), _jsx(IconChevronRight, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground rtl:-scale-x-100" })] }) }), _jsx(PopoverPrimitive.Portal, { children: _jsxs(PopoverPrimitive.Content, { side: "right", align: "start", sideOffset: 8, collisionPadding: 12, className: APP_SUBMENU_CONTENT_CLASS, children: [_jsxs("div", { className: "px-2.5 py-1.5", children: [_jsx("div", { className: "text-[10px] uppercase tracking-wide text-muted-foreground", children: isWorkspace ? "Workspace apps" : "Default apps" }), _jsx("div", { className: "mt-0.5 text-[11px] text-muted-foreground", children: isWorkspace
|
|
85
85
|
? "Dispatch is the workspace hub."
|
|
86
86
|
: "Dispatch is the home base." })] }), _jsx(AppMenuLink, { app: dispatchApp, onNavigate: onNavigate }), visibleNonDispatch.length > 0 && (_jsx("div", { className: "my-1 h-px bg-border" })), visibleNonDispatch.map((app) => (_jsx(AppMenuLink, { app: app, onNavigate: onNavigate }, app.id))), remainingCount > 0 && (_jsxs(_Fragment, { children: [_jsx("div", { className: "my-1 h-px bg-border" }), _jsxs("a", { href: dispatchAllAppsHref, onClick: onNavigate, className: "flex items-center gap-2 rounded-sm px-2.5 py-1.5 text-xs text-foreground outline-none hover:bg-accent focus:bg-accent", children: [_jsx(IconMessageCircle, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "flex-1", children: `View ${remainingCount} more in Dispatch` }), _jsx(IconArrowUpRight, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" })] })] }))] }) })] }));
|
|
87
87
|
}
|
|
@@ -154,11 +154,11 @@ export function OrgSwitcher({ className, hideWhenSingle, reserveSpace, settingsP
|
|
|
154
154
|
const organizationSettingsHref = settingsPath
|
|
155
155
|
? organizationSettingsPath(settingsPath)
|
|
156
156
|
: null;
|
|
157
|
-
return (_jsxs(PopoverPrimitive.Root, { open: open, onOpenChange: handleOpenChange, children: [_jsx(PopoverPrimitive.Trigger, { asChild: true, children: _jsxs("button", { type: "button", className: `flex w-full items-center gap-2 rounded-md border border-border/50 px-2.5 py-1.5 text-xs font-medium text-muted-foreground hover:bg-accent/50 hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring cursor-pointer ${className ?? ""}`, children: [_jsx(ButtonIcon, { className: "h-3.5 w-3.5 shrink-0" }), _jsx("span", { className: "truncate flex-1 text-
|
|
157
|
+
return (_jsxs(PopoverPrimitive.Root, { open: open, onOpenChange: handleOpenChange, children: [_jsx(PopoverPrimitive.Trigger, { asChild: true, children: _jsxs("button", { type: "button", className: `flex w-full items-center gap-2 rounded-md border border-border/50 px-2.5 py-1.5 text-xs font-medium text-muted-foreground hover:bg-accent/50 hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring cursor-pointer ${className ?? ""}`, children: [_jsx(ButtonIcon, { className: "h-3.5 w-3.5 shrink-0" }), _jsx("span", { className: "truncate flex-1 text-start", children: buttonLabel }), _jsx(IconSelector, { className: "h-3 w-3 shrink-0 opacity-50" })] }) }), _jsx(PopoverPrimitive.Portal, { children: _jsxs(PopoverPrimitive.Content, { side: "top", align: "start", sideOffset: 6, collisionPadding: 12, className: POPOVER_CONTENT_CLASS, onOpenAutoFocus: (e) => {
|
|
158
158
|
// Don't auto-focus the first item — feels heavy on a switcher.
|
|
159
159
|
if (mode === "list")
|
|
160
160
|
e.preventDefault();
|
|
161
|
-
}, children: [mode === "list" && (_jsxs(_Fragment, { children: [!inOrg && (_jsxs("div", { className: "flex w-full items-center gap-2 px-2.5 py-1.5 text-xs text-muted-foreground", "aria-disabled": "true", children: [_jsx(IconUser, { className: "h-3.5 w-3.5 shrink-0" }), _jsxs("span", { className: "truncate flex-1 text-
|
|
161
|
+
}, children: [mode === "list" && (_jsxs(_Fragment, { children: [!inOrg && (_jsxs("div", { className: "flex w-full items-center gap-2 px-2.5 py-1.5 text-xs text-muted-foreground", "aria-disabled": "true", children: [_jsx(IconUser, { className: "h-3.5 w-3.5 shrink-0" }), _jsxs("span", { className: "truncate flex-1 text-start", children: ["Personal (", personalLabel, ")"] })] })), orgs.length > 0 && (_jsx("div", { className: SECTION_LABEL_CLASS, children: "Organizations" })), orgs.map((o) => (_jsxs("button", { type: "button", onClick: async () => {
|
|
162
162
|
if (o.orgId === org.orgId) {
|
|
163
163
|
setOpen(false);
|
|
164
164
|
return;
|
|
@@ -170,7 +170,7 @@ export function OrgSwitcher({ className, hideWhenSingle, reserveSpace, settingsP
|
|
|
170
170
|
catch {
|
|
171
171
|
/* error surfaced via switchOrg.error */
|
|
172
172
|
}
|
|
173
|
-
}, disabled: switchOrg.isPending, className: `${ITEM_CLASS} cursor-pointer`, children: [_jsx(IconBuilding, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "truncate flex-1 text-
|
|
173
|
+
}, disabled: switchOrg.isPending, className: `${ITEM_CLASS} cursor-pointer`, children: [_jsx(IconBuilding, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "truncate flex-1 text-start", children: o.orgName }), o.orgId === org.orgId && (_jsx(IconCheck, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }))] }, o.orgId))), pendingInvitations.length > 0 && (_jsxs(_Fragment, { children: [orgs.length > 0 && _jsx("div", { className: "my-1 h-px bg-border" }), _jsx("div", { className: SECTION_LABEL_CLASS, children: "Invitations" }), pendingInvitations.map((inv) => (_jsxs("div", { className: "flex items-center gap-2 px-2.5 py-1.5 text-xs", children: [_jsx(IconBuilding, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "truncate flex-1 text-foreground", children: inv.orgName }), _jsx("button", { type: "button", onClick: async () => {
|
|
174
174
|
try {
|
|
175
175
|
await acceptInvitation.mutateAsync(inv.id);
|
|
176
176
|
setOpen(false);
|
|
@@ -202,16 +202,16 @@ export function OrgSwitcher({ className, hideWhenSingle, reserveSpace, settingsP
|
|
|
202
202
|
if (organizationSettingsHref) {
|
|
203
203
|
navigate(organizationSettingsHref);
|
|
204
204
|
}
|
|
205
|
-
}, className: `${ITEM_CLASS} cursor-pointer`, children: [_jsx(IconSettings, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "flex-1 text-
|
|
205
|
+
}, className: `${ITEM_CLASS} cursor-pointer`, children: [_jsx(IconSettings, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "flex-1 text-start", children: "Organization settings" })] })), _jsxs("button", { type: "button", onClick: () => {
|
|
206
206
|
// Clear any leftover input from a prior session — otherwise
|
|
207
207
|
// the create form re-opens prefilled with the just-created
|
|
208
208
|
// org's name and looks like a create dialog for the new org.
|
|
209
209
|
setNewName("");
|
|
210
210
|
setMode("create");
|
|
211
|
-
}, className: `${ITEM_CLASS} cursor-pointer`, children: [_jsx(IconPlus, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "flex-1 text-
|
|
211
|
+
}, className: `${ITEM_CLASS} cursor-pointer`, children: [_jsx(IconPlus, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "flex-1 text-start", children: "Create organization" })] }), canInvite && (_jsxs("button", { type: "button", onClick: () => {
|
|
212
212
|
setInviteEmail("");
|
|
213
213
|
setMode("invite");
|
|
214
|
-
}, className: `${ITEM_CLASS} cursor-pointer`, children: [_jsx(IconUserPlus, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "flex-1 text-
|
|
214
|
+
}, className: `${ITEM_CLASS} cursor-pointer`, children: [_jsx(IconUserPlus, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }), _jsx("span", { className: "flex-1 text-start", children: "Invite member" })] })), _jsx("div", { className: "my-1 h-px bg-border" }), _jsxs("button", { type: "button", onClick: handleSignOut, disabled: signingOut, className: `${ITEM_CLASS} cursor-pointer`, children: [signingOut ? (_jsx(IconLoader2, { className: "h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground" })) : (_jsx(IconLogout, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground rtl:-scale-x-100" })), _jsxs("span", { className: "flex-1 text-start", children: ["Sign out", org.email ? (_jsxs("span", { className: "ms-1 text-muted-foreground", children: ["(", org.email, ")"] })) : null] })] }), (switchOrg.error ||
|
|
215
215
|
acceptInvitation.error ||
|
|
216
216
|
joinByDomain.error) && (_jsx("div", { className: "px-2.5 pt-1 text-[11px] text-destructive", children: (switchOrg.error ||
|
|
217
217
|
acceptInvitation.error ||
|