@agent-native/core 0.86.0 → 0.87.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +21 -0
- package/corpus/core/docs/content/components.mdx +13 -0
- package/corpus/core/docs/content/creating-templates.mdx +7 -0
- package/corpus/core/docs/content/locales/ar-SA/components.mdx +9 -0
- package/corpus/core/docs/content/locales/ar-SA/creating-templates.mdx +2 -0
- package/corpus/core/docs/content/locales/ar-SA/template-analytics.mdx +6 -0
- package/corpus/core/docs/content/locales/ar-SA/template-clips.mdx +7 -0
- package/corpus/core/docs/content/locales/ar-SA/tracking.mdx +6 -0
- package/corpus/core/docs/content/locales/de-DE/components.mdx +9 -0
- package/corpus/core/docs/content/locales/de-DE/creating-templates.mdx +2 -0
- package/corpus/core/docs/content/locales/de-DE/template-analytics.mdx +6 -0
- package/corpus/core/docs/content/locales/de-DE/template-clips.mdx +7 -0
- package/corpus/core/docs/content/locales/de-DE/tracking.mdx +6 -0
- package/corpus/core/docs/content/locales/es-ES/components.mdx +9 -0
- package/corpus/core/docs/content/locales/es-ES/creating-templates.mdx +2 -0
- package/corpus/core/docs/content/locales/es-ES/template-analytics.mdx +6 -0
- package/corpus/core/docs/content/locales/es-ES/template-clips.mdx +7 -0
- package/corpus/core/docs/content/locales/es-ES/tracking.mdx +6 -0
- package/corpus/core/docs/content/locales/fr-FR/components.mdx +9 -0
- package/corpus/core/docs/content/locales/fr-FR/creating-templates.mdx +2 -0
- package/corpus/core/docs/content/locales/fr-FR/template-analytics.mdx +6 -0
- package/corpus/core/docs/content/locales/fr-FR/template-clips.mdx +7 -0
- package/corpus/core/docs/content/locales/fr-FR/tracking.mdx +6 -0
- package/corpus/core/docs/content/locales/hi-IN/components.mdx +9 -0
- package/corpus/core/docs/content/locales/hi-IN/creating-templates.mdx +2 -0
- package/corpus/core/docs/content/locales/hi-IN/template-analytics.mdx +6 -0
- package/corpus/core/docs/content/locales/hi-IN/template-clips.mdx +7 -0
- package/corpus/core/docs/content/locales/hi-IN/tracking.mdx +6 -0
- package/corpus/core/docs/content/locales/ja-JP/components.mdx +9 -0
- package/corpus/core/docs/content/locales/ja-JP/creating-templates.mdx +2 -0
- package/corpus/core/docs/content/locales/ja-JP/template-analytics.mdx +6 -0
- package/corpus/core/docs/content/locales/ja-JP/template-clips.mdx +7 -0
- package/corpus/core/docs/content/locales/ja-JP/tracking.mdx +6 -0
- package/corpus/core/docs/content/locales/ko-KR/components.mdx +9 -0
- package/corpus/core/docs/content/locales/ko-KR/creating-templates.mdx +2 -0
- package/corpus/core/docs/content/locales/ko-KR/template-analytics.mdx +6 -0
- package/corpus/core/docs/content/locales/ko-KR/template-clips.mdx +7 -0
- package/corpus/core/docs/content/locales/ko-KR/tracking.mdx +6 -0
- package/corpus/core/docs/content/locales/pt-BR/components.mdx +9 -0
- package/corpus/core/docs/content/locales/pt-BR/creating-templates.mdx +2 -0
- package/corpus/core/docs/content/locales/pt-BR/template-analytics.mdx +6 -0
- package/corpus/core/docs/content/locales/pt-BR/template-clips.mdx +7 -0
- package/corpus/core/docs/content/locales/pt-BR/tracking.mdx +6 -0
- package/corpus/core/docs/content/locales/zh-CN/components.mdx +9 -0
- package/corpus/core/docs/content/locales/zh-CN/creating-templates.mdx +2 -0
- package/corpus/core/docs/content/locales/zh-CN/template-analytics.mdx +6 -0
- package/corpus/core/docs/content/locales/zh-CN/template-clips.mdx +7 -0
- package/corpus/core/docs/content/locales/zh-CN/tracking.mdx +6 -0
- package/corpus/core/docs/content/locales/zh-TW/components.mdx +9 -0
- package/corpus/core/docs/content/locales/zh-TW/creating-templates.mdx +2 -0
- package/corpus/core/docs/content/locales/zh-TW/template-analytics.mdx +6 -0
- package/corpus/core/docs/content/locales/zh-TW/template-clips.mdx +7 -0
- package/corpus/core/docs/content/locales/zh-TW/tracking.mdx +6 -0
- package/corpus/core/docs/content/template-analytics.mdx +6 -0
- package/corpus/core/docs/content/template-clips.mdx +7 -0
- package/corpus/core/docs/content/tracking.mdx +6 -0
- package/corpus/core/package.json +9 -1
- package/corpus/core/src/application-state/emitter.ts +37 -5
- package/corpus/core/src/cli/create.ts +55 -3
- package/corpus/core/src/cli/workspacify.ts +10 -4
- package/corpus/core/src/client/AgentPanel.tsx +10 -0
- package/corpus/core/src/client/AssistantChat.tsx +91 -27
- package/corpus/core/src/client/ErrorBoundary.tsx +67 -12
- package/corpus/core/src/client/ErrorReportActions.tsx +69 -0
- package/corpus/core/src/client/FeedbackButton.tsx +8 -4
- package/corpus/core/src/client/components/ui/dialog.tsx +1 -91
- package/corpus/core/src/client/components/ui/dropdown-menu.tsx +1 -191
- package/corpus/core/src/client/components/ui/hover-card.tsx +1 -29
- package/corpus/core/src/client/components/ui/popover.tsx +1 -31
- package/corpus/core/src/client/components/ui/sheet.tsx +1 -96
- package/corpus/core/src/client/components/ui/tooltip.tsx +1 -53
- package/corpus/core/src/client/db-admin/DbAdminPage.tsx +41 -13
- package/corpus/core/src/client/db-admin/SqlEditor.tsx +10 -3
- package/corpus/core/src/client/db-admin/TableEditor.tsx +12 -5
- package/corpus/core/src/client/db-admin/useAgentSync.ts +10 -3
- package/corpus/core/src/client/db-admin/useDbAdmin.ts +65 -16
- package/corpus/core/src/client/error-reporting.ts +100 -0
- package/corpus/core/src/client/index.ts +11 -0
- package/corpus/core/src/client/org/RequireActiveOrg.tsx +12 -0
- package/corpus/core/src/client/visual-style-controls.tsx +615 -2
- package/corpus/core/src/db-admin/index.ts +26 -0
- package/corpus/core/src/db-admin/operations.ts +87 -49
- package/corpus/core/src/localization/default-messages.ts +4 -0
- package/corpus/core/src/secrets/crypto.ts +47 -9
- package/corpus/core/src/server/agent-access.ts +72 -0
- package/corpus/core/src/server/builder-design-systems.ts +328 -9
- package/corpus/core/src/server/h3-helpers.ts +14 -2
- package/corpus/core/src/server/index.ts +34 -0
- package/corpus/core/src/server/request-context.ts +64 -7
- package/corpus/core/src/shared/agent-access.ts +112 -0
- package/corpus/core/src/shared/index.ts +14 -0
- package/corpus/core/src/templates/default/app/root.tsx +47 -0
- package/corpus/templates/analytics/AGENTS.md +10 -4
- package/corpus/templates/analytics/actions/delete-db-admin-connection.ts +19 -0
- package/corpus/templates/analytics/actions/list-db-admin-connections.ts +18 -0
- package/corpus/templates/analytics/actions/navigate.ts +17 -3
- package/corpus/templates/analytics/actions/save-db-admin-connection.ts +33 -0
- package/corpus/templates/analytics/actions/view-screen.ts +11 -3
- package/corpus/templates/analytics/app/components/InlineMetric.tsx +2 -2
- package/corpus/templates/analytics/app/components/dashboard/CumulativeNetChart.tsx +7 -2
- package/corpus/templates/analytics/app/components/dashboard/DataTable.tsx +16 -11
- package/corpus/templates/analytics/app/components/dashboard/DateRangePicker.tsx +2 -1
- package/corpus/templates/analytics/app/components/dashboard/MetricCard.tsx +7 -2
- package/corpus/templates/analytics/app/components/dashboard/RecentActivity.tsx +6 -3
- package/corpus/templates/analytics/app/components/dashboard/RevenueChart.tsx +6 -1
- package/corpus/templates/analytics/app/components/dashboard/RevenueComparisonChart.tsx +7 -2
- package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +15 -11
- package/corpus/templates/analytics/app/components/dashboard/StatsCard.tsx +7 -1
- package/corpus/templates/analytics/app/components/dashboard/TimeSeriesChart.tsx +7 -2
- package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +16 -16
- package/corpus/templates/analytics/app/components/layout/HeaderActions.tsx +1 -2
- package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +5 -2
- package/corpus/templates/analytics/app/components/layout/NewAnalysisDialog.tsx +6 -6
- package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +3 -4
- package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +12 -9
- package/corpus/templates/analytics/app/components/ui/calendar.tsx +1 -1
- package/corpus/templates/analytics/app/hooks/use-navigation-state.ts +11 -2
- package/corpus/templates/analytics/app/i18n/zh-TW.ts +23 -2
- package/corpus/templates/analytics/app/i18n-data.ts +230 -20
- package/corpus/templates/analytics/app/pages/Agents.tsx +406 -12
- package/corpus/templates/analytics/app/pages/DataDictionary.tsx +21 -21
- package/corpus/templates/analytics/app/pages/DataSources.tsx +28 -28
- package/corpus/templates/analytics/app/pages/NotFound.tsx +1 -2
- package/corpus/templates/analytics/app/pages/Placeholder.tsx +1 -2
- package/corpus/templates/analytics/app/pages/Settings.tsx +16 -16
- package/corpus/templates/analytics/app/pages/adhoc/DashboardSkeleton.tsx +2 -3
- package/corpus/templates/analytics/app/pages/adhoc/_shared/KpiChart.tsx +13 -8
- package/corpus/templates/analytics/app/pages/adhoc/_shared/components/DateRangeInput.tsx +2 -1
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/ChartTypePicker.tsx +4 -2
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/DateRangePicker.tsx +2 -1
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventCombobox.tsx +7 -7
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventPanel.tsx +1 -2
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventRow.tsx +1 -2
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/ExplorerChart.tsx +8 -3
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/FilterBuilder.tsx +4 -5
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/GroupByPicker.tsx +1 -2
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/PropertyCombobox.tsx +7 -7
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/PropertyValueCombobox.tsx +7 -7
- package/corpus/templates/analytics/app/pages/adhoc/explorer/components/SqlPreview.tsx +1 -1
- package/corpus/templates/analytics/app/pages/adhoc/explorer/index.tsx +16 -16
- package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/ChartCard.tsx +21 -16
- package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +32 -32
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/DashboardFilterBar.tsx +14 -14
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/EmailReportDialog.tsx +13 -14
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +21 -13
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +28 -23
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewSqlPopover.tsx +12 -12
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewsMenu.tsx +15 -15
- package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +33 -29
- package/corpus/templates/analytics/app/pages/analyses/AnalysesList.tsx +7 -8
- package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +19 -19
- package/corpus/templates/analytics/app/pages/analyses/LegacyFusionAnalysis.tsx +15 -11
- package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +42 -23
- package/corpus/templates/analytics/app/pages/sessions/SessionDevToolsPanel.tsx +12 -7
- package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +12 -12
- package/corpus/templates/analytics/app/pages/settings/AlertRulesSettingsCard.tsx +25 -25
- package/corpus/templates/analytics/app/root.tsx +2 -2
- package/corpus/templates/analytics/app/routes/catalog.tsx +8 -8
- package/corpus/templates/analytics/changelog/2026-07-03-connect-other-app-databases-from-analytics.md +6 -0
- package/corpus/templates/analytics/package.json +1 -0
- package/corpus/templates/analytics/server/db/schema.ts +27 -0
- package/corpus/templates/analytics/server/lib/db-admin-connections.ts +458 -0
- package/corpus/templates/analytics/server/lib/session-replay-agent-context.ts +59 -59
- package/corpus/templates/analytics/server/plugins/db.ts +35 -0
- package/corpus/templates/analytics/server/routes/[base]/_agent-native/analytics-db-admin/[...path].ts +1 -0
- package/corpus/templates/analytics/server/routes/_agent-native/analytics-db-admin/[...path].ts +160 -0
- package/corpus/templates/analytics/shared/session-replay-agent-access.ts +14 -3
- package/corpus/templates/assets/app/components/create/RecentDraftsSection.tsx +2 -3
- package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +9 -9
- package/corpus/templates/assets/app/components/layout/Header.tsx +4 -2
- package/corpus/templates/assets/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/assets/app/components/layout/PageShell.tsx +5 -6
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +12 -12
- package/corpus/templates/assets/app/components/library/CreateLibraryDialog.tsx +8 -8
- package/corpus/templates/assets/app/components/library/EditLibraryDialog.tsx +7 -7
- package/corpus/templates/assets/app/components/library/LibraryCard.tsx +8 -8
- package/corpus/templates/assets/app/components/library/LibraryPresetGrid.tsx +2 -3
- package/corpus/templates/assets/app/root.tsx +1 -1
- package/corpus/templates/assets/app/routes/asset.$id.tsx +19 -19
- package/corpus/templates/assets/app/routes/audit.tsx +14 -15
- package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +54 -49
- package/corpus/templates/assets/app/routes/library.tsx +31 -31
- package/corpus/templates/assets/app/routes/settings.tsx +18 -18
- package/corpus/templates/assets/package.json +1 -0
- package/corpus/templates/brain/app/components/brain/CanonicalPreviewSheet.tsx +5 -6
- package/corpus/templates/brain/app/components/brain/Surface.tsx +8 -3
- package/corpus/templates/brain/app/components/layout/Layout.tsx +7 -7
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +6 -6
- package/corpus/templates/brain/app/routes/knowledge.tsx +19 -19
- package/corpus/templates/brain/app/routes/ops.tsx +18 -18
- package/corpus/templates/brain/app/routes/review.tsx +27 -22
- package/corpus/templates/brain/app/routes/search.tsx +20 -20
- package/corpus/templates/brain/app/routes/settings.tsx +22 -22
- package/corpus/templates/brain/app/routes/sources.tsx +23 -23
- package/corpus/templates/brain/package.json +1 -0
- package/corpus/templates/calendar/app/components/ThemeToggle.tsx +5 -5
- package/corpus/templates/calendar/app/components/TimezoneCombobox.tsx +6 -6
- package/corpus/templates/calendar/app/components/booking/BookingConfirmation.tsx +1 -2
- package/corpus/templates/calendar/app/components/booking/BookingForm.tsx +8 -9
- package/corpus/templates/calendar/app/components/booking/DatePicker.tsx +2 -2
- package/corpus/templates/calendar/app/components/booking/TimeSlotPicker.tsx +2 -3
- package/corpus/templates/calendar/app/components/calendar/AddCalendarDialog.tsx +15 -10
- package/corpus/templates/calendar/app/components/calendar/AttendeeAutocomplete.tsx +6 -6
- package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +27 -27
- package/corpus/templates/calendar/app/components/calendar/DeleteEventDialog.tsx +12 -9
- package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +13 -10
- package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +7 -7
- package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +21 -21
- package/corpus/templates/calendar/app/components/calendar/EventDialog.tsx +11 -11
- package/corpus/templates/calendar/app/components/calendar/EventOptionControls.tsx +9 -9
- package/corpus/templates/calendar/app/components/calendar/FindTimePanel.tsx +9 -9
- 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/calendar/GoogleSyncButton.tsx +1 -1
- package/corpus/templates/calendar/app/components/calendar/GuestNotificationDialog.tsx +10 -8
- package/corpus/templates/calendar/app/components/calendar/IntegrationsSidebar.tsx +12 -12
- package/corpus/templates/calendar/app/components/calendar/KeyboardShortcutsHelp.tsx +2 -2
- package/corpus/templates/calendar/app/components/calendar/MonthView.tsx +1 -1
- package/corpus/templates/calendar/app/components/calendar/PeopleSearchDialog.tsx +6 -6
- package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +6 -6
- package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +2 -2
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +16 -16
- package/corpus/templates/calendar/app/pages/AvailabilitySettings.tsx +11 -11
- package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +50 -45
- package/corpus/templates/calendar/app/pages/BookingPage.tsx +2 -2
- package/corpus/templates/calendar/app/pages/BookingsList.tsx +12 -12
- package/corpus/templates/calendar/app/pages/CalendarView.tsx +17 -17
- package/corpus/templates/calendar/app/pages/ManageBookingPage.tsx +13 -13
- package/corpus/templates/calendar/app/pages/Settings.tsx +12 -12
- package/corpus/templates/calendar/app/routes/event.tsx +2 -2
- package/corpus/templates/calendar/package.json +1 -0
- package/corpus/templates/chat/app/components/layout/Header.tsx +4 -2
- package/corpus/templates/chat/app/components/layout/Layout.tsx +7 -7
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +12 -12
- package/corpus/templates/chat/app/routes/database.tsx +1 -2
- package/corpus/templates/chat/app/routes/observability.tsx +1 -1
- package/corpus/templates/chat/app/routes/settings.tsx +5 -5
- package/corpus/templates/chat/package.json +1 -0
- package/corpus/templates/clips/AGENTS.md +5 -0
- package/corpus/templates/clips/actions/create-recording-agent-link.ts +15 -20
- package/corpus/templates/clips/actions/delete-recording-permanent.ts +74 -34
- package/corpus/templates/clips/app/components/capture-install-options.tsx +6 -6
- package/corpus/templates/clips/app/components/editable-recording-title.tsx +2 -2
- package/corpus/templates/clips/app/components/editor/chapters-editor.tsx +7 -7
- package/corpus/templates/clips/app/components/editor/editor-layout.tsx +165 -3
- package/corpus/templates/clips/app/components/editor/editor-toolbar.tsx +101 -57
- package/corpus/templates/clips/app/components/editor/split-button.tsx +4 -5
- package/corpus/templates/clips/app/components/editor/stitch-manager.tsx +9 -9
- package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +16 -11
- package/corpus/templates/clips/app/components/editor/timeline.tsx +4 -6
- package/corpus/templates/clips/app/components/editor/transcript-editor.tsx +5 -5
- package/corpus/templates/clips/app/components/editor/trim-handles.tsx +4 -7
- package/corpus/templates/clips/app/components/editor/waveform.tsx +13 -4
- package/corpus/templates/clips/app/components/layout/Header.tsx +4 -2
- package/corpus/templates/clips/app/components/layout/Layout.tsx +2 -3
- package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +4 -4
- package/corpus/templates/clips/app/components/library/create-space-dialog.tsx +8 -8
- package/corpus/templates/clips/app/components/library/empty-state.tsx +1 -2
- package/corpus/templates/clips/app/components/library/folder-tree.tsx +14 -14
- package/corpus/templates/clips/app/components/library/library-grid.tsx +7 -7
- package/corpus/templates/clips/app/components/library/library-layout.tsx +16 -16
- package/corpus/templates/clips/app/components/library/organization-switcher.tsx +11 -11
- package/corpus/templates/clips/app/components/library/recording-card.tsx +16 -12
- package/corpus/templates/clips/app/components/library/search-bar.tsx +5 -5
- package/corpus/templates/clips/app/components/library/sort-menu.tsx +3 -4
- package/corpus/templates/clips/app/components/library/tag-input.tsx +4 -4
- package/corpus/templates/clips/app/components/meetings/attendee-stack.tsx +6 -2
- package/corpus/templates/clips/app/components/meetings/auto-record-prompt.tsx +1 -1
- package/corpus/templates/clips/app/components/meetings/bullet-link.tsx +4 -4
- package/corpus/templates/clips/app/components/meetings/canvas-editor.tsx +5 -5
- package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +3 -3
- package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +9 -9
- package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +11 -6
- package/corpus/templates/clips/app/components/meetings/transcript-bubbles.tsx +4 -4
- package/corpus/templates/clips/app/components/player/access-password-prompt.tsx +2 -3
- package/corpus/templates/clips/app/components/player/comments-panel.tsx +14 -14
- package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +6 -7
- package/corpus/templates/clips/app/components/player/insights-panel.tsx +1 -2
- package/corpus/templates/clips/app/components/player/player-controls.tsx +15 -15
- package/corpus/templates/clips/app/components/player/reactions-tray.tsx +3 -3
- package/corpus/templates/clips/app/components/player/settings-panel.tsx +12 -13
- package/corpus/templates/clips/app/components/player/share-dialog.tsx +20 -11
- package/corpus/templates/clips/app/components/player/sign-in-prompt-dialog.tsx +2 -3
- package/corpus/templates/clips/app/components/player/timestamped-comment-button.tsx +2 -2
- package/corpus/templates/clips/app/components/player/transcript-panel.tsx +7 -7
- package/corpus/templates/clips/app/components/player/video-player.tsx +9 -9
- package/corpus/templates/clips/app/components/recorder/camera-visualizer.tsx +1 -1
- package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +1 -1
- package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +21 -21
- package/corpus/templates/clips/app/components/recorder/recording-toolbar.tsx +5 -6
- package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +6 -7
- package/corpus/templates/clips/app/components/sharing/share-ui.tsx +10 -10
- package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +9 -5
- package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +19 -9
- package/corpus/templates/clips/app/components/workspace/invite-dialog.tsx +9 -10
- package/corpus/templates/clips/app/components/workspace/members-list.tsx +10 -11
- package/corpus/templates/clips/app/components/workspace/notifications-list.tsx +1 -2
- package/corpus/templates/clips/app/components/workspace/top-creators-table.tsx +2 -3
- package/corpus/templates/clips/app/components/workspace/top-videos-table.tsx +2 -3
- package/corpus/templates/clips/app/hooks/use-desktop-promo.ts +1 -2
- package/corpus/templates/clips/app/root.tsx +10 -10
- package/corpus/templates/clips/app/routes/_app.dictate.tsx +13 -13
- package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +35 -26
- package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +20 -20
- package/corpus/templates/clips/app/routes/_app.notifications.tsx +3 -3
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +31 -31
- package/corpus/templates/clips/app/routes/_app.settings.organization.tsx +13 -8
- package/corpus/templates/clips/app/routes/_app.spaces._index.tsx +1 -1
- package/corpus/templates/clips/app/routes/_app.trash.tsx +10 -10
- package/corpus/templates/clips/app/routes/bug-report.done.tsx +1 -1
- package/corpus/templates/clips/app/routes/bug-report.tsx +11 -11
- package/corpus/templates/clips/app/routes/download.tsx +2 -2
- package/corpus/templates/clips/app/routes/embed.$shareId.tsx +1 -1
- package/corpus/templates/clips/app/routes/invite.$token.tsx +13 -8
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +28 -23
- package/corpus/templates/clips/app/routes/record.tsx +3 -3
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +41 -20
- package/corpus/templates/clips/app/routes/share.meeting.$meetingId.tsx +2 -2
- package/corpus/templates/clips/changelog/2026-07-05-desktop-full-screen-recordings-with-system-audio-now-finaliz.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-05-desktop-recording-shortcut-start-stop.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-05-desktop-recordings-no-longer-fail-when-saved-capture-constra.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-05-permanently-deleted-clips-now-clean-up-s3-media-objects.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-05-timeline-zoom-controls-are-now-visible-in-the-clip-editor-an.md +6 -0
- package/corpus/templates/clips/desktop/src/app.tsx +98 -1
- package/corpus/templates/clips/desktop/src/components/MediaDeviceRow.tsx +3 -2
- package/corpus/templates/clips/desktop/src/lib/media-capture-constraints.ts +121 -0
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +55 -84
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +77 -39
- package/corpus/templates/clips/desktop/src-tauri/src/shortcuts.rs +60 -8
- package/corpus/templates/clips/package.json +1 -0
- package/corpus/templates/clips/server/lib/public-agent-context.ts +17 -12
- package/corpus/templates/clips/server/lib/recording-media-cleanup.ts +110 -0
- package/corpus/templates/clips/server/lib/s3-upload-provider.ts +126 -0
- package/corpus/templates/clips/server/routes/api/public-recording.get.ts +47 -11
- package/corpus/templates/clips/shared/agent-context.ts +23 -21
- package/corpus/templates/content/app/blocks/contentBlockRegistry.tsx +4 -4
- package/corpus/templates/content/app/components/EmptyState.tsx +1 -1
- package/corpus/templates/content/app/components/ThemeToggle.tsx +6 -6
- package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +5 -5
- package/corpus/templates/content/app/components/editor/CommentsSidebar.tsx +5 -5
- package/corpus/templates/content/app/components/editor/ContentReferencePreview.tsx +1 -1
- package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +36 -36
- package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +3 -3
- package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +29 -29
- package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +23 -23
- package/corpus/templates/content/app/components/editor/EmojiPicker.tsx +4 -5
- package/corpus/templates/content/app/components/editor/LinkHoverPreview.tsx +4 -5
- package/corpus/templates/content/app/components/editor/NotionConflictBanner.tsx +1 -1
- package/corpus/templates/content/app/components/editor/NotionSyncBar.tsx +2 -2
- package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +5 -5
- package/corpus/templates/content/app/components/editor/TableHoverControls.tsx +13 -13
- package/corpus/templates/content/app/components/editor/VersionHistoryPanel.tsx +10 -10
- package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +41 -41
- package/corpus/templates/content/app/components/editor/database/shared.tsx +19 -19
- package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +8 -9
- package/corpus/templates/content/app/components/editor/extensions/AudioBlock.tsx +18 -19
- package/corpus/templates/content/app/components/editor/extensions/ImageBlock.tsx +20 -21
- package/corpus/templates/content/app/components/editor/extensions/LocalMdxComponentNode.tsx +8 -8
- package/corpus/templates/content/app/components/editor/extensions/VideoBlock.tsx +18 -19
- package/corpus/templates/content/app/components/layout/Header.tsx +4 -2
- package/corpus/templates/content/app/components/layout/Layout.tsx +3 -3
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +22 -22
- package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +22 -22
- package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +11 -11
- package/corpus/templates/content/app/root.tsx +13 -5
- package/corpus/templates/content/app/routes/_app._index.tsx +1 -1
- package/corpus/templates/content/app/routes/_app.local-files.tsx +11 -11
- package/corpus/templates/content/app/routes/_app.settings.tsx +3 -3
- package/corpus/templates/content/changelog/2026-07-03-error-screens-now-include-a-feedback-button-with-debug-info.md +6 -0
- package/corpus/templates/content/package.json +1 -0
- package/corpus/templates/design/AGENTS.md +13 -7
- package/corpus/templates/design/actions/get-design-system.ts +21 -0
- package/corpus/templates/design/actions/index-design-system-with-builder.ts +14 -37
- package/corpus/templates/design/app/components/ThemeToggle.tsx +6 -6
- package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +11 -11
- package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +2 -2
- package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +21 -16
- package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +3 -3
- package/corpus/templates/design/app/components/design/DrawOverlay.tsx +7 -7
- package/corpus/templates/design/app/components/design/EditPanel.tsx +30 -30
- package/corpus/templates/design/app/components/design/FusionAppBanner.tsx +8 -9
- package/corpus/templates/design/app/components/design/LayersPanel.tsx +14 -14
- package/corpus/templates/design/app/components/design/LocalhostWriteConsentDialog.tsx +5 -6
- package/corpus/templates/design/app/components/design/MotionDock.tsx +15 -15
- package/corpus/templates/design/app/components/design/QuestionFlow.tsx +3 -3
- package/corpus/templates/design/app/components/design/ReviewPanel.tsx +3 -3
- package/corpus/templates/design/app/components/design/StatesPanel.tsx +13 -13
- package/corpus/templates/design/app/components/design/TokensPanel.tsx +14 -14
- package/corpus/templates/design/app/components/design/TweaksPanel.tsx +6 -6
- package/corpus/templates/design/app/components/design/code-workbench/ActivityBar.tsx +3 -3
- package/corpus/templates/design/app/components/design/code-workbench/CodeWorkbench.tsx +3 -3
- package/corpus/templates/design/app/components/design/code-workbench/SideBar.tsx +70 -9
- package/corpus/templates/design/app/components/design/code-workbench/editor/EditorTabs.tsx +17 -8
- package/corpus/templates/design/app/components/design/code-workbench/editor/MonacoHost.tsx +2 -3
- package/corpus/templates/design/app/components/design/code-workbench/editor/StatusBar.tsx +1 -1
- package/corpus/templates/design/app/components/design/code-workbench/explorer/ExplorerView.tsx +8 -2
- package/corpus/templates/design/app/components/design/code-workbench/explorer/FileTree.tsx +24 -20
- package/corpus/templates/design/app/components/design/code-workbench/search/SearchView.tsx +6 -6
- package/corpus/templates/design/app/components/design/code-workbench/store.tsx +48 -0
- package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +3 -3
- package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +7 -7
- package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +3 -3
- package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +18 -18
- package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +6 -6
- package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +6 -6
- package/corpus/templates/design/app/components/design/inspector/InspectorAiActions.tsx +7 -7
- package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +7 -7
- package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +14 -14
- package/corpus/templates/design/app/components/design/inspector/ShaderEffectRow.tsx +9 -9
- package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +6 -6
- package/corpus/templates/design/app/components/design-system/DesignSystemCard.tsx +2 -3
- package/corpus/templates/design/app/components/editor/PromptDialog.tsx +18 -15
- package/corpus/templates/design/app/components/layout/Header.tsx +4 -2
- package/corpus/templates/design/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +5 -5
- package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +7 -7
- package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +7 -7
- package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +3 -3
- package/corpus/templates/design/app/hooks/useDesignHotkeys.ts +6 -0
- package/corpus/templates/design/app/i18n/zh-TW.ts +15 -14
- package/corpus/templates/design/app/i18n-data.ts +154 -142
- package/corpus/templates/design/app/pages/DesignEditor.tsx +51 -47
- package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +40 -22
- package/corpus/templates/design/app/pages/DesignSystems.tsx +32 -32
- package/corpus/templates/design/app/pages/Index.tsx +28 -28
- package/corpus/templates/design/app/pages/NotFound.tsx +1 -2
- package/corpus/templates/design/app/pages/Present.tsx +1 -2
- package/corpus/templates/design/app/pages/VisualEdit.tsx +1 -2
- package/corpus/templates/design/app/root.tsx +1 -1
- package/corpus/templates/design/app/routes/settings.tsx +3 -3
- package/corpus/templates/design/changelog/2026-07-03-design-system-setup-now-indexes-figma-code-and-design-md-sou.md +6 -0
- package/corpus/templates/design/changelog/2026-07-03-the-code-editor-is-easier-to-use-with-top-sidebar-tabs-clear.md +6 -0
- package/corpus/templates/design/package.json +1 -0
- package/corpus/templates/design/server/lib/builder-design-system-proxy.ts +16 -106
- package/corpus/templates/forms/app/components/CloudUpgrade.tsx +10 -10
- package/corpus/templates/forms/app/components/ThemeToggle.tsx +5 -5
- package/corpus/templates/forms/app/components/builder/FieldPropertiesPanel.tsx +10 -11
- package/corpus/templates/forms/app/components/builder/FieldRenderer.tsx +13 -10
- package/corpus/templates/forms/app/components/layout/Header.tsx +4 -2
- package/corpus/templates/forms/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +15 -15
- package/corpus/templates/forms/app/components/ui/calendar.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/command.tsx +1 -1
- package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +24 -24
- package/corpus/templates/forms/app/pages/FormFillPage.tsx +2 -2
- package/corpus/templates/forms/app/pages/FormsListPage.tsx +25 -25
- package/corpus/templates/forms/app/pages/ResponseInsightsPage.tsx +11 -11
- package/corpus/templates/forms/app/pages/ResponsesPage.tsx +4 -4
- package/corpus/templates/forms/app/routes/_app.settings.tsx +5 -5
- package/corpus/templates/forms/app/routes/form-preview.tsx +3 -3
- package/corpus/templates/forms/package.json +1 -0
- package/corpus/templates/macros/app/components/AddExerciseDialog.tsx +1 -1
- package/corpus/templates/macros/app/components/AddMealDialog.tsx +1 -1
- package/corpus/templates/macros/app/components/AddWeightDialog.tsx +1 -1
- package/corpus/templates/macros/app/components/DailyProgress.tsx +7 -7
- package/corpus/templates/macros/app/components/WeeklyCaloriesChart.tsx +1 -2
- package/corpus/templates/macros/app/components/WeightCard.tsx +10 -10
- package/corpus/templates/macros/app/components/WeightTracker.tsx +1 -1
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +11 -7
- package/corpus/templates/macros/app/components/layout/Header.tsx +4 -2
- package/corpus/templates/macros/app/root.tsx +1 -1
- package/corpus/templates/macros/app/routes/_index.tsx +1 -1
- package/corpus/templates/macros/app/routes/analytics.tsx +9 -9
- package/corpus/templates/macros/app/routes/settings.tsx +2 -2
- package/corpus/templates/macros/package.json +1 -0
- package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +1 -1
- package/corpus/templates/mail/app/components/ThemeToggle.tsx +6 -6
- package/corpus/templates/mail/app/components/agent-engine-picker.tsx +10 -10
- package/corpus/templates/mail/app/components/email/CodeBlockLangPicker.tsx +3 -4
- package/corpus/templates/mail/app/components/email/ComposeBubbleToolbar.tsx +5 -5
- package/corpus/templates/mail/app/components/email/ComposeEditor.tsx +9 -9
- package/corpus/templates/mail/app/components/email/ComposeModal.tsx +18 -18
- package/corpus/templates/mail/app/components/email/EmailList.tsx +17 -17
- package/corpus/templates/mail/app/components/email/EmailListItem.tsx +5 -5
- package/corpus/templates/mail/app/components/email/EmailThread.tsx +6 -6
- package/corpus/templates/mail/app/components/email/InlineReplyComposer.tsx +11 -11
- package/corpus/templates/mail/app/components/email/IntegrationsSidebar.tsx +13 -13
- package/corpus/templates/mail/app/components/email/MobileActionBar.tsx +13 -13
- package/corpus/templates/mail/app/components/email/RecipientInput.tsx +13 -13
- package/corpus/templates/mail/app/components/email/SendLaterButton.tsx +4 -5
- package/corpus/templates/mail/app/components/email/SnoozeModal.tsx +1 -1
- package/corpus/templates/mail/app/components/email/SnoozePopover.tsx +6 -6
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +12 -12
- package/corpus/templates/mail/app/components/layout/SearchBar.tsx +5 -5
- package/corpus/templates/mail/app/components/settings/GmailFiltersSection.tsx +23 -23
- package/corpus/templates/mail/app/components/ui/calendar.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/command.tsx +1 -1
- package/corpus/templates/mail/app/pages/DraftQueuePage.tsx +14 -14
- package/corpus/templates/mail/app/pages/NotFound.tsx +1 -2
- package/corpus/templates/mail/app/pages/SettingsPage.tsx +25 -25
- package/corpus/templates/mail/app/root.tsx +61 -2
- package/corpus/templates/mail/app/routes/_index.tsx +1 -2
- package/corpus/templates/mail/app/routes/email.tsx +2 -2
- package/corpus/templates/mail/changelog/2026-07-03-error-screens-now-include-a-feedback-button-with-debug-info.md +6 -0
- package/corpus/templates/mail/package.json +1 -0
- package/corpus/templates/plan/app/components/layout/Header.tsx +4 -2
- package/corpus/templates/plan/app/components/layout/Layout.tsx +5 -6
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +20 -20
- package/corpus/templates/plan/app/components/plan/CanvasArea.tsx +2 -3
- package/corpus/templates/plan/app/components/plan/DocumentArea.tsx +2 -2
- package/corpus/templates/plan/app/components/plan/GuestModeBanner.tsx +1 -2
- package/corpus/templates/plan/app/components/plan/LocalCodebasePicker.tsx +8 -8
- package/corpus/templates/plan/app/components/plan/PlanContentRenderer.tsx +1 -1
- package/corpus/templates/plan/app/components/plan/PlanImageViewer.tsx +83 -82
- package/corpus/templates/plan/app/components/plan/PlanVisualSurface.tsx +3 -3
- package/corpus/templates/plan/app/components/plan/planBlocks.tsx +4 -4
- package/corpus/templates/plan/app/i18n/ar-SA.ts +3 -0
- package/corpus/templates/plan/app/i18n/de-DE.ts +4 -0
- package/corpus/templates/plan/app/i18n/en-US.ts +4 -0
- package/corpus/templates/plan/app/i18n/es-ES.ts +4 -0
- package/corpus/templates/plan/app/i18n/fr-FR.ts +4 -0
- package/corpus/templates/plan/app/i18n/hi-IN.ts +3 -0
- package/corpus/templates/plan/app/i18n/ja-JP.ts +4 -0
- package/corpus/templates/plan/app/i18n/ko-KR.ts +4 -0
- package/corpus/templates/plan/app/i18n/pt-BR.ts +4 -0
- package/corpus/templates/plan/app/i18n/zh-CN.ts +3 -0
- package/corpus/templates/plan/app/i18n/zh-TW.ts +3 -0
- package/corpus/templates/plan/app/pages/PlansPage.tsx +158 -80
- package/corpus/templates/plan/app/root.tsx +1 -1
- package/corpus/templates/plan/app/routes/_index.tsx +2 -1
- package/corpus/templates/plan/app/routes/local-plans.$slug.tsx +1 -1
- package/corpus/templates/plan/app/routes/plans.$id.tsx +2 -1
- package/corpus/templates/plan/app/routes/plans.tsx +2 -1
- package/corpus/templates/plan/app/routes/recaps.$id.tsx +2 -1
- package/corpus/templates/plan/app/routes/recaps.tsx +2 -1
- package/corpus/templates/plan/app/routes/settings.tsx +5 -5
- package/corpus/templates/plan/changelog/2026-07-03-error-screens-now-include-a-feedback-button-with-debug-info.md +6 -0
- package/corpus/templates/plan/changelog/2026-07-05-images-in-plan-documents-open-reliably-in-the-full-size-prev.md +6 -0
- package/corpus/templates/plan/package.json +1 -0
- package/corpus/templates/slides/AGENTS.md +7 -3
- package/corpus/templates/slides/actions/get-design-system.ts +21 -0
- package/corpus/templates/slides/actions/import-file.ts +15 -7
- package/corpus/templates/slides/actions/index-design-system-with-builder.ts +14 -37
- package/corpus/templates/slides/app/components/ThemeToggle.tsx +6 -6
- package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +5 -5
- package/corpus/templates/slides/app/components/deck/DeckCard.tsx +7 -7
- package/corpus/templates/slides/app/components/deck/ExcalidrawSlide.tsx +1 -2
- package/corpus/templates/slides/app/components/deck/SlideRenderer.tsx +1 -1
- package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +2 -3
- package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +45 -22
- package/corpus/templates/slides/app/components/editor/AnimationsPanel.tsx +7 -7
- package/corpus/templates/slides/app/components/editor/BlockBubbleMenu.tsx +5 -5
- package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +8 -8
- package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +15 -17
- package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +9 -10
- package/corpus/templates/slides/app/components/editor/GenerateSlidesDialog.tsx +5 -6
- package/corpus/templates/slides/app/components/editor/HistoryPanel.tsx +12 -12
- package/corpus/templates/slides/app/components/editor/ImageDropPromptPopover.tsx +3 -4
- package/corpus/templates/slides/app/components/editor/ImageSearchPanel.tsx +4 -5
- package/corpus/templates/slides/app/components/editor/ImportButton.tsx +3 -4
- package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +1 -2
- package/corpus/templates/slides/app/components/editor/ShareDialog.tsx +10 -10
- package/corpus/templates/slides/app/components/editor/SlideBubbleMenu.tsx +10 -10
- package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +169 -160
- package/corpus/templates/slides/app/components/editor/SlideStyleInspector.tsx +20 -17
- package/corpus/templates/slides/app/components/editor/SpeakerNotesPanel.tsx +56 -6
- package/corpus/templates/slides/app/components/editor/TweaksPanel.tsx +1 -1
- package/corpus/templates/slides/app/components/layout/Header.tsx +4 -2
- package/corpus/templates/slides/app/components/layout/Layout.tsx +7 -2
- package/corpus/templates/slides/app/components/layout/Sidebar.tsx +5 -5
- package/corpus/templates/slides/app/components/visual-editor/CanvasCommentPins.tsx +6 -6
- package/corpus/templates/slides/app/components/visual-editor/DrawOverlay.tsx +7 -7
- package/corpus/templates/slides/app/i18n/ar-SA.ts +8 -7
- package/corpus/templates/slides/app/i18n/de-DE.ts +7 -8
- package/corpus/templates/slides/app/i18n/en-US.ts +8 -7
- package/corpus/templates/slides/app/i18n/es-ES.ts +7 -8
- package/corpus/templates/slides/app/i18n/fr-FR.ts +7 -8
- package/corpus/templates/slides/app/i18n/hi-IN.ts +8 -7
- package/corpus/templates/slides/app/i18n/ja-JP.ts +7 -8
- package/corpus/templates/slides/app/i18n/ko-KR.ts +7 -7
- package/corpus/templates/slides/app/i18n/pt-BR.ts +7 -8
- package/corpus/templates/slides/app/i18n/zh-CN.ts +8 -7
- package/corpus/templates/slides/app/i18n/zh-TW.ts +8 -7
- package/corpus/templates/slides/app/lib/canvas-zoom.ts +16 -1
- package/corpus/templates/slides/app/pages/DeckEditor.tsx +6 -6
- package/corpus/templates/slides/app/pages/DesignSystems.tsx +5 -5
- package/corpus/templates/slides/app/pages/Index.tsx +18 -15
- package/corpus/templates/slides/app/root.tsx +3 -3
- package/corpus/templates/slides/app/routes/settings.tsx +5 -5
- package/corpus/templates/slides/changelog/2026-07-03-design-system-setup-now-indexes-figma-code-and-design-md-sou.md +6 -0
- package/corpus/templates/slides/changelog/2026-07-03-slide-editing-now-keeps-thumbnails-speaker-notes-styling-and.md +6 -0
- package/corpus/templates/slides/package.json +1 -0
- package/corpus/templates/slides/server/lib/builder-design-system-proxy.ts +16 -104
- package/dist/application-state/emitter.d.ts +9 -2
- package/dist/application-state/emitter.d.ts.map +1 -1
- package/dist/application-state/emitter.js +25 -3
- package/dist/application-state/emitter.js.map +1 -1
- package/dist/cli/create.d.ts +2 -1
- package/dist/cli/create.d.ts.map +1 -1
- package/dist/cli/create.js +52 -4
- package/dist/cli/create.js.map +1 -1
- package/dist/cli/workspacify.d.ts +2 -0
- package/dist/cli/workspacify.d.ts.map +1 -1
- package/dist/cli/workspacify.js +8 -4
- package/dist/cli/workspacify.js.map +1 -1
- package/dist/client/AgentPanel.d.ts.map +1 -1
- package/dist/client/AgentPanel.js +2 -1
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AssistantChat.d.ts.map +1 -1
- package/dist/client/AssistantChat.js +77 -25
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/ErrorBoundary.d.ts.map +1 -1
- package/dist/client/ErrorBoundary.js +37 -2
- package/dist/client/ErrorBoundary.js.map +1 -1
- package/dist/client/ErrorReportActions.d.ts +13 -0
- package/dist/client/ErrorReportActions.d.ts.map +1 -0
- package/dist/client/ErrorReportActions.js +14 -0
- package/dist/client/ErrorReportActions.js.map +1 -0
- package/dist/client/FeedbackButton.d.ts +3 -1
- package/dist/client/FeedbackButton.d.ts.map +1 -1
- package/dist/client/FeedbackButton.js +6 -5
- package/dist/client/FeedbackButton.js.map +1 -1
- package/dist/client/components/ui/dialog.d.ts +1 -13
- package/dist/client/components/ui/dialog.d.ts.map +1 -1
- package/dist/client/components/ui/dialog.js +1 -20
- package/dist/client/components/ui/dialog.js.map +1 -1
- package/dist/client/components/ui/dropdown-menu.d.ts +1 -27
- package/dist/client/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/client/components/ui/dropdown-menu.js +1 -33
- package/dist/client/components/ui/dropdown-menu.js.map +1 -1
- package/dist/client/components/ui/hover-card.d.ts +1 -6
- package/dist/client/components/ui/hover-card.d.ts.map +1 -1
- package/dist/client/components/ui/hover-card.js +1 -9
- package/dist/client/components/ui/hover-card.js.map +1 -1
- package/dist/client/components/ui/popover.d.ts +1 -7
- package/dist/client/components/ui/popover.d.ts.map +1 -1
- package/dist/client/components/ui/popover.js +1 -10
- package/dist/client/components/ui/popover.js.map +1 -1
- package/dist/client/components/ui/sheet.d.ts +1 -15
- package/dist/client/components/ui/sheet.d.ts.map +1 -1
- package/dist/client/components/ui/sheet.js +1 -22
- package/dist/client/components/ui/sheet.js.map +1 -1
- package/dist/client/components/ui/tooltip.d.ts +1 -8
- package/dist/client/components/ui/tooltip.d.ts.map +1 -1
- package/dist/client/components/ui/tooltip.js +1 -17
- package/dist/client/components/ui/tooltip.js.map +1 -1
- package/dist/client/db-admin/DbAdminPage.d.ts +9 -1
- package/dist/client/db-admin/DbAdminPage.d.ts.map +1 -1
- package/dist/client/db-admin/DbAdminPage.js +17 -13
- package/dist/client/db-admin/DbAdminPage.js.map +1 -1
- package/dist/client/db-admin/SqlEditor.d.ts +3 -1
- package/dist/client/db-admin/SqlEditor.d.ts.map +1 -1
- package/dist/client/db-admin/SqlEditor.js +3 -3
- package/dist/client/db-admin/SqlEditor.js.map +1 -1
- package/dist/client/db-admin/TableEditor.d.ts +3 -1
- package/dist/client/db-admin/TableEditor.d.ts.map +1 -1
- package/dist/client/db-admin/TableEditor.js +6 -6
- package/dist/client/db-admin/TableEditor.js.map +1 -1
- package/dist/client/db-admin/useAgentSync.d.ts +3 -2
- package/dist/client/db-admin/useAgentSync.d.ts.map +1 -1
- package/dist/client/db-admin/useAgentSync.js +8 -4
- package/dist/client/db-admin/useAgentSync.js.map +1 -1
- package/dist/client/db-admin/useDbAdmin.d.ts +11 -7
- package/dist/client/db-admin/useDbAdmin.d.ts.map +1 -1
- package/dist/client/db-admin/useDbAdmin.js +45 -20
- package/dist/client/db-admin/useDbAdmin.js.map +1 -1
- package/dist/client/error-reporting.d.ts +19 -0
- package/dist/client/error-reporting.d.ts.map +1 -0
- package/dist/client/error-reporting.js +71 -0
- package/dist/client/error-reporting.js.map +1 -0
- package/dist/client/index.d.ts +3 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +3 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/org/RequireActiveOrg.d.ts.map +1 -1
- package/dist/client/org/RequireActiveOrg.js +2 -1
- package/dist/client/org/RequireActiveOrg.js.map +1 -1
- package/dist/client/visual-style-controls.d.ts +11 -0
- package/dist/client/visual-style-controls.d.ts.map +1 -1
- package/dist/client/visual-style-controls.js +350 -1
- package/dist/client/visual-style-controls.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/db-admin/index.d.ts +3 -0
- package/dist/db-admin/index.d.ts.map +1 -0
- package/dist/db-admin/index.js +2 -0
- package/dist/db-admin/index.js.map +1 -0
- package/dist/db-admin/operations.d.ts +26 -5
- package/dist/db-admin/operations.d.ts.map +1 -1
- package/dist/db-admin/operations.js +66 -55
- package/dist/db-admin/operations.js.map +1 -1
- package/dist/localization/default-messages.d.ts +3 -0
- package/dist/localization/default-messages.d.ts.map +1 -1
- package/dist/localization/default-messages.js +3 -0
- package/dist/localization/default-messages.js.map +1 -1
- package/dist/provider-api/corpus-jobs.d.ts +2 -2
- package/dist/secrets/crypto.d.ts.map +1 -1
- package/dist/secrets/crypto.js +37 -4
- package/dist/secrets/crypto.js.map +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/agent-access.d.ts +16 -0
- package/dist/server/agent-access.d.ts.map +1 -0
- package/dist/server/agent-access.js +25 -0
- package/dist/server/agent-access.js.map +1 -0
- package/dist/server/builder-design-systems.d.ts +61 -0
- package/dist/server/builder-design-systems.d.ts.map +1 -1
- package/dist/server/builder-design-systems.js +219 -14
- package/dist/server/builder-design-systems.js.map +1 -1
- package/dist/server/h3-helpers.d.ts.map +1 -1
- package/dist/server/h3-helpers.js +12 -2
- package/dist/server/h3-helpers.js.map +1 -1
- package/dist/server/index.d.ts +2 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/request-context.d.ts +17 -0
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/request-context.js +46 -6
- package/dist/server/request-context.js.map +1 -1
- package/dist/shared/agent-access.d.ts +29 -0
- package/dist/shared/agent-access.d.ts.map +1 -0
- package/dist/shared/agent-access.js +57 -0
- package/dist/shared/agent-access.js.map +1 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -0
- package/dist/shared/index.js.map +1 -1
- package/dist/templates/default/app/root.tsx +47 -0
- package/docs/content/components.mdx +13 -0
- package/docs/content/creating-templates.mdx +7 -0
- package/docs/content/locales/ar-SA/components.mdx +9 -0
- package/docs/content/locales/ar-SA/creating-templates.mdx +2 -0
- package/docs/content/locales/ar-SA/template-analytics.mdx +6 -0
- package/docs/content/locales/ar-SA/template-clips.mdx +7 -0
- package/docs/content/locales/ar-SA/tracking.mdx +6 -0
- package/docs/content/locales/de-DE/components.mdx +9 -0
- package/docs/content/locales/de-DE/creating-templates.mdx +2 -0
- package/docs/content/locales/de-DE/template-analytics.mdx +6 -0
- package/docs/content/locales/de-DE/template-clips.mdx +7 -0
- package/docs/content/locales/de-DE/tracking.mdx +6 -0
- package/docs/content/locales/es-ES/components.mdx +9 -0
- package/docs/content/locales/es-ES/creating-templates.mdx +2 -0
- package/docs/content/locales/es-ES/template-analytics.mdx +6 -0
- package/docs/content/locales/es-ES/template-clips.mdx +7 -0
- package/docs/content/locales/es-ES/tracking.mdx +6 -0
- package/docs/content/locales/fr-FR/components.mdx +9 -0
- package/docs/content/locales/fr-FR/creating-templates.mdx +2 -0
- package/docs/content/locales/fr-FR/template-analytics.mdx +6 -0
- package/docs/content/locales/fr-FR/template-clips.mdx +7 -0
- package/docs/content/locales/fr-FR/tracking.mdx +6 -0
- package/docs/content/locales/hi-IN/components.mdx +9 -0
- package/docs/content/locales/hi-IN/creating-templates.mdx +2 -0
- package/docs/content/locales/hi-IN/template-analytics.mdx +6 -0
- package/docs/content/locales/hi-IN/template-clips.mdx +7 -0
- package/docs/content/locales/hi-IN/tracking.mdx +6 -0
- package/docs/content/locales/ja-JP/components.mdx +9 -0
- package/docs/content/locales/ja-JP/creating-templates.mdx +2 -0
- package/docs/content/locales/ja-JP/template-analytics.mdx +6 -0
- package/docs/content/locales/ja-JP/template-clips.mdx +7 -0
- package/docs/content/locales/ja-JP/tracking.mdx +6 -0
- package/docs/content/locales/ko-KR/components.mdx +9 -0
- package/docs/content/locales/ko-KR/creating-templates.mdx +2 -0
- package/docs/content/locales/ko-KR/template-analytics.mdx +6 -0
- package/docs/content/locales/ko-KR/template-clips.mdx +7 -0
- package/docs/content/locales/ko-KR/tracking.mdx +6 -0
- package/docs/content/locales/pt-BR/components.mdx +9 -0
- package/docs/content/locales/pt-BR/creating-templates.mdx +2 -0
- package/docs/content/locales/pt-BR/template-analytics.mdx +6 -0
- package/docs/content/locales/pt-BR/template-clips.mdx +7 -0
- package/docs/content/locales/pt-BR/tracking.mdx +6 -0
- package/docs/content/locales/zh-CN/components.mdx +9 -0
- package/docs/content/locales/zh-CN/creating-templates.mdx +2 -0
- package/docs/content/locales/zh-CN/template-analytics.mdx +6 -0
- package/docs/content/locales/zh-CN/template-clips.mdx +7 -0
- package/docs/content/locales/zh-CN/tracking.mdx +6 -0
- package/docs/content/locales/zh-TW/components.mdx +9 -0
- package/docs/content/locales/zh-TW/creating-templates.mdx +2 -0
- package/docs/content/locales/zh-TW/template-analytics.mdx +6 -0
- package/docs/content/locales/zh-TW/template-clips.mdx +7 -0
- package/docs/content/locales/zh-TW/tracking.mdx +6 -0
- package/docs/content/template-analytics.mdx +6 -0
- package/docs/content/template-clips.mdx +7 -0
- package/docs/content/tracking.mdx +6 -0
- package/package.json +10 -2
- package/src/templates/default/app/root.tsx +47 -0
- package/corpus/templates/analytics/app/components/ui/accordion.tsx +0 -56
- package/corpus/templates/analytics/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/analytics/app/components/ui/alert.tsx +0 -59
- package/corpus/templates/analytics/app/components/ui/aspect-ratio.tsx +0 -5
- package/corpus/templates/analytics/app/components/ui/avatar.tsx +0 -48
- package/corpus/templates/analytics/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/analytics/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/analytics/app/components/ui/button.tsx +0 -57
- package/corpus/templates/analytics/app/components/ui/card.tsx +0 -86
- package/corpus/templates/analytics/app/components/ui/carousel.tsx +0 -260
- package/corpus/templates/analytics/app/components/ui/checkbox.tsx +0 -28
- package/corpus/templates/analytics/app/components/ui/collapsible.tsx +0 -9
- package/corpus/templates/analytics/app/components/ui/command.tsx +0 -154
- package/corpus/templates/analytics/app/components/ui/context-menu.tsx +0 -202
- package/corpus/templates/analytics/app/components/ui/date-picker.tsx +0 -68
- package/corpus/templates/analytics/app/components/ui/dialog.tsx +0 -130
- package/corpus/templates/analytics/app/components/ui/drawer.tsx +0 -116
- package/corpus/templates/analytics/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/analytics/app/components/ui/form.tsx +0 -177
- package/corpus/templates/analytics/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/analytics/app/components/ui/input-otp.tsx +0 -69
- package/corpus/templates/analytics/app/components/ui/input.tsx +0 -22
- package/corpus/templates/analytics/app/components/ui/label.tsx +0 -24
- package/corpus/templates/analytics/app/components/ui/menubar.tsx +0 -234
- package/corpus/templates/analytics/app/components/ui/navigation-menu.tsx +0 -128
- package/corpus/templates/analytics/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/analytics/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/analytics/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/analytics/app/components/ui/radio-group.tsx +0 -42
- package/corpus/templates/analytics/app/components/ui/resizable.tsx +0 -43
- package/corpus/templates/analytics/app/components/ui/scroll-area.tsx +0 -46
- package/corpus/templates/analytics/app/components/ui/select.tsx +0 -158
- package/corpus/templates/analytics/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/analytics/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/analytics/app/components/ui/sidebar.tsx +0 -782
- package/corpus/templates/analytics/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/analytics/app/components/ui/slider.tsx +0 -26
- package/corpus/templates/analytics/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/analytics/app/components/ui/spinner.tsx +0 -17
- package/corpus/templates/analytics/app/components/ui/switch.tsx +0 -27
- package/corpus/templates/analytics/app/components/ui/table.tsx +0 -117
- package/corpus/templates/analytics/app/components/ui/tabs.tsx +0 -53
- package/corpus/templates/analytics/app/components/ui/textarea.tsx +0 -23
- package/corpus/templates/analytics/app/components/ui/toast.tsx +0 -127
- package/corpus/templates/analytics/app/components/ui/toaster.tsx +0 -33
- package/corpus/templates/analytics/app/components/ui/toggle-group.tsx +0 -59
- package/corpus/templates/analytics/app/components/ui/toggle.tsx +0 -43
- package/corpus/templates/analytics/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/analytics/app/components/ui/use-toast.ts +0 -3
- package/corpus/templates/analytics/app/hooks/use-mobile.tsx +0 -21
- package/corpus/templates/analytics/app/hooks/use-toast.ts +0 -188
- package/corpus/templates/assets/app/components/layout/HeaderActions.tsx +0 -84
- package/corpus/templates/assets/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/assets/app/components/ui/alert.tsx +0 -59
- package/corpus/templates/assets/app/components/ui/avatar.tsx +0 -48
- package/corpus/templates/assets/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/assets/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/assets/app/components/ui/button.tsx +0 -57
- package/corpus/templates/assets/app/components/ui/card.tsx +0 -86
- package/corpus/templates/assets/app/components/ui/checkbox.tsx +0 -28
- package/corpus/templates/assets/app/components/ui/dialog.tsx +0 -130
- package/corpus/templates/assets/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/assets/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/assets/app/components/ui/input.tsx +0 -22
- package/corpus/templates/assets/app/components/ui/label.tsx +0 -24
- package/corpus/templates/assets/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/assets/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/assets/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/assets/app/components/ui/scroll-area.tsx +0 -46
- package/corpus/templates/assets/app/components/ui/select.tsx +0 -158
- package/corpus/templates/assets/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/assets/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/assets/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/assets/app/components/ui/slider.tsx +0 -26
- package/corpus/templates/assets/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/assets/app/components/ui/spinner.tsx +0 -17
- package/corpus/templates/assets/app/components/ui/table.tsx +0 -117
- package/corpus/templates/assets/app/components/ui/tabs.tsx +0 -53
- package/corpus/templates/assets/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/brain/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/brain/app/components/ui/button.tsx +0 -57
- package/corpus/templates/brain/app/components/ui/card.tsx +0 -86
- package/corpus/templates/brain/app/components/ui/input.tsx +0 -22
- package/corpus/templates/brain/app/components/ui/label.tsx +0 -24
- package/corpus/templates/brain/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/brain/app/components/ui/select.tsx +0 -158
- package/corpus/templates/brain/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/brain/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/brain/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/brain/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/brain/app/components/ui/switch.tsx +0 -27
- package/corpus/templates/brain/app/components/ui/table.tsx +0 -117
- package/corpus/templates/brain/app/components/ui/textarea.tsx +0 -23
- package/corpus/templates/brain/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/calendar/app/components/ui/accordion.tsx +0 -56
- package/corpus/templates/calendar/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/calendar/app/components/ui/alert.tsx +0 -59
- package/corpus/templates/calendar/app/components/ui/aspect-ratio.tsx +0 -5
- package/corpus/templates/calendar/app/components/ui/avatar.tsx +0 -48
- package/corpus/templates/calendar/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/calendar/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/calendar/app/components/ui/button.tsx +0 -57
- package/corpus/templates/calendar/app/components/ui/calendar.tsx +0 -68
- package/corpus/templates/calendar/app/components/ui/card.tsx +0 -86
- package/corpus/templates/calendar/app/components/ui/carousel.tsx +0 -260
- package/corpus/templates/calendar/app/components/ui/chart.tsx +0 -375
- package/corpus/templates/calendar/app/components/ui/checkbox.tsx +0 -28
- package/corpus/templates/calendar/app/components/ui/collapsible.tsx +0 -9
- package/corpus/templates/calendar/app/components/ui/command.tsx +0 -154
- package/corpus/templates/calendar/app/components/ui/context-menu.tsx +0 -202
- package/corpus/templates/calendar/app/components/ui/dialog.tsx +0 -130
- package/corpus/templates/calendar/app/components/ui/drawer.tsx +0 -116
- package/corpus/templates/calendar/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/calendar/app/components/ui/form.tsx +0 -177
- package/corpus/templates/calendar/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/calendar/app/components/ui/input-otp.tsx +0 -69
- package/corpus/templates/calendar/app/components/ui/input.tsx +0 -22
- package/corpus/templates/calendar/app/components/ui/label.tsx +0 -24
- package/corpus/templates/calendar/app/components/ui/menubar.tsx +0 -234
- package/corpus/templates/calendar/app/components/ui/navigation-menu.tsx +0 -128
- package/corpus/templates/calendar/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/calendar/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/calendar/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/calendar/app/components/ui/radio-group.tsx +0 -42
- package/corpus/templates/calendar/app/components/ui/resizable.tsx +0 -43
- package/corpus/templates/calendar/app/components/ui/scroll-area.tsx +0 -46
- package/corpus/templates/calendar/app/components/ui/select.tsx +0 -158
- package/corpus/templates/calendar/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/calendar/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/calendar/app/components/ui/sidebar.tsx +0 -782
- package/corpus/templates/calendar/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/calendar/app/components/ui/slider.tsx +0 -26
- package/corpus/templates/calendar/app/components/ui/spinner.tsx +0 -17
- package/corpus/templates/calendar/app/components/ui/switch.tsx +0 -27
- package/corpus/templates/calendar/app/components/ui/table.tsx +0 -117
- package/corpus/templates/calendar/app/components/ui/tabs.tsx +0 -53
- package/corpus/templates/calendar/app/components/ui/textarea.tsx +0 -23
- package/corpus/templates/calendar/app/components/ui/toast.tsx +0 -127
- package/corpus/templates/calendar/app/components/ui/toaster.tsx +0 -33
- package/corpus/templates/calendar/app/components/ui/toggle-group.tsx +0 -59
- package/corpus/templates/calendar/app/components/ui/toggle.tsx +0 -43
- package/corpus/templates/calendar/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/calendar/app/components/ui/use-toast.ts +0 -3
- package/corpus/templates/calendar/app/hooks/use-mobile.tsx +0 -21
- package/corpus/templates/calendar/app/hooks/use-toast.ts +0 -188
- package/corpus/templates/chat/app/components/layout/HeaderActions.tsx +0 -84
- package/corpus/templates/chat/app/components/ui/accordion.tsx +0 -56
- package/corpus/templates/chat/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/chat/app/components/ui/alert.tsx +0 -59
- package/corpus/templates/chat/app/components/ui/aspect-ratio.tsx +0 -5
- package/corpus/templates/chat/app/components/ui/avatar.tsx +0 -48
- package/corpus/templates/chat/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/chat/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/chat/app/components/ui/button.tsx +0 -57
- package/corpus/templates/chat/app/components/ui/calendar.tsx +0 -68
- package/corpus/templates/chat/app/components/ui/card.tsx +0 -86
- package/corpus/templates/chat/app/components/ui/carousel.tsx +0 -260
- package/corpus/templates/chat/app/components/ui/chart.tsx +0 -375
- package/corpus/templates/chat/app/components/ui/checkbox.tsx +0 -28
- package/corpus/templates/chat/app/components/ui/collapsible.tsx +0 -9
- package/corpus/templates/chat/app/components/ui/command.tsx +0 -154
- package/corpus/templates/chat/app/components/ui/context-menu.tsx +0 -202
- package/corpus/templates/chat/app/components/ui/dialog.tsx +0 -130
- package/corpus/templates/chat/app/components/ui/drawer.tsx +0 -116
- package/corpus/templates/chat/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/chat/app/components/ui/form.tsx +0 -177
- package/corpus/templates/chat/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/chat/app/components/ui/input-otp.tsx +0 -69
- package/corpus/templates/chat/app/components/ui/input.tsx +0 -22
- package/corpus/templates/chat/app/components/ui/label.tsx +0 -24
- package/corpus/templates/chat/app/components/ui/menubar.tsx +0 -234
- package/corpus/templates/chat/app/components/ui/navigation-menu.tsx +0 -128
- package/corpus/templates/chat/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/chat/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/chat/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/chat/app/components/ui/radio-group.tsx +0 -42
- package/corpus/templates/chat/app/components/ui/resizable.tsx +0 -43
- package/corpus/templates/chat/app/components/ui/scroll-area.tsx +0 -46
- package/corpus/templates/chat/app/components/ui/select.tsx +0 -158
- package/corpus/templates/chat/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/chat/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/chat/app/components/ui/sidebar.tsx +0 -782
- package/corpus/templates/chat/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/chat/app/components/ui/slider.tsx +0 -26
- package/corpus/templates/chat/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/chat/app/components/ui/spinner.tsx +0 -17
- package/corpus/templates/chat/app/components/ui/switch.tsx +0 -27
- package/corpus/templates/chat/app/components/ui/table.tsx +0 -117
- package/corpus/templates/chat/app/components/ui/tabs.tsx +0 -53
- package/corpus/templates/chat/app/components/ui/textarea.tsx +0 -23
- package/corpus/templates/chat/app/components/ui/toast.tsx +0 -127
- package/corpus/templates/chat/app/components/ui/toaster.tsx +0 -33
- package/corpus/templates/chat/app/components/ui/toggle-group.tsx +0 -59
- package/corpus/templates/chat/app/components/ui/toggle.tsx +0 -43
- package/corpus/templates/chat/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/chat/app/components/ui/use-toast.ts +0 -3
- package/corpus/templates/chat/app/hooks/use-mobile.tsx +0 -21
- package/corpus/templates/chat/app/hooks/use-toast.ts +0 -188
- package/corpus/templates/clips/app/components/layout/HeaderActions.tsx +0 -84
- package/corpus/templates/clips/app/components/ui/accordion.tsx +0 -56
- package/corpus/templates/clips/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/clips/app/components/ui/alert.tsx +0 -59
- package/corpus/templates/clips/app/components/ui/aspect-ratio.tsx +0 -5
- package/corpus/templates/clips/app/components/ui/avatar.tsx +0 -48
- package/corpus/templates/clips/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/clips/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/clips/app/components/ui/button.tsx +0 -57
- package/corpus/templates/clips/app/components/ui/calendar.tsx +0 -68
- package/corpus/templates/clips/app/components/ui/card.tsx +0 -86
- package/corpus/templates/clips/app/components/ui/carousel.tsx +0 -260
- package/corpus/templates/clips/app/components/ui/chart.tsx +0 -375
- package/corpus/templates/clips/app/components/ui/checkbox.tsx +0 -28
- package/corpus/templates/clips/app/components/ui/collapsible.tsx +0 -9
- package/corpus/templates/clips/app/components/ui/command.tsx +0 -154
- package/corpus/templates/clips/app/components/ui/context-menu.tsx +0 -202
- package/corpus/templates/clips/app/components/ui/dialog.tsx +0 -130
- package/corpus/templates/clips/app/components/ui/drawer.tsx +0 -116
- package/corpus/templates/clips/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/clips/app/components/ui/form.tsx +0 -177
- package/corpus/templates/clips/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/clips/app/components/ui/input-otp.tsx +0 -69
- package/corpus/templates/clips/app/components/ui/input.tsx +0 -22
- package/corpus/templates/clips/app/components/ui/label.tsx +0 -24
- package/corpus/templates/clips/app/components/ui/menubar.tsx +0 -234
- package/corpus/templates/clips/app/components/ui/navigation-menu.tsx +0 -128
- package/corpus/templates/clips/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/clips/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/clips/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/clips/app/components/ui/radio-group.tsx +0 -42
- package/corpus/templates/clips/app/components/ui/resizable.tsx +0 -43
- package/corpus/templates/clips/app/components/ui/scroll-area.tsx +0 -46
- package/corpus/templates/clips/app/components/ui/select.tsx +0 -158
- package/corpus/templates/clips/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/clips/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/clips/app/components/ui/sidebar.tsx +0 -782
- package/corpus/templates/clips/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/clips/app/components/ui/slider.tsx +0 -26
- package/corpus/templates/clips/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/clips/app/components/ui/spinner.tsx +0 -17
- package/corpus/templates/clips/app/components/ui/switch.tsx +0 -27
- package/corpus/templates/clips/app/components/ui/table.tsx +0 -117
- package/corpus/templates/clips/app/components/ui/tabs.tsx +0 -53
- package/corpus/templates/clips/app/components/ui/textarea.tsx +0 -23
- package/corpus/templates/clips/app/components/ui/toast.tsx +0 -127
- package/corpus/templates/clips/app/components/ui/toaster.tsx +0 -33
- package/corpus/templates/clips/app/components/ui/toggle-group.tsx +0 -59
- package/corpus/templates/clips/app/components/ui/toggle.tsx +0 -43
- package/corpus/templates/clips/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/clips/app/components/ui/use-toast.ts +0 -3
- package/corpus/templates/clips/app/hooks/use-mobile.tsx +0 -21
- package/corpus/templates/clips/app/hooks/use-toast.ts +0 -188
- package/corpus/templates/content/app/components/layout/HeaderActions.tsx +0 -84
- package/corpus/templates/content/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/content/app/components/ui/button.tsx +0 -57
- package/corpus/templates/content/app/components/ui/dialog.tsx +0 -130
- package/corpus/templates/content/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/content/app/components/ui/input.tsx +0 -22
- package/corpus/templates/content/app/components/ui/label.tsx +0 -24
- package/corpus/templates/content/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/content/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/content/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/content/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/content/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/content/app/components/ui/spinner.tsx +0 -17
- package/corpus/templates/content/app/components/ui/table.tsx +0 -117
- package/corpus/templates/content/app/components/ui/toast.tsx +0 -127
- package/corpus/templates/content/app/components/ui/toaster.tsx +0 -33
- package/corpus/templates/content/app/components/ui/toggle.tsx +0 -43
- package/corpus/templates/content/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/content/app/components/ui/use-toast.ts +0 -3
- package/corpus/templates/content/app/hooks/use-mobile.tsx +0 -21
- package/corpus/templates/content/app/hooks/use-toast.ts +0 -188
- package/corpus/templates/design/app/components/layout/HeaderActions.tsx +0 -84
- package/corpus/templates/design/app/components/ui/accordion.tsx +0 -56
- package/corpus/templates/design/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/design/app/components/ui/alert.tsx +0 -59
- package/corpus/templates/design/app/components/ui/aspect-ratio.tsx +0 -5
- package/corpus/templates/design/app/components/ui/avatar.tsx +0 -48
- package/corpus/templates/design/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/design/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/design/app/components/ui/button.tsx +0 -57
- package/corpus/templates/design/app/components/ui/calendar.tsx +0 -68
- package/corpus/templates/design/app/components/ui/card.tsx +0 -86
- package/corpus/templates/design/app/components/ui/carousel.tsx +0 -260
- package/corpus/templates/design/app/components/ui/chart.tsx +0 -375
- package/corpus/templates/design/app/components/ui/checkbox.tsx +0 -28
- package/corpus/templates/design/app/components/ui/collapsible.tsx +0 -9
- package/corpus/templates/design/app/components/ui/command.tsx +0 -154
- package/corpus/templates/design/app/components/ui/context-menu.tsx +0 -202
- package/corpus/templates/design/app/components/ui/dialog.tsx +0 -130
- package/corpus/templates/design/app/components/ui/drawer.tsx +0 -116
- package/corpus/templates/design/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/design/app/components/ui/form.tsx +0 -177
- package/corpus/templates/design/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/design/app/components/ui/input-otp.tsx +0 -69
- package/corpus/templates/design/app/components/ui/input.tsx +0 -22
- package/corpus/templates/design/app/components/ui/label.tsx +0 -24
- package/corpus/templates/design/app/components/ui/menubar.tsx +0 -234
- package/corpus/templates/design/app/components/ui/navigation-menu.tsx +0 -128
- package/corpus/templates/design/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/design/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/design/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/design/app/components/ui/radio-group.tsx +0 -42
- package/corpus/templates/design/app/components/ui/resizable.tsx +0 -43
- package/corpus/templates/design/app/components/ui/scroll-area.tsx +0 -46
- package/corpus/templates/design/app/components/ui/select.tsx +0 -158
- package/corpus/templates/design/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/design/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/design/app/components/ui/sidebar.tsx +0 -782
- package/corpus/templates/design/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/design/app/components/ui/slider.tsx +0 -26
- package/corpus/templates/design/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/design/app/components/ui/spinner.tsx +0 -17
- package/corpus/templates/design/app/components/ui/switch.tsx +0 -27
- package/corpus/templates/design/app/components/ui/table.tsx +0 -117
- package/corpus/templates/design/app/components/ui/tabs.tsx +0 -53
- package/corpus/templates/design/app/components/ui/textarea.tsx +0 -23
- package/corpus/templates/design/app/components/ui/toast.tsx +0 -127
- package/corpus/templates/design/app/components/ui/toaster.tsx +0 -33
- package/corpus/templates/design/app/components/ui/toggle-group.tsx +0 -59
- package/corpus/templates/design/app/components/ui/toggle.tsx +0 -43
- package/corpus/templates/design/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/design/app/components/ui/use-toast.ts +0 -3
- package/corpus/templates/design/app/hooks/use-mobile.tsx +0 -21
- package/corpus/templates/design/app/hooks/use-toast.ts +0 -188
- package/corpus/templates/forms/app/components/layout/HeaderActions.tsx +0 -84
- package/corpus/templates/forms/app/components/ui/accordion.tsx +0 -56
- package/corpus/templates/forms/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/forms/app/components/ui/alert.tsx +0 -59
- package/corpus/templates/forms/app/components/ui/aspect-ratio.tsx +0 -5
- package/corpus/templates/forms/app/components/ui/avatar.tsx +0 -48
- package/corpus/templates/forms/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/forms/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/forms/app/components/ui/button.tsx +0 -57
- package/corpus/templates/forms/app/components/ui/card.tsx +0 -86
- package/corpus/templates/forms/app/components/ui/carousel.tsx +0 -260
- package/corpus/templates/forms/app/components/ui/checkbox.tsx +0 -28
- package/corpus/templates/forms/app/components/ui/collapsible.tsx +0 -9
- package/corpus/templates/forms/app/components/ui/dialog.tsx +0 -130
- package/corpus/templates/forms/app/components/ui/drawer.tsx +0 -116
- package/corpus/templates/forms/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/forms/app/components/ui/form.tsx +0 -177
- package/corpus/templates/forms/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/forms/app/components/ui/input-otp.tsx +0 -69
- package/corpus/templates/forms/app/components/ui/input.tsx +0 -22
- package/corpus/templates/forms/app/components/ui/label.tsx +0 -24
- package/corpus/templates/forms/app/components/ui/navigation-menu.tsx +0 -128
- package/corpus/templates/forms/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/forms/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/forms/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/forms/app/components/ui/radio-group.tsx +0 -42
- package/corpus/templates/forms/app/components/ui/resizable.tsx +0 -43
- package/corpus/templates/forms/app/components/ui/scroll-area.tsx +0 -46
- package/corpus/templates/forms/app/components/ui/select.tsx +0 -158
- package/corpus/templates/forms/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/forms/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/forms/app/components/ui/sidebar.tsx +0 -782
- package/corpus/templates/forms/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/forms/app/components/ui/slider.tsx +0 -26
- package/corpus/templates/forms/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/forms/app/components/ui/spinner.tsx +0 -17
- package/corpus/templates/forms/app/components/ui/switch.tsx +0 -27
- package/corpus/templates/forms/app/components/ui/table.tsx +0 -117
- package/corpus/templates/forms/app/components/ui/tabs.tsx +0 -53
- package/corpus/templates/forms/app/components/ui/textarea.tsx +0 -23
- package/corpus/templates/forms/app/components/ui/toast.tsx +0 -127
- package/corpus/templates/forms/app/components/ui/toaster.tsx +0 -33
- package/corpus/templates/forms/app/components/ui/toggle-group.tsx +0 -59
- package/corpus/templates/forms/app/components/ui/toggle.tsx +0 -43
- package/corpus/templates/forms/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/forms/app/hooks/use-mobile.tsx +0 -21
- package/corpus/templates/forms/app/hooks/use-toast.ts +0 -188
- package/corpus/templates/macros/app/components/layout/HeaderActions.tsx +0 -84
- package/corpus/templates/macros/app/components/ui/accordion.tsx +0 -56
- package/corpus/templates/macros/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/macros/app/components/ui/alert.tsx +0 -59
- package/corpus/templates/macros/app/components/ui/aspect-ratio.tsx +0 -5
- package/corpus/templates/macros/app/components/ui/avatar.tsx +0 -48
- package/corpus/templates/macros/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/macros/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/macros/app/components/ui/chart.tsx +0 -375
- package/corpus/templates/macros/app/components/ui/checkbox.tsx +0 -28
- package/corpus/templates/macros/app/components/ui/collapsible.tsx +0 -9
- package/corpus/templates/macros/app/components/ui/command.tsx +0 -154
- package/corpus/templates/macros/app/components/ui/context-menu.tsx +0 -202
- package/corpus/templates/macros/app/components/ui/drawer.tsx +0 -116
- package/corpus/templates/macros/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/macros/app/components/ui/form.tsx +0 -177
- package/corpus/templates/macros/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/macros/app/components/ui/label.tsx +0 -24
- package/corpus/templates/macros/app/components/ui/logo.tsx +0 -36
- package/corpus/templates/macros/app/components/ui/navigation-menu.tsx +0 -128
- package/corpus/templates/macros/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/macros/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/macros/app/components/ui/radio-group.tsx +0 -42
- package/corpus/templates/macros/app/components/ui/scroll-area.tsx +0 -46
- package/corpus/templates/macros/app/components/ui/select.tsx +0 -158
- package/corpus/templates/macros/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/macros/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/macros/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/macros/app/components/ui/slider.tsx +0 -26
- package/corpus/templates/macros/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/macros/app/components/ui/switch.tsx +0 -27
- package/corpus/templates/macros/app/components/ui/table.tsx +0 -117
- package/corpus/templates/macros/app/components/ui/toast.tsx +0 -127
- package/corpus/templates/macros/app/components/ui/toggle-group.tsx +0 -59
- package/corpus/templates/macros/app/components/ui/toggle.tsx +0 -43
- package/corpus/templates/macros/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/mail/app/components/ui/accordion.tsx +0 -56
- package/corpus/templates/mail/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/mail/app/components/ui/alert.tsx +0 -59
- package/corpus/templates/mail/app/components/ui/aspect-ratio.tsx +0 -5
- package/corpus/templates/mail/app/components/ui/avatar.tsx +0 -48
- package/corpus/templates/mail/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/mail/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/mail/app/components/ui/button.tsx +0 -57
- package/corpus/templates/mail/app/components/ui/card.tsx +0 -86
- package/corpus/templates/mail/app/components/ui/carousel.tsx +0 -260
- package/corpus/templates/mail/app/components/ui/checkbox.tsx +0 -28
- package/corpus/templates/mail/app/components/ui/collapsible.tsx +0 -9
- package/corpus/templates/mail/app/components/ui/dialog.tsx +0 -130
- package/corpus/templates/mail/app/components/ui/drawer.tsx +0 -116
- package/corpus/templates/mail/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/mail/app/components/ui/form.tsx +0 -177
- package/corpus/templates/mail/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/mail/app/components/ui/input-otp.tsx +0 -69
- package/corpus/templates/mail/app/components/ui/label.tsx +0 -24
- package/corpus/templates/mail/app/components/ui/navigation-menu.tsx +0 -128
- package/corpus/templates/mail/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/mail/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/mail/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/mail/app/components/ui/radio-group.tsx +0 -42
- package/corpus/templates/mail/app/components/ui/resizable.tsx +0 -43
- package/corpus/templates/mail/app/components/ui/scroll-area.tsx +0 -46
- package/corpus/templates/mail/app/components/ui/select.tsx +0 -158
- package/corpus/templates/mail/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/mail/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/mail/app/components/ui/sidebar.tsx +0 -782
- package/corpus/templates/mail/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/mail/app/components/ui/slider.tsx +0 -26
- package/corpus/templates/mail/app/components/ui/spinner.tsx +0 -17
- package/corpus/templates/mail/app/components/ui/switch.tsx +0 -27
- package/corpus/templates/mail/app/components/ui/table.tsx +0 -117
- package/corpus/templates/mail/app/components/ui/tabs.tsx +0 -53
- package/corpus/templates/mail/app/components/ui/toast.tsx +0 -127
- package/corpus/templates/mail/app/components/ui/toaster.tsx +0 -33
- package/corpus/templates/mail/app/components/ui/toggle-group.tsx +0 -59
- package/corpus/templates/mail/app/components/ui/toggle.tsx +0 -43
- package/corpus/templates/mail/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/mail/app/hooks/use-toast.ts +0 -188
- package/corpus/templates/plan/app/components/layout/HeaderActions.tsx +0 -84
- package/corpus/templates/plan/app/components/ui/accordion.tsx +0 -56
- package/corpus/templates/plan/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/plan/app/components/ui/alert.tsx +0 -59
- package/corpus/templates/plan/app/components/ui/aspect-ratio.tsx +0 -5
- package/corpus/templates/plan/app/components/ui/avatar.tsx +0 -48
- package/corpus/templates/plan/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/plan/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/plan/app/components/ui/button.tsx +0 -57
- package/corpus/templates/plan/app/components/ui/calendar.tsx +0 -68
- package/corpus/templates/plan/app/components/ui/card.tsx +0 -86
- package/corpus/templates/plan/app/components/ui/carousel.tsx +0 -260
- package/corpus/templates/plan/app/components/ui/chart.tsx +0 -375
- package/corpus/templates/plan/app/components/ui/checkbox.tsx +0 -28
- package/corpus/templates/plan/app/components/ui/collapsible.tsx +0 -9
- package/corpus/templates/plan/app/components/ui/command.tsx +0 -154
- package/corpus/templates/plan/app/components/ui/context-menu.tsx +0 -202
- package/corpus/templates/plan/app/components/ui/dialog.tsx +0 -130
- package/corpus/templates/plan/app/components/ui/drawer.tsx +0 -116
- package/corpus/templates/plan/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/plan/app/components/ui/form.tsx +0 -177
- package/corpus/templates/plan/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/plan/app/components/ui/input-otp.tsx +0 -69
- package/corpus/templates/plan/app/components/ui/input.tsx +0 -22
- package/corpus/templates/plan/app/components/ui/label.tsx +0 -24
- package/corpus/templates/plan/app/components/ui/menubar.tsx +0 -234
- package/corpus/templates/plan/app/components/ui/navigation-menu.tsx +0 -128
- package/corpus/templates/plan/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/plan/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/plan/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/plan/app/components/ui/radio-group.tsx +0 -42
- package/corpus/templates/plan/app/components/ui/resizable.tsx +0 -43
- package/corpus/templates/plan/app/components/ui/scroll-area.tsx +0 -46
- package/corpus/templates/plan/app/components/ui/select.tsx +0 -158
- package/corpus/templates/plan/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/plan/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/plan/app/components/ui/sidebar.tsx +0 -782
- package/corpus/templates/plan/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/plan/app/components/ui/slider.tsx +0 -26
- package/corpus/templates/plan/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/plan/app/components/ui/spinner.tsx +0 -17
- package/corpus/templates/plan/app/components/ui/switch.tsx +0 -27
- package/corpus/templates/plan/app/components/ui/table.tsx +0 -117
- package/corpus/templates/plan/app/components/ui/textarea.tsx +0 -23
- package/corpus/templates/plan/app/components/ui/toast.tsx +0 -127
- package/corpus/templates/plan/app/components/ui/toaster.tsx +0 -33
- package/corpus/templates/plan/app/components/ui/toggle-group.tsx +0 -59
- package/corpus/templates/plan/app/components/ui/toggle.tsx +0 -43
- package/corpus/templates/plan/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/plan/app/components/ui/use-toast.ts +0 -3
- package/corpus/templates/plan/app/hooks/use-mobile.tsx +0 -21
- package/corpus/templates/plan/app/hooks/use-toast.ts +0 -188
- package/corpus/templates/slides/app/components/layout/HeaderActions.tsx +0 -84
- package/corpus/templates/slides/app/components/ui/accordion.tsx +0 -56
- package/corpus/templates/slides/app/components/ui/alert-dialog.tsx +0 -139
- package/corpus/templates/slides/app/components/ui/alert.tsx +0 -59
- package/corpus/templates/slides/app/components/ui/aspect-ratio.tsx +0 -5
- package/corpus/templates/slides/app/components/ui/avatar.tsx +0 -48
- package/corpus/templates/slides/app/components/ui/badge.tsx +0 -37
- package/corpus/templates/slides/app/components/ui/breadcrumb.tsx +0 -115
- package/corpus/templates/slides/app/components/ui/button.tsx +0 -57
- package/corpus/templates/slides/app/components/ui/calendar.tsx +0 -68
- package/corpus/templates/slides/app/components/ui/card.tsx +0 -86
- package/corpus/templates/slides/app/components/ui/carousel.tsx +0 -260
- package/corpus/templates/slides/app/components/ui/chart.tsx +0 -375
- package/corpus/templates/slides/app/components/ui/checkbox.tsx +0 -28
- package/corpus/templates/slides/app/components/ui/collapsible.tsx +0 -9
- package/corpus/templates/slides/app/components/ui/command.tsx +0 -154
- package/corpus/templates/slides/app/components/ui/context-menu.tsx +0 -202
- package/corpus/templates/slides/app/components/ui/dialog.tsx +0 -130
- package/corpus/templates/slides/app/components/ui/drawer.tsx +0 -116
- package/corpus/templates/slides/app/components/ui/dropdown-menu.tsx +0 -212
- package/corpus/templates/slides/app/components/ui/form.tsx +0 -177
- package/corpus/templates/slides/app/components/ui/hover-card.tsx +0 -27
- package/corpus/templates/slides/app/components/ui/input-otp.tsx +0 -69
- package/corpus/templates/slides/app/components/ui/input.tsx +0 -22
- package/corpus/templates/slides/app/components/ui/label.tsx +0 -24
- package/corpus/templates/slides/app/components/ui/menubar.tsx +0 -234
- package/corpus/templates/slides/app/components/ui/navigation-menu.tsx +0 -128
- package/corpus/templates/slides/app/components/ui/pagination.tsx +0 -121
- package/corpus/templates/slides/app/components/ui/popover.tsx +0 -44
- package/corpus/templates/slides/app/components/ui/progress.tsx +0 -26
- package/corpus/templates/slides/app/components/ui/radio-group.tsx +0 -42
- package/corpus/templates/slides/app/components/ui/resizable.tsx +0 -43
- package/corpus/templates/slides/app/components/ui/scroll-area.tsx +0 -46
- package/corpus/templates/slides/app/components/ui/select.tsx +0 -158
- package/corpus/templates/slides/app/components/ui/separator.tsx +0 -29
- package/corpus/templates/slides/app/components/ui/sheet.tsx +0 -160
- package/corpus/templates/slides/app/components/ui/sidebar.tsx +0 -782
- package/corpus/templates/slides/app/components/ui/skeleton.tsx +0 -15
- package/corpus/templates/slides/app/components/ui/slider.tsx +0 -26
- package/corpus/templates/slides/app/components/ui/sonner.tsx +0 -58
- package/corpus/templates/slides/app/components/ui/spinner.tsx +0 -17
- package/corpus/templates/slides/app/components/ui/switch.tsx +0 -27
- package/corpus/templates/slides/app/components/ui/table.tsx +0 -117
- package/corpus/templates/slides/app/components/ui/tabs.tsx +0 -53
- package/corpus/templates/slides/app/components/ui/textarea.tsx +0 -23
- package/corpus/templates/slides/app/components/ui/toast.tsx +0 -127
- package/corpus/templates/slides/app/components/ui/toaster.tsx +0 -33
- package/corpus/templates/slides/app/components/ui/toggle-group.tsx +0 -59
- package/corpus/templates/slides/app/components/ui/toggle.tsx +0 -43
- package/corpus/templates/slides/app/components/ui/tooltip.tsx +0 -30
- package/corpus/templates/slides/app/components/ui/use-toast.ts +0 -3
- package/corpus/templates/slides/app/hooks/use-mobile.tsx +0 -21
- package/corpus/templates/slides/app/hooks/use-toast.ts +0 -188
|
@@ -6,17 +6,17 @@ import {
|
|
|
6
6
|
useT,
|
|
7
7
|
} from "@agent-native/core/client";
|
|
8
8
|
import { TeamPage } from "@agent-native/core/client/org";
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
import { Button } from "@/components/ui/button";
|
|
9
|
+
import { useSetPageTitle } from "@agent-native/toolkit/app-shell";
|
|
10
|
+
import { Button } from "@agent-native/toolkit/ui/button";
|
|
12
11
|
import {
|
|
13
12
|
Card,
|
|
14
13
|
CardContent,
|
|
15
14
|
CardDescription,
|
|
16
15
|
CardHeader,
|
|
17
16
|
CardTitle,
|
|
18
|
-
} from "
|
|
19
|
-
import { Label } from "
|
|
17
|
+
} from "@agent-native/toolkit/ui/card";
|
|
18
|
+
import { Label } from "@agent-native/toolkit/ui/label";
|
|
19
|
+
|
|
20
20
|
import { APP_TITLE } from "@/lib/app-config";
|
|
21
21
|
|
|
22
22
|
import changelog from "../../CHANGELOG.md?raw";
|
|
@@ -135,6 +135,11 @@ Detailed media, meeting, dictation, editing, and sharing rules live in
|
|
|
135
135
|
private/authenticated recording context. When preparing a link for another
|
|
136
136
|
agent outside Clips, use `create-recording-agent-link`; it mints a two-hour
|
|
137
137
|
`agent_access` share URL without changing recording visibility.
|
|
138
|
+
- Use `@agent-native/core/server` and `@agent-native/core/shared` agent-access
|
|
139
|
+
helpers for scoped token mint/verify and bot-visible URL construction. Keep
|
|
140
|
+
Clips-specific visibility, password, transcript, frame, and player behavior
|
|
141
|
+
in Clips. New URLs should use `agent_access`; existing agent API routes should
|
|
142
|
+
keep accepting legacy `t` tokens for copied links.
|
|
138
143
|
|
|
139
144
|
## Skills
|
|
140
145
|
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { defineAction } from "@agent-native/core";
|
|
2
2
|
import {
|
|
3
|
+
buildAgentAccessUrl,
|
|
4
|
+
createScopedAgentAccessGrant,
|
|
3
5
|
getRequestContext,
|
|
4
6
|
getRequestUserEmail,
|
|
5
|
-
signShortLivedToken,
|
|
6
7
|
} from "@agent-native/core/server";
|
|
7
8
|
import { ForbiddenError, resolveAccess } from "@agent-native/core/sharing";
|
|
8
9
|
import { z } from "zod";
|
|
9
10
|
|
|
10
11
|
import {
|
|
11
|
-
CLIPS_AGENT_ACCESS_PARAM,
|
|
12
12
|
CLIPS_AGENT_ACCESS_TTL_SECONDS,
|
|
13
13
|
getServerAppBasePath,
|
|
14
14
|
} from "../server/lib/public-agent-context.js";
|
|
15
15
|
import {
|
|
16
|
-
agentAccessTokenResourceId,
|
|
17
16
|
buildAgentApiUrls,
|
|
17
|
+
CLIP_AGENT_ACCESS_TOKEN_PREFIX,
|
|
18
18
|
} from "../shared/agent-context.js";
|
|
19
19
|
|
|
20
20
|
function appOrigin(): string {
|
|
@@ -30,11 +30,6 @@ function appOrigin(): string {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
function appendAgentAccess(url: string, token: string): string {
|
|
34
|
-
const sep = url.includes("?") ? "&" : "?";
|
|
35
|
-
return `${url}${sep}${CLIPS_AGENT_ACCESS_PARAM}=${encodeURIComponent(token)}`;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
33
|
export default defineAction({
|
|
39
34
|
description:
|
|
40
35
|
"Create a temporary private agent-readable link for one Clips recording. The URL is scoped to that recording and expires after two hours.",
|
|
@@ -59,32 +54,32 @@ export default defineAction({
|
|
|
59
54
|
);
|
|
60
55
|
}
|
|
61
56
|
|
|
62
|
-
const
|
|
63
|
-
|
|
57
|
+
const grant = createScopedAgentAccessGrant({
|
|
58
|
+
resourceKind: CLIP_AGENT_ACCESS_TOKEN_PREFIX,
|
|
59
|
+
resourceId: recording.id,
|
|
64
60
|
viewerEmail: getRequestUserEmail() || undefined,
|
|
65
61
|
ttlSeconds: CLIPS_AGENT_ACCESS_TTL_SECONDS,
|
|
66
62
|
});
|
|
67
63
|
const origin = appOrigin();
|
|
68
64
|
const basePath = getServerAppBasePath();
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
);
|
|
65
|
+
const pageUrl = buildAgentAccessUrl({
|
|
66
|
+
path: `/share/${encodeURIComponent(recording.id)}`,
|
|
67
|
+
origin,
|
|
68
|
+
basePath,
|
|
69
|
+
token: grant.token,
|
|
70
|
+
});
|
|
76
71
|
const api = buildAgentApiUrls(recording.id, {
|
|
77
72
|
origin,
|
|
78
73
|
basePath,
|
|
79
|
-
token,
|
|
74
|
+
token: grant.token,
|
|
80
75
|
});
|
|
81
76
|
|
|
82
77
|
return {
|
|
83
78
|
recordingId: recording.id,
|
|
84
79
|
url: pageUrl,
|
|
85
80
|
contextUrl: api.contextUrl,
|
|
86
|
-
expiresAt,
|
|
87
|
-
ttlSeconds:
|
|
81
|
+
expiresAt: grant.expiresAt,
|
|
82
|
+
ttlSeconds: grant.ttlSeconds,
|
|
88
83
|
};
|
|
89
84
|
},
|
|
90
85
|
});
|
|
@@ -11,10 +11,14 @@ import {
|
|
|
11
11
|
deleteAppState,
|
|
12
12
|
deleteAppStateByPrefix,
|
|
13
13
|
} from "@agent-native/core/application-state";
|
|
14
|
-
import { and, eq } from "drizzle-orm";
|
|
14
|
+
import { and, eq, inArray, ne, or } from "drizzle-orm";
|
|
15
15
|
import { z } from "zod";
|
|
16
16
|
|
|
17
17
|
import { getDb, schema } from "../server/db/index.js";
|
|
18
|
+
import {
|
|
19
|
+
deleteRecordingMediaObjects,
|
|
20
|
+
recordingMediaUrls,
|
|
21
|
+
} from "../server/lib/recording-media-cleanup.js";
|
|
18
22
|
import {
|
|
19
23
|
getCurrentOwnerEmail,
|
|
20
24
|
ownerEmailMatches,
|
|
@@ -41,38 +45,74 @@ export default defineAction({
|
|
|
41
45
|
);
|
|
42
46
|
if (!existing) throw new Error(`Recording not found: ${args.id}`);
|
|
43
47
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
48
|
+
const mediaUrls = recordingMediaUrls(existing);
|
|
49
|
+
const protectedUrls = new Set<string>();
|
|
50
|
+
if (mediaUrls.length > 0) {
|
|
51
|
+
const mediaReferences = await db
|
|
52
|
+
.select({
|
|
53
|
+
videoUrl: schema.recordings.videoUrl,
|
|
54
|
+
thumbnailUrl: schema.recordings.thumbnailUrl,
|
|
55
|
+
animatedThumbnailUrl: schema.recordings.animatedThumbnailUrl,
|
|
56
|
+
})
|
|
57
|
+
.from(schema.recordings)
|
|
58
|
+
.where(
|
|
59
|
+
and(
|
|
60
|
+
ne(schema.recordings.id, args.id),
|
|
61
|
+
or(
|
|
62
|
+
inArray(schema.recordings.videoUrl, mediaUrls),
|
|
63
|
+
inArray(schema.recordings.thumbnailUrl, mediaUrls),
|
|
64
|
+
inArray(schema.recordings.animatedThumbnailUrl, mediaUrls),
|
|
65
|
+
),
|
|
66
|
+
),
|
|
67
|
+
);
|
|
68
|
+
for (const reference of mediaReferences) {
|
|
69
|
+
for (const url of recordingMediaUrls(reference)) {
|
|
70
|
+
if (mediaUrls.includes(url)) protectedUrls.add(url);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
await db.transaction(async (tx) => {
|
|
76
|
+
// Cascade delete every related row before deleting remote objects. If any
|
|
77
|
+
// DB delete fails, the transaction rolls back and provider media stays put.
|
|
78
|
+
await tx
|
|
79
|
+
.delete(schema.recordingComments)
|
|
80
|
+
.where(eq(schema.recordingComments.recordingId, args.id));
|
|
81
|
+
await tx
|
|
82
|
+
.delete(schema.recordingReactions)
|
|
83
|
+
.where(eq(schema.recordingReactions.recordingId, args.id));
|
|
84
|
+
await tx
|
|
85
|
+
.delete(schema.recordingViewers)
|
|
86
|
+
.where(eq(schema.recordingViewers.recordingId, args.id));
|
|
87
|
+
await tx
|
|
88
|
+
.delete(schema.recordingEvents)
|
|
89
|
+
.where(eq(schema.recordingEvents.recordingId, args.id));
|
|
90
|
+
await tx
|
|
91
|
+
.delete(schema.recordingTranscripts)
|
|
92
|
+
.where(eq(schema.recordingTranscripts.recordingId, args.id));
|
|
93
|
+
await tx
|
|
94
|
+
.delete(schema.recordingBrowserDiagnostics)
|
|
95
|
+
.where(eq(schema.recordingBrowserDiagnostics.recordingId, args.id));
|
|
96
|
+
await tx
|
|
97
|
+
.delete(schema.recordingBugReports)
|
|
98
|
+
.where(eq(schema.recordingBugReports.recordingId, args.id));
|
|
99
|
+
await tx
|
|
100
|
+
.delete(schema.recordingTags)
|
|
101
|
+
.where(eq(schema.recordingTags.recordingId, args.id));
|
|
102
|
+
await tx
|
|
103
|
+
.delete(schema.recordingCtas)
|
|
104
|
+
.where(eq(schema.recordingCtas.recordingId, args.id));
|
|
105
|
+
await tx
|
|
106
|
+
.delete(schema.recordingShares)
|
|
107
|
+
.where(eq(schema.recordingShares.resourceId, args.id));
|
|
108
|
+
await tx
|
|
109
|
+
.delete(schema.recordings)
|
|
110
|
+
.where(eq(schema.recordings.id, args.id));
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
const mediaCleanup = await deleteRecordingMediaObjects(existing, {
|
|
114
|
+
protectedUrls,
|
|
115
|
+
});
|
|
76
116
|
|
|
77
117
|
// Clean up any lingering application state for this recording.
|
|
78
118
|
await deleteAppStateByPrefix(`recording-chunks-${args.id}-`);
|
|
@@ -86,6 +126,6 @@ export default defineAction({
|
|
|
86
126
|
console.log(
|
|
87
127
|
`Permanently deleted recording "${existing.title}" (${args.id})`,
|
|
88
128
|
);
|
|
89
|
-
return { success: true, id: args.id };
|
|
129
|
+
return { success: true, id: args.id, mediaCleanup };
|
|
90
130
|
},
|
|
91
131
|
});
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { appPath, useT } from "@agent-native/core/client";
|
|
2
|
+
import { Button, type ButtonProps } from "@agent-native/toolkit/ui/button";
|
|
3
|
+
import {
|
|
4
|
+
Popover,
|
|
5
|
+
PopoverContent,
|
|
6
|
+
PopoverTrigger,
|
|
7
|
+
} from "@agent-native/toolkit/ui/popover";
|
|
2
8
|
import {
|
|
3
9
|
IconBrandApple,
|
|
4
10
|
IconBrandChrome,
|
|
@@ -9,12 +15,6 @@ import {
|
|
|
9
15
|
} from "@tabler/icons-react";
|
|
10
16
|
import { type ReactNode } from "react";
|
|
11
17
|
|
|
12
|
-
import { Button, type ButtonProps } from "@/components/ui/button";
|
|
13
|
-
import {
|
|
14
|
-
Popover,
|
|
15
|
-
PopoverContent,
|
|
16
|
-
PopoverTrigger,
|
|
17
|
-
} from "@/components/ui/popover";
|
|
18
18
|
import {
|
|
19
19
|
clipsChromeExtensionEnabled,
|
|
20
20
|
clipsChromeExtensionUrl,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { useActionMutation, useT } from "@agent-native/core/client";
|
|
2
|
+
import { Input } from "@agent-native/toolkit/ui/input";
|
|
3
|
+
import { Skeleton } from "@agent-native/toolkit/ui/skeleton";
|
|
2
4
|
import { IconEdit } from "@tabler/icons-react";
|
|
3
5
|
import { useQueryClient } from "@tanstack/react-query";
|
|
4
6
|
import { useEffect, useRef, useState, type ReactNode } from "react";
|
|
5
7
|
import { toast } from "sonner";
|
|
6
8
|
|
|
7
|
-
import { Input } from "@/components/ui/input";
|
|
8
|
-
import { Skeleton } from "@/components/ui/skeleton";
|
|
9
9
|
import { isDefaultTitle } from "@/hooks/use-auto-title";
|
|
10
10
|
import { cn } from "@/lib/utils";
|
|
11
11
|
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { useActionMutation, useT } from "@agent-native/core/client";
|
|
2
|
+
import { Button } from "@agent-native/toolkit/ui/button";
|
|
3
|
+
import { Input } from "@agent-native/toolkit/ui/input";
|
|
4
|
+
import {
|
|
5
|
+
Tooltip,
|
|
6
|
+
TooltipContent,
|
|
7
|
+
TooltipTrigger,
|
|
8
|
+
} from "@agent-native/toolkit/ui/tooltip";
|
|
2
9
|
import {
|
|
3
10
|
IconBookmarks,
|
|
4
11
|
IconPlus,
|
|
@@ -8,13 +15,6 @@ import {
|
|
|
8
15
|
import { useEffect, useRef, useState } from "react";
|
|
9
16
|
import { toast } from "sonner";
|
|
10
17
|
|
|
11
|
-
import { Button } from "@/components/ui/button";
|
|
12
|
-
import { Input } from "@/components/ui/input";
|
|
13
|
-
import {
|
|
14
|
-
Tooltip,
|
|
15
|
-
TooltipContent,
|
|
16
|
-
TooltipTrigger,
|
|
17
|
-
} from "@/components/ui/tooltip";
|
|
18
18
|
import { formatMs } from "@/lib/timestamp-mapping";
|
|
19
19
|
import { cn } from "@/lib/utils";
|
|
20
20
|
|
|
@@ -83,6 +83,26 @@ export interface EditorLayoutProps {
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
const WAVEFORM_HEIGHT = 120;
|
|
86
|
+
const MIN_TIMELINE_ZOOM = 1;
|
|
87
|
+
const MAX_TIMELINE_ZOOM = 50;
|
|
88
|
+
|
|
89
|
+
function clampTimelineZoom(value: number): number {
|
|
90
|
+
if (!Number.isFinite(value)) return MIN_TIMELINE_ZOOM;
|
|
91
|
+
const clamped = Math.max(
|
|
92
|
+
MIN_TIMELINE_ZOOM,
|
|
93
|
+
Math.min(MAX_TIMELINE_ZOOM, value),
|
|
94
|
+
);
|
|
95
|
+
return Math.round(clamped * 10) / 10;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function normalizeWheelDeltaY(
|
|
99
|
+
event: WheelEvent,
|
|
100
|
+
viewportWidth: number,
|
|
101
|
+
): number {
|
|
102
|
+
if (event.deltaMode === 1) return event.deltaY * 16;
|
|
103
|
+
if (event.deltaMode === 2) return event.deltaY * viewportWidth;
|
|
104
|
+
return event.deltaY;
|
|
105
|
+
}
|
|
86
106
|
|
|
87
107
|
function shouldProxyWaveformUrl(videoUrl: string): boolean {
|
|
88
108
|
try {
|
|
@@ -210,6 +230,12 @@ export function EditorLayout({ recordingId, className }: EditorLayoutProps) {
|
|
|
210
230
|
const [chaptersOpen, setChaptersOpen] = useState(false);
|
|
211
231
|
|
|
212
232
|
const containerRef = useRef<HTMLDivElement | null>(null);
|
|
233
|
+
const trackpadGestureRef = useRef<{
|
|
234
|
+
zoom: number;
|
|
235
|
+
scrollLeft: number;
|
|
236
|
+
anchorRatio: number;
|
|
237
|
+
viewportX: number;
|
|
238
|
+
} | null>(null);
|
|
213
239
|
|
|
214
240
|
// Measure viewport so waveform + timeline stay responsive.
|
|
215
241
|
useEffect(() => {
|
|
@@ -228,12 +254,149 @@ export function EditorLayout({ recordingId, className }: EditorLayoutProps) {
|
|
|
228
254
|
Math.floor(viewportWidth * Math.max(1, zoom)),
|
|
229
255
|
);
|
|
230
256
|
|
|
257
|
+
const calculateAnchoredScrollLeft = useCallback(
|
|
258
|
+
(
|
|
259
|
+
nextZoom: number,
|
|
260
|
+
anchor?: { anchorRatio?: number; viewportX?: number },
|
|
261
|
+
) => {
|
|
262
|
+
const nextTotalWidth = Math.max(
|
|
263
|
+
viewportWidth,
|
|
264
|
+
Math.floor(viewportWidth * Math.max(1, nextZoom)),
|
|
265
|
+
);
|
|
266
|
+
const maxScrollLeft = Math.max(0, nextTotalWidth - viewportWidth);
|
|
267
|
+
const anchorMs = selectionRange
|
|
268
|
+
? (selectionRange.startMs + selectionRange.endMs) / 2
|
|
269
|
+
: playheadMs;
|
|
270
|
+
const fallbackAnchorRatio =
|
|
271
|
+
durationMs > 0
|
|
272
|
+
? Math.max(0, Math.min(durationMs, anchorMs)) / durationMs
|
|
273
|
+
: 0;
|
|
274
|
+
const anchorRatio = Math.max(
|
|
275
|
+
0,
|
|
276
|
+
Math.min(1, anchor?.anchorRatio ?? fallbackAnchorRatio),
|
|
277
|
+
);
|
|
278
|
+
const viewportX =
|
|
279
|
+
typeof anchor?.viewportX === "number"
|
|
280
|
+
? Math.max(0, Math.min(viewportWidth, anchor.viewportX))
|
|
281
|
+
: viewportWidth / 2;
|
|
282
|
+
const anchorX = anchorRatio * nextTotalWidth;
|
|
283
|
+
return Math.max(0, Math.min(maxScrollLeft, anchorX - viewportX));
|
|
284
|
+
},
|
|
285
|
+
[durationMs, playheadMs, selectionRange, viewportWidth],
|
|
286
|
+
);
|
|
287
|
+
|
|
288
|
+
const setAnchoredZoom = useCallback(
|
|
289
|
+
(
|
|
290
|
+
nextZoom: number,
|
|
291
|
+
anchor?: { anchorRatio?: number; viewportX?: number },
|
|
292
|
+
) => {
|
|
293
|
+
const clamped = clampTimelineZoom(nextZoom);
|
|
294
|
+
setZoom(clamped);
|
|
295
|
+
setScrollLeft(calculateAnchoredScrollLeft(clamped, anchor));
|
|
296
|
+
},
|
|
297
|
+
[calculateAnchoredScrollLeft],
|
|
298
|
+
);
|
|
299
|
+
|
|
300
|
+
const handleZoomChange = useCallback(
|
|
301
|
+
(nextZoom: number) => setAnchoredZoom(nextZoom),
|
|
302
|
+
[setAnchoredZoom],
|
|
303
|
+
);
|
|
304
|
+
|
|
231
305
|
useEffect(() => {
|
|
232
306
|
setScrollLeft((current) =>
|
|
233
307
|
Math.min(current, Math.max(0, totalWidth - viewportWidth)),
|
|
234
308
|
);
|
|
235
309
|
}, [totalWidth, viewportWidth]);
|
|
236
310
|
|
|
311
|
+
useEffect(() => {
|
|
312
|
+
const el = containerRef.current;
|
|
313
|
+
if (!el) return;
|
|
314
|
+
|
|
315
|
+
const getViewportX = (clientX?: number) => {
|
|
316
|
+
if (typeof clientX !== "number") return viewportWidth / 2;
|
|
317
|
+
const rect = el.getBoundingClientRect();
|
|
318
|
+
return Math.max(0, Math.min(viewportWidth, clientX - rect.left));
|
|
319
|
+
};
|
|
320
|
+
|
|
321
|
+
const getAnchorRatio = (
|
|
322
|
+
sourceZoom: number,
|
|
323
|
+
sourceScrollLeft: number,
|
|
324
|
+
viewportX: number,
|
|
325
|
+
) => {
|
|
326
|
+
const sourceTotalWidth = Math.max(
|
|
327
|
+
viewportWidth,
|
|
328
|
+
Math.floor(viewportWidth * Math.max(1, sourceZoom)),
|
|
329
|
+
);
|
|
330
|
+
return Math.max(
|
|
331
|
+
0,
|
|
332
|
+
Math.min(
|
|
333
|
+
1,
|
|
334
|
+
(sourceScrollLeft + viewportX) / Math.max(1, sourceTotalWidth),
|
|
335
|
+
),
|
|
336
|
+
);
|
|
337
|
+
};
|
|
338
|
+
|
|
339
|
+
const handleWheel = (event: WheelEvent) => {
|
|
340
|
+
if (!event.ctrlKey) return;
|
|
341
|
+
event.preventDefault();
|
|
342
|
+
const deltaY = normalizeWheelDeltaY(event, viewportWidth);
|
|
343
|
+
if (Math.abs(deltaY) < 0.01) return;
|
|
344
|
+
const viewportX = getViewportX(event.clientX);
|
|
345
|
+
const anchorRatio = getAnchorRatio(zoom, scrollLeft, viewportX);
|
|
346
|
+
const nextZoom = clampTimelineZoom(zoom * Math.exp(-deltaY * 0.006));
|
|
347
|
+
if (nextZoom === zoom) return;
|
|
348
|
+
setAnchoredZoom(nextZoom, { anchorRatio, viewportX });
|
|
349
|
+
};
|
|
350
|
+
|
|
351
|
+
const handleGestureStart = (event: Event) => {
|
|
352
|
+
event.preventDefault();
|
|
353
|
+
const gesture = event as Event & { clientX?: number };
|
|
354
|
+
const viewportX = getViewportX(gesture.clientX);
|
|
355
|
+
trackpadGestureRef.current = {
|
|
356
|
+
zoom,
|
|
357
|
+
scrollLeft,
|
|
358
|
+
anchorRatio: getAnchorRatio(zoom, scrollLeft, viewportX),
|
|
359
|
+
viewportX,
|
|
360
|
+
};
|
|
361
|
+
};
|
|
362
|
+
|
|
363
|
+
const handleGestureChange = (event: Event) => {
|
|
364
|
+
const start = trackpadGestureRef.current;
|
|
365
|
+
if (!start) return;
|
|
366
|
+
event.preventDefault();
|
|
367
|
+
const gesture = event as Event & { scale?: number };
|
|
368
|
+
const scale =
|
|
369
|
+
typeof gesture.scale === "number" && Number.isFinite(gesture.scale)
|
|
370
|
+
? gesture.scale
|
|
371
|
+
: 1;
|
|
372
|
+
const nextZoom = clampTimelineZoom(start.zoom * scale);
|
|
373
|
+
if (nextZoom === zoom) return;
|
|
374
|
+
setAnchoredZoom(nextZoom, {
|
|
375
|
+
anchorRatio: start.anchorRatio,
|
|
376
|
+
viewportX: start.viewportX,
|
|
377
|
+
});
|
|
378
|
+
};
|
|
379
|
+
|
|
380
|
+
const handleGestureEnd = () => {
|
|
381
|
+
trackpadGestureRef.current = null;
|
|
382
|
+
};
|
|
383
|
+
|
|
384
|
+
el.addEventListener("wheel", handleWheel, { passive: false });
|
|
385
|
+
el.addEventListener("gesturestart", handleGestureStart, {
|
|
386
|
+
passive: false,
|
|
387
|
+
});
|
|
388
|
+
el.addEventListener("gesturechange", handleGestureChange, {
|
|
389
|
+
passive: false,
|
|
390
|
+
});
|
|
391
|
+
el.addEventListener("gestureend", handleGestureEnd);
|
|
392
|
+
return () => {
|
|
393
|
+
el.removeEventListener("wheel", handleWheel);
|
|
394
|
+
el.removeEventListener("gesturestart", handleGestureStart);
|
|
395
|
+
el.removeEventListener("gesturechange", handleGestureChange);
|
|
396
|
+
el.removeEventListener("gestureend", handleGestureEnd);
|
|
397
|
+
};
|
|
398
|
+
}, [scrollLeft, setAnchoredZoom, viewportWidth, zoom]);
|
|
399
|
+
|
|
237
400
|
// Sync the <video> to play state.
|
|
238
401
|
useEffect(() => {
|
|
239
402
|
const v = videoRef.current;
|
|
@@ -457,7 +620,7 @@ export function EditorLayout({ recordingId, className }: EditorLayoutProps) {
|
|
|
457
620
|
playbackSpeed={playbackSpeed}
|
|
458
621
|
onPlaybackSpeedChange={handlePlaybackSpeedChange}
|
|
459
622
|
zoom={zoom}
|
|
460
|
-
onZoomChange={
|
|
623
|
+
onZoomChange={handleZoomChange}
|
|
461
624
|
edits={edits}
|
|
462
625
|
selectionRange={selectionRange}
|
|
463
626
|
video={{ videoUrl, videoFormat, title: recording.title }}
|
|
@@ -524,6 +687,7 @@ export function EditorLayout({ recordingId, className }: EditorLayoutProps) {
|
|
|
524
687
|
selectionRange={selectionRange}
|
|
525
688
|
activityRanges={transcriptSegments}
|
|
526
689
|
onSeek={seek}
|
|
690
|
+
scrollLeft={scrollLeft}
|
|
527
691
|
onScroll={(s) => setScrollLeft(s)}
|
|
528
692
|
/>
|
|
529
693
|
<div
|
|
@@ -543,7 +707,6 @@ export function EditorLayout({ recordingId, className }: EditorLayoutProps) {
|
|
|
543
707
|
value={effectiveSelection}
|
|
544
708
|
onChange={setSelectionRange}
|
|
545
709
|
durationMs={durationMs}
|
|
546
|
-
scrollLeft={scrollLeft}
|
|
547
710
|
/>
|
|
548
711
|
</div>
|
|
549
712
|
</div>
|
|
@@ -566,7 +729,6 @@ export function EditorLayout({ recordingId, className }: EditorLayoutProps) {
|
|
|
566
729
|
chapters={chapters}
|
|
567
730
|
excludedRanges={excludedRanges}
|
|
568
731
|
splitPoints={splitPoints}
|
|
569
|
-
scrollLeft={scrollLeft}
|
|
570
732
|
onSeek={seek}
|
|
571
733
|
onClickChapter={(c) => seek(c.startMs)}
|
|
572
734
|
/>
|