@agent-native/core 0.86.1 → 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.
Files changed (1180) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +12 -0
  3. package/corpus/core/docs/content/components.mdx +13 -0
  4. package/corpus/core/docs/content/creating-templates.mdx +7 -0
  5. package/corpus/core/docs/content/locales/ar-SA/components.mdx +9 -0
  6. package/corpus/core/docs/content/locales/ar-SA/creating-templates.mdx +2 -0
  7. package/corpus/core/docs/content/locales/ar-SA/template-analytics.mdx +6 -0
  8. package/corpus/core/docs/content/locales/ar-SA/template-clips.mdx +7 -0
  9. package/corpus/core/docs/content/locales/ar-SA/tracking.mdx +6 -0
  10. package/corpus/core/docs/content/locales/de-DE/components.mdx +9 -0
  11. package/corpus/core/docs/content/locales/de-DE/creating-templates.mdx +2 -0
  12. package/corpus/core/docs/content/locales/de-DE/template-analytics.mdx +6 -0
  13. package/corpus/core/docs/content/locales/de-DE/template-clips.mdx +7 -0
  14. package/corpus/core/docs/content/locales/de-DE/tracking.mdx +6 -0
  15. package/corpus/core/docs/content/locales/es-ES/components.mdx +9 -0
  16. package/corpus/core/docs/content/locales/es-ES/creating-templates.mdx +2 -0
  17. package/corpus/core/docs/content/locales/es-ES/template-analytics.mdx +6 -0
  18. package/corpus/core/docs/content/locales/es-ES/template-clips.mdx +7 -0
  19. package/corpus/core/docs/content/locales/es-ES/tracking.mdx +6 -0
  20. package/corpus/core/docs/content/locales/fr-FR/components.mdx +9 -0
  21. package/corpus/core/docs/content/locales/fr-FR/creating-templates.mdx +2 -0
  22. package/corpus/core/docs/content/locales/fr-FR/template-analytics.mdx +6 -0
  23. package/corpus/core/docs/content/locales/fr-FR/template-clips.mdx +7 -0
  24. package/corpus/core/docs/content/locales/fr-FR/tracking.mdx +6 -0
  25. package/corpus/core/docs/content/locales/hi-IN/components.mdx +9 -0
  26. package/corpus/core/docs/content/locales/hi-IN/creating-templates.mdx +2 -0
  27. package/corpus/core/docs/content/locales/hi-IN/template-analytics.mdx +6 -0
  28. package/corpus/core/docs/content/locales/hi-IN/template-clips.mdx +7 -0
  29. package/corpus/core/docs/content/locales/hi-IN/tracking.mdx +6 -0
  30. package/corpus/core/docs/content/locales/ja-JP/components.mdx +9 -0
  31. package/corpus/core/docs/content/locales/ja-JP/creating-templates.mdx +2 -0
  32. package/corpus/core/docs/content/locales/ja-JP/template-analytics.mdx +6 -0
  33. package/corpus/core/docs/content/locales/ja-JP/template-clips.mdx +7 -0
  34. package/corpus/core/docs/content/locales/ja-JP/tracking.mdx +6 -0
  35. package/corpus/core/docs/content/locales/ko-KR/components.mdx +9 -0
  36. package/corpus/core/docs/content/locales/ko-KR/creating-templates.mdx +2 -0
  37. package/corpus/core/docs/content/locales/ko-KR/template-analytics.mdx +6 -0
  38. package/corpus/core/docs/content/locales/ko-KR/template-clips.mdx +7 -0
  39. package/corpus/core/docs/content/locales/ko-KR/tracking.mdx +6 -0
  40. package/corpus/core/docs/content/locales/pt-BR/components.mdx +9 -0
  41. package/corpus/core/docs/content/locales/pt-BR/creating-templates.mdx +2 -0
  42. package/corpus/core/docs/content/locales/pt-BR/template-analytics.mdx +6 -0
  43. package/corpus/core/docs/content/locales/pt-BR/template-clips.mdx +7 -0
  44. package/corpus/core/docs/content/locales/pt-BR/tracking.mdx +6 -0
  45. package/corpus/core/docs/content/locales/zh-CN/components.mdx +9 -0
  46. package/corpus/core/docs/content/locales/zh-CN/creating-templates.mdx +2 -0
  47. package/corpus/core/docs/content/locales/zh-CN/template-analytics.mdx +6 -0
  48. package/corpus/core/docs/content/locales/zh-CN/template-clips.mdx +7 -0
  49. package/corpus/core/docs/content/locales/zh-CN/tracking.mdx +6 -0
  50. package/corpus/core/docs/content/locales/zh-TW/components.mdx +9 -0
  51. package/corpus/core/docs/content/locales/zh-TW/creating-templates.mdx +2 -0
  52. package/corpus/core/docs/content/locales/zh-TW/template-analytics.mdx +6 -0
  53. package/corpus/core/docs/content/locales/zh-TW/template-clips.mdx +7 -0
  54. package/corpus/core/docs/content/locales/zh-TW/tracking.mdx +6 -0
  55. package/corpus/core/docs/content/template-analytics.mdx +6 -0
  56. package/corpus/core/docs/content/template-clips.mdx +7 -0
  57. package/corpus/core/docs/content/tracking.mdx +6 -0
  58. package/corpus/core/package.json +8 -1
  59. package/corpus/core/src/application-state/emitter.ts +37 -5
  60. package/corpus/core/src/cli/create.ts +55 -3
  61. package/corpus/core/src/cli/workspacify.ts +10 -4
  62. package/corpus/core/src/client/components/ui/dialog.tsx +1 -91
  63. package/corpus/core/src/client/components/ui/dropdown-menu.tsx +1 -191
  64. package/corpus/core/src/client/components/ui/hover-card.tsx +1 -29
  65. package/corpus/core/src/client/components/ui/popover.tsx +1 -31
  66. package/corpus/core/src/client/components/ui/sheet.tsx +1 -96
  67. package/corpus/core/src/client/components/ui/tooltip.tsx +1 -53
  68. package/corpus/core/src/secrets/crypto.ts +47 -9
  69. package/corpus/core/src/server/agent-access.ts +72 -0
  70. package/corpus/core/src/server/h3-helpers.ts +14 -2
  71. package/corpus/core/src/server/index.ts +19 -0
  72. package/corpus/core/src/server/request-context.ts +64 -7
  73. package/corpus/core/src/shared/agent-access.ts +112 -0
  74. package/corpus/core/src/shared/index.ts +14 -0
  75. package/corpus/templates/analytics/AGENTS.md +4 -0
  76. package/corpus/templates/analytics/app/components/InlineMetric.tsx +2 -2
  77. package/corpus/templates/analytics/app/components/dashboard/CumulativeNetChart.tsx +7 -2
  78. package/corpus/templates/analytics/app/components/dashboard/DataTable.tsx +16 -11
  79. package/corpus/templates/analytics/app/components/dashboard/DateRangePicker.tsx +2 -1
  80. package/corpus/templates/analytics/app/components/dashboard/MetricCard.tsx +7 -2
  81. package/corpus/templates/analytics/app/components/dashboard/RecentActivity.tsx +6 -3
  82. package/corpus/templates/analytics/app/components/dashboard/RevenueChart.tsx +6 -1
  83. package/corpus/templates/analytics/app/components/dashboard/RevenueComparisonChart.tsx +7 -2
  84. package/corpus/templates/analytics/app/components/dashboard/SqlChart.tsx +15 -11
  85. package/corpus/templates/analytics/app/components/dashboard/StatsCard.tsx +7 -1
  86. package/corpus/templates/analytics/app/components/dashboard/TimeSeriesChart.tsx +7 -2
  87. package/corpus/templates/analytics/app/components/layout/CommandPalette.tsx +16 -16
  88. package/corpus/templates/analytics/app/components/layout/HeaderActions.tsx +1 -2
  89. package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +5 -2
  90. package/corpus/templates/analytics/app/components/layout/NewAnalysisDialog.tsx +6 -6
  91. package/corpus/templates/analytics/app/components/layout/NewDashboardDialog.tsx +3 -4
  92. package/corpus/templates/analytics/app/components/layout/Sidebar.tsx +12 -9
  93. package/corpus/templates/analytics/app/components/ui/calendar.tsx +1 -1
  94. package/corpus/templates/analytics/app/pages/Agents.tsx +19 -19
  95. package/corpus/templates/analytics/app/pages/DataDictionary.tsx +21 -21
  96. package/corpus/templates/analytics/app/pages/DataSources.tsx +28 -28
  97. package/corpus/templates/analytics/app/pages/NotFound.tsx +1 -2
  98. package/corpus/templates/analytics/app/pages/Placeholder.tsx +1 -2
  99. package/corpus/templates/analytics/app/pages/Settings.tsx +16 -16
  100. package/corpus/templates/analytics/app/pages/adhoc/DashboardSkeleton.tsx +2 -3
  101. package/corpus/templates/analytics/app/pages/adhoc/_shared/KpiChart.tsx +13 -8
  102. package/corpus/templates/analytics/app/pages/adhoc/_shared/components/DateRangeInput.tsx +2 -1
  103. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/ChartTypePicker.tsx +4 -2
  104. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/DateRangePicker.tsx +2 -1
  105. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventCombobox.tsx +7 -7
  106. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventPanel.tsx +1 -2
  107. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/EventRow.tsx +1 -2
  108. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/ExplorerChart.tsx +8 -3
  109. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/FilterBuilder.tsx +4 -5
  110. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/GroupByPicker.tsx +1 -2
  111. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/PropertyCombobox.tsx +7 -7
  112. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/PropertyValueCombobox.tsx +7 -7
  113. package/corpus/templates/analytics/app/pages/adhoc/explorer/components/SqlPreview.tsx +1 -1
  114. package/corpus/templates/analytics/app/pages/adhoc/explorer/index.tsx +16 -16
  115. package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/ChartCard.tsx +21 -16
  116. package/corpus/templates/analytics/app/pages/adhoc/explorer-dashboard/index.tsx +32 -32
  117. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/DashboardFilterBar.tsx +14 -14
  118. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/EmailReportDialog.tsx +13 -14
  119. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/PanelEditorDialog.tsx +21 -13
  120. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/SqlChartCard.tsx +28 -23
  121. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewSqlPopover.tsx +12 -12
  122. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/ViewsMenu.tsx +15 -15
  123. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +33 -29
  124. package/corpus/templates/analytics/app/pages/analyses/AnalysesList.tsx +7 -8
  125. package/corpus/templates/analytics/app/pages/analyses/AnalysisDetail.tsx +19 -19
  126. package/corpus/templates/analytics/app/pages/analyses/LegacyFusionAnalysis.tsx +15 -11
  127. package/corpus/templates/analytics/app/pages/sessions/SessionDetailPage.tsx +42 -23
  128. package/corpus/templates/analytics/app/pages/sessions/SessionDevToolsPanel.tsx +12 -7
  129. package/corpus/templates/analytics/app/pages/sessions/SessionsPage.tsx +12 -12
  130. package/corpus/templates/analytics/app/pages/settings/AlertRulesSettingsCard.tsx +25 -25
  131. package/corpus/templates/analytics/app/root.tsx +2 -2
  132. package/corpus/templates/analytics/app/routes/catalog.tsx +8 -8
  133. package/corpus/templates/analytics/package.json +1 -0
  134. package/corpus/templates/analytics/server/lib/session-replay-agent-context.ts +59 -59
  135. package/corpus/templates/analytics/shared/session-replay-agent-access.ts +14 -3
  136. package/corpus/templates/assets/app/components/create/RecentDraftsSection.tsx +2 -3
  137. package/corpus/templates/assets/app/components/generation/GenerationResults.tsx +9 -9
  138. package/corpus/templates/assets/app/components/layout/Header.tsx +4 -2
  139. package/corpus/templates/assets/app/components/layout/Layout.tsx +1 -1
  140. package/corpus/templates/assets/app/components/layout/PageShell.tsx +5 -6
  141. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +12 -12
  142. package/corpus/templates/assets/app/components/library/CreateLibraryDialog.tsx +8 -8
  143. package/corpus/templates/assets/app/components/library/EditLibraryDialog.tsx +7 -7
  144. package/corpus/templates/assets/app/components/library/LibraryCard.tsx +8 -8
  145. package/corpus/templates/assets/app/components/library/LibraryPresetGrid.tsx +2 -3
  146. package/corpus/templates/assets/app/root.tsx +1 -1
  147. package/corpus/templates/assets/app/routes/asset.$id.tsx +19 -19
  148. package/corpus/templates/assets/app/routes/audit.tsx +14 -15
  149. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +54 -49
  150. package/corpus/templates/assets/app/routes/library.tsx +31 -31
  151. package/corpus/templates/assets/app/routes/settings.tsx +18 -18
  152. package/corpus/templates/assets/package.json +1 -0
  153. package/corpus/templates/brain/app/components/brain/CanonicalPreviewSheet.tsx +5 -6
  154. package/corpus/templates/brain/app/components/brain/Surface.tsx +8 -3
  155. package/corpus/templates/brain/app/components/layout/Layout.tsx +7 -7
  156. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +6 -6
  157. package/corpus/templates/brain/app/routes/knowledge.tsx +19 -19
  158. package/corpus/templates/brain/app/routes/ops.tsx +18 -18
  159. package/corpus/templates/brain/app/routes/review.tsx +27 -22
  160. package/corpus/templates/brain/app/routes/search.tsx +20 -20
  161. package/corpus/templates/brain/app/routes/settings.tsx +22 -22
  162. package/corpus/templates/brain/app/routes/sources.tsx +23 -23
  163. package/corpus/templates/brain/package.json +1 -0
  164. package/corpus/templates/calendar/app/components/ThemeToggle.tsx +5 -5
  165. package/corpus/templates/calendar/app/components/TimezoneCombobox.tsx +6 -6
  166. package/corpus/templates/calendar/app/components/booking/BookingConfirmation.tsx +1 -2
  167. package/corpus/templates/calendar/app/components/booking/BookingForm.tsx +8 -9
  168. package/corpus/templates/calendar/app/components/booking/DatePicker.tsx +2 -2
  169. package/corpus/templates/calendar/app/components/booking/TimeSlotPicker.tsx +2 -3
  170. package/corpus/templates/calendar/app/components/calendar/AddCalendarDialog.tsx +15 -10
  171. package/corpus/templates/calendar/app/components/calendar/AttendeeAutocomplete.tsx +6 -6
  172. package/corpus/templates/calendar/app/components/calendar/CreateEventDialog.tsx +27 -27
  173. package/corpus/templates/calendar/app/components/calendar/DeleteEventDialog.tsx +12 -9
  174. package/corpus/templates/calendar/app/components/calendar/EventAttendeesSection.tsx +13 -10
  175. package/corpus/templates/calendar/app/components/calendar/EventDetailPanel.tsx +7 -7
  176. package/corpus/templates/calendar/app/components/calendar/EventDetailPopover.tsx +21 -21
  177. package/corpus/templates/calendar/app/components/calendar/EventDialog.tsx +11 -11
  178. package/corpus/templates/calendar/app/components/calendar/EventOptionControls.tsx +9 -9
  179. package/corpus/templates/calendar/app/components/calendar/FindTimePanel.tsx +9 -9
  180. package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +6 -6
  181. package/corpus/templates/calendar/app/components/calendar/GoogleSetupWizard.tsx +3 -3
  182. package/corpus/templates/calendar/app/components/calendar/GoogleSyncButton.tsx +1 -1
  183. package/corpus/templates/calendar/app/components/calendar/GuestNotificationDialog.tsx +10 -8
  184. package/corpus/templates/calendar/app/components/calendar/IntegrationsSidebar.tsx +12 -12
  185. package/corpus/templates/calendar/app/components/calendar/KeyboardShortcutsHelp.tsx +2 -2
  186. package/corpus/templates/calendar/app/components/calendar/MonthView.tsx +1 -1
  187. package/corpus/templates/calendar/app/components/calendar/PeopleSearchDialog.tsx +6 -6
  188. package/corpus/templates/calendar/app/components/calendar/WeekView.tsx +6 -6
  189. package/corpus/templates/calendar/app/components/layout/AppLayout.tsx +2 -2
  190. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +16 -16
  191. package/corpus/templates/calendar/app/pages/AvailabilitySettings.tsx +11 -11
  192. package/corpus/templates/calendar/app/pages/BookingLinksPage.tsx +50 -45
  193. package/corpus/templates/calendar/app/pages/BookingPage.tsx +2 -2
  194. package/corpus/templates/calendar/app/pages/BookingsList.tsx +12 -12
  195. package/corpus/templates/calendar/app/pages/CalendarView.tsx +17 -17
  196. package/corpus/templates/calendar/app/pages/ManageBookingPage.tsx +13 -13
  197. package/corpus/templates/calendar/app/pages/Settings.tsx +12 -12
  198. package/corpus/templates/calendar/app/routes/event.tsx +2 -2
  199. package/corpus/templates/calendar/package.json +1 -0
  200. package/corpus/templates/chat/app/components/layout/Header.tsx +4 -2
  201. package/corpus/templates/chat/app/components/layout/Layout.tsx +7 -7
  202. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +12 -12
  203. package/corpus/templates/chat/app/routes/database.tsx +1 -2
  204. package/corpus/templates/chat/app/routes/observability.tsx +1 -1
  205. package/corpus/templates/chat/app/routes/settings.tsx +5 -5
  206. package/corpus/templates/chat/package.json +1 -0
  207. package/corpus/templates/clips/AGENTS.md +5 -0
  208. package/corpus/templates/clips/actions/create-recording-agent-link.ts +15 -20
  209. package/corpus/templates/clips/actions/delete-recording-permanent.ts +74 -34
  210. package/corpus/templates/clips/app/components/capture-install-options.tsx +6 -6
  211. package/corpus/templates/clips/app/components/editable-recording-title.tsx +2 -2
  212. package/corpus/templates/clips/app/components/editor/chapters-editor.tsx +7 -7
  213. package/corpus/templates/clips/app/components/editor/editor-layout.tsx +165 -3
  214. package/corpus/templates/clips/app/components/editor/editor-toolbar.tsx +101 -57
  215. package/corpus/templates/clips/app/components/editor/split-button.tsx +4 -5
  216. package/corpus/templates/clips/app/components/editor/stitch-manager.tsx +9 -9
  217. package/corpus/templates/clips/app/components/editor/thumbnail-picker.tsx +16 -11
  218. package/corpus/templates/clips/app/components/editor/timeline.tsx +4 -6
  219. package/corpus/templates/clips/app/components/editor/transcript-editor.tsx +5 -5
  220. package/corpus/templates/clips/app/components/editor/trim-handles.tsx +4 -7
  221. package/corpus/templates/clips/app/components/editor/waveform.tsx +13 -4
  222. package/corpus/templates/clips/app/components/layout/Header.tsx +4 -2
  223. package/corpus/templates/clips/app/components/layout/Layout.tsx +2 -3
  224. package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +4 -4
  225. package/corpus/templates/clips/app/components/library/create-space-dialog.tsx +8 -8
  226. package/corpus/templates/clips/app/components/library/empty-state.tsx +1 -2
  227. package/corpus/templates/clips/app/components/library/folder-tree.tsx +14 -14
  228. package/corpus/templates/clips/app/components/library/library-grid.tsx +7 -7
  229. package/corpus/templates/clips/app/components/library/library-layout.tsx +16 -16
  230. package/corpus/templates/clips/app/components/library/organization-switcher.tsx +11 -11
  231. package/corpus/templates/clips/app/components/library/recording-card.tsx +16 -12
  232. package/corpus/templates/clips/app/components/library/search-bar.tsx +5 -5
  233. package/corpus/templates/clips/app/components/library/sort-menu.tsx +3 -4
  234. package/corpus/templates/clips/app/components/library/tag-input.tsx +4 -4
  235. package/corpus/templates/clips/app/components/meetings/attendee-stack.tsx +6 -2
  236. package/corpus/templates/clips/app/components/meetings/auto-record-prompt.tsx +1 -1
  237. package/corpus/templates/clips/app/components/meetings/bullet-link.tsx +4 -4
  238. package/corpus/templates/clips/app/components/meetings/canvas-editor.tsx +5 -5
  239. package/corpus/templates/clips/app/components/meetings/meeting-card.tsx +3 -3
  240. package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +9 -9
  241. package/corpus/templates/clips/app/components/meetings/share-meeting-dialog.tsx +11 -6
  242. package/corpus/templates/clips/app/components/meetings/transcript-bubbles.tsx +4 -4
  243. package/corpus/templates/clips/app/components/player/access-password-prompt.tsx +2 -3
  244. package/corpus/templates/clips/app/components/player/comments-panel.tsx +14 -14
  245. package/corpus/templates/clips/app/components/player/delete-recording-menu.tsx +6 -7
  246. package/corpus/templates/clips/app/components/player/insights-panel.tsx +1 -2
  247. package/corpus/templates/clips/app/components/player/player-controls.tsx +15 -15
  248. package/corpus/templates/clips/app/components/player/reactions-tray.tsx +3 -3
  249. package/corpus/templates/clips/app/components/player/settings-panel.tsx +12 -13
  250. package/corpus/templates/clips/app/components/player/share-dialog.tsx +20 -11
  251. package/corpus/templates/clips/app/components/player/sign-in-prompt-dialog.tsx +2 -3
  252. package/corpus/templates/clips/app/components/player/timestamped-comment-button.tsx +2 -2
  253. package/corpus/templates/clips/app/components/player/transcript-panel.tsx +7 -7
  254. package/corpus/templates/clips/app/components/player/video-player.tsx +9 -9
  255. package/corpus/templates/clips/app/components/recorder/camera-visualizer.tsx +1 -1
  256. package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +1 -1
  257. package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +21 -21
  258. package/corpus/templates/clips/app/components/recorder/recording-toolbar.tsx +5 -6
  259. package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +6 -7
  260. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +10 -10
  261. package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +9 -5
  262. package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +19 -9
  263. package/corpus/templates/clips/app/components/workspace/invite-dialog.tsx +9 -10
  264. package/corpus/templates/clips/app/components/workspace/members-list.tsx +10 -11
  265. package/corpus/templates/clips/app/components/workspace/notifications-list.tsx +1 -2
  266. package/corpus/templates/clips/app/components/workspace/top-creators-table.tsx +2 -3
  267. package/corpus/templates/clips/app/components/workspace/top-videos-table.tsx +2 -3
  268. package/corpus/templates/clips/app/hooks/use-desktop-promo.ts +1 -2
  269. package/corpus/templates/clips/app/root.tsx +10 -10
  270. package/corpus/templates/clips/app/routes/_app.dictate.tsx +13 -13
  271. package/corpus/templates/clips/app/routes/_app.meetings.$meetingId.tsx +35 -26
  272. package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +20 -20
  273. package/corpus/templates/clips/app/routes/_app.notifications.tsx +3 -3
  274. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +31 -31
  275. package/corpus/templates/clips/app/routes/_app.settings.organization.tsx +13 -8
  276. package/corpus/templates/clips/app/routes/_app.spaces._index.tsx +1 -1
  277. package/corpus/templates/clips/app/routes/_app.trash.tsx +10 -10
  278. package/corpus/templates/clips/app/routes/bug-report.done.tsx +1 -1
  279. package/corpus/templates/clips/app/routes/bug-report.tsx +11 -11
  280. package/corpus/templates/clips/app/routes/download.tsx +2 -2
  281. package/corpus/templates/clips/app/routes/embed.$shareId.tsx +1 -1
  282. package/corpus/templates/clips/app/routes/invite.$token.tsx +13 -8
  283. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +28 -23
  284. package/corpus/templates/clips/app/routes/record.tsx +3 -3
  285. package/corpus/templates/clips/app/routes/share.$shareId.tsx +41 -20
  286. package/corpus/templates/clips/app/routes/share.meeting.$meetingId.tsx +2 -2
  287. package/corpus/templates/clips/changelog/2026-07-05-desktop-full-screen-recordings-with-system-audio-now-finaliz.md +6 -0
  288. package/corpus/templates/clips/changelog/2026-07-05-desktop-recording-shortcut-start-stop.md +6 -0
  289. package/corpus/templates/clips/changelog/2026-07-05-desktop-recordings-no-longer-fail-when-saved-capture-constra.md +6 -0
  290. package/corpus/templates/clips/changelog/2026-07-05-permanently-deleted-clips-now-clean-up-s3-media-objects.md +6 -0
  291. package/corpus/templates/clips/changelog/2026-07-05-timeline-zoom-controls-are-now-visible-in-the-clip-editor-an.md +6 -0
  292. package/corpus/templates/clips/desktop/src/app.tsx +98 -1
  293. package/corpus/templates/clips/desktop/src/components/MediaDeviceRow.tsx +3 -2
  294. package/corpus/templates/clips/desktop/src/lib/media-capture-constraints.ts +121 -0
  295. package/corpus/templates/clips/desktop/src/lib/recorder.ts +55 -84
  296. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +77 -39
  297. package/corpus/templates/clips/desktop/src-tauri/src/shortcuts.rs +60 -8
  298. package/corpus/templates/clips/package.json +1 -0
  299. package/corpus/templates/clips/server/lib/public-agent-context.ts +17 -12
  300. package/corpus/templates/clips/server/lib/recording-media-cleanup.ts +110 -0
  301. package/corpus/templates/clips/server/lib/s3-upload-provider.ts +126 -0
  302. package/corpus/templates/clips/server/routes/api/public-recording.get.ts +47 -11
  303. package/corpus/templates/clips/shared/agent-context.ts +23 -21
  304. package/corpus/templates/content/app/blocks/contentBlockRegistry.tsx +4 -4
  305. package/corpus/templates/content/app/components/EmptyState.tsx +1 -1
  306. package/corpus/templates/content/app/components/ThemeToggle.tsx +6 -6
  307. package/corpus/templates/content/app/components/editor/BubbleToolbar.tsx +5 -5
  308. package/corpus/templates/content/app/components/editor/CommentsSidebar.tsx +5 -5
  309. package/corpus/templates/content/app/components/editor/ContentReferencePreview.tsx +1 -1
  310. package/corpus/templates/content/app/components/editor/DocumentDatabase.tsx +36 -36
  311. package/corpus/templates/content/app/components/editor/DocumentEditor.tsx +3 -3
  312. package/corpus/templates/content/app/components/editor/DocumentProperties.tsx +29 -29
  313. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +23 -23
  314. package/corpus/templates/content/app/components/editor/EmojiPicker.tsx +4 -5
  315. package/corpus/templates/content/app/components/editor/LinkHoverPreview.tsx +4 -5
  316. package/corpus/templates/content/app/components/editor/NotionConflictBanner.tsx +1 -1
  317. package/corpus/templates/content/app/components/editor/NotionSyncBar.tsx +2 -2
  318. package/corpus/templates/content/app/components/editor/SlashCommandMenu.tsx +5 -5
  319. package/corpus/templates/content/app/components/editor/TableHoverControls.tsx +13 -13
  320. package/corpus/templates/content/app/components/editor/VersionHistoryPanel.tsx +10 -10
  321. package/corpus/templates/content/app/components/editor/database/DatabaseView.tsx +41 -41
  322. package/corpus/templates/content/app/components/editor/database/shared.tsx +19 -19
  323. package/corpus/templates/content/app/components/editor/database-sources/BuilderSourceReviewDialog.tsx +8 -9
  324. package/corpus/templates/content/app/components/editor/extensions/AudioBlock.tsx +18 -19
  325. package/corpus/templates/content/app/components/editor/extensions/ImageBlock.tsx +20 -21
  326. package/corpus/templates/content/app/components/editor/extensions/LocalMdxComponentNode.tsx +8 -8
  327. package/corpus/templates/content/app/components/editor/extensions/VideoBlock.tsx +18 -19
  328. package/corpus/templates/content/app/components/layout/Header.tsx +4 -2
  329. package/corpus/templates/content/app/components/layout/Layout.tsx +3 -3
  330. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +22 -22
  331. package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +22 -22
  332. package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +11 -11
  333. package/corpus/templates/content/app/root.tsx +4 -5
  334. package/corpus/templates/content/app/routes/_app._index.tsx +1 -1
  335. package/corpus/templates/content/app/routes/_app.local-files.tsx +11 -11
  336. package/corpus/templates/content/app/routes/_app.settings.tsx +3 -3
  337. package/corpus/templates/content/package.json +1 -0
  338. package/corpus/templates/design/app/components/ThemeToggle.tsx +6 -6
  339. package/corpus/templates/design/app/components/design/CanvasContextMenu.tsx +11 -11
  340. package/corpus/templates/design/app/components/design/DesignEditorSkeleton.tsx +2 -2
  341. package/corpus/templates/design/app/components/design/DesignExtensionsPanel.tsx +21 -16
  342. package/corpus/templates/design/app/components/design/DesignImportPanel.tsx +3 -3
  343. package/corpus/templates/design/app/components/design/DrawOverlay.tsx +7 -7
  344. package/corpus/templates/design/app/components/design/EditPanel.tsx +30 -30
  345. package/corpus/templates/design/app/components/design/FusionAppBanner.tsx +8 -9
  346. package/corpus/templates/design/app/components/design/LayersPanel.tsx +14 -14
  347. package/corpus/templates/design/app/components/design/LocalhostWriteConsentDialog.tsx +5 -6
  348. package/corpus/templates/design/app/components/design/MotionDock.tsx +15 -15
  349. package/corpus/templates/design/app/components/design/QuestionFlow.tsx +3 -3
  350. package/corpus/templates/design/app/components/design/ReviewPanel.tsx +3 -3
  351. package/corpus/templates/design/app/components/design/StatesPanel.tsx +13 -13
  352. package/corpus/templates/design/app/components/design/TokensPanel.tsx +14 -14
  353. package/corpus/templates/design/app/components/design/TweaksPanel.tsx +6 -6
  354. package/corpus/templates/design/app/components/design/code-workbench/ActivityBar.tsx +3 -3
  355. package/corpus/templates/design/app/components/design/code-workbench/SideBar.tsx +3 -3
  356. package/corpus/templates/design/app/components/design/code-workbench/editor/EditorTabs.tsx +6 -6
  357. package/corpus/templates/design/app/components/design/code-workbench/editor/MonacoHost.tsx +1 -2
  358. package/corpus/templates/design/app/components/design/code-workbench/explorer/FileTree.tsx +17 -17
  359. package/corpus/templates/design/app/components/design/code-workbench/search/SearchView.tsx +6 -6
  360. package/corpus/templates/design/app/components/design/inspector/AlignmentMatrix.tsx +3 -3
  361. package/corpus/templates/design/app/components/design/inspector/AutoLayoutMatrix.tsx +7 -7
  362. package/corpus/templates/design/app/components/design/inspector/ConstraintsWidget.tsx +3 -3
  363. package/corpus/templates/design/app/components/design/inspector/DesignColorPicker.tsx +18 -18
  364. package/corpus/templates/design/app/components/design/inspector/ExportSettingsPanel.tsx +6 -6
  365. package/corpus/templates/design/app/components/design/inspector/ImageFillControls.tsx +6 -6
  366. package/corpus/templates/design/app/components/design/inspector/InspectorAiActions.tsx +7 -7
  367. package/corpus/templates/design/app/components/design/inspector/ScrubInput.tsx +7 -7
  368. package/corpus/templates/design/app/components/design/inspector/ShaderControls.tsx +14 -14
  369. package/corpus/templates/design/app/components/design/inspector/ShaderEffectRow.tsx +9 -9
  370. package/corpus/templates/design/app/components/design/inspector/ShaderFillsPanel.tsx +6 -6
  371. package/corpus/templates/design/app/components/design-system/DesignSystemCard.tsx +2 -3
  372. package/corpus/templates/design/app/components/editor/PromptDialog.tsx +18 -15
  373. package/corpus/templates/design/app/components/layout/Header.tsx +4 -2
  374. package/corpus/templates/design/app/components/layout/Layout.tsx +1 -1
  375. package/corpus/templates/design/app/components/layout/Sidebar.tsx +5 -5
  376. package/corpus/templates/design/app/components/visual-editor/CanvasCommentPins.tsx +7 -7
  377. package/corpus/templates/design/app/components/visual-editor/DrawOverlay.tsx +7 -7
  378. package/corpus/templates/design/app/components/visual-editor/SaveStatusIndicator.tsx +3 -3
  379. package/corpus/templates/design/app/pages/DesignEditor.tsx +51 -47
  380. package/corpus/templates/design/app/pages/DesignSystemSetup.tsx +8 -8
  381. package/corpus/templates/design/app/pages/DesignSystems.tsx +32 -32
  382. package/corpus/templates/design/app/pages/Index.tsx +28 -28
  383. package/corpus/templates/design/app/pages/NotFound.tsx +1 -2
  384. package/corpus/templates/design/app/pages/Present.tsx +1 -2
  385. package/corpus/templates/design/app/pages/VisualEdit.tsx +1 -2
  386. package/corpus/templates/design/app/root.tsx +1 -1
  387. package/corpus/templates/design/app/routes/settings.tsx +3 -3
  388. package/corpus/templates/design/package.json +1 -0
  389. package/corpus/templates/forms/app/components/CloudUpgrade.tsx +10 -10
  390. package/corpus/templates/forms/app/components/ThemeToggle.tsx +5 -5
  391. package/corpus/templates/forms/app/components/builder/FieldPropertiesPanel.tsx +10 -11
  392. package/corpus/templates/forms/app/components/builder/FieldRenderer.tsx +13 -10
  393. package/corpus/templates/forms/app/components/layout/Header.tsx +4 -2
  394. package/corpus/templates/forms/app/components/layout/Layout.tsx +1 -1
  395. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +15 -15
  396. package/corpus/templates/forms/app/components/ui/calendar.tsx +1 -1
  397. package/corpus/templates/forms/app/components/ui/command.tsx +1 -1
  398. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +24 -24
  399. package/corpus/templates/forms/app/pages/FormFillPage.tsx +2 -2
  400. package/corpus/templates/forms/app/pages/FormsListPage.tsx +25 -25
  401. package/corpus/templates/forms/app/pages/ResponseInsightsPage.tsx +11 -11
  402. package/corpus/templates/forms/app/pages/ResponsesPage.tsx +4 -4
  403. package/corpus/templates/forms/app/routes/_app.settings.tsx +5 -5
  404. package/corpus/templates/forms/app/routes/form-preview.tsx +3 -3
  405. package/corpus/templates/forms/package.json +1 -0
  406. package/corpus/templates/macros/app/components/AddExerciseDialog.tsx +1 -1
  407. package/corpus/templates/macros/app/components/AddMealDialog.tsx +1 -1
  408. package/corpus/templates/macros/app/components/AddWeightDialog.tsx +1 -1
  409. package/corpus/templates/macros/app/components/DailyProgress.tsx +7 -7
  410. package/corpus/templates/macros/app/components/WeeklyCaloriesChart.tsx +1 -2
  411. package/corpus/templates/macros/app/components/WeightCard.tsx +10 -10
  412. package/corpus/templates/macros/app/components/WeightTracker.tsx +1 -1
  413. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +11 -7
  414. package/corpus/templates/macros/app/components/layout/Header.tsx +4 -2
  415. package/corpus/templates/macros/app/root.tsx +1 -1
  416. package/corpus/templates/macros/app/routes/_index.tsx +1 -1
  417. package/corpus/templates/macros/app/routes/analytics.tsx +9 -9
  418. package/corpus/templates/macros/app/routes/settings.tsx +2 -2
  419. package/corpus/templates/macros/package.json +1 -0
  420. package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +1 -1
  421. package/corpus/templates/mail/app/components/ThemeToggle.tsx +6 -6
  422. package/corpus/templates/mail/app/components/agent-engine-picker.tsx +10 -10
  423. package/corpus/templates/mail/app/components/email/CodeBlockLangPicker.tsx +3 -4
  424. package/corpus/templates/mail/app/components/email/ComposeBubbleToolbar.tsx +5 -5
  425. package/corpus/templates/mail/app/components/email/ComposeEditor.tsx +9 -9
  426. package/corpus/templates/mail/app/components/email/ComposeModal.tsx +18 -18
  427. package/corpus/templates/mail/app/components/email/EmailList.tsx +17 -17
  428. package/corpus/templates/mail/app/components/email/EmailListItem.tsx +5 -5
  429. package/corpus/templates/mail/app/components/email/EmailThread.tsx +6 -6
  430. package/corpus/templates/mail/app/components/email/InlineReplyComposer.tsx +11 -11
  431. package/corpus/templates/mail/app/components/email/IntegrationsSidebar.tsx +13 -13
  432. package/corpus/templates/mail/app/components/email/MobileActionBar.tsx +13 -13
  433. package/corpus/templates/mail/app/components/email/RecipientInput.tsx +13 -13
  434. package/corpus/templates/mail/app/components/email/SendLaterButton.tsx +4 -5
  435. package/corpus/templates/mail/app/components/email/SnoozeModal.tsx +1 -1
  436. package/corpus/templates/mail/app/components/email/SnoozePopover.tsx +6 -6
  437. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +12 -12
  438. package/corpus/templates/mail/app/components/layout/SearchBar.tsx +5 -5
  439. package/corpus/templates/mail/app/components/settings/GmailFiltersSection.tsx +23 -23
  440. package/corpus/templates/mail/app/components/ui/calendar.tsx +1 -1
  441. package/corpus/templates/mail/app/components/ui/command.tsx +1 -1
  442. package/corpus/templates/mail/app/pages/DraftQueuePage.tsx +14 -14
  443. package/corpus/templates/mail/app/pages/NotFound.tsx +1 -2
  444. package/corpus/templates/mail/app/pages/SettingsPage.tsx +25 -25
  445. package/corpus/templates/mail/app/root.tsx +1 -1
  446. package/corpus/templates/mail/app/routes/_index.tsx +1 -2
  447. package/corpus/templates/mail/app/routes/email.tsx +2 -2
  448. package/corpus/templates/mail/package.json +1 -0
  449. package/corpus/templates/plan/app/components/layout/Header.tsx +4 -2
  450. package/corpus/templates/plan/app/components/layout/Layout.tsx +5 -6
  451. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +20 -20
  452. package/corpus/templates/plan/app/components/plan/CanvasArea.tsx +2 -3
  453. package/corpus/templates/plan/app/components/plan/DocumentArea.tsx +2 -2
  454. package/corpus/templates/plan/app/components/plan/GuestModeBanner.tsx +1 -2
  455. package/corpus/templates/plan/app/components/plan/LocalCodebasePicker.tsx +8 -8
  456. package/corpus/templates/plan/app/components/plan/PlanContentRenderer.tsx +1 -1
  457. package/corpus/templates/plan/app/components/plan/PlanImageViewer.tsx +83 -82
  458. package/corpus/templates/plan/app/components/plan/PlanVisualSurface.tsx +3 -3
  459. package/corpus/templates/plan/app/components/plan/planBlocks.tsx +4 -4
  460. package/corpus/templates/plan/app/pages/PlansPage.tsx +84 -77
  461. package/corpus/templates/plan/app/root.tsx +1 -1
  462. package/corpus/templates/plan/app/routes/_index.tsx +2 -1
  463. package/corpus/templates/plan/app/routes/local-plans.$slug.tsx +1 -1
  464. package/corpus/templates/plan/app/routes/plans.$id.tsx +2 -1
  465. package/corpus/templates/plan/app/routes/plans.tsx +2 -1
  466. package/corpus/templates/plan/app/routes/recaps.$id.tsx +2 -1
  467. package/corpus/templates/plan/app/routes/recaps.tsx +2 -1
  468. package/corpus/templates/plan/app/routes/settings.tsx +5 -5
  469. package/corpus/templates/plan/changelog/2026-07-05-images-in-plan-documents-open-reliably-in-the-full-size-prev.md +6 -0
  470. package/corpus/templates/plan/package.json +1 -0
  471. package/corpus/templates/slides/app/components/ThemeToggle.tsx +6 -6
  472. package/corpus/templates/slides/app/components/comments/SlideCommentsPanel.tsx +5 -5
  473. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +7 -7
  474. package/corpus/templates/slides/app/components/deck/ExcalidrawSlide.tsx +1 -2
  475. package/corpus/templates/slides/app/components/deck/SlideRenderer.tsx +1 -1
  476. package/corpus/templates/slides/app/components/design-system/DesignSystemCard.tsx +2 -3
  477. package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +13 -14
  478. package/corpus/templates/slides/app/components/editor/AnimationsPanel.tsx +7 -7
  479. package/corpus/templates/slides/app/components/editor/BlockBubbleMenu.tsx +5 -5
  480. package/corpus/templates/slides/app/components/editor/EditorSidebar.tsx +6 -6
  481. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +13 -13
  482. package/corpus/templates/slides/app/components/editor/ExportMenu.tsx +9 -10
  483. package/corpus/templates/slides/app/components/editor/GenerateSlidesDialog.tsx +5 -6
  484. package/corpus/templates/slides/app/components/editor/HistoryPanel.tsx +12 -12
  485. package/corpus/templates/slides/app/components/editor/ImageDropPromptPopover.tsx +3 -4
  486. package/corpus/templates/slides/app/components/editor/ImageSearchPanel.tsx +4 -5
  487. package/corpus/templates/slides/app/components/editor/ImportButton.tsx +3 -4
  488. package/corpus/templates/slides/app/components/editor/PromptDialog.tsx +1 -2
  489. package/corpus/templates/slides/app/components/editor/ShareDialog.tsx +10 -10
  490. package/corpus/templates/slides/app/components/editor/SlideBubbleMenu.tsx +10 -10
  491. package/corpus/templates/slides/app/components/editor/SlideEditor.tsx +6 -6
  492. package/corpus/templates/slides/app/components/editor/SlideStyleInspector.tsx +1 -2
  493. package/corpus/templates/slides/app/components/editor/TweaksPanel.tsx +1 -1
  494. package/corpus/templates/slides/app/components/layout/Header.tsx +4 -2
  495. package/corpus/templates/slides/app/components/layout/Layout.tsx +1 -1
  496. package/corpus/templates/slides/app/components/layout/Sidebar.tsx +5 -5
  497. package/corpus/templates/slides/app/components/visual-editor/CanvasCommentPins.tsx +6 -6
  498. package/corpus/templates/slides/app/components/visual-editor/DrawOverlay.tsx +7 -7
  499. package/corpus/templates/slides/app/pages/DeckEditor.tsx +3 -3
  500. package/corpus/templates/slides/app/pages/DesignSystems.tsx +5 -5
  501. package/corpus/templates/slides/app/pages/Index.tsx +18 -15
  502. package/corpus/templates/slides/app/root.tsx +3 -3
  503. package/corpus/templates/slides/app/routes/settings.tsx +5 -5
  504. package/corpus/templates/slides/package.json +1 -0
  505. package/dist/application-state/emitter.d.ts +9 -2
  506. package/dist/application-state/emitter.d.ts.map +1 -1
  507. package/dist/application-state/emitter.js +25 -3
  508. package/dist/application-state/emitter.js.map +1 -1
  509. package/dist/cli/create.d.ts +2 -1
  510. package/dist/cli/create.d.ts.map +1 -1
  511. package/dist/cli/create.js +52 -4
  512. package/dist/cli/create.js.map +1 -1
  513. package/dist/cli/workspacify.d.ts +2 -0
  514. package/dist/cli/workspacify.d.ts.map +1 -1
  515. package/dist/cli/workspacify.js +8 -4
  516. package/dist/cli/workspacify.js.map +1 -1
  517. package/dist/client/components/ui/dialog.d.ts +1 -13
  518. package/dist/client/components/ui/dialog.d.ts.map +1 -1
  519. package/dist/client/components/ui/dialog.js +1 -20
  520. package/dist/client/components/ui/dialog.js.map +1 -1
  521. package/dist/client/components/ui/dropdown-menu.d.ts +1 -27
  522. package/dist/client/components/ui/dropdown-menu.d.ts.map +1 -1
  523. package/dist/client/components/ui/dropdown-menu.js +1 -33
  524. package/dist/client/components/ui/dropdown-menu.js.map +1 -1
  525. package/dist/client/components/ui/hover-card.d.ts +1 -6
  526. package/dist/client/components/ui/hover-card.d.ts.map +1 -1
  527. package/dist/client/components/ui/hover-card.js +1 -9
  528. package/dist/client/components/ui/hover-card.js.map +1 -1
  529. package/dist/client/components/ui/popover.d.ts +1 -7
  530. package/dist/client/components/ui/popover.d.ts.map +1 -1
  531. package/dist/client/components/ui/popover.js +1 -10
  532. package/dist/client/components/ui/popover.js.map +1 -1
  533. package/dist/client/components/ui/sheet.d.ts +1 -15
  534. package/dist/client/components/ui/sheet.d.ts.map +1 -1
  535. package/dist/client/components/ui/sheet.js +1 -22
  536. package/dist/client/components/ui/sheet.js.map +1 -1
  537. package/dist/client/components/ui/tooltip.d.ts +1 -8
  538. package/dist/client/components/ui/tooltip.d.ts.map +1 -1
  539. package/dist/client/components/ui/tooltip.js +1 -17
  540. package/dist/client/components/ui/tooltip.js.map +1 -1
  541. package/dist/notifications/routes.d.ts +1 -1
  542. package/dist/resources/handlers.d.ts +1 -1
  543. package/dist/secrets/crypto.d.ts.map +1 -1
  544. package/dist/secrets/crypto.js +37 -4
  545. package/dist/secrets/crypto.js.map +1 -1
  546. package/dist/server/agent-access.d.ts +16 -0
  547. package/dist/server/agent-access.d.ts.map +1 -0
  548. package/dist/server/agent-access.js +25 -0
  549. package/dist/server/agent-access.js.map +1 -0
  550. package/dist/server/h3-helpers.d.ts.map +1 -1
  551. package/dist/server/h3-helpers.js +12 -2
  552. package/dist/server/h3-helpers.js.map +1 -1
  553. package/dist/server/index.d.ts +1 -0
  554. package/dist/server/index.d.ts.map +1 -1
  555. package/dist/server/index.js +1 -0
  556. package/dist/server/index.js.map +1 -1
  557. package/dist/server/request-context.d.ts +17 -0
  558. package/dist/server/request-context.d.ts.map +1 -1
  559. package/dist/server/request-context.js +46 -6
  560. package/dist/server/request-context.js.map +1 -1
  561. package/dist/server/transcribe-voice.d.ts +1 -1
  562. package/dist/shared/agent-access.d.ts +29 -0
  563. package/dist/shared/agent-access.d.ts.map +1 -0
  564. package/dist/shared/agent-access.js +57 -0
  565. package/dist/shared/agent-access.js.map +1 -0
  566. package/dist/shared/index.d.ts +1 -0
  567. package/dist/shared/index.d.ts.map +1 -1
  568. package/dist/shared/index.js +1 -0
  569. package/dist/shared/index.js.map +1 -1
  570. package/docs/content/components.mdx +13 -0
  571. package/docs/content/creating-templates.mdx +7 -0
  572. package/docs/content/locales/ar-SA/components.mdx +9 -0
  573. package/docs/content/locales/ar-SA/creating-templates.mdx +2 -0
  574. package/docs/content/locales/ar-SA/template-analytics.mdx +6 -0
  575. package/docs/content/locales/ar-SA/template-clips.mdx +7 -0
  576. package/docs/content/locales/ar-SA/tracking.mdx +6 -0
  577. package/docs/content/locales/de-DE/components.mdx +9 -0
  578. package/docs/content/locales/de-DE/creating-templates.mdx +2 -0
  579. package/docs/content/locales/de-DE/template-analytics.mdx +6 -0
  580. package/docs/content/locales/de-DE/template-clips.mdx +7 -0
  581. package/docs/content/locales/de-DE/tracking.mdx +6 -0
  582. package/docs/content/locales/es-ES/components.mdx +9 -0
  583. package/docs/content/locales/es-ES/creating-templates.mdx +2 -0
  584. package/docs/content/locales/es-ES/template-analytics.mdx +6 -0
  585. package/docs/content/locales/es-ES/template-clips.mdx +7 -0
  586. package/docs/content/locales/es-ES/tracking.mdx +6 -0
  587. package/docs/content/locales/fr-FR/components.mdx +9 -0
  588. package/docs/content/locales/fr-FR/creating-templates.mdx +2 -0
  589. package/docs/content/locales/fr-FR/template-analytics.mdx +6 -0
  590. package/docs/content/locales/fr-FR/template-clips.mdx +7 -0
  591. package/docs/content/locales/fr-FR/tracking.mdx +6 -0
  592. package/docs/content/locales/hi-IN/components.mdx +9 -0
  593. package/docs/content/locales/hi-IN/creating-templates.mdx +2 -0
  594. package/docs/content/locales/hi-IN/template-analytics.mdx +6 -0
  595. package/docs/content/locales/hi-IN/template-clips.mdx +7 -0
  596. package/docs/content/locales/hi-IN/tracking.mdx +6 -0
  597. package/docs/content/locales/ja-JP/components.mdx +9 -0
  598. package/docs/content/locales/ja-JP/creating-templates.mdx +2 -0
  599. package/docs/content/locales/ja-JP/template-analytics.mdx +6 -0
  600. package/docs/content/locales/ja-JP/template-clips.mdx +7 -0
  601. package/docs/content/locales/ja-JP/tracking.mdx +6 -0
  602. package/docs/content/locales/ko-KR/components.mdx +9 -0
  603. package/docs/content/locales/ko-KR/creating-templates.mdx +2 -0
  604. package/docs/content/locales/ko-KR/template-analytics.mdx +6 -0
  605. package/docs/content/locales/ko-KR/template-clips.mdx +7 -0
  606. package/docs/content/locales/ko-KR/tracking.mdx +6 -0
  607. package/docs/content/locales/pt-BR/components.mdx +9 -0
  608. package/docs/content/locales/pt-BR/creating-templates.mdx +2 -0
  609. package/docs/content/locales/pt-BR/template-analytics.mdx +6 -0
  610. package/docs/content/locales/pt-BR/template-clips.mdx +7 -0
  611. package/docs/content/locales/pt-BR/tracking.mdx +6 -0
  612. package/docs/content/locales/zh-CN/components.mdx +9 -0
  613. package/docs/content/locales/zh-CN/creating-templates.mdx +2 -0
  614. package/docs/content/locales/zh-CN/template-analytics.mdx +6 -0
  615. package/docs/content/locales/zh-CN/template-clips.mdx +7 -0
  616. package/docs/content/locales/zh-CN/tracking.mdx +6 -0
  617. package/docs/content/locales/zh-TW/components.mdx +9 -0
  618. package/docs/content/locales/zh-TW/creating-templates.mdx +2 -0
  619. package/docs/content/locales/zh-TW/template-analytics.mdx +6 -0
  620. package/docs/content/locales/zh-TW/template-clips.mdx +7 -0
  621. package/docs/content/locales/zh-TW/tracking.mdx +6 -0
  622. package/docs/content/template-analytics.mdx +6 -0
  623. package/docs/content/template-clips.mdx +7 -0
  624. package/docs/content/tracking.mdx +6 -0
  625. package/package.json +9 -2
  626. package/corpus/templates/analytics/app/components/ui/accordion.tsx +0 -56
  627. package/corpus/templates/analytics/app/components/ui/alert-dialog.tsx +0 -139
  628. package/corpus/templates/analytics/app/components/ui/alert.tsx +0 -59
  629. package/corpus/templates/analytics/app/components/ui/aspect-ratio.tsx +0 -5
  630. package/corpus/templates/analytics/app/components/ui/avatar.tsx +0 -48
  631. package/corpus/templates/analytics/app/components/ui/badge.tsx +0 -37
  632. package/corpus/templates/analytics/app/components/ui/breadcrumb.tsx +0 -115
  633. package/corpus/templates/analytics/app/components/ui/button.tsx +0 -57
  634. package/corpus/templates/analytics/app/components/ui/card.tsx +0 -86
  635. package/corpus/templates/analytics/app/components/ui/carousel.tsx +0 -260
  636. package/corpus/templates/analytics/app/components/ui/checkbox.tsx +0 -28
  637. package/corpus/templates/analytics/app/components/ui/collapsible.tsx +0 -9
  638. package/corpus/templates/analytics/app/components/ui/command.tsx +0 -154
  639. package/corpus/templates/analytics/app/components/ui/context-menu.tsx +0 -202
  640. package/corpus/templates/analytics/app/components/ui/date-picker.tsx +0 -68
  641. package/corpus/templates/analytics/app/components/ui/dialog.tsx +0 -130
  642. package/corpus/templates/analytics/app/components/ui/drawer.tsx +0 -116
  643. package/corpus/templates/analytics/app/components/ui/dropdown-menu.tsx +0 -212
  644. package/corpus/templates/analytics/app/components/ui/form.tsx +0 -177
  645. package/corpus/templates/analytics/app/components/ui/hover-card.tsx +0 -27
  646. package/corpus/templates/analytics/app/components/ui/input-otp.tsx +0 -69
  647. package/corpus/templates/analytics/app/components/ui/input.tsx +0 -22
  648. package/corpus/templates/analytics/app/components/ui/label.tsx +0 -24
  649. package/corpus/templates/analytics/app/components/ui/menubar.tsx +0 -234
  650. package/corpus/templates/analytics/app/components/ui/navigation-menu.tsx +0 -128
  651. package/corpus/templates/analytics/app/components/ui/pagination.tsx +0 -121
  652. package/corpus/templates/analytics/app/components/ui/popover.tsx +0 -44
  653. package/corpus/templates/analytics/app/components/ui/progress.tsx +0 -26
  654. package/corpus/templates/analytics/app/components/ui/radio-group.tsx +0 -42
  655. package/corpus/templates/analytics/app/components/ui/resizable.tsx +0 -43
  656. package/corpus/templates/analytics/app/components/ui/scroll-area.tsx +0 -46
  657. package/corpus/templates/analytics/app/components/ui/select.tsx +0 -158
  658. package/corpus/templates/analytics/app/components/ui/separator.tsx +0 -29
  659. package/corpus/templates/analytics/app/components/ui/sheet.tsx +0 -160
  660. package/corpus/templates/analytics/app/components/ui/sidebar.tsx +0 -782
  661. package/corpus/templates/analytics/app/components/ui/skeleton.tsx +0 -15
  662. package/corpus/templates/analytics/app/components/ui/slider.tsx +0 -26
  663. package/corpus/templates/analytics/app/components/ui/sonner.tsx +0 -58
  664. package/corpus/templates/analytics/app/components/ui/spinner.tsx +0 -17
  665. package/corpus/templates/analytics/app/components/ui/switch.tsx +0 -27
  666. package/corpus/templates/analytics/app/components/ui/table.tsx +0 -117
  667. package/corpus/templates/analytics/app/components/ui/tabs.tsx +0 -53
  668. package/corpus/templates/analytics/app/components/ui/textarea.tsx +0 -23
  669. package/corpus/templates/analytics/app/components/ui/toast.tsx +0 -127
  670. package/corpus/templates/analytics/app/components/ui/toaster.tsx +0 -33
  671. package/corpus/templates/analytics/app/components/ui/toggle-group.tsx +0 -59
  672. package/corpus/templates/analytics/app/components/ui/toggle.tsx +0 -43
  673. package/corpus/templates/analytics/app/components/ui/tooltip.tsx +0 -30
  674. package/corpus/templates/analytics/app/components/ui/use-toast.ts +0 -3
  675. package/corpus/templates/analytics/app/hooks/use-mobile.tsx +0 -21
  676. package/corpus/templates/analytics/app/hooks/use-toast.ts +0 -188
  677. package/corpus/templates/assets/app/components/layout/HeaderActions.tsx +0 -84
  678. package/corpus/templates/assets/app/components/ui/alert-dialog.tsx +0 -139
  679. package/corpus/templates/assets/app/components/ui/alert.tsx +0 -59
  680. package/corpus/templates/assets/app/components/ui/avatar.tsx +0 -48
  681. package/corpus/templates/assets/app/components/ui/badge.tsx +0 -37
  682. package/corpus/templates/assets/app/components/ui/breadcrumb.tsx +0 -115
  683. package/corpus/templates/assets/app/components/ui/button.tsx +0 -57
  684. package/corpus/templates/assets/app/components/ui/card.tsx +0 -86
  685. package/corpus/templates/assets/app/components/ui/checkbox.tsx +0 -28
  686. package/corpus/templates/assets/app/components/ui/dialog.tsx +0 -130
  687. package/corpus/templates/assets/app/components/ui/dropdown-menu.tsx +0 -212
  688. package/corpus/templates/assets/app/components/ui/hover-card.tsx +0 -27
  689. package/corpus/templates/assets/app/components/ui/input.tsx +0 -22
  690. package/corpus/templates/assets/app/components/ui/label.tsx +0 -24
  691. package/corpus/templates/assets/app/components/ui/pagination.tsx +0 -121
  692. package/corpus/templates/assets/app/components/ui/popover.tsx +0 -44
  693. package/corpus/templates/assets/app/components/ui/progress.tsx +0 -26
  694. package/corpus/templates/assets/app/components/ui/scroll-area.tsx +0 -46
  695. package/corpus/templates/assets/app/components/ui/select.tsx +0 -158
  696. package/corpus/templates/assets/app/components/ui/separator.tsx +0 -29
  697. package/corpus/templates/assets/app/components/ui/sheet.tsx +0 -160
  698. package/corpus/templates/assets/app/components/ui/skeleton.tsx +0 -15
  699. package/corpus/templates/assets/app/components/ui/slider.tsx +0 -26
  700. package/corpus/templates/assets/app/components/ui/sonner.tsx +0 -58
  701. package/corpus/templates/assets/app/components/ui/spinner.tsx +0 -17
  702. package/corpus/templates/assets/app/components/ui/table.tsx +0 -117
  703. package/corpus/templates/assets/app/components/ui/tabs.tsx +0 -53
  704. package/corpus/templates/assets/app/components/ui/tooltip.tsx +0 -30
  705. package/corpus/templates/brain/app/components/ui/badge.tsx +0 -37
  706. package/corpus/templates/brain/app/components/ui/button.tsx +0 -57
  707. package/corpus/templates/brain/app/components/ui/card.tsx +0 -86
  708. package/corpus/templates/brain/app/components/ui/input.tsx +0 -22
  709. package/corpus/templates/brain/app/components/ui/label.tsx +0 -24
  710. package/corpus/templates/brain/app/components/ui/progress.tsx +0 -26
  711. package/corpus/templates/brain/app/components/ui/select.tsx +0 -158
  712. package/corpus/templates/brain/app/components/ui/separator.tsx +0 -29
  713. package/corpus/templates/brain/app/components/ui/sheet.tsx +0 -160
  714. package/corpus/templates/brain/app/components/ui/skeleton.tsx +0 -15
  715. package/corpus/templates/brain/app/components/ui/sonner.tsx +0 -58
  716. package/corpus/templates/brain/app/components/ui/switch.tsx +0 -27
  717. package/corpus/templates/brain/app/components/ui/table.tsx +0 -117
  718. package/corpus/templates/brain/app/components/ui/textarea.tsx +0 -23
  719. package/corpus/templates/brain/app/components/ui/tooltip.tsx +0 -30
  720. package/corpus/templates/calendar/app/components/ui/accordion.tsx +0 -56
  721. package/corpus/templates/calendar/app/components/ui/alert-dialog.tsx +0 -139
  722. package/corpus/templates/calendar/app/components/ui/alert.tsx +0 -59
  723. package/corpus/templates/calendar/app/components/ui/aspect-ratio.tsx +0 -5
  724. package/corpus/templates/calendar/app/components/ui/avatar.tsx +0 -48
  725. package/corpus/templates/calendar/app/components/ui/badge.tsx +0 -37
  726. package/corpus/templates/calendar/app/components/ui/breadcrumb.tsx +0 -115
  727. package/corpus/templates/calendar/app/components/ui/button.tsx +0 -57
  728. package/corpus/templates/calendar/app/components/ui/calendar.tsx +0 -68
  729. package/corpus/templates/calendar/app/components/ui/card.tsx +0 -86
  730. package/corpus/templates/calendar/app/components/ui/carousel.tsx +0 -260
  731. package/corpus/templates/calendar/app/components/ui/chart.tsx +0 -375
  732. package/corpus/templates/calendar/app/components/ui/checkbox.tsx +0 -28
  733. package/corpus/templates/calendar/app/components/ui/collapsible.tsx +0 -9
  734. package/corpus/templates/calendar/app/components/ui/command.tsx +0 -154
  735. package/corpus/templates/calendar/app/components/ui/context-menu.tsx +0 -202
  736. package/corpus/templates/calendar/app/components/ui/dialog.tsx +0 -130
  737. package/corpus/templates/calendar/app/components/ui/drawer.tsx +0 -116
  738. package/corpus/templates/calendar/app/components/ui/dropdown-menu.tsx +0 -212
  739. package/corpus/templates/calendar/app/components/ui/form.tsx +0 -177
  740. package/corpus/templates/calendar/app/components/ui/hover-card.tsx +0 -27
  741. package/corpus/templates/calendar/app/components/ui/input-otp.tsx +0 -69
  742. package/corpus/templates/calendar/app/components/ui/input.tsx +0 -22
  743. package/corpus/templates/calendar/app/components/ui/label.tsx +0 -24
  744. package/corpus/templates/calendar/app/components/ui/menubar.tsx +0 -234
  745. package/corpus/templates/calendar/app/components/ui/navigation-menu.tsx +0 -128
  746. package/corpus/templates/calendar/app/components/ui/pagination.tsx +0 -121
  747. package/corpus/templates/calendar/app/components/ui/popover.tsx +0 -44
  748. package/corpus/templates/calendar/app/components/ui/progress.tsx +0 -26
  749. package/corpus/templates/calendar/app/components/ui/radio-group.tsx +0 -42
  750. package/corpus/templates/calendar/app/components/ui/resizable.tsx +0 -43
  751. package/corpus/templates/calendar/app/components/ui/scroll-area.tsx +0 -46
  752. package/corpus/templates/calendar/app/components/ui/select.tsx +0 -158
  753. package/corpus/templates/calendar/app/components/ui/separator.tsx +0 -29
  754. package/corpus/templates/calendar/app/components/ui/sheet.tsx +0 -160
  755. package/corpus/templates/calendar/app/components/ui/sidebar.tsx +0 -782
  756. package/corpus/templates/calendar/app/components/ui/skeleton.tsx +0 -15
  757. package/corpus/templates/calendar/app/components/ui/slider.tsx +0 -26
  758. package/corpus/templates/calendar/app/components/ui/spinner.tsx +0 -17
  759. package/corpus/templates/calendar/app/components/ui/switch.tsx +0 -27
  760. package/corpus/templates/calendar/app/components/ui/table.tsx +0 -117
  761. package/corpus/templates/calendar/app/components/ui/tabs.tsx +0 -53
  762. package/corpus/templates/calendar/app/components/ui/textarea.tsx +0 -23
  763. package/corpus/templates/calendar/app/components/ui/toast.tsx +0 -127
  764. package/corpus/templates/calendar/app/components/ui/toaster.tsx +0 -33
  765. package/corpus/templates/calendar/app/components/ui/toggle-group.tsx +0 -59
  766. package/corpus/templates/calendar/app/components/ui/toggle.tsx +0 -43
  767. package/corpus/templates/calendar/app/components/ui/tooltip.tsx +0 -30
  768. package/corpus/templates/calendar/app/components/ui/use-toast.ts +0 -3
  769. package/corpus/templates/calendar/app/hooks/use-mobile.tsx +0 -21
  770. package/corpus/templates/calendar/app/hooks/use-toast.ts +0 -188
  771. package/corpus/templates/chat/app/components/layout/HeaderActions.tsx +0 -84
  772. package/corpus/templates/chat/app/components/ui/accordion.tsx +0 -56
  773. package/corpus/templates/chat/app/components/ui/alert-dialog.tsx +0 -139
  774. package/corpus/templates/chat/app/components/ui/alert.tsx +0 -59
  775. package/corpus/templates/chat/app/components/ui/aspect-ratio.tsx +0 -5
  776. package/corpus/templates/chat/app/components/ui/avatar.tsx +0 -48
  777. package/corpus/templates/chat/app/components/ui/badge.tsx +0 -37
  778. package/corpus/templates/chat/app/components/ui/breadcrumb.tsx +0 -115
  779. package/corpus/templates/chat/app/components/ui/button.tsx +0 -57
  780. package/corpus/templates/chat/app/components/ui/calendar.tsx +0 -68
  781. package/corpus/templates/chat/app/components/ui/card.tsx +0 -86
  782. package/corpus/templates/chat/app/components/ui/carousel.tsx +0 -260
  783. package/corpus/templates/chat/app/components/ui/chart.tsx +0 -375
  784. package/corpus/templates/chat/app/components/ui/checkbox.tsx +0 -28
  785. package/corpus/templates/chat/app/components/ui/collapsible.tsx +0 -9
  786. package/corpus/templates/chat/app/components/ui/command.tsx +0 -154
  787. package/corpus/templates/chat/app/components/ui/context-menu.tsx +0 -202
  788. package/corpus/templates/chat/app/components/ui/dialog.tsx +0 -130
  789. package/corpus/templates/chat/app/components/ui/drawer.tsx +0 -116
  790. package/corpus/templates/chat/app/components/ui/dropdown-menu.tsx +0 -212
  791. package/corpus/templates/chat/app/components/ui/form.tsx +0 -177
  792. package/corpus/templates/chat/app/components/ui/hover-card.tsx +0 -27
  793. package/corpus/templates/chat/app/components/ui/input-otp.tsx +0 -69
  794. package/corpus/templates/chat/app/components/ui/input.tsx +0 -22
  795. package/corpus/templates/chat/app/components/ui/label.tsx +0 -24
  796. package/corpus/templates/chat/app/components/ui/menubar.tsx +0 -234
  797. package/corpus/templates/chat/app/components/ui/navigation-menu.tsx +0 -128
  798. package/corpus/templates/chat/app/components/ui/pagination.tsx +0 -121
  799. package/corpus/templates/chat/app/components/ui/popover.tsx +0 -44
  800. package/corpus/templates/chat/app/components/ui/progress.tsx +0 -26
  801. package/corpus/templates/chat/app/components/ui/radio-group.tsx +0 -42
  802. package/corpus/templates/chat/app/components/ui/resizable.tsx +0 -43
  803. package/corpus/templates/chat/app/components/ui/scroll-area.tsx +0 -46
  804. package/corpus/templates/chat/app/components/ui/select.tsx +0 -158
  805. package/corpus/templates/chat/app/components/ui/separator.tsx +0 -29
  806. package/corpus/templates/chat/app/components/ui/sheet.tsx +0 -160
  807. package/corpus/templates/chat/app/components/ui/sidebar.tsx +0 -782
  808. package/corpus/templates/chat/app/components/ui/skeleton.tsx +0 -15
  809. package/corpus/templates/chat/app/components/ui/slider.tsx +0 -26
  810. package/corpus/templates/chat/app/components/ui/sonner.tsx +0 -58
  811. package/corpus/templates/chat/app/components/ui/spinner.tsx +0 -17
  812. package/corpus/templates/chat/app/components/ui/switch.tsx +0 -27
  813. package/corpus/templates/chat/app/components/ui/table.tsx +0 -117
  814. package/corpus/templates/chat/app/components/ui/tabs.tsx +0 -53
  815. package/corpus/templates/chat/app/components/ui/textarea.tsx +0 -23
  816. package/corpus/templates/chat/app/components/ui/toast.tsx +0 -127
  817. package/corpus/templates/chat/app/components/ui/toaster.tsx +0 -33
  818. package/corpus/templates/chat/app/components/ui/toggle-group.tsx +0 -59
  819. package/corpus/templates/chat/app/components/ui/toggle.tsx +0 -43
  820. package/corpus/templates/chat/app/components/ui/tooltip.tsx +0 -30
  821. package/corpus/templates/chat/app/components/ui/use-toast.ts +0 -3
  822. package/corpus/templates/chat/app/hooks/use-mobile.tsx +0 -21
  823. package/corpus/templates/chat/app/hooks/use-toast.ts +0 -188
  824. package/corpus/templates/clips/app/components/layout/HeaderActions.tsx +0 -84
  825. package/corpus/templates/clips/app/components/ui/accordion.tsx +0 -56
  826. package/corpus/templates/clips/app/components/ui/alert-dialog.tsx +0 -139
  827. package/corpus/templates/clips/app/components/ui/alert.tsx +0 -59
  828. package/corpus/templates/clips/app/components/ui/aspect-ratio.tsx +0 -5
  829. package/corpus/templates/clips/app/components/ui/avatar.tsx +0 -48
  830. package/corpus/templates/clips/app/components/ui/badge.tsx +0 -37
  831. package/corpus/templates/clips/app/components/ui/breadcrumb.tsx +0 -115
  832. package/corpus/templates/clips/app/components/ui/button.tsx +0 -57
  833. package/corpus/templates/clips/app/components/ui/calendar.tsx +0 -68
  834. package/corpus/templates/clips/app/components/ui/card.tsx +0 -86
  835. package/corpus/templates/clips/app/components/ui/carousel.tsx +0 -260
  836. package/corpus/templates/clips/app/components/ui/chart.tsx +0 -375
  837. package/corpus/templates/clips/app/components/ui/checkbox.tsx +0 -28
  838. package/corpus/templates/clips/app/components/ui/collapsible.tsx +0 -9
  839. package/corpus/templates/clips/app/components/ui/command.tsx +0 -154
  840. package/corpus/templates/clips/app/components/ui/context-menu.tsx +0 -202
  841. package/corpus/templates/clips/app/components/ui/dialog.tsx +0 -130
  842. package/corpus/templates/clips/app/components/ui/drawer.tsx +0 -116
  843. package/corpus/templates/clips/app/components/ui/dropdown-menu.tsx +0 -212
  844. package/corpus/templates/clips/app/components/ui/form.tsx +0 -177
  845. package/corpus/templates/clips/app/components/ui/hover-card.tsx +0 -27
  846. package/corpus/templates/clips/app/components/ui/input-otp.tsx +0 -69
  847. package/corpus/templates/clips/app/components/ui/input.tsx +0 -22
  848. package/corpus/templates/clips/app/components/ui/label.tsx +0 -24
  849. package/corpus/templates/clips/app/components/ui/menubar.tsx +0 -234
  850. package/corpus/templates/clips/app/components/ui/navigation-menu.tsx +0 -128
  851. package/corpus/templates/clips/app/components/ui/pagination.tsx +0 -121
  852. package/corpus/templates/clips/app/components/ui/popover.tsx +0 -44
  853. package/corpus/templates/clips/app/components/ui/progress.tsx +0 -26
  854. package/corpus/templates/clips/app/components/ui/radio-group.tsx +0 -42
  855. package/corpus/templates/clips/app/components/ui/resizable.tsx +0 -43
  856. package/corpus/templates/clips/app/components/ui/scroll-area.tsx +0 -46
  857. package/corpus/templates/clips/app/components/ui/select.tsx +0 -158
  858. package/corpus/templates/clips/app/components/ui/separator.tsx +0 -29
  859. package/corpus/templates/clips/app/components/ui/sheet.tsx +0 -160
  860. package/corpus/templates/clips/app/components/ui/sidebar.tsx +0 -782
  861. package/corpus/templates/clips/app/components/ui/skeleton.tsx +0 -15
  862. package/corpus/templates/clips/app/components/ui/slider.tsx +0 -26
  863. package/corpus/templates/clips/app/components/ui/sonner.tsx +0 -58
  864. package/corpus/templates/clips/app/components/ui/spinner.tsx +0 -17
  865. package/corpus/templates/clips/app/components/ui/switch.tsx +0 -27
  866. package/corpus/templates/clips/app/components/ui/table.tsx +0 -117
  867. package/corpus/templates/clips/app/components/ui/tabs.tsx +0 -53
  868. package/corpus/templates/clips/app/components/ui/textarea.tsx +0 -23
  869. package/corpus/templates/clips/app/components/ui/toast.tsx +0 -127
  870. package/corpus/templates/clips/app/components/ui/toaster.tsx +0 -33
  871. package/corpus/templates/clips/app/components/ui/toggle-group.tsx +0 -59
  872. package/corpus/templates/clips/app/components/ui/toggle.tsx +0 -43
  873. package/corpus/templates/clips/app/components/ui/tooltip.tsx +0 -30
  874. package/corpus/templates/clips/app/components/ui/use-toast.ts +0 -3
  875. package/corpus/templates/clips/app/hooks/use-mobile.tsx +0 -21
  876. package/corpus/templates/clips/app/hooks/use-toast.ts +0 -188
  877. package/corpus/templates/content/app/components/layout/HeaderActions.tsx +0 -84
  878. package/corpus/templates/content/app/components/ui/alert-dialog.tsx +0 -139
  879. package/corpus/templates/content/app/components/ui/button.tsx +0 -57
  880. package/corpus/templates/content/app/components/ui/dialog.tsx +0 -130
  881. package/corpus/templates/content/app/components/ui/dropdown-menu.tsx +0 -212
  882. package/corpus/templates/content/app/components/ui/input.tsx +0 -22
  883. package/corpus/templates/content/app/components/ui/label.tsx +0 -24
  884. package/corpus/templates/content/app/components/ui/popover.tsx +0 -44
  885. package/corpus/templates/content/app/components/ui/separator.tsx +0 -29
  886. package/corpus/templates/content/app/components/ui/sheet.tsx +0 -160
  887. package/corpus/templates/content/app/components/ui/skeleton.tsx +0 -15
  888. package/corpus/templates/content/app/components/ui/sonner.tsx +0 -58
  889. package/corpus/templates/content/app/components/ui/spinner.tsx +0 -17
  890. package/corpus/templates/content/app/components/ui/table.tsx +0 -117
  891. package/corpus/templates/content/app/components/ui/toast.tsx +0 -127
  892. package/corpus/templates/content/app/components/ui/toaster.tsx +0 -33
  893. package/corpus/templates/content/app/components/ui/toggle.tsx +0 -43
  894. package/corpus/templates/content/app/components/ui/tooltip.tsx +0 -30
  895. package/corpus/templates/content/app/components/ui/use-toast.ts +0 -3
  896. package/corpus/templates/content/app/hooks/use-mobile.tsx +0 -21
  897. package/corpus/templates/content/app/hooks/use-toast.ts +0 -188
  898. package/corpus/templates/design/app/components/layout/HeaderActions.tsx +0 -84
  899. package/corpus/templates/design/app/components/ui/accordion.tsx +0 -56
  900. package/corpus/templates/design/app/components/ui/alert-dialog.tsx +0 -139
  901. package/corpus/templates/design/app/components/ui/alert.tsx +0 -59
  902. package/corpus/templates/design/app/components/ui/aspect-ratio.tsx +0 -5
  903. package/corpus/templates/design/app/components/ui/avatar.tsx +0 -48
  904. package/corpus/templates/design/app/components/ui/badge.tsx +0 -37
  905. package/corpus/templates/design/app/components/ui/breadcrumb.tsx +0 -115
  906. package/corpus/templates/design/app/components/ui/button.tsx +0 -57
  907. package/corpus/templates/design/app/components/ui/calendar.tsx +0 -68
  908. package/corpus/templates/design/app/components/ui/card.tsx +0 -86
  909. package/corpus/templates/design/app/components/ui/carousel.tsx +0 -260
  910. package/corpus/templates/design/app/components/ui/chart.tsx +0 -375
  911. package/corpus/templates/design/app/components/ui/checkbox.tsx +0 -28
  912. package/corpus/templates/design/app/components/ui/collapsible.tsx +0 -9
  913. package/corpus/templates/design/app/components/ui/command.tsx +0 -154
  914. package/corpus/templates/design/app/components/ui/context-menu.tsx +0 -202
  915. package/corpus/templates/design/app/components/ui/dialog.tsx +0 -130
  916. package/corpus/templates/design/app/components/ui/drawer.tsx +0 -116
  917. package/corpus/templates/design/app/components/ui/dropdown-menu.tsx +0 -212
  918. package/corpus/templates/design/app/components/ui/form.tsx +0 -177
  919. package/corpus/templates/design/app/components/ui/hover-card.tsx +0 -27
  920. package/corpus/templates/design/app/components/ui/input-otp.tsx +0 -69
  921. package/corpus/templates/design/app/components/ui/input.tsx +0 -22
  922. package/corpus/templates/design/app/components/ui/label.tsx +0 -24
  923. package/corpus/templates/design/app/components/ui/menubar.tsx +0 -234
  924. package/corpus/templates/design/app/components/ui/navigation-menu.tsx +0 -128
  925. package/corpus/templates/design/app/components/ui/pagination.tsx +0 -121
  926. package/corpus/templates/design/app/components/ui/popover.tsx +0 -44
  927. package/corpus/templates/design/app/components/ui/progress.tsx +0 -26
  928. package/corpus/templates/design/app/components/ui/radio-group.tsx +0 -42
  929. package/corpus/templates/design/app/components/ui/resizable.tsx +0 -43
  930. package/corpus/templates/design/app/components/ui/scroll-area.tsx +0 -46
  931. package/corpus/templates/design/app/components/ui/select.tsx +0 -158
  932. package/corpus/templates/design/app/components/ui/separator.tsx +0 -29
  933. package/corpus/templates/design/app/components/ui/sheet.tsx +0 -160
  934. package/corpus/templates/design/app/components/ui/sidebar.tsx +0 -782
  935. package/corpus/templates/design/app/components/ui/skeleton.tsx +0 -15
  936. package/corpus/templates/design/app/components/ui/slider.tsx +0 -26
  937. package/corpus/templates/design/app/components/ui/sonner.tsx +0 -58
  938. package/corpus/templates/design/app/components/ui/spinner.tsx +0 -17
  939. package/corpus/templates/design/app/components/ui/switch.tsx +0 -27
  940. package/corpus/templates/design/app/components/ui/table.tsx +0 -117
  941. package/corpus/templates/design/app/components/ui/tabs.tsx +0 -53
  942. package/corpus/templates/design/app/components/ui/textarea.tsx +0 -23
  943. package/corpus/templates/design/app/components/ui/toast.tsx +0 -127
  944. package/corpus/templates/design/app/components/ui/toaster.tsx +0 -33
  945. package/corpus/templates/design/app/components/ui/toggle-group.tsx +0 -59
  946. package/corpus/templates/design/app/components/ui/toggle.tsx +0 -43
  947. package/corpus/templates/design/app/components/ui/tooltip.tsx +0 -30
  948. package/corpus/templates/design/app/components/ui/use-toast.ts +0 -3
  949. package/corpus/templates/design/app/hooks/use-mobile.tsx +0 -21
  950. package/corpus/templates/design/app/hooks/use-toast.ts +0 -188
  951. package/corpus/templates/forms/app/components/layout/HeaderActions.tsx +0 -84
  952. package/corpus/templates/forms/app/components/ui/accordion.tsx +0 -56
  953. package/corpus/templates/forms/app/components/ui/alert-dialog.tsx +0 -139
  954. package/corpus/templates/forms/app/components/ui/alert.tsx +0 -59
  955. package/corpus/templates/forms/app/components/ui/aspect-ratio.tsx +0 -5
  956. package/corpus/templates/forms/app/components/ui/avatar.tsx +0 -48
  957. package/corpus/templates/forms/app/components/ui/badge.tsx +0 -37
  958. package/corpus/templates/forms/app/components/ui/breadcrumb.tsx +0 -115
  959. package/corpus/templates/forms/app/components/ui/button.tsx +0 -57
  960. package/corpus/templates/forms/app/components/ui/card.tsx +0 -86
  961. package/corpus/templates/forms/app/components/ui/carousel.tsx +0 -260
  962. package/corpus/templates/forms/app/components/ui/checkbox.tsx +0 -28
  963. package/corpus/templates/forms/app/components/ui/collapsible.tsx +0 -9
  964. package/corpus/templates/forms/app/components/ui/dialog.tsx +0 -130
  965. package/corpus/templates/forms/app/components/ui/drawer.tsx +0 -116
  966. package/corpus/templates/forms/app/components/ui/dropdown-menu.tsx +0 -212
  967. package/corpus/templates/forms/app/components/ui/form.tsx +0 -177
  968. package/corpus/templates/forms/app/components/ui/hover-card.tsx +0 -27
  969. package/corpus/templates/forms/app/components/ui/input-otp.tsx +0 -69
  970. package/corpus/templates/forms/app/components/ui/input.tsx +0 -22
  971. package/corpus/templates/forms/app/components/ui/label.tsx +0 -24
  972. package/corpus/templates/forms/app/components/ui/navigation-menu.tsx +0 -128
  973. package/corpus/templates/forms/app/components/ui/pagination.tsx +0 -121
  974. package/corpus/templates/forms/app/components/ui/popover.tsx +0 -44
  975. package/corpus/templates/forms/app/components/ui/progress.tsx +0 -26
  976. package/corpus/templates/forms/app/components/ui/radio-group.tsx +0 -42
  977. package/corpus/templates/forms/app/components/ui/resizable.tsx +0 -43
  978. package/corpus/templates/forms/app/components/ui/scroll-area.tsx +0 -46
  979. package/corpus/templates/forms/app/components/ui/select.tsx +0 -158
  980. package/corpus/templates/forms/app/components/ui/separator.tsx +0 -29
  981. package/corpus/templates/forms/app/components/ui/sheet.tsx +0 -160
  982. package/corpus/templates/forms/app/components/ui/sidebar.tsx +0 -782
  983. package/corpus/templates/forms/app/components/ui/skeleton.tsx +0 -15
  984. package/corpus/templates/forms/app/components/ui/slider.tsx +0 -26
  985. package/corpus/templates/forms/app/components/ui/sonner.tsx +0 -58
  986. package/corpus/templates/forms/app/components/ui/spinner.tsx +0 -17
  987. package/corpus/templates/forms/app/components/ui/switch.tsx +0 -27
  988. package/corpus/templates/forms/app/components/ui/table.tsx +0 -117
  989. package/corpus/templates/forms/app/components/ui/tabs.tsx +0 -53
  990. package/corpus/templates/forms/app/components/ui/textarea.tsx +0 -23
  991. package/corpus/templates/forms/app/components/ui/toast.tsx +0 -127
  992. package/corpus/templates/forms/app/components/ui/toaster.tsx +0 -33
  993. package/corpus/templates/forms/app/components/ui/toggle-group.tsx +0 -59
  994. package/corpus/templates/forms/app/components/ui/toggle.tsx +0 -43
  995. package/corpus/templates/forms/app/components/ui/tooltip.tsx +0 -30
  996. package/corpus/templates/forms/app/hooks/use-mobile.tsx +0 -21
  997. package/corpus/templates/forms/app/hooks/use-toast.ts +0 -188
  998. package/corpus/templates/macros/app/components/layout/HeaderActions.tsx +0 -84
  999. package/corpus/templates/macros/app/components/ui/accordion.tsx +0 -56
  1000. package/corpus/templates/macros/app/components/ui/alert-dialog.tsx +0 -139
  1001. package/corpus/templates/macros/app/components/ui/alert.tsx +0 -59
  1002. package/corpus/templates/macros/app/components/ui/aspect-ratio.tsx +0 -5
  1003. package/corpus/templates/macros/app/components/ui/avatar.tsx +0 -48
  1004. package/corpus/templates/macros/app/components/ui/badge.tsx +0 -37
  1005. package/corpus/templates/macros/app/components/ui/breadcrumb.tsx +0 -115
  1006. package/corpus/templates/macros/app/components/ui/chart.tsx +0 -375
  1007. package/corpus/templates/macros/app/components/ui/checkbox.tsx +0 -28
  1008. package/corpus/templates/macros/app/components/ui/collapsible.tsx +0 -9
  1009. package/corpus/templates/macros/app/components/ui/command.tsx +0 -154
  1010. package/corpus/templates/macros/app/components/ui/context-menu.tsx +0 -202
  1011. package/corpus/templates/macros/app/components/ui/drawer.tsx +0 -116
  1012. package/corpus/templates/macros/app/components/ui/dropdown-menu.tsx +0 -212
  1013. package/corpus/templates/macros/app/components/ui/form.tsx +0 -177
  1014. package/corpus/templates/macros/app/components/ui/hover-card.tsx +0 -27
  1015. package/corpus/templates/macros/app/components/ui/label.tsx +0 -24
  1016. package/corpus/templates/macros/app/components/ui/logo.tsx +0 -36
  1017. package/corpus/templates/macros/app/components/ui/navigation-menu.tsx +0 -128
  1018. package/corpus/templates/macros/app/components/ui/pagination.tsx +0 -121
  1019. package/corpus/templates/macros/app/components/ui/popover.tsx +0 -44
  1020. package/corpus/templates/macros/app/components/ui/radio-group.tsx +0 -42
  1021. package/corpus/templates/macros/app/components/ui/scroll-area.tsx +0 -46
  1022. package/corpus/templates/macros/app/components/ui/select.tsx +0 -158
  1023. package/corpus/templates/macros/app/components/ui/separator.tsx +0 -29
  1024. package/corpus/templates/macros/app/components/ui/sheet.tsx +0 -160
  1025. package/corpus/templates/macros/app/components/ui/skeleton.tsx +0 -15
  1026. package/corpus/templates/macros/app/components/ui/slider.tsx +0 -26
  1027. package/corpus/templates/macros/app/components/ui/sonner.tsx +0 -58
  1028. package/corpus/templates/macros/app/components/ui/switch.tsx +0 -27
  1029. package/corpus/templates/macros/app/components/ui/table.tsx +0 -117
  1030. package/corpus/templates/macros/app/components/ui/toast.tsx +0 -127
  1031. package/corpus/templates/macros/app/components/ui/toggle-group.tsx +0 -59
  1032. package/corpus/templates/macros/app/components/ui/toggle.tsx +0 -43
  1033. package/corpus/templates/macros/app/components/ui/tooltip.tsx +0 -30
  1034. package/corpus/templates/mail/app/components/ui/accordion.tsx +0 -56
  1035. package/corpus/templates/mail/app/components/ui/alert-dialog.tsx +0 -139
  1036. package/corpus/templates/mail/app/components/ui/alert.tsx +0 -59
  1037. package/corpus/templates/mail/app/components/ui/aspect-ratio.tsx +0 -5
  1038. package/corpus/templates/mail/app/components/ui/avatar.tsx +0 -48
  1039. package/corpus/templates/mail/app/components/ui/badge.tsx +0 -37
  1040. package/corpus/templates/mail/app/components/ui/breadcrumb.tsx +0 -115
  1041. package/corpus/templates/mail/app/components/ui/button.tsx +0 -57
  1042. package/corpus/templates/mail/app/components/ui/card.tsx +0 -86
  1043. package/corpus/templates/mail/app/components/ui/carousel.tsx +0 -260
  1044. package/corpus/templates/mail/app/components/ui/checkbox.tsx +0 -28
  1045. package/corpus/templates/mail/app/components/ui/collapsible.tsx +0 -9
  1046. package/corpus/templates/mail/app/components/ui/dialog.tsx +0 -130
  1047. package/corpus/templates/mail/app/components/ui/drawer.tsx +0 -116
  1048. package/corpus/templates/mail/app/components/ui/dropdown-menu.tsx +0 -212
  1049. package/corpus/templates/mail/app/components/ui/form.tsx +0 -177
  1050. package/corpus/templates/mail/app/components/ui/hover-card.tsx +0 -27
  1051. package/corpus/templates/mail/app/components/ui/input-otp.tsx +0 -69
  1052. package/corpus/templates/mail/app/components/ui/label.tsx +0 -24
  1053. package/corpus/templates/mail/app/components/ui/navigation-menu.tsx +0 -128
  1054. package/corpus/templates/mail/app/components/ui/pagination.tsx +0 -121
  1055. package/corpus/templates/mail/app/components/ui/popover.tsx +0 -44
  1056. package/corpus/templates/mail/app/components/ui/progress.tsx +0 -26
  1057. package/corpus/templates/mail/app/components/ui/radio-group.tsx +0 -42
  1058. package/corpus/templates/mail/app/components/ui/resizable.tsx +0 -43
  1059. package/corpus/templates/mail/app/components/ui/scroll-area.tsx +0 -46
  1060. package/corpus/templates/mail/app/components/ui/select.tsx +0 -158
  1061. package/corpus/templates/mail/app/components/ui/separator.tsx +0 -29
  1062. package/corpus/templates/mail/app/components/ui/sheet.tsx +0 -160
  1063. package/corpus/templates/mail/app/components/ui/sidebar.tsx +0 -782
  1064. package/corpus/templates/mail/app/components/ui/skeleton.tsx +0 -15
  1065. package/corpus/templates/mail/app/components/ui/slider.tsx +0 -26
  1066. package/corpus/templates/mail/app/components/ui/spinner.tsx +0 -17
  1067. package/corpus/templates/mail/app/components/ui/switch.tsx +0 -27
  1068. package/corpus/templates/mail/app/components/ui/table.tsx +0 -117
  1069. package/corpus/templates/mail/app/components/ui/tabs.tsx +0 -53
  1070. package/corpus/templates/mail/app/components/ui/toast.tsx +0 -127
  1071. package/corpus/templates/mail/app/components/ui/toaster.tsx +0 -33
  1072. package/corpus/templates/mail/app/components/ui/toggle-group.tsx +0 -59
  1073. package/corpus/templates/mail/app/components/ui/toggle.tsx +0 -43
  1074. package/corpus/templates/mail/app/components/ui/tooltip.tsx +0 -30
  1075. package/corpus/templates/mail/app/hooks/use-toast.ts +0 -188
  1076. package/corpus/templates/plan/app/components/layout/HeaderActions.tsx +0 -84
  1077. package/corpus/templates/plan/app/components/ui/accordion.tsx +0 -56
  1078. package/corpus/templates/plan/app/components/ui/alert-dialog.tsx +0 -139
  1079. package/corpus/templates/plan/app/components/ui/alert.tsx +0 -59
  1080. package/corpus/templates/plan/app/components/ui/aspect-ratio.tsx +0 -5
  1081. package/corpus/templates/plan/app/components/ui/avatar.tsx +0 -48
  1082. package/corpus/templates/plan/app/components/ui/badge.tsx +0 -37
  1083. package/corpus/templates/plan/app/components/ui/breadcrumb.tsx +0 -115
  1084. package/corpus/templates/plan/app/components/ui/button.tsx +0 -57
  1085. package/corpus/templates/plan/app/components/ui/calendar.tsx +0 -68
  1086. package/corpus/templates/plan/app/components/ui/card.tsx +0 -86
  1087. package/corpus/templates/plan/app/components/ui/carousel.tsx +0 -260
  1088. package/corpus/templates/plan/app/components/ui/chart.tsx +0 -375
  1089. package/corpus/templates/plan/app/components/ui/checkbox.tsx +0 -28
  1090. package/corpus/templates/plan/app/components/ui/collapsible.tsx +0 -9
  1091. package/corpus/templates/plan/app/components/ui/command.tsx +0 -154
  1092. package/corpus/templates/plan/app/components/ui/context-menu.tsx +0 -202
  1093. package/corpus/templates/plan/app/components/ui/dialog.tsx +0 -130
  1094. package/corpus/templates/plan/app/components/ui/drawer.tsx +0 -116
  1095. package/corpus/templates/plan/app/components/ui/dropdown-menu.tsx +0 -212
  1096. package/corpus/templates/plan/app/components/ui/form.tsx +0 -177
  1097. package/corpus/templates/plan/app/components/ui/hover-card.tsx +0 -27
  1098. package/corpus/templates/plan/app/components/ui/input-otp.tsx +0 -69
  1099. package/corpus/templates/plan/app/components/ui/input.tsx +0 -22
  1100. package/corpus/templates/plan/app/components/ui/label.tsx +0 -24
  1101. package/corpus/templates/plan/app/components/ui/menubar.tsx +0 -234
  1102. package/corpus/templates/plan/app/components/ui/navigation-menu.tsx +0 -128
  1103. package/corpus/templates/plan/app/components/ui/pagination.tsx +0 -121
  1104. package/corpus/templates/plan/app/components/ui/popover.tsx +0 -44
  1105. package/corpus/templates/plan/app/components/ui/progress.tsx +0 -26
  1106. package/corpus/templates/plan/app/components/ui/radio-group.tsx +0 -42
  1107. package/corpus/templates/plan/app/components/ui/resizable.tsx +0 -43
  1108. package/corpus/templates/plan/app/components/ui/scroll-area.tsx +0 -46
  1109. package/corpus/templates/plan/app/components/ui/select.tsx +0 -158
  1110. package/corpus/templates/plan/app/components/ui/separator.tsx +0 -29
  1111. package/corpus/templates/plan/app/components/ui/sheet.tsx +0 -160
  1112. package/corpus/templates/plan/app/components/ui/sidebar.tsx +0 -782
  1113. package/corpus/templates/plan/app/components/ui/skeleton.tsx +0 -15
  1114. package/corpus/templates/plan/app/components/ui/slider.tsx +0 -26
  1115. package/corpus/templates/plan/app/components/ui/sonner.tsx +0 -58
  1116. package/corpus/templates/plan/app/components/ui/spinner.tsx +0 -17
  1117. package/corpus/templates/plan/app/components/ui/switch.tsx +0 -27
  1118. package/corpus/templates/plan/app/components/ui/table.tsx +0 -117
  1119. package/corpus/templates/plan/app/components/ui/textarea.tsx +0 -23
  1120. package/corpus/templates/plan/app/components/ui/toast.tsx +0 -127
  1121. package/corpus/templates/plan/app/components/ui/toaster.tsx +0 -33
  1122. package/corpus/templates/plan/app/components/ui/toggle-group.tsx +0 -59
  1123. package/corpus/templates/plan/app/components/ui/toggle.tsx +0 -43
  1124. package/corpus/templates/plan/app/components/ui/tooltip.tsx +0 -30
  1125. package/corpus/templates/plan/app/components/ui/use-toast.ts +0 -3
  1126. package/corpus/templates/plan/app/hooks/use-mobile.tsx +0 -21
  1127. package/corpus/templates/plan/app/hooks/use-toast.ts +0 -188
  1128. package/corpus/templates/slides/app/components/layout/HeaderActions.tsx +0 -84
  1129. package/corpus/templates/slides/app/components/ui/accordion.tsx +0 -56
  1130. package/corpus/templates/slides/app/components/ui/alert-dialog.tsx +0 -139
  1131. package/corpus/templates/slides/app/components/ui/alert.tsx +0 -59
  1132. package/corpus/templates/slides/app/components/ui/aspect-ratio.tsx +0 -5
  1133. package/corpus/templates/slides/app/components/ui/avatar.tsx +0 -48
  1134. package/corpus/templates/slides/app/components/ui/badge.tsx +0 -37
  1135. package/corpus/templates/slides/app/components/ui/breadcrumb.tsx +0 -115
  1136. package/corpus/templates/slides/app/components/ui/button.tsx +0 -57
  1137. package/corpus/templates/slides/app/components/ui/calendar.tsx +0 -68
  1138. package/corpus/templates/slides/app/components/ui/card.tsx +0 -86
  1139. package/corpus/templates/slides/app/components/ui/carousel.tsx +0 -260
  1140. package/corpus/templates/slides/app/components/ui/chart.tsx +0 -375
  1141. package/corpus/templates/slides/app/components/ui/checkbox.tsx +0 -28
  1142. package/corpus/templates/slides/app/components/ui/collapsible.tsx +0 -9
  1143. package/corpus/templates/slides/app/components/ui/command.tsx +0 -154
  1144. package/corpus/templates/slides/app/components/ui/context-menu.tsx +0 -202
  1145. package/corpus/templates/slides/app/components/ui/dialog.tsx +0 -130
  1146. package/corpus/templates/slides/app/components/ui/drawer.tsx +0 -116
  1147. package/corpus/templates/slides/app/components/ui/dropdown-menu.tsx +0 -212
  1148. package/corpus/templates/slides/app/components/ui/form.tsx +0 -177
  1149. package/corpus/templates/slides/app/components/ui/hover-card.tsx +0 -27
  1150. package/corpus/templates/slides/app/components/ui/input-otp.tsx +0 -69
  1151. package/corpus/templates/slides/app/components/ui/input.tsx +0 -22
  1152. package/corpus/templates/slides/app/components/ui/label.tsx +0 -24
  1153. package/corpus/templates/slides/app/components/ui/menubar.tsx +0 -234
  1154. package/corpus/templates/slides/app/components/ui/navigation-menu.tsx +0 -128
  1155. package/corpus/templates/slides/app/components/ui/pagination.tsx +0 -121
  1156. package/corpus/templates/slides/app/components/ui/popover.tsx +0 -44
  1157. package/corpus/templates/slides/app/components/ui/progress.tsx +0 -26
  1158. package/corpus/templates/slides/app/components/ui/radio-group.tsx +0 -42
  1159. package/corpus/templates/slides/app/components/ui/resizable.tsx +0 -43
  1160. package/corpus/templates/slides/app/components/ui/scroll-area.tsx +0 -46
  1161. package/corpus/templates/slides/app/components/ui/select.tsx +0 -158
  1162. package/corpus/templates/slides/app/components/ui/separator.tsx +0 -29
  1163. package/corpus/templates/slides/app/components/ui/sheet.tsx +0 -160
  1164. package/corpus/templates/slides/app/components/ui/sidebar.tsx +0 -782
  1165. package/corpus/templates/slides/app/components/ui/skeleton.tsx +0 -15
  1166. package/corpus/templates/slides/app/components/ui/slider.tsx +0 -26
  1167. package/corpus/templates/slides/app/components/ui/sonner.tsx +0 -58
  1168. package/corpus/templates/slides/app/components/ui/spinner.tsx +0 -17
  1169. package/corpus/templates/slides/app/components/ui/switch.tsx +0 -27
  1170. package/corpus/templates/slides/app/components/ui/table.tsx +0 -117
  1171. package/corpus/templates/slides/app/components/ui/tabs.tsx +0 -53
  1172. package/corpus/templates/slides/app/components/ui/textarea.tsx +0 -23
  1173. package/corpus/templates/slides/app/components/ui/toast.tsx +0 -127
  1174. package/corpus/templates/slides/app/components/ui/toaster.tsx +0 -33
  1175. package/corpus/templates/slides/app/components/ui/toggle-group.tsx +0 -59
  1176. package/corpus/templates/slides/app/components/ui/toggle.tsx +0 -43
  1177. package/corpus/templates/slides/app/components/ui/tooltip.tsx +0 -30
  1178. package/corpus/templates/slides/app/components/ui/use-toast.ts +0 -3
  1179. package/corpus/templates/slides/app/hooks/use-mobile.tsx +0 -21
  1180. package/corpus/templates/slides/app/hooks/use-toast.ts +0 -188
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: added
3
+ date: 2026-07-05
4
+ ---
5
+
6
+ Desktop Clips can now use a custom global shortcut to start or stop recording.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-07-05
4
+ ---
5
+
6
+ Desktop recordings no longer fail when saved capture constraints are stale after an app update.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: fixed
3
+ date: 2026-07-05
4
+ ---
5
+
6
+ Permanently deleted clips now clean up matching video and thumbnail objects from configured S3-compatible storage.
@@ -0,0 +1,6 @@
1
+ ---
2
+ type: improved
3
+ date: 2026-07-05
4
+ ---
5
+
6
+ Timeline zoom controls are now visible in the clip editor, support trackpad pinch gestures, and stay anchored while selecting ranges.
@@ -156,6 +156,7 @@ const VOICE_SHORTCUT_KEY = "clips:voice-shortcut";
156
156
  const VOICE_SHORTCUT_CONFIGURED_KEY = "clips:voice-shortcut-configured";
157
157
  const VOICE_CUSTOM_SHORTCUT_KEY = "clips:voice-custom-shortcut";
158
158
  const POPOVER_CUSTOM_SHORTCUT_KEY = "clips:popover-custom-shortcut";
159
+ const RECORD_CUSTOM_SHORTCUT_KEY = "clips:record-custom-shortcut";
159
160
  const VOICE_MODE_KEY = "clips:voice-mode";
160
161
  const VOICE_PROVIDER_KEY = "clips:voice-provider";
161
162
  const VOICE_INSTRUCTIONS_KEY = "clips:voice-instructions";
@@ -596,6 +597,9 @@ export function App() {
596
597
  const [popoverCustomShortcut, setPopoverCustomShortcut] = useState<string>(
597
598
  () => loadStringAllowEmpty(POPOVER_CUSTOM_SHORTCUT_KEY, ""),
598
599
  );
600
+ const [recordCustomShortcut, setRecordCustomShortcut] = useState<string>(() =>
601
+ loadStringAllowEmpty(RECORD_CUSTOM_SHORTCUT_KEY, ""),
602
+ );
599
603
  const [voiceMode, setVoiceMode] = useState<VoiceMode>(() => {
600
604
  const saved = loadString(VOICE_MODE_KEY, "push-to-talk");
601
605
  return saved === "toggle" ? "toggle" : "push-to-talk";
@@ -656,6 +660,7 @@ export function App() {
656
660
  const isRecording = recorder !== null;
657
661
  // Whether the popover window is shown; driven by the visibility effect below.
658
662
  const [popoverVisible, setPopoverVisible] = useState(false);
663
+ const recordShortcutHandlerRef = useRef<() => void>(() => {});
659
664
  // Mirrors `bubbleActive` (assigned below once it is computed) so device
660
665
  // probes can synchronously tell whether the camera bubble owns the grant.
661
666
  const bubbleActiveRef = useRef(false);
@@ -779,6 +784,7 @@ export function App() {
779
784
  invoke("set_custom_shortcuts", {
780
785
  voice: voiceShortcut === "custom" ? voiceCustomShortcut : null,
781
786
  popover: popoverCustomShortcut.trim() ? popoverCustomShortcut : null,
787
+ record: recordCustomShortcut.trim() ? recordCustomShortcut : null,
782
788
  })
783
789
  .then(() => {
784
790
  if (!cancelled) setShortcutRegistrationError(null);
@@ -794,7 +800,12 @@ export function App() {
794
800
  return () => {
795
801
  cancelled = true;
796
802
  };
797
- }, [popoverCustomShortcut, voiceCustomShortcut, voiceShortcut]);
803
+ }, [
804
+ popoverCustomShortcut,
805
+ recordCustomShortcut,
806
+ voiceCustomShortcut,
807
+ voiceShortcut,
808
+ ]);
798
809
 
799
810
  // ---- auth status --------------------------------------------------------
800
811
  // The Tauri WebView has its own cookie jar (separate from the user's
@@ -1571,6 +1582,10 @@ export function App() {
1571
1582
  () => saveString(POPOVER_CUSTOM_SHORTCUT_KEY, popoverCustomShortcut),
1572
1583
  [popoverCustomShortcut],
1573
1584
  );
1585
+ useEffect(
1586
+ () => saveString(RECORD_CUSTOM_SHORTCUT_KEY, recordCustomShortcut),
1587
+ [recordCustomShortcut],
1588
+ );
1574
1589
  useEffect(() => saveString(VOICE_MODE_KEY, voiceMode), [voiceMode]);
1575
1590
  useEffect(
1576
1591
  () => saveString(VOICE_PROVIDER_KEY, voiceProvider),
@@ -1952,6 +1967,66 @@ export function App() {
1952
1967
  setRecError(message);
1953
1968
  }
1954
1969
 
1970
+ recordShortcutHandlerRef.current = () => {
1971
+ if (recorder) {
1972
+ emit("clips:recorder-stop").catch(() => {});
1973
+ return;
1974
+ }
1975
+ if (recordingFlowGateRef.current || recordingFlowActive) {
1976
+ emit("clips:countdown-cancel").catch(() => {});
1977
+ return;
1978
+ }
1979
+
1980
+ setShowSettings(false);
1981
+ if (authStatus === "anon" && localRecordingMode === "off") {
1982
+ setRecError("Sign in to Clips before using the recording shortcut.");
1983
+ invoke("show_popover").catch(() => {});
1984
+ return;
1985
+ }
1986
+
1987
+ const canStartFromGlobalShortcut =
1988
+ mode === "camera" || nativeFullscreenRecordingActive;
1989
+ if (!canStartFromGlobalShortcut) {
1990
+ setRecError(
1991
+ "Open Clips and click Start recording to use the selected source.",
1992
+ );
1993
+ invoke("show_popover").catch(() => {});
1994
+ return;
1995
+ }
1996
+
1997
+ void handleStartRecording({ ignoreActiveRecorder: true });
1998
+ };
1999
+
2000
+ useEffect(() => {
2001
+ let cancelled = false;
2002
+ let unlisten: (() => void) | null = null;
2003
+ listen("clips:record-shortcut", () => {
2004
+ recordShortcutHandlerRef.current();
2005
+ })
2006
+ .then((u) => {
2007
+ if (cancelled) {
2008
+ try {
2009
+ u();
2010
+ } catch {
2011
+ // ignore
2012
+ }
2013
+ return;
2014
+ }
2015
+ unlisten = u;
2016
+ })
2017
+ .catch(() => {});
2018
+ return () => {
2019
+ cancelled = true;
2020
+ if (unlisten) {
2021
+ try {
2022
+ unlisten();
2023
+ } catch {
2024
+ // ignore
2025
+ }
2026
+ }
2027
+ };
2028
+ }, []);
2029
+
1955
2030
  function updateReadinessOpen(next: boolean) {
1956
2031
  setReadinessOpen(next);
1957
2032
  if (!next) saveBool(READINESS_REVIEWED_KEY, true);
@@ -2128,6 +2203,7 @@ export function App() {
2128
2203
  voiceShortcut={voiceShortcut}
2129
2204
  voiceCustomShortcut={voiceCustomShortcut}
2130
2205
  popoverCustomShortcut={popoverCustomShortcut}
2206
+ recordCustomShortcut={recordCustomShortcut}
2131
2207
  voiceMode={voiceMode}
2132
2208
  voiceProvider={voiceProvider}
2133
2209
  voiceInstructions={voiceInstructions}
@@ -2135,6 +2211,7 @@ export function App() {
2135
2211
  onVoiceShortcutChange={updateVoiceShortcut}
2136
2212
  onVoiceCustomShortcutChange={setVoiceCustomShortcut}
2137
2213
  onPopoverCustomShortcutChange={setPopoverCustomShortcut}
2214
+ onRecordCustomShortcutChange={setRecordCustomShortcut}
2138
2215
  onVoiceModeChange={setVoiceMode}
2139
2216
  onVoiceProviderChange={setVoiceProvider}
2140
2217
  onVoiceInstructionsChange={setVoiceInstructions}
@@ -3059,6 +3136,7 @@ function Setup({
3059
3136
  voiceShortcut,
3060
3137
  voiceCustomShortcut,
3061
3138
  popoverCustomShortcut,
3139
+ recordCustomShortcut,
3062
3140
  voiceMode,
3063
3141
  voiceProvider,
3064
3142
  voiceInstructions,
@@ -3066,6 +3144,7 @@ function Setup({
3066
3144
  onVoiceShortcutChange,
3067
3145
  onVoiceCustomShortcutChange,
3068
3146
  onPopoverCustomShortcutChange,
3147
+ onRecordCustomShortcutChange,
3069
3148
  onVoiceModeChange,
3070
3149
  onVoiceProviderChange,
3071
3150
  onVoiceInstructionsChange,
@@ -3079,6 +3158,7 @@ function Setup({
3079
3158
  voiceShortcut: VoiceShortcutPreference;
3080
3159
  voiceCustomShortcut: string;
3081
3160
  popoverCustomShortcut: string;
3161
+ recordCustomShortcut: string;
3082
3162
  voiceMode: VoiceMode;
3083
3163
  voiceProvider: VoiceProvider;
3084
3164
  voiceInstructions: string;
@@ -3086,6 +3166,7 @@ function Setup({
3086
3166
  onVoiceShortcutChange: (value: VoiceShortcutPreference) => void;
3087
3167
  onVoiceCustomShortcutChange: (value: string) => void;
3088
3168
  onPopoverCustomShortcutChange: (value: string) => void;
3169
+ onRecordCustomShortcutChange: (value: string) => void;
3089
3170
  onVoiceModeChange: (value: VoiceMode) => void;
3090
3171
  onVoiceProviderChange: (value: VoiceProvider) => void;
3091
3172
  onVoiceInstructionsChange: (value: string) => void;
@@ -3967,6 +4048,22 @@ function Setup({
3967
4048
  </div>
3968
4049
  </details>
3969
4050
 
4051
+ <div className="setup-section">
4052
+ <SettingLabel
4053
+ label="Start/stop recording shortcut"
4054
+ hint="Optional global shortcut for starting full-screen, region, or camera recordings and stopping the active recording."
4055
+ />
4056
+ <ShortcutRecorder
4057
+ value={recordCustomShortcut}
4058
+ placeholder="Record shortcut"
4059
+ onChange={onRecordCustomShortcutChange}
4060
+ />
4061
+ <p className="setup-hint">
4062
+ Window and browser-tab sources still open Clips first so the picker
4063
+ can use a click.
4064
+ </p>
4065
+ </div>
4066
+
3970
4067
  <div className="setup-section">
3971
4068
  <SettingLabel
3972
4069
  label="Open Clips shortcut"
@@ -104,6 +104,7 @@ export function MediaDeviceRow({
104
104
  const { open, setOpen, rowRef } = useRowMenu();
105
105
 
106
106
  const disabled = !on;
107
+ const canOpenMenu = !disabled || (kind === "mic" && !!onSystemAudioToggle);
107
108
  const defaultLabel = kind === "camera" ? "Default camera" : "Default mic";
108
109
  const accessLabel =
109
110
  kind === "camera" ? "Allow camera access" : "Allow microphone access";
@@ -119,9 +120,9 @@ export function MediaDeviceRow({
119
120
  type="button"
120
121
  className="row-button"
121
122
  onClick={() => {
122
- if (!disabled) setOpen((v) => !v);
123
+ if (canOpenMenu) setOpen((v) => !v);
123
124
  }}
124
- disabled={disabled}
125
+ disabled={!canOpenMenu}
125
126
  title={label}
126
127
  >
127
128
  <span className="row-label">{label}</span>
@@ -0,0 +1,121 @@
1
+ export const VOICE_FOCUSED_AUDIO_CONSTRAINTS: MediaTrackConstraints = {
2
+ echoCancellation: { ideal: true },
3
+ noiseSuppression: { ideal: true },
4
+ autoGainControl: { ideal: true },
5
+ channelCount: { ideal: 1 },
6
+ };
7
+
8
+ export function voiceFocusedAudioConstraints(
9
+ deviceId?: string | null,
10
+ ): MediaTrackConstraints {
11
+ const id = deviceId?.trim();
12
+ return {
13
+ ...VOICE_FOCUSED_AUDIO_CONSTRAINTS,
14
+ ...(id ? { deviceId: { exact: id } } : {}),
15
+ };
16
+ }
17
+
18
+ export function buildDesktopDisplayMediaOptions({
19
+ audio,
20
+ frameRate,
21
+ maxWidth,
22
+ maxHeight,
23
+ }: {
24
+ audio: boolean;
25
+ frameRate: number;
26
+ maxWidth: number;
27
+ maxHeight: number;
28
+ }): DisplayMediaStreamOptions {
29
+ return {
30
+ video: {
31
+ frameRate: {
32
+ ideal: frameRate,
33
+ max: frameRate,
34
+ },
35
+ width: { ideal: maxWidth },
36
+ height: { ideal: maxHeight },
37
+ },
38
+ audio,
39
+ };
40
+ }
41
+
42
+ export function isMediaConstraintFailure(err: unknown): boolean {
43
+ const name =
44
+ err instanceof DOMException || err instanceof Error ? err.name : "";
45
+ const message = err instanceof Error ? err.message : String(err);
46
+ return (
47
+ name === "OverconstrainedError" ||
48
+ name === "ConstraintNotSatisfiedError" ||
49
+ name === "NotFoundError" ||
50
+ /invalid constraint|overconstrained|could not satisfy constraint|device not found|requested device not found/i.test(
51
+ message,
52
+ )
53
+ );
54
+ }
55
+
56
+ export async function getCameraStreamWithFallback(
57
+ deviceId?: string | null,
58
+ ): Promise<MediaStream> {
59
+ const id = deviceId?.trim();
60
+ const exactConstraints: MediaStreamConstraints = {
61
+ video: id ? { deviceId: { exact: id } } : true,
62
+ audio: false,
63
+ };
64
+
65
+ try {
66
+ return await navigator.mediaDevices.getUserMedia(exactConstraints);
67
+ } catch (err) {
68
+ if (!id || !isMediaConstraintFailure(err)) throw err;
69
+ console.warn(
70
+ "[clips-recorder] selected camera constraint failed; retrying default camera",
71
+ err,
72
+ );
73
+ return navigator.mediaDevices.getUserMedia({ video: true, audio: false });
74
+ }
75
+ }
76
+
77
+ export async function getAudioStreamWithFallback(
78
+ deviceId?: string | null,
79
+ ): Promise<MediaStream> {
80
+ const id = deviceId?.trim();
81
+
82
+ try {
83
+ return await navigator.mediaDevices.getUserMedia({
84
+ audio: voiceFocusedAudioConstraints(id),
85
+ video: false,
86
+ });
87
+ } catch (err) {
88
+ if (!isMediaConstraintFailure(err)) throw err;
89
+ if (id) {
90
+ console.warn(
91
+ "[clips-recorder] selected mic constraint failed; retrying default mic",
92
+ err,
93
+ );
94
+ try {
95
+ return await navigator.mediaDevices.getUserMedia({
96
+ audio: VOICE_FOCUSED_AUDIO_CONSTRAINTS,
97
+ video: false,
98
+ });
99
+ } catch (fallbackErr) {
100
+ if (!isMediaConstraintFailure(fallbackErr)) throw fallbackErr;
101
+ console.warn(
102
+ "[clips-recorder] voice-focused mic constraints failed; retrying basic audio",
103
+ fallbackErr,
104
+ );
105
+ return navigator.mediaDevices.getUserMedia({
106
+ audio: true,
107
+ video: false,
108
+ });
109
+ }
110
+ }
111
+
112
+ console.warn(
113
+ "[clips-recorder] voice-focused mic constraints failed; retrying basic audio",
114
+ err,
115
+ );
116
+ return navigator.mediaDevices.getUserMedia({
117
+ audio: true,
118
+ video: false,
119
+ });
120
+ }
121
+ }
@@ -64,6 +64,11 @@ import {
64
64
  type LocalExportedFile,
65
65
  type LocalRecordingTarget,
66
66
  } from "./local-export";
67
+ import {
68
+ buildDesktopDisplayMediaOptions,
69
+ getAudioStreamWithFallback,
70
+ getCameraStreamWithFallback,
71
+ } from "./media-capture-constraints";
67
72
  import { buildCaptureTitle, type CaptureTitleResult } from "./recording-title";
68
73
  import {
69
74
  startTranscriptionCapture,
@@ -384,22 +389,6 @@ function createCloudMediaRecorder(
384
389
  throw lastError instanceof Error ? lastError : new Error(String(lastError));
385
390
  }
386
391
 
387
- const VOICE_FOCUSED_AUDIO_CONSTRAINTS: MediaTrackConstraints = {
388
- echoCancellation: { ideal: true },
389
- noiseSuppression: { ideal: true },
390
- autoGainControl: { ideal: true },
391
- channelCount: { ideal: 1 },
392
- };
393
-
394
- function voiceFocusedAudioConstraints(
395
- deviceId?: string | null,
396
- ): MediaTrackConstraints {
397
- return {
398
- ...VOICE_FOCUSED_AUDIO_CONSTRAINTS,
399
- ...(deviceId ? { deviceId: { exact: deviceId } } : {}),
400
- };
401
- }
402
-
403
392
  interface RecordingAudio {
404
393
  tracks: MediaStreamTrack[];
405
394
  cleanup: () => void;
@@ -444,13 +433,13 @@ function localRecordingTargetsForMode({
444
433
  localRecordingMode,
445
434
  displayStream,
446
435
  bubbleCameraStream,
447
- audioStream,
436
+ recordingAudio,
448
437
  combined,
449
438
  }: {
450
439
  localRecordingMode: Exclude<LocalRecordingMode, "off">;
451
440
  displayStream: MediaStream | null;
452
441
  bubbleCameraStream: MediaStream | null;
453
- audioStream: MediaStream | null;
442
+ recordingAudio: RecordingAudio;
454
443
  combined: MediaStream;
455
444
  }): LocalRecordingTarget[] {
456
445
  if (localRecordingMode === "composed") {
@@ -461,7 +450,7 @@ function localRecordingTargetsForMode({
461
450
  if (displayStream) {
462
451
  const desktopTracks = [
463
452
  ...displayStream.getVideoTracks(),
464
- ...(audioStream?.getAudioTracks() ?? displayStream.getAudioTracks()),
453
+ ...recordingAudio.tracks,
465
454
  ];
466
455
  targets.push({
467
456
  role: "desktop",
@@ -1698,8 +1687,10 @@ async function startNativeFullscreenRecording(
1698
1687
  // clock and the toolbar-enable behind the real recording start.
1699
1688
  let startedAt = 0;
1700
1689
  let nativeTranscriptFailureSaved = false;
1690
+ const wantsSystemAudio = params.systemAudioOn !== false;
1691
+ const wantsRecordedAudio = wantsAudio || wantsSystemAudio;
1701
1692
  const saveTranscriptFailure = async (failureReason: string) => {
1702
- if (!wantsAudio || nativeTranscriptFailureSaved || !id) return;
1693
+ if (!wantsRecordedAudio || nativeTranscriptFailureSaved || !id) return;
1703
1694
  nativeTranscriptFailureSaved = true;
1704
1695
  await saveRecordingTranscriptFailure(
1705
1696
  params.serverUrl,
@@ -1724,12 +1715,7 @@ async function startNativeFullscreenRecording(
1724
1715
  if (localOnly && localRecordingMode === "separate" && wantsCamera) {
1725
1716
  localCameraStream =
1726
1717
  params.preAcquiredCameraStream ??
1727
- (await navigator.mediaDevices.getUserMedia({
1728
- video: params.cameraId
1729
- ? { deviceId: { exact: params.cameraId } }
1730
- : true,
1731
- audio: false,
1732
- }));
1718
+ (await getCameraStreamWithFallback(params.cameraId));
1733
1719
  localOwnsCameraStream =
1734
1720
  localCameraStream !== params.preAcquiredCameraStream;
1735
1721
  localCameraExport = await prepareLocalRecordingExport(
@@ -1757,16 +1743,12 @@ async function startNativeFullscreenRecording(
1757
1743
  ? "[clips-recorder] invoking show_countdown for native local recording"
1758
1744
  : "[clips-recorder] invoking show_countdown + createServerRecording",
1759
1745
  );
1760
- const wantsSystemAudio = wantsAudio && params.systemAudioOn !== false;
1761
- // Resolve the mic's REAL device name for the native recorder. WebKit's
1762
- // deviceId is a salted hash that never equals ScreenCaptureKit's CoreAudio
1763
- // device UID, so the Rust side can only pin the input by NAME. The stored
1764
- // label can be stale or empty (device list locked when picked, or a rotated
1765
- // deviceId salt after an app update) — that's what makes "only Default
1766
- // works": the hash matches nothing and there's no name to fall back to.
1767
- // A one-shot getUserMedia gives the exact current device name, the same
1768
- // string ScreenCaptureKit exposes, so name resolution succeeds. Done before
1769
- // warming so both phases pin the same input.
1746
+ // Resolve the mic's REAL device name before native setup. WebKit's deviceId
1747
+ // is a salted hash that never equals CoreAudio's device UID, so any native
1748
+ // path that needs a mic can only pin the input by NAME. The stored label can
1749
+ // be stale or empty (device list locked when picked, or a rotated deviceId
1750
+ // salt after an app update), so a one-shot getUserMedia gives the exact
1751
+ // current device name.
1770
1752
  let micDeviceLabel = params.micLabel || null;
1771
1753
  if (wantsAudio && params.micId) {
1772
1754
  try {
@@ -1797,11 +1779,10 @@ async function startNativeFullscreenRecording(
1797
1779
  micDeviceLabel,
1798
1780
  captureRegion,
1799
1781
  };
1800
- // Warm the mic DURING the countdown. ScreenCaptureKit delivers its first
1801
- // mic sample ~1s after capture starts; warming now lets `begin` attach the
1802
- // recording output to an already-live mic, so the clip no longer starts
1803
- // with a silent second. No-op when there's nothing to pre-warm (mic off /
1804
- // SCK unavailable) — `begin` then does a normal immediate start.
1782
+ // Warm ScreenCaptureKit DURING the countdown without recording frames yet.
1783
+ // This keeps the capture start off the critical path while letting `begin`
1784
+ // attach the recording output at the exact start moment. No-op when SCK is
1785
+ // unavailable `begin` then does a normal immediate start.
1805
1786
  const warmMic = (recordingId: string) =>
1806
1787
  invoke("native_fullscreen_recording_warm", {
1807
1788
  recordingId,
@@ -1822,13 +1803,13 @@ async function startNativeFullscreenRecording(
1822
1803
  const recordingPromise = createServerRecording(
1823
1804
  params.serverUrl,
1824
1805
  wantsCamera,
1825
- wantsAudio,
1806
+ wantsRecordedAudio,
1826
1807
  captureTitle,
1827
1808
  ).finally(() => {
1828
1809
  console.timeEnd("[clips-recorder] createServerRecording duration");
1829
1810
  });
1830
1811
  // The recording id usually lands well before the countdown ends — warm
1831
- // the mic as soon as it does so the warm-up overlaps the 3-2-1.
1812
+ // native capture as soon as it does so setup overlaps the 3-2-1.
1832
1813
  const warmAndId = (async () => {
1833
1814
  const createRes = await recordingPromise;
1834
1815
  await warmMic(createRes.id);
@@ -2049,7 +2030,7 @@ async function startNativeFullscreenRecording(
2049
2030
  recordingId: id,
2050
2031
  authToken: params.authToken ?? "",
2051
2032
  cookie: params.cookie ?? "",
2052
- hasAudio: wantsAudio,
2033
+ hasAudio: wantsRecordedAudio,
2053
2034
  hasCamera: wantsCamera,
2054
2035
  },
2055
2036
  );
@@ -2074,9 +2055,9 @@ async function startNativeFullscreenRecording(
2074
2055
  capturedTranscript,
2075
2056
  params.authToken,
2076
2057
  );
2077
- } else if (wantsAudio) {
2058
+ } else if (wantsRecordedAudio) {
2078
2059
  await saveTranscriptFailure(
2079
- "No speech was captured during this recording. If you spoke, check Microphone input, Speech Recognition permission, and the selected mic, then retry transcription.",
2060
+ "No speech was captured during this recording. If you spoke or played system audio, check System Audio, Microphone input, Speech Recognition permission, and the selected mic, then retry transcription.",
2080
2061
  );
2081
2062
  }
2082
2063
 
@@ -2265,8 +2246,7 @@ async function startNativeFullscreenRecording(
2265
2246
 
2266
2247
  if (!localOnly) {
2267
2248
  await showRegionGuidesForRecording(true);
2268
- const wantsSystemAudio = wantsAudio && params.systemAudioOn !== false;
2269
- transcriptionCapture = wantsAudio
2249
+ transcriptionCapture = wantsRecordedAudio
2270
2250
  ? await startTranscriptionCapture(
2271
2251
  {
2272
2252
  deviceId: params.micId,
@@ -2288,12 +2268,12 @@ async function startNativeFullscreenRecording(
2288
2268
  );
2289
2269
  void transcriptionCapture.pause().catch(() => {});
2290
2270
  } else if (
2291
- wantsAudio &&
2271
+ wantsRecordedAudio &&
2292
2272
  !transcriptionCapture &&
2293
2273
  shouldSaveLocalTranscriptionStartupFailure()
2294
2274
  ) {
2295
2275
  void saveTranscriptFailure(
2296
- "macOS Speech recognition could not start for this recording. Check Speech Recognition and Microphone permissions, then retry transcription.",
2276
+ "macOS Speech recognition could not start for this recording. Check Speech Recognition, System Audio, and Microphone permissions, then retry transcription.",
2297
2277
  );
2298
2278
  }
2299
2279
  }
@@ -2409,7 +2389,8 @@ async function startRecordingInner(
2409
2389
  const wantsScreen = params.mode !== "camera";
2410
2390
  const wantsCamera = params.mode !== "screen" && params.cameraOn;
2411
2391
  const wantsAudio = params.micOn;
2412
- const wantsSystemAudio = wantsAudio && params.systemAudioOn !== false;
2392
+ const wantsSystemAudio = wantsScreen && params.systemAudioOn !== false;
2393
+ const wantsRecordedAudio = wantsAudio || wantsSystemAudio;
2413
2394
  const audioCue = createAudioCue();
2414
2395
  const captureSource = params.source ?? "window";
2415
2396
  const localRecordingMode = params.localRecordingMode ?? "off";
@@ -2421,6 +2402,7 @@ async function startRecordingInner(
2421
2402
  wantsScreen,
2422
2403
  wantsCamera,
2423
2404
  wantsAudio,
2405
+ wantsSystemAudio,
2424
2406
  });
2425
2407
 
2426
2408
  if (wantsScreen && shouldUseNativeFullscreenRecording(captureSource)) {
@@ -2466,21 +2448,18 @@ async function startRecordingInner(
2466
2448
  const displayStreamPromise: Promise<MediaStream> | null = wantsScreen
2467
2449
  ? (() => {
2468
2450
  if (!devSyntheticCapture) {
2469
- const displaySurface =
2470
- captureSource === "window" ? "window" : "monitor";
2471
- return navigator.mediaDevices.getDisplayMedia({
2472
- video: {
2473
- frameRate: {
2474
- ideal: CLOUD_CAPTURE_FRAME_RATE,
2475
- max: CLOUD_CAPTURE_FRAME_RATE,
2476
- },
2477
- width: { ideal: CLOUD_CAPTURE_MAX_WIDTH },
2478
- height: { ideal: CLOUD_CAPTURE_MAX_HEIGHT },
2479
- displaySurface,
2480
- },
2481
- // System/desktop audio is gated by the system-audio toggle, not mic.
2482
- audio: wantsSystemAudio,
2483
- });
2451
+ // Do not pass displaySurface as an input constraint. Modern runtimes
2452
+ // can reject it with "Invalid constraint", and it cannot reliably
2453
+ // pre-filter the OS picker anyway; the selected track reports its
2454
+ // actual surface through getSettings() after capture starts.
2455
+ return navigator.mediaDevices.getDisplayMedia(
2456
+ buildDesktopDisplayMediaOptions({
2457
+ audio: wantsSystemAudio,
2458
+ frameRate: CLOUD_CAPTURE_FRAME_RATE,
2459
+ maxWidth: CLOUD_CAPTURE_MAX_WIDTH,
2460
+ maxHeight: CLOUD_CAPTURE_MAX_HEIGHT,
2461
+ }),
2462
+ );
2484
2463
  }
2485
2464
  console.warn(
2486
2465
  "[clips-recorder] using opt-in dev synthetic screen capture; remove localStorage clips:dev-synthetic-capture to use the native picker",
@@ -2506,18 +2485,10 @@ async function startRecordingInner(
2506
2485
  }
2507
2486
  const bubbleCameraStreamPromise: Promise<MediaStream> | null =
2508
2487
  wantsCamera && !reusedCameraStream
2509
- ? navigator.mediaDevices.getUserMedia({
2510
- video: params.cameraId
2511
- ? { deviceId: { exact: params.cameraId } }
2512
- : true,
2513
- audio: false,
2514
- })
2488
+ ? getCameraStreamWithFallback(params.cameraId)
2515
2489
  : null;
2516
2490
  const audioStreamPromise: Promise<MediaStream> | null = wantsAudio
2517
- ? navigator.mediaDevices.getUserMedia({
2518
- audio: voiceFocusedAudioConstraints(params.micId),
2519
- video: false,
2520
- })
2491
+ ? getAudioStreamWithFallback(params.micId)
2521
2492
  : null;
2522
2493
 
2523
2494
  // Use allSettled so a single rejection (e.g. user cancels the macOS screen
@@ -2700,7 +2671,7 @@ async function startRecordingInner(
2700
2671
  localRecordingMode,
2701
2672
  displayStream,
2702
2673
  bubbleCameraStream,
2703
- audioStream,
2674
+ recordingAudio,
2704
2675
  combined,
2705
2676
  });
2706
2677
 
@@ -2896,7 +2867,7 @@ async function startRecordingInner(
2896
2867
  const recordingPromise = createServerRecording(
2897
2868
  params.serverUrl,
2898
2869
  wantsCamera,
2899
- wantsAudio,
2870
+ recordingAudio.tracks.length > 0,
2900
2871
  captureTitle,
2901
2872
  { mimeType: mimeType || "video/webm", requestStreaming: true },
2902
2873
  ).finally(() => {
@@ -2922,7 +2893,7 @@ async function startRecordingInner(
2922
2893
  console.log("[clips-recorder] recording row created", { id, uploadMode });
2923
2894
  let nativeTranscriptFailureSaved = false;
2924
2895
  const saveTranscriptFailure = async (failureReason: string) => {
2925
- if (!wantsAudio || nativeTranscriptFailureSaved) return;
2896
+ if (!wantsRecordedAudio || nativeTranscriptFailureSaved) return;
2926
2897
  nativeTranscriptFailureSaved = true;
2927
2898
  await saveRecordingTranscriptFailure(
2928
2899
  params.serverUrl,
@@ -3182,7 +3153,7 @@ async function startRecordingInner(
3182
3153
  // delaying capture, so the first ~1s the user expected to record was lost
3183
3154
  // (and the recording felt cut at the end). It's a separate capture from the
3184
3155
  // recorded audio tracks, so starting it slightly late is safe.
3185
- transcriptionCapture = wantsAudio
3156
+ transcriptionCapture = wantsRecordedAudio
3186
3157
  ? await startTranscriptionCapture(
3187
3158
  {
3188
3159
  deviceId: params.micId,
@@ -3204,12 +3175,12 @@ async function startRecordingInner(
3204
3175
  );
3205
3176
  void transcriptionCapture.pause().catch(() => {});
3206
3177
  } else if (
3207
- wantsAudio &&
3178
+ wantsRecordedAudio &&
3208
3179
  !transcriptionCapture &&
3209
3180
  shouldSaveLocalTranscriptionStartupFailure()
3210
3181
  ) {
3211
3182
  void saveTranscriptFailure(
3212
- "macOS Speech recognition could not start for this recording. Check Speech Recognition and Microphone permissions, then retry transcription.",
3183
+ "macOS Speech recognition could not start for this recording. Check Speech Recognition, System Audio, and Microphone permissions, then retry transcription.",
3213
3184
  );
3214
3185
  }
3215
3186
 
@@ -3289,9 +3260,9 @@ async function startRecordingInner(
3289
3260
  capturedTranscript,
3290
3261
  params.authToken,
3291
3262
  );
3292
- } else if (wantsAudio) {
3263
+ } else if (wantsRecordedAudio) {
3293
3264
  await saveTranscriptFailure(
3294
- "No speech was captured during this recording. If you spoke, check Microphone input, Speech Recognition permission, and the selected mic, then retry transcription.",
3265
+ "No speech was captured during this recording. If you spoke or played system audio, check System Audio, Microphone input, Speech Recognition permission, and the selected mic, then retry transcription.",
3295
3266
  );
3296
3267
  }
3297
3268
  await thumbnailUploadPromise;