@agent-native/core 0.76.3 → 0.76.5

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 (435) hide show
  1. package/corpus/core/CHANGELOG.md +25 -0
  2. package/corpus/core/package.json +1 -1
  3. package/corpus/core/src/agent/production-agent.ts +147 -56
  4. package/corpus/core/src/agent/run-store.ts +36 -0
  5. package/corpus/core/src/client/AgentPanel.tsx +3 -3
  6. package/corpus/core/src/client/AgentTaskCard.tsx +2 -1
  7. package/corpus/core/src/client/AppearancePicker.tsx +1 -1
  8. package/corpus/core/src/client/AssistantChat.tsx +3 -3
  9. package/corpus/core/src/client/CommandMenu.tsx +4 -4
  10. package/corpus/core/src/client/ErrorBoundary.tsx +1 -1
  11. package/corpus/core/src/client/MultiTabAssistantChat.tsx +11 -11
  12. package/corpus/core/src/client/NewWorkspaceAppFlow.tsx +5 -5
  13. package/corpus/core/src/client/components/ui/dropdown-menu.tsx +9 -9
  14. package/corpus/core/src/client/components/ui/sheet.tsx +1 -1
  15. package/corpus/core/src/client/composer/ComposerPlusMenu.tsx +6 -6
  16. package/corpus/core/src/client/composer/MentionPopover.tsx +4 -4
  17. package/corpus/core/src/client/composer/PastedTextChip.tsx +3 -3
  18. package/corpus/core/src/client/composer/PromptComposer.tsx +3 -3
  19. package/corpus/core/src/client/composer/TiptapComposer.tsx +16 -16
  20. package/corpus/core/src/client/guided-questions.tsx +6 -8
  21. package/corpus/core/src/client/i18n.tsx +2 -2
  22. package/corpus/core/src/client/integrations/IntegrationCard.tsx +2 -2
  23. package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +4 -4
  24. package/corpus/core/src/client/notifications/NotificationsBell.tsx +3 -3
  25. package/corpus/core/src/client/onboarding/OnboardingBanner.tsx +3 -3
  26. package/corpus/core/src/client/onboarding/OnboardingPanel.tsx +17 -10
  27. package/corpus/core/src/client/org/OrgSwitcher.tsx +13 -11
  28. package/corpus/core/src/client/org/TeamPage.tsx +2 -2
  29. package/corpus/core/src/client/settings/AgentsSection.tsx +3 -3
  30. package/corpus/core/src/client/settings/AutomationsSection.tsx +3 -3
  31. package/corpus/core/src/client/settings/SecretsSection.tsx +2 -2
  32. package/corpus/core/src/client/settings/SettingsPanel.tsx +5 -7
  33. package/corpus/core/src/client/settings/SettingsSection.tsx +1 -1
  34. package/corpus/core/src/client/settings/UsageSection.tsx +3 -3
  35. package/corpus/core/src/client/settings/VoiceTranscriptionSection.tsx +3 -3
  36. package/corpus/core/src/client/sharing/ShareButton.tsx +7 -7
  37. package/corpus/core/src/client/sharing/ShareDialog.tsx +3 -3
  38. package/corpus/core/src/deploy/build.ts +31 -14
  39. package/corpus/core/src/styles/agent-conversation.css +10 -10
  40. package/corpus/core/src/styles/blocks.css +2 -2
  41. package/corpus/core/src/styles/rich-markdown-editor.css +2 -2
  42. package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +1 -1
  43. package/corpus/templates/analytics/app/components/ui/alert-dialog.tsx +1 -1
  44. package/corpus/templates/analytics/app/components/ui/alert.tsx +1 -1
  45. package/corpus/templates/analytics/app/components/ui/breadcrumb.tsx +1 -1
  46. package/corpus/templates/analytics/app/components/ui/calendar.tsx +6 -6
  47. package/corpus/templates/analytics/app/components/ui/carousel.tsx +6 -6
  48. package/corpus/templates/analytics/app/components/ui/command.tsx +2 -2
  49. package/corpus/templates/analytics/app/components/ui/context-menu.tsx +9 -9
  50. package/corpus/templates/analytics/app/components/ui/date-picker.tsx +1 -1
  51. package/corpus/templates/analytics/app/components/ui/dialog.tsx +2 -2
  52. package/corpus/templates/analytics/app/components/ui/drawer.tsx +1 -1
  53. package/corpus/templates/analytics/app/components/ui/dropdown-menu.tsx +9 -9
  54. package/corpus/templates/analytics/app/components/ui/input-otp.tsx +1 -1
  55. package/corpus/templates/analytics/app/components/ui/menubar.tsx +9 -9
  56. package/corpus/templates/analytics/app/components/ui/navigation-menu.tsx +3 -3
  57. package/corpus/templates/analytics/app/components/ui/pagination.tsx +4 -4
  58. package/corpus/templates/analytics/app/components/ui/scroll-area.tsx +1 -1
  59. package/corpus/templates/analytics/app/components/ui/select.tsx +3 -3
  60. package/corpus/templates/analytics/app/components/ui/sheet.tsx +2 -2
  61. package/corpus/templates/analytics/app/components/ui/sidebar.tsx +6 -6
  62. package/corpus/templates/analytics/app/components/ui/table.tsx +2 -2
  63. package/corpus/templates/analytics/app/components/ui/toast.tsx +3 -3
  64. package/corpus/templates/assets/app/components/layout/Layout.tsx +2 -2
  65. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +12 -12
  66. package/corpus/templates/assets/app/components/ui/alert-dialog.tsx +1 -1
  67. package/corpus/templates/assets/app/components/ui/alert.tsx +1 -1
  68. package/corpus/templates/assets/app/components/ui/breadcrumb.tsx +1 -1
  69. package/corpus/templates/assets/app/components/ui/dialog.tsx +2 -2
  70. package/corpus/templates/assets/app/components/ui/dropdown-menu.tsx +9 -9
  71. package/corpus/templates/assets/app/components/ui/pagination.tsx +4 -4
  72. package/corpus/templates/assets/app/components/ui/scroll-area.tsx +1 -1
  73. package/corpus/templates/assets/app/components/ui/select.tsx +3 -3
  74. package/corpus/templates/assets/app/components/ui/sheet.tsx +2 -2
  75. package/corpus/templates/assets/app/components/ui/table.tsx +2 -2
  76. package/corpus/templates/assets/app/routes/library.tsx +3 -3
  77. package/corpus/templates/assets/app/routes/settings.tsx +1 -1
  78. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +5 -5
  79. package/corpus/templates/brain/app/components/ui/dropdown-menu.tsx +9 -9
  80. package/corpus/templates/brain/app/components/ui/select.tsx +3 -3
  81. package/corpus/templates/brain/app/components/ui/sheet.tsx +2 -2
  82. package/corpus/templates/brain/app/components/ui/table.tsx +2 -2
  83. package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +6 -6
  84. package/corpus/templates/calendar/app/components/calendar/GoogleSetupWizard.tsx +3 -3
  85. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +11 -9
  86. package/corpus/templates/calendar/app/components/ui/alert-dialog.tsx +1 -1
  87. package/corpus/templates/calendar/app/components/ui/alert.tsx +1 -1
  88. package/corpus/templates/calendar/app/components/ui/breadcrumb.tsx +1 -1
  89. package/corpus/templates/calendar/app/components/ui/calendar.tsx +5 -5
  90. package/corpus/templates/calendar/app/components/ui/carousel.tsx +6 -6
  91. package/corpus/templates/calendar/app/components/ui/command.tsx +2 -2
  92. package/corpus/templates/calendar/app/components/ui/context-menu.tsx +9 -9
  93. package/corpus/templates/calendar/app/components/ui/dialog.tsx +2 -2
  94. package/corpus/templates/calendar/app/components/ui/drawer.tsx +1 -1
  95. package/corpus/templates/calendar/app/components/ui/dropdown-menu.tsx +9 -9
  96. package/corpus/templates/calendar/app/components/ui/input-otp.tsx +1 -1
  97. package/corpus/templates/calendar/app/components/ui/menubar.tsx +9 -9
  98. package/corpus/templates/calendar/app/components/ui/navigation-menu.tsx +3 -3
  99. package/corpus/templates/calendar/app/components/ui/pagination.tsx +4 -4
  100. package/corpus/templates/calendar/app/components/ui/scroll-area.tsx +1 -1
  101. package/corpus/templates/calendar/app/components/ui/select.tsx +3 -3
  102. package/corpus/templates/calendar/app/components/ui/sheet.tsx +2 -2
  103. package/corpus/templates/calendar/app/components/ui/sidebar.tsx +6 -6
  104. package/corpus/templates/calendar/app/components/ui/sonner.tsx +1 -1
  105. package/corpus/templates/calendar/app/components/ui/table.tsx +2 -2
  106. package/corpus/templates/calendar/app/components/ui/toast.tsx +3 -3
  107. package/corpus/templates/calendar/app/pages/Settings.tsx +5 -5
  108. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +9 -9
  109. package/corpus/templates/chat/app/components/ui/alert-dialog.tsx +1 -1
  110. package/corpus/templates/chat/app/components/ui/alert.tsx +1 -1
  111. package/corpus/templates/chat/app/components/ui/breadcrumb.tsx +1 -1
  112. package/corpus/templates/chat/app/components/ui/calendar.tsx +5 -5
  113. package/corpus/templates/chat/app/components/ui/carousel.tsx +6 -6
  114. package/corpus/templates/chat/app/components/ui/command.tsx +2 -2
  115. package/corpus/templates/chat/app/components/ui/context-menu.tsx +9 -9
  116. package/corpus/templates/chat/app/components/ui/dialog.tsx +2 -2
  117. package/corpus/templates/chat/app/components/ui/drawer.tsx +1 -1
  118. package/corpus/templates/chat/app/components/ui/dropdown-menu.tsx +9 -9
  119. package/corpus/templates/chat/app/components/ui/input-otp.tsx +1 -1
  120. package/corpus/templates/chat/app/components/ui/menubar.tsx +9 -9
  121. package/corpus/templates/chat/app/components/ui/navigation-menu.tsx +3 -3
  122. package/corpus/templates/chat/app/components/ui/pagination.tsx +4 -4
  123. package/corpus/templates/chat/app/components/ui/scroll-area.tsx +1 -1
  124. package/corpus/templates/chat/app/components/ui/select.tsx +3 -3
  125. package/corpus/templates/chat/app/components/ui/sheet.tsx +2 -2
  126. package/corpus/templates/chat/app/components/ui/sidebar.tsx +6 -6
  127. package/corpus/templates/chat/app/components/ui/table.tsx +2 -2
  128. package/corpus/templates/chat/app/components/ui/toast.tsx +3 -3
  129. package/corpus/templates/clips/app/components/capture-install-options.tsx +3 -3
  130. package/corpus/templates/clips/app/components/editable-recording-title.tsx +1 -1
  131. package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +3 -3
  132. package/corpus/templates/clips/app/components/library/folder-tree.tsx +5 -5
  133. package/corpus/templates/clips/app/components/library/library-layout.tsx +3 -3
  134. package/corpus/templates/clips/app/components/library/organization-switcher.tsx +4 -4
  135. package/corpus/templates/clips/app/components/library/recording-card.tsx +11 -11
  136. package/corpus/templates/clips/app/components/library/search-bar.tsx +4 -4
  137. package/corpus/templates/clips/app/components/library/space-card.tsx +1 -1
  138. package/corpus/templates/clips/app/components/library/tag-input.tsx +1 -1
  139. package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +2 -2
  140. package/corpus/templates/clips/app/components/recorder/camera-visualizer.tsx +2 -2
  141. package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +1 -1
  142. package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +4 -4
  143. package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +1 -1
  144. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -2
  145. package/corpus/templates/clips/app/components/ui/alert-dialog.tsx +1 -1
  146. package/corpus/templates/clips/app/components/ui/alert.tsx +1 -1
  147. package/corpus/templates/clips/app/components/ui/breadcrumb.tsx +1 -1
  148. package/corpus/templates/clips/app/components/ui/calendar.tsx +5 -5
  149. package/corpus/templates/clips/app/components/ui/carousel.tsx +6 -6
  150. package/corpus/templates/clips/app/components/ui/command.tsx +2 -2
  151. package/corpus/templates/clips/app/components/ui/context-menu.tsx +9 -9
  152. package/corpus/templates/clips/app/components/ui/dialog.tsx +2 -2
  153. package/corpus/templates/clips/app/components/ui/drawer.tsx +1 -1
  154. package/corpus/templates/clips/app/components/ui/dropdown-menu.tsx +9 -9
  155. package/corpus/templates/clips/app/components/ui/input-otp.tsx +1 -1
  156. package/corpus/templates/clips/app/components/ui/menubar.tsx +9 -9
  157. package/corpus/templates/clips/app/components/ui/navigation-menu.tsx +3 -3
  158. package/corpus/templates/clips/app/components/ui/pagination.tsx +4 -4
  159. package/corpus/templates/clips/app/components/ui/scroll-area.tsx +1 -1
  160. package/corpus/templates/clips/app/components/ui/select.tsx +3 -3
  161. package/corpus/templates/clips/app/components/ui/sheet.tsx +2 -2
  162. package/corpus/templates/clips/app/components/ui/sidebar.tsx +6 -6
  163. package/corpus/templates/clips/app/components/ui/table.tsx +2 -2
  164. package/corpus/templates/clips/app/components/ui/toast.tsx +3 -3
  165. package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +1 -1
  166. package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +2 -2
  167. package/corpus/templates/clips/app/components/workspace/invite-dialog.tsx +2 -2
  168. package/corpus/templates/clips/app/components/workspace/top-creators-table.tsx +6 -6
  169. package/corpus/templates/clips/app/components/workspace/top-videos-table.tsx +2 -2
  170. package/corpus/templates/clips/app/routes/_app.dictate.tsx +4 -4
  171. package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +7 -7
  172. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +1 -1
  173. package/corpus/templates/clips/app/routes/download.tsx +2 -2
  174. package/corpus/templates/clips/app/routes/invite.$token.tsx +2 -2
  175. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +3 -3
  176. package/corpus/templates/clips/app/routes/record.tsx +5 -5
  177. package/corpus/templates/clips/app/routes/share.$shareId.tsx +7 -7
  178. package/corpus/templates/content/app/components/EmptyState.tsx +1 -1
  179. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +17 -17
  180. package/corpus/templates/content/app/components/layout/Layout.tsx +2 -2
  181. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +10 -9
  182. package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +10 -6
  183. package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +3 -3
  184. package/corpus/templates/content/app/components/ui/alert-dialog.tsx +1 -1
  185. package/corpus/templates/content/app/components/ui/dialog.tsx +2 -2
  186. package/corpus/templates/content/app/components/ui/dropdown-menu.tsx +9 -9
  187. package/corpus/templates/content/app/components/ui/scroll-area.tsx +1 -1
  188. package/corpus/templates/content/app/components/ui/sheet.tsx +2 -2
  189. package/corpus/templates/content/app/components/ui/table.tsx +2 -2
  190. package/corpus/templates/content/app/components/ui/toast.tsx +3 -3
  191. package/corpus/templates/design/app/components/layout/Layout.tsx +3 -3
  192. package/corpus/templates/design/app/components/layout/Sidebar.tsx +3 -3
  193. package/corpus/templates/design/app/components/ui/alert-dialog.tsx +1 -1
  194. package/corpus/templates/design/app/components/ui/alert.tsx +1 -1
  195. package/corpus/templates/design/app/components/ui/breadcrumb.tsx +1 -1
  196. package/corpus/templates/design/app/components/ui/calendar.tsx +5 -5
  197. package/corpus/templates/design/app/components/ui/carousel.tsx +6 -6
  198. package/corpus/templates/design/app/components/ui/command.tsx +2 -2
  199. package/corpus/templates/design/app/components/ui/context-menu.tsx +9 -9
  200. package/corpus/templates/design/app/components/ui/dialog.tsx +2 -2
  201. package/corpus/templates/design/app/components/ui/drawer.tsx +1 -1
  202. package/corpus/templates/design/app/components/ui/dropdown-menu.tsx +9 -9
  203. package/corpus/templates/design/app/components/ui/input-otp.tsx +1 -1
  204. package/corpus/templates/design/app/components/ui/menubar.tsx +9 -9
  205. package/corpus/templates/design/app/components/ui/navigation-menu.tsx +3 -3
  206. package/corpus/templates/design/app/components/ui/pagination.tsx +4 -4
  207. package/corpus/templates/design/app/components/ui/scroll-area.tsx +1 -1
  208. package/corpus/templates/design/app/components/ui/select.tsx +3 -3
  209. package/corpus/templates/design/app/components/ui/sheet.tsx +2 -2
  210. package/corpus/templates/design/app/components/ui/sidebar.tsx +6 -6
  211. package/corpus/templates/design/app/components/ui/table.tsx +2 -2
  212. package/corpus/templates/design/app/components/ui/toast.tsx +3 -3
  213. package/corpus/templates/design/app/pages/DesignSystems.tsx +6 -8
  214. package/corpus/templates/design/app/pages/Index.tsx +8 -8
  215. package/corpus/templates/design/app/pages/NotFound.tsx +1 -1
  216. package/corpus/templates/design/app/pages/Templates.tsx +2 -2
  217. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +3 -3
  218. package/corpus/templates/forms/app/components/ui/alert-dialog.tsx +1 -1
  219. package/corpus/templates/forms/app/components/ui/alert.tsx +1 -1
  220. package/corpus/templates/forms/app/components/ui/breadcrumb.tsx +1 -1
  221. package/corpus/templates/forms/app/components/ui/calendar.tsx +9 -6
  222. package/corpus/templates/forms/app/components/ui/carousel.tsx +6 -6
  223. package/corpus/templates/forms/app/components/ui/command.tsx +2 -2
  224. package/corpus/templates/forms/app/components/ui/context-menu.tsx +9 -9
  225. package/corpus/templates/forms/app/components/ui/dialog.tsx +2 -2
  226. package/corpus/templates/forms/app/components/ui/drawer.tsx +1 -1
  227. package/corpus/templates/forms/app/components/ui/dropdown-menu.tsx +9 -9
  228. package/corpus/templates/forms/app/components/ui/input-otp.tsx +1 -1
  229. package/corpus/templates/forms/app/components/ui/menubar.tsx +9 -9
  230. package/corpus/templates/forms/app/components/ui/navigation-menu.tsx +3 -3
  231. package/corpus/templates/forms/app/components/ui/pagination.tsx +4 -4
  232. package/corpus/templates/forms/app/components/ui/scroll-area.tsx +1 -1
  233. package/corpus/templates/forms/app/components/ui/select.tsx +3 -3
  234. package/corpus/templates/forms/app/components/ui/sheet.tsx +2 -2
  235. package/corpus/templates/forms/app/components/ui/sidebar.tsx +6 -6
  236. package/corpus/templates/forms/app/components/ui/table.tsx +2 -2
  237. package/corpus/templates/forms/app/components/ui/toast.tsx +3 -3
  238. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +18 -18
  239. package/corpus/templates/forms/app/pages/FormsListPage.tsx +9 -9
  240. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +4 -4
  241. package/corpus/templates/macros/app/components/ui/alert-dialog.tsx +1 -1
  242. package/corpus/templates/macros/app/components/ui/alert.tsx +1 -1
  243. package/corpus/templates/macros/app/components/ui/breadcrumb.tsx +1 -1
  244. package/corpus/templates/macros/app/components/ui/command.tsx +2 -2
  245. package/corpus/templates/macros/app/components/ui/context-menu.tsx +9 -9
  246. package/corpus/templates/macros/app/components/ui/dialog.tsx +2 -2
  247. package/corpus/templates/macros/app/components/ui/drawer.tsx +1 -1
  248. package/corpus/templates/macros/app/components/ui/dropdown-menu.tsx +9 -9
  249. package/corpus/templates/macros/app/components/ui/menubar.tsx +9 -9
  250. package/corpus/templates/macros/app/components/ui/navigation-menu.tsx +3 -3
  251. package/corpus/templates/macros/app/components/ui/pagination.tsx +4 -4
  252. package/corpus/templates/macros/app/components/ui/scroll-area.tsx +1 -1
  253. package/corpus/templates/macros/app/components/ui/select.tsx +3 -3
  254. package/corpus/templates/macros/app/components/ui/sheet.tsx +2 -2
  255. package/corpus/templates/macros/app/components/ui/table.tsx +2 -2
  256. package/corpus/templates/macros/app/components/ui/toast.tsx +3 -3
  257. package/corpus/templates/macros/app/routes/_index.tsx +2 -2
  258. package/corpus/templates/macros/app/routes/analytics.tsx +1 -1
  259. package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +6 -6
  260. package/corpus/templates/mail/app/components/email/AttachmentStrip.tsx +2 -2
  261. package/corpus/templates/mail/app/components/email/EmailListItem.tsx +5 -5
  262. package/corpus/templates/mail/app/components/email/IntegrationsSidebar.tsx +5 -5
  263. package/corpus/templates/mail/app/components/email/MobileActionBar.tsx +3 -3
  264. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +10 -10
  265. package/corpus/templates/mail/app/components/layout/CommandPalette.tsx +1 -1
  266. package/corpus/templates/mail/app/components/layout/SearchBar.tsx +3 -3
  267. package/corpus/templates/mail/app/components/ui/alert-dialog.tsx +1 -1
  268. package/corpus/templates/mail/app/components/ui/alert.tsx +1 -1
  269. package/corpus/templates/mail/app/components/ui/breadcrumb.tsx +1 -1
  270. package/corpus/templates/mail/app/components/ui/calendar.tsx +4 -4
  271. package/corpus/templates/mail/app/components/ui/carousel.tsx +6 -6
  272. package/corpus/templates/mail/app/components/ui/command.tsx +2 -2
  273. package/corpus/templates/mail/app/components/ui/context-menu.tsx +9 -9
  274. package/corpus/templates/mail/app/components/ui/dialog.tsx +2 -2
  275. package/corpus/templates/mail/app/components/ui/drawer.tsx +1 -1
  276. package/corpus/templates/mail/app/components/ui/dropdown-menu.tsx +9 -9
  277. package/corpus/templates/mail/app/components/ui/input-otp.tsx +1 -1
  278. package/corpus/templates/mail/app/components/ui/menubar.tsx +9 -9
  279. package/corpus/templates/mail/app/components/ui/navigation-menu.tsx +3 -3
  280. package/corpus/templates/mail/app/components/ui/pagination.tsx +4 -4
  281. package/corpus/templates/mail/app/components/ui/scroll-area.tsx +1 -1
  282. package/corpus/templates/mail/app/components/ui/select.tsx +3 -3
  283. package/corpus/templates/mail/app/components/ui/sheet.tsx +2 -2
  284. package/corpus/templates/mail/app/components/ui/sidebar.tsx +6 -6
  285. package/corpus/templates/mail/app/components/ui/sonner.tsx +2 -2
  286. package/corpus/templates/mail/app/components/ui/table.tsx +2 -2
  287. package/corpus/templates/mail/app/components/ui/toast.tsx +3 -3
  288. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +10 -10
  289. package/corpus/templates/plan/app/components/ui/alert-dialog.tsx +1 -1
  290. package/corpus/templates/plan/app/components/ui/alert.tsx +1 -1
  291. package/corpus/templates/plan/app/components/ui/breadcrumb.tsx +1 -1
  292. package/corpus/templates/plan/app/components/ui/calendar.tsx +5 -5
  293. package/corpus/templates/plan/app/components/ui/carousel.tsx +6 -6
  294. package/corpus/templates/plan/app/components/ui/command.tsx +2 -2
  295. package/corpus/templates/plan/app/components/ui/context-menu.tsx +9 -9
  296. package/corpus/templates/plan/app/components/ui/dialog.tsx +2 -2
  297. package/corpus/templates/plan/app/components/ui/drawer.tsx +1 -1
  298. package/corpus/templates/plan/app/components/ui/dropdown-menu.tsx +9 -9
  299. package/corpus/templates/plan/app/components/ui/input-otp.tsx +1 -1
  300. package/corpus/templates/plan/app/components/ui/menubar.tsx +9 -9
  301. package/corpus/templates/plan/app/components/ui/navigation-menu.tsx +3 -3
  302. package/corpus/templates/plan/app/components/ui/pagination.tsx +4 -4
  303. package/corpus/templates/plan/app/components/ui/scroll-area.tsx +1 -1
  304. package/corpus/templates/plan/app/components/ui/select.tsx +3 -3
  305. package/corpus/templates/plan/app/components/ui/sheet.tsx +2 -2
  306. package/corpus/templates/plan/app/components/ui/sidebar.tsx +6 -6
  307. package/corpus/templates/plan/app/components/ui/table.tsx +2 -2
  308. package/corpus/templates/plan/app/components/ui/toast.tsx +3 -3
  309. package/corpus/templates/slides/app/components/layout/Layout.tsx +1 -1
  310. package/corpus/templates/slides/app/components/ui/alert-dialog.tsx +1 -1
  311. package/corpus/templates/slides/app/components/ui/alert.tsx +1 -1
  312. package/corpus/templates/slides/app/components/ui/breadcrumb.tsx +1 -1
  313. package/corpus/templates/slides/app/components/ui/calendar.tsx +5 -5
  314. package/corpus/templates/slides/app/components/ui/carousel.tsx +6 -6
  315. package/corpus/templates/slides/app/components/ui/command.tsx +2 -2
  316. package/corpus/templates/slides/app/components/ui/context-menu.tsx +9 -9
  317. package/corpus/templates/slides/app/components/ui/dialog.tsx +2 -2
  318. package/corpus/templates/slides/app/components/ui/drawer.tsx +1 -1
  319. package/corpus/templates/slides/app/components/ui/dropdown-menu.tsx +9 -9
  320. package/corpus/templates/slides/app/components/ui/input-otp.tsx +1 -1
  321. package/corpus/templates/slides/app/components/ui/menubar.tsx +9 -9
  322. package/corpus/templates/slides/app/components/ui/navigation-menu.tsx +3 -3
  323. package/corpus/templates/slides/app/components/ui/pagination.tsx +4 -4
  324. package/corpus/templates/slides/app/components/ui/scroll-area.tsx +1 -1
  325. package/corpus/templates/slides/app/components/ui/select.tsx +3 -3
  326. package/corpus/templates/slides/app/components/ui/sheet.tsx +2 -2
  327. package/corpus/templates/slides/app/components/ui/sidebar.tsx +6 -6
  328. package/corpus/templates/slides/app/components/ui/table.tsx +2 -2
  329. package/corpus/templates/slides/app/components/ui/toast.tsx +3 -3
  330. package/corpus/templates/videos/app/components/ui/alert-dialog.tsx +1 -1
  331. package/corpus/templates/videos/app/components/ui/alert.tsx +1 -1
  332. package/corpus/templates/videos/app/components/ui/breadcrumb.tsx +1 -1
  333. package/corpus/templates/videos/app/components/ui/calendar.tsx +5 -5
  334. package/corpus/templates/videos/app/components/ui/carousel.tsx +6 -6
  335. package/corpus/templates/videos/app/components/ui/command.tsx +2 -2
  336. package/corpus/templates/videos/app/components/ui/context-menu.tsx +9 -9
  337. package/corpus/templates/videos/app/components/ui/dialog.tsx +2 -2
  338. package/corpus/templates/videos/app/components/ui/drawer.tsx +1 -1
  339. package/corpus/templates/videos/app/components/ui/dropdown-menu.tsx +9 -9
  340. package/corpus/templates/videos/app/components/ui/input-otp.tsx +1 -1
  341. package/corpus/templates/videos/app/components/ui/menubar.tsx +9 -9
  342. package/corpus/templates/videos/app/components/ui/navigation-menu.tsx +3 -3
  343. package/corpus/templates/videos/app/components/ui/pagination.tsx +4 -4
  344. package/corpus/templates/videos/app/components/ui/scroll-area.tsx +1 -1
  345. package/corpus/templates/videos/app/components/ui/select.tsx +3 -3
  346. package/corpus/templates/videos/app/components/ui/sheet.tsx +2 -2
  347. package/corpus/templates/videos/app/components/ui/sidebar.tsx +6 -6
  348. package/corpus/templates/videos/app/components/ui/table.tsx +2 -2
  349. package/corpus/templates/videos/app/components/ui/toast.tsx +3 -3
  350. package/dist/agent/production-agent.d.ts +47 -0
  351. package/dist/agent/production-agent.d.ts.map +1 -1
  352. package/dist/agent/production-agent.js +112 -56
  353. package/dist/agent/production-agent.js.map +1 -1
  354. package/dist/agent/run-store.d.ts +21 -0
  355. package/dist/agent/run-store.d.ts.map +1 -1
  356. package/dist/agent/run-store.js +32 -0
  357. package/dist/agent/run-store.js.map +1 -1
  358. package/dist/client/AgentPanel.js +3 -3
  359. package/dist/client/AgentPanel.js.map +1 -1
  360. package/dist/client/AgentTaskCard.d.ts.map +1 -1
  361. package/dist/client/AgentTaskCard.js +1 -1
  362. package/dist/client/AgentTaskCard.js.map +1 -1
  363. package/dist/client/AppearancePicker.js +1 -1
  364. package/dist/client/AppearancePicker.js.map +1 -1
  365. package/dist/client/AssistantChat.js +3 -3
  366. package/dist/client/AssistantChat.js.map +1 -1
  367. package/dist/client/CommandMenu.js +4 -4
  368. package/dist/client/CommandMenu.js.map +1 -1
  369. package/dist/client/ErrorBoundary.js +1 -1
  370. package/dist/client/ErrorBoundary.js.map +1 -1
  371. package/dist/client/MultiTabAssistantChat.js +9 -9
  372. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  373. package/dist/client/NewWorkspaceAppFlow.js +5 -5
  374. package/dist/client/NewWorkspaceAppFlow.js.map +1 -1
  375. package/dist/client/components/ui/dropdown-menu.js +6 -6
  376. package/dist/client/components/ui/dropdown-menu.js.map +1 -1
  377. package/dist/client/components/ui/sheet.js +1 -1
  378. package/dist/client/components/ui/sheet.js.map +1 -1
  379. package/dist/client/composer/ComposerPlusMenu.js +5 -5
  380. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  381. package/dist/client/composer/MentionPopover.js +4 -4
  382. package/dist/client/composer/MentionPopover.js.map +1 -1
  383. package/dist/client/composer/PastedTextChip.js +2 -2
  384. package/dist/client/composer/PastedTextChip.js.map +1 -1
  385. package/dist/client/composer/PromptComposer.js +3 -3
  386. package/dist/client/composer/PromptComposer.js.map +1 -1
  387. package/dist/client/composer/TiptapComposer.js +12 -12
  388. package/dist/client/composer/TiptapComposer.js.map +1 -1
  389. package/dist/client/guided-questions.d.ts.map +1 -1
  390. package/dist/client/guided-questions.js +5 -5
  391. package/dist/client/guided-questions.js.map +1 -1
  392. package/dist/client/i18n.js +2 -2
  393. package/dist/client/i18n.js.map +1 -1
  394. package/dist/client/integrations/IntegrationCard.js +1 -1
  395. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  396. package/dist/client/integrations/IntegrationsPanel.js +4 -4
  397. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  398. package/dist/client/notifications/NotificationsBell.js +3 -3
  399. package/dist/client/notifications/NotificationsBell.js.map +1 -1
  400. package/dist/client/onboarding/OnboardingBanner.js +3 -3
  401. package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
  402. package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
  403. package/dist/client/onboarding/OnboardingPanel.js +15 -10
  404. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  405. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  406. package/dist/client/org/OrgSwitcher.js +7 -7
  407. package/dist/client/org/OrgSwitcher.js.map +1 -1
  408. package/dist/client/org/TeamPage.js +2 -2
  409. package/dist/client/org/TeamPage.js.map +1 -1
  410. package/dist/client/settings/AgentsSection.js +3 -3
  411. package/dist/client/settings/AgentsSection.js.map +1 -1
  412. package/dist/client/settings/AutomationsSection.js +2 -2
  413. package/dist/client/settings/AutomationsSection.js.map +1 -1
  414. package/dist/client/settings/SecretsSection.js +2 -2
  415. package/dist/client/settings/SecretsSection.js.map +1 -1
  416. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  417. package/dist/client/settings/SettingsPanel.js +4 -4
  418. package/dist/client/settings/SettingsPanel.js.map +1 -1
  419. package/dist/client/settings/SettingsSection.js +1 -1
  420. package/dist/client/settings/SettingsSection.js.map +1 -1
  421. package/dist/client/settings/UsageSection.js +2 -2
  422. package/dist/client/settings/UsageSection.js.map +1 -1
  423. package/dist/client/settings/VoiceTranscriptionSection.js +3 -3
  424. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  425. package/dist/client/sharing/ShareButton.js +6 -6
  426. package/dist/client/sharing/ShareButton.js.map +1 -1
  427. package/dist/client/sharing/ShareDialog.js +3 -3
  428. package/dist/client/sharing/ShareDialog.js.map +1 -1
  429. package/dist/deploy/build.d.ts.map +1 -1
  430. package/dist/deploy/build.js +31 -14
  431. package/dist/deploy/build.js.map +1 -1
  432. package/dist/styles/agent-conversation.css +10 -10
  433. package/dist/styles/blocks.css +2 -2
  434. package/dist/styles/rich-markdown-editor.css +2 -2
  435. package/package.json +1 -1
@@ -261,8 +261,8 @@ function AssetsChatsSection() {
261
261
  }
262
262
 
263
263
  return (
264
- <div className="mt-2 border-l border-border/70 pl-3">
265
- <div className="mb-1 flex h-7 items-center gap-2 pr-1">
264
+ <div className="mt-2 border-s border-border/70 ps-3">
265
+ <div className="mb-1 flex h-7 items-center gap-2 pe-1">
266
266
  <div className="min-w-0 flex-1 text-xs font-medium text-muted-foreground">
267
267
  {t("chat.chats")}
268
268
  </div>
@@ -323,13 +323,13 @@ function AssetsChatsSection() {
323
323
  <button
324
324
  type="button"
325
325
  onClick={() => openThread(thread.id)}
326
- className="flex h-full min-w-0 flex-1 items-center px-2 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring"
326
+ className="flex h-full min-w-0 flex-1 items-center px-2 text-start outline-none focus-visible:ring-2 focus-visible:ring-ring"
327
327
  >
328
328
  <span className="min-w-0 flex-1 truncate">
329
329
  {threadTitle(thread)}
330
330
  </span>
331
331
  </button>
332
- <div className="relative flex w-auto min-w-7 shrink-0 items-center justify-end pr-1">
332
+ <div className="relative flex w-auto min-w-7 shrink-0 items-center justify-end pe-1">
333
333
  <span className="whitespace-nowrap text-[11px] tabular-nums text-muted-foreground/75 transition-opacity group-hover:opacity-0 group-focus-within:opacity-0">
334
334
  {isActive ? "" : formatThreadAge(threadUpdatedAt(thread))}
335
335
  </span>
@@ -340,7 +340,7 @@ function AssetsChatsSection() {
340
340
  aria-label={t("chat.optionsFor", {
341
341
  title: threadTitle(thread),
342
342
  })}
343
- className="absolute right-1 flex size-6 items-center justify-center rounded-md text-muted-foreground opacity-0 transition-opacity hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring group-hover:opacity-100 group-focus-within:opacity-100 data-[state=open]:opacity-100"
343
+ className="absolute end-1 flex size-6 items-center justify-center rounded-md text-muted-foreground opacity-0 transition-opacity hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring group-hover:opacity-100 group-focus-within:opacity-100 data-[state=open]:opacity-100"
344
344
  >
345
345
  <IconDots className="size-4" />
346
346
  </button>
@@ -353,7 +353,7 @@ function AssetsChatsSection() {
353
353
  <DropdownMenuItem
354
354
  onSelect={() => startRenameThread(thread)}
355
355
  >
356
- <IconEdit className="mr-2 size-4" />
356
+ <IconEdit className="me-2 size-4" />
357
357
  {t("chat.renameChat")}
358
358
  </DropdownMenuItem>
359
359
  <DropdownMenuItem
@@ -361,7 +361,7 @@ function AssetsChatsSection() {
361
361
  void pinThread(thread.id, !thread.pinnedAt)
362
362
  }
363
363
  >
364
- <IconPin className="mr-2 size-4" />
364
+ <IconPin className="me-2 size-4" />
365
365
  {thread.pinnedAt
366
366
  ? t("chat.unpinChat")
367
367
  : t("chat.pinChat")}
@@ -369,14 +369,14 @@ function AssetsChatsSection() {
369
369
  <DropdownMenuItem
370
370
  onSelect={() => void handleCopyShareLink(thread.id)}
371
371
  >
372
- <IconShare3 className="mr-2 size-4" />
372
+ <IconShare3 className="me-2 size-4" />
373
373
  {t("chat.copyShareLink")}
374
374
  </DropdownMenuItem>
375
375
  <DropdownMenuItem
376
376
  className="text-destructive focus:text-destructive"
377
377
  onSelect={() => void handleArchiveThread(thread.id)}
378
378
  >
379
- <IconArchive className="mr-2 size-4" />
379
+ <IconArchive className="me-2 size-4" />
380
380
  {t("chat.archiveChat")}
381
381
  </DropdownMenuItem>
382
382
  </DropdownMenuContent>
@@ -425,7 +425,7 @@ export function Sidebar() {
425
425
  return (
426
426
  <aside
427
427
  className={cn(
428
- "flex h-full min-w-0 shrink-0 flex-col overflow-hidden border-r border-border bg-sidebar text-sidebar-foreground",
428
+ "flex h-full min-w-0 shrink-0 flex-col overflow-hidden border-e border-border bg-sidebar text-sidebar-foreground",
429
429
  collapsed ? "w-14" : "w-56",
430
430
  )}
431
431
  >
@@ -466,9 +466,9 @@ export function Sidebar() {
466
466
  }
467
467
  >
468
468
  {collapsed ? (
469
- <IconLayoutSidebarLeftExpand className="h-4 w-4" />
469
+ <IconLayoutSidebarLeftExpand className="h-4 w-4 rtl:-scale-x-100" />
470
470
  ) : (
471
- <IconLayoutSidebarLeftCollapse className="h-4 w-4" />
471
+ <IconLayoutSidebarLeftCollapse className="h-4 w-4 rtl:-scale-x-100" />
472
472
  )}
473
473
  </button>
474
474
  </TooltipTrigger>
@@ -49,7 +49,7 @@ const AlertDialogHeader = ({
49
49
  }: React.HTMLAttributes<HTMLDivElement>) => (
50
50
  <div
51
51
  className={cn(
52
- "flex flex-col space-y-2 text-center sm:text-left",
52
+ "flex flex-col space-y-2 text-center sm:text-start",
53
53
  className,
54
54
  )}
55
55
  {...props}
@@ -4,7 +4,7 @@ import { cva, type VariantProps } from "class-variance-authority";
4
4
  import { cn } from "@/lib/utils";
5
5
 
6
6
  const alertVariants = cva(
7
- "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
7
+ "relative w-full rounded-lg border p-4 [&>svg~*]:ps-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:start-4 [&>svg]:top-4 [&>svg]:text-foreground",
8
8
  {
9
9
  variants: {
10
10
  variant: {
@@ -83,7 +83,7 @@ const BreadcrumbSeparator = ({
83
83
  className={cn("[&>svg]:size-3.5", className)}
84
84
  {...props}
85
85
  >
86
- {children ?? <IconChevronRight />}
86
+ {children ?? <IconChevronRight className="rtl:-scale-x-100" />}
87
87
  </li>
88
88
  );
89
89
  BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
@@ -51,7 +51,7 @@ const DialogContent = React.forwardRef<
51
51
  >
52
52
  {children}
53
53
  {!hideClose && (
54
- <DialogPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
54
+ <DialogPrimitive.Close className="absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground">
55
55
  <IconX className="h-4 w-4" />
56
56
  <span className="sr-only">Close</span>
57
57
  </DialogPrimitive.Close>
@@ -67,7 +67,7 @@ const DialogHeader = ({
67
67
  }: React.HTMLAttributes<HTMLDivElement>) => (
68
68
  <div
69
69
  className={cn(
70
- "flex flex-col space-y-1.5 text-center sm:text-left",
70
+ "flex flex-col space-y-1.5 text-center sm:text-start",
71
71
  className,
72
72
  )}
73
73
  {...props}
@@ -30,13 +30,13 @@ const DropdownMenuSubTrigger = React.forwardRef<
30
30
  ref={ref}
31
31
  className={cn(
32
32
  "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent",
33
- inset && "pl-8",
33
+ inset && "ps-8",
34
34
  className,
35
35
  )}
36
36
  {...props}
37
37
  >
38
38
  {children}
39
- <IconChevronRight className="ml-auto h-4 w-4" />
39
+ <IconChevronRight className="ms-auto h-4 w-4 rtl:-scale-x-100" />
40
40
  </DropdownMenuPrimitive.SubTrigger>
41
41
  ));
42
42
  DropdownMenuSubTrigger.displayName =
@@ -96,7 +96,7 @@ const DropdownMenuItem = React.forwardRef<
96
96
  ref={ref}
97
97
  className={cn(
98
98
  "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
99
- inset && "pl-8",
99
+ inset && "ps-8",
100
100
  className,
101
101
  )}
102
102
  {...props}
@@ -111,13 +111,13 @@ const DropdownMenuCheckboxItem = React.forwardRef<
111
111
  <DropdownMenuPrimitive.CheckboxItem
112
112
  ref={ref}
113
113
  className={cn(
114
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
114
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
115
115
  className,
116
116
  )}
117
117
  checked={checked}
118
118
  {...props}
119
119
  >
120
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
120
+ <span className="absolute start-2 flex h-3.5 w-3.5 items-center justify-center">
121
121
  <DropdownMenuPrimitive.ItemIndicator>
122
122
  <IconCheck className="h-4 w-4" />
123
123
  </DropdownMenuPrimitive.ItemIndicator>
@@ -135,12 +135,12 @@ const DropdownMenuRadioItem = React.forwardRef<
135
135
  <DropdownMenuPrimitive.RadioItem
136
136
  ref={ref}
137
137
  className={cn(
138
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
138
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
139
139
  className,
140
140
  )}
141
141
  {...props}
142
142
  >
143
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
143
+ <span className="absolute start-2 flex h-3.5 w-3.5 items-center justify-center">
144
144
  <DropdownMenuPrimitive.ItemIndicator>
145
145
  <IconCircleFilled className="h-2 w-2" />
146
146
  </DropdownMenuPrimitive.ItemIndicator>
@@ -160,7 +160,7 @@ const DropdownMenuLabel = React.forwardRef<
160
160
  ref={ref}
161
161
  className={cn(
162
162
  "px-2 py-1.5 text-sm font-semibold",
163
- inset && "pl-8",
163
+ inset && "ps-8",
164
164
  className,
165
165
  )}
166
166
  {...props}
@@ -186,7 +186,7 @@ const DropdownMenuShortcut = ({
186
186
  }: React.HTMLAttributes<HTMLSpanElement>) => {
187
187
  return (
188
188
  <span
189
- className={cn("ml-auto text-xs tracking-widest opacity-60", className)}
189
+ className={cn("ms-auto text-xs tracking-widest opacity-60", className)}
190
190
  {...props}
191
191
  />
192
192
  );
@@ -70,10 +70,10 @@ const PaginationPrevious = ({
70
70
  <PaginationLink
71
71
  aria-label="Go to previous page"
72
72
  size="default"
73
- className={cn("gap-1 pl-2.5", className)}
73
+ className={cn("gap-1 ps-2.5", className)}
74
74
  {...props}
75
75
  >
76
- <IconChevronLeft className="h-4 w-4" />
76
+ <IconChevronLeft className="h-4 w-4 rtl:-scale-x-100" />
77
77
  <span>Previous</span>
78
78
  </PaginationLink>
79
79
  );
@@ -86,11 +86,11 @@ const PaginationNext = ({
86
86
  <PaginationLink
87
87
  aria-label="Go to next page"
88
88
  size="default"
89
- className={cn("gap-1 pr-2.5", className)}
89
+ className={cn("gap-1 pe-2.5", className)}
90
90
  {...props}
91
91
  >
92
92
  <span>Next</span>
93
- <IconChevronRight className="h-4 w-4" />
93
+ <IconChevronRight className="h-4 w-4 rtl:-scale-x-100" />
94
94
  </PaginationLink>
95
95
  );
96
96
  PaginationNext.displayName = "PaginationNext";
@@ -31,7 +31,7 @@ const ScrollBar = React.forwardRef<
31
31
  className={cn(
32
32
  "flex touch-none select-none transition-colors",
33
33
  orientation === "vertical" &&
34
- "h-full w-2.5 border-l border-l-transparent p-[1px]",
34
+ "h-full w-2.5 border-s border-s-transparent p-[1px]",
35
35
  orientation === "horizontal" &&
36
36
  "h-2.5 flex-col border-t border-t-transparent p-[1px]",
37
37
  className,
@@ -103,7 +103,7 @@ const SelectLabel = React.forwardRef<
103
103
  >(({ className, ...props }, ref) => (
104
104
  <SelectPrimitive.Label
105
105
  ref={ref}
106
- className={cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className)}
106
+ className={cn("py-1.5 ps-8 pe-2 text-sm font-semibold", className)}
107
107
  {...props}
108
108
  />
109
109
  ));
@@ -116,12 +116,12 @@ const SelectItem = React.forwardRef<
116
116
  <SelectPrimitive.Item
117
117
  ref={ref}
118
118
  className={cn(
119
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
119
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
120
120
  className,
121
121
  )}
122
122
  {...props}
123
123
  >
124
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
124
+ <span className="absolute start-2 flex h-3.5 w-3.5 items-center justify-center">
125
125
  <SelectPrimitive.ItemIndicator>
126
126
  <IconCheck className="h-4 w-4" />
127
127
  </SelectPrimitive.ItemIndicator>
@@ -83,7 +83,7 @@ const SheetContent = React.forwardRef<
83
83
  >
84
84
  {children}
85
85
  {showClose ? (
86
- <SheetPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary">
86
+ <SheetPrimitive.Close className="absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary">
87
87
  <IconX className="h-4 w-4" />
88
88
  <span className="sr-only">Close</span>
89
89
  </SheetPrimitive.Close>
@@ -100,7 +100,7 @@ const SheetHeader = ({
100
100
  }: React.HTMLAttributes<HTMLDivElement>) => (
101
101
  <div
102
102
  className={cn(
103
- "flex flex-col space-y-2 text-center sm:text-left",
103
+ "flex flex-col space-y-2 text-center sm:text-start",
104
104
  className,
105
105
  )}
106
106
  {...props}
@@ -73,7 +73,7 @@ const TableHead = React.forwardRef<
73
73
  <th
74
74
  ref={ref}
75
75
  className={cn(
76
- "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
76
+ "h-12 px-4 text-start align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pe-0",
77
77
  className,
78
78
  )}
79
79
  {...props}
@@ -87,7 +87,7 @@ const TableCell = React.forwardRef<
87
87
  >(({ className, ...props }, ref) => (
88
88
  <td
89
89
  ref={ref}
90
- className={cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className)}
90
+ className={cn("p-4 align-middle [&:has([role=checkbox])]:pe-0", className)}
91
91
  {...props}
92
92
  />
93
93
  ));
@@ -74,7 +74,7 @@ const GENERATION_COUNTS = [1, 2, 3, 4, 6] as const;
74
74
  const STARTER_PRESET = DEFAULT_LIBRARY_PRESETS[0];
75
75
  const STARTER_LIBRARY_ID = `starter:${STARTER_PRESET.id}`;
76
76
  const PICKER_INLINE_SELECT_CLASS =
77
- "h-7 w-auto min-w-0 max-w-full rounded-md border-0 bg-transparent px-1.5 py-1 text-xs font-medium text-muted-foreground shadow-none ring-offset-transparent transition hover:bg-accent/50 hover:text-foreground focus:ring-0 focus:ring-offset-0 sm:px-2 [&>svg]:ml-1 [&>svg]:size-3.5 [&>svg]:opacity-60";
77
+ "h-7 w-auto min-w-0 max-w-full rounded-md border-0 bg-transparent px-1.5 py-1 text-xs font-medium text-muted-foreground shadow-none ring-offset-transparent transition hover:bg-accent/50 hover:text-foreground focus:ring-0 focus:ring-offset-0 sm:px-2 [&>svg]:ms-1 [&>svg]:size-3.5 [&>svg]:opacity-60";
78
78
  type PickerMediaType = "image" | "video";
79
79
 
80
80
  type Asset = {
@@ -1633,7 +1633,7 @@ export default function AssetPicker() {
1633
1633
  }
1634
1634
  }}
1635
1635
  title={assetDisplayTitle(asset)}
1636
- className="block w-full text-left focus-visible:outline-none"
1636
+ className="block w-full text-start focus-visible:outline-none"
1637
1637
  >
1638
1638
  <div className="aspect-square bg-muted">
1639
1639
  {asset.mediaType === "video" ||
@@ -1660,7 +1660,7 @@ export default function AssetPicker() {
1660
1660
  event.stopPropagation();
1661
1661
  chooseAsset(asset);
1662
1662
  }}
1663
- className="absolute right-2 top-2 z-10 inline-flex h-8 w-8 items-center justify-center rounded-full bg-background/80 text-foreground opacity-0 shadow-sm backdrop-blur transition hover:bg-primary hover:text-primary-foreground focus:outline-none focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-ring group-hover:opacity-100"
1663
+ className="absolute end-2 top-2 z-10 inline-flex h-8 w-8 items-center justify-center rounded-full bg-background/80 text-foreground opacity-0 shadow-sm backdrop-blur transition hover:bg-primary hover:text-primary-foreground focus:outline-none focus-visible:opacity-100 focus-visible:ring-2 focus-visible:ring-ring group-hover:opacity-100"
1664
1664
  >
1665
1665
  <IconClipboard className="h-4 w-4" />
1666
1666
  </button>
@@ -358,7 +358,7 @@ function SettingsRow({
358
358
  </p>
359
359
  </div>
360
360
  </div>
361
- {action ? <div className="shrink-0 sm:ml-4">{action}</div> : null}
361
+ {action ? <div className="shrink-0 sm:ms-4">{action}</div> : null}
362
362
  </div>
363
363
  );
364
364
  }
@@ -199,8 +199,8 @@ function BrainChatsSection() {
199
199
  }
200
200
 
201
201
  return (
202
- <div className="mt-2 border-l border-sidebar-border/70 pl-3">
203
- <div className="mb-1 flex h-7 items-center gap-2 pr-1">
202
+ <div className="mt-2 border-s border-sidebar-border/70 ps-3">
203
+ <div className="mb-1 flex h-7 items-center gap-2 pe-1">
204
204
  <div className="min-w-0 flex-1 text-xs font-medium text-sidebar-foreground/70">
205
205
  {t("chat.chats")}
206
206
  </div>
@@ -260,13 +260,13 @@ function BrainChatsSection() {
260
260
  <button
261
261
  type="button"
262
262
  onClick={() => openThread(thread.id)}
263
- className="flex h-full min-w-0 flex-1 items-center px-2 text-left outline-none focus-visible:ring-2 focus-visible:ring-ring"
263
+ className="flex h-full min-w-0 flex-1 items-center px-2 text-start outline-none focus-visible:ring-2 focus-visible:ring-ring"
264
264
  >
265
265
  <span className="min-w-0 flex-1 truncate">
266
266
  {threadTitle(thread)}
267
267
  </span>
268
268
  </button>
269
- <div className="relative flex size-7 shrink-0 items-center justify-end pr-1">
269
+ <div className="relative flex size-7 shrink-0 items-center justify-end pe-1">
270
270
  <span className="text-[11px] text-sidebar-foreground/50 transition-opacity group-hover:opacity-0 group-focus-within:opacity-0">
271
271
  {isActive ? "" : formatThreadAge(threadUpdatedAt(thread))}
272
272
  </span>
@@ -277,7 +277,7 @@ function BrainChatsSection() {
277
277
  aria-label={t("chat.optionsFor", {
278
278
  title: threadTitle(thread),
279
279
  })}
280
- className="absolute right-1 flex size-6 items-center justify-center rounded-md text-sidebar-foreground/65 opacity-0 transition-opacity hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring group-hover:opacity-100 group-focus-within:opacity-100 data-[state=open]:opacity-100"
280
+ className="absolute end-1 flex size-6 items-center justify-center rounded-md text-sidebar-foreground/65 opacity-0 transition-opacity hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring group-hover:opacity-100 group-focus-within:opacity-100 data-[state=open]:opacity-100"
281
281
  >
282
282
  <IconDots className="size-4" />
283
283
  </button>
@@ -76,7 +76,7 @@ function DropdownMenuItem({
76
76
  data-inset={inset}
77
77
  data-variant={variant}
78
78
  className={cn(
79
- "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
79
+ "relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:ps-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",
80
80
  className,
81
81
  )}
82
82
  {...props}
@@ -94,13 +94,13 @@ function DropdownMenuCheckboxItem({
94
94
  <DropdownMenuPrimitive.CheckboxItem
95
95
  data-slot="dropdown-menu-checkbox-item"
96
96
  className={cn(
97
- "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
97
+ "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pe-2 ps-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
98
98
  className,
99
99
  )}
100
100
  checked={checked}
101
101
  {...props}
102
102
  >
103
- <span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
103
+ <span className="pointer-events-none absolute start-2 flex size-3.5 items-center justify-center">
104
104
  <DropdownMenuPrimitive.ItemIndicator>
105
105
  <IconCheck className="size-4" />
106
106
  </DropdownMenuPrimitive.ItemIndicator>
@@ -130,12 +130,12 @@ function DropdownMenuRadioItem({
130
130
  <DropdownMenuPrimitive.RadioItem
131
131
  data-slot="dropdown-menu-radio-item"
132
132
  className={cn(
133
- "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
133
+ "relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pe-2 ps-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
134
134
  className,
135
135
  )}
136
136
  {...props}
137
137
  >
138
- <span className="pointer-events-none absolute left-2 flex size-3.5 items-center justify-center">
138
+ <span className="pointer-events-none absolute start-2 flex size-3.5 items-center justify-center">
139
139
  <DropdownMenuPrimitive.ItemIndicator>
140
140
  <IconCircleFilled className="size-2 fill-current" />
141
141
  </DropdownMenuPrimitive.ItemIndicator>
@@ -157,7 +157,7 @@ function DropdownMenuLabel({
157
157
  data-slot="dropdown-menu-label"
158
158
  data-inset={inset}
159
159
  className={cn(
160
- "px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",
160
+ "px-2 py-1.5 text-sm font-medium data-[inset]:ps-8",
161
161
  className,
162
162
  )}
163
163
  {...props}
@@ -186,7 +186,7 @@ function DropdownMenuShortcut({
186
186
  <span
187
187
  data-slot="dropdown-menu-shortcut"
188
188
  className={cn(
189
- "ml-auto text-xs tracking-widest text-muted-foreground",
189
+ "ms-auto text-xs tracking-widest text-muted-foreground",
190
190
  className,
191
191
  )}
192
192
  {...props}
@@ -213,13 +213,13 @@ function DropdownMenuSubTrigger({
213
213
  data-slot="dropdown-menu-sub-trigger"
214
214
  data-inset={inset}
215
215
  className={cn(
216
- "flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
216
+ "flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:ps-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
217
217
  className,
218
218
  )}
219
219
  {...props}
220
220
  >
221
221
  {children}
222
- <IconChevronRight className="ml-auto size-4" />
222
+ <IconChevronRight className="ms-auto size-4 rtl:-scale-x-100" />
223
223
  </DropdownMenuPrimitive.SubTrigger>
224
224
  );
225
225
  }
@@ -103,7 +103,7 @@ const SelectLabel = React.forwardRef<
103
103
  >(({ className, ...props }, ref) => (
104
104
  <SelectPrimitive.Label
105
105
  ref={ref}
106
- className={cn("py-1.5 pl-8 pr-2 text-sm font-semibold", className)}
106
+ className={cn("py-1.5 ps-8 pe-2 text-sm font-semibold", className)}
107
107
  {...props}
108
108
  />
109
109
  ));
@@ -116,12 +116,12 @@ const SelectItem = React.forwardRef<
116
116
  <SelectPrimitive.Item
117
117
  ref={ref}
118
118
  className={cn(
119
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
119
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
120
120
  className,
121
121
  )}
122
122
  {...props}
123
123
  >
124
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
124
+ <span className="absolute start-2 flex h-3.5 w-3.5 items-center justify-center">
125
125
  <SelectPrimitive.ItemIndicator>
126
126
  <IconCheck className="h-4 w-4" />
127
127
  </SelectPrimitive.ItemIndicator>
@@ -83,7 +83,7 @@ const SheetContent = React.forwardRef<
83
83
  >
84
84
  {children}
85
85
  {showClose ? (
86
- <SheetPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary">
86
+ <SheetPrimitive.Close className="absolute end-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary">
87
87
  <IconX className="h-4 w-4" />
88
88
  <span className="sr-only">Close</span>
89
89
  </SheetPrimitive.Close>
@@ -100,7 +100,7 @@ const SheetHeader = ({
100
100
  }: React.HTMLAttributes<HTMLDivElement>) => (
101
101
  <div
102
102
  className={cn(
103
- "flex flex-col space-y-2 text-center sm:text-left",
103
+ "flex flex-col space-y-2 text-center sm:text-start",
104
104
  className,
105
105
  )}
106
106
  {...props}
@@ -73,7 +73,7 @@ const TableHead = React.forwardRef<
73
73
  <th
74
74
  ref={ref}
75
75
  className={cn(
76
- "h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",
76
+ "h-12 px-4 text-start align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pe-0",
77
77
  className,
78
78
  )}
79
79
  {...props}
@@ -87,7 +87,7 @@ const TableCell = React.forwardRef<
87
87
  >(({ className, ...props }, ref) => (
88
88
  <td
89
89
  ref={ref}
90
- className={cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className)}
90
+ className={cn("p-4 align-middle [&:has([role=checkbox])]:pe-0", className)}
91
91
  {...props}
92
92
  />
93
93
  ));
@@ -371,7 +371,7 @@ export function GoogleConnectBanner({
371
371
  )}
372
372
 
373
373
  {showWizard && !allConfigured && (
374
- <div className="mt-8 w-full max-w-lg text-left">
374
+ <div className="mt-8 w-full max-w-lg text-start">
375
375
  <SetupWizard
376
376
  currentStep={currentStep}
377
377
  setCurrentStep={setCurrentStep}
@@ -561,7 +561,7 @@ function GoogleVerificationNotice({ className = "" }: { className?: string }) {
561
561
  Google may show a warning
562
562
  </button>
563
563
  </PopoverTrigger>
564
- <PopoverContent align="center" className="w-72 text-left">
564
+ <PopoverContent align="center" className="w-72 text-start">
565
565
  <div className="flex items-start gap-2.5">
566
566
  <div className="mt-0.5 flex h-6 w-6 shrink-0 items-center justify-center rounded-md bg-amber-500/15 text-amber-300">
567
567
  <IconAlertTriangle className="h-3.5 w-3.5" />
@@ -611,7 +611,7 @@ function GoogleAuthIssuePanel({
611
611
 
612
612
  return (
613
613
  <div
614
- className={`rounded-lg border border-amber-500/25 bg-amber-500/[0.07] p-3 text-left ${className}`}
614
+ className={`rounded-lg border border-amber-500/25 bg-amber-500/[0.07] p-3 text-start ${className}`}
615
615
  >
616
616
  <div className="flex items-start gap-3">
617
617
  <div className="mt-0.5 flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-amber-500/15 text-amber-300">
@@ -633,7 +633,7 @@ function GoogleAuthIssuePanel({
633
633
  className="h-8 gap-1.5 px-3 text-xs font-medium"
634
634
  onClick={onSignOut}
635
635
  >
636
- <IconLogout className="h-3.5 w-3.5" />
636
+ <IconLogout className="h-3.5 w-3.5 rtl:-scale-x-100" />
637
637
  Sign out
638
638
  </Button>
639
639
  <Button
@@ -696,7 +696,7 @@ function SetupWizard({
696
696
  key={i}
697
697
  role="button"
698
698
  tabIndex={0}
699
- className={`w-full text-left rounded-lg border p-3 transition-colors cursor-pointer ${
699
+ className={`w-full text-start rounded-lg border p-3 transition-colors cursor-pointer ${
700
700
  isActive
701
701
  ? "border-primary/40 bg-primary/5"
702
702
  : isCompleted
@@ -723,7 +723,7 @@ function SetupWizard({
723
723
  </div>
724
724
  <div className="flex-1 min-w-0">
725
725
  <p className="text-sm font-medium">
726
- <span className="text-muted-foreground mr-1.5">{i + 1}.</span>
726
+ <span className="text-muted-foreground me-1.5">{i + 1}.</span>
727
727
  {step.title}
728
728
  </p>
729
729
 
@@ -188,7 +188,7 @@ export function GoogleSetupWizard() {
188
188
  key={i}
189
189
  role="button"
190
190
  tabIndex={0}
191
- className={`w-full text-left rounded-lg border p-4 transition-colors cursor-pointer ${
191
+ className={`w-full text-start rounded-lg border p-4 transition-colors cursor-pointer ${
192
192
  isActive
193
193
  ? "border-primary/40 bg-primary/5"
194
194
  : isCompleted
@@ -215,7 +215,7 @@ export function GoogleSetupWizard() {
215
215
  </div>
216
216
  <div className="flex-1 min-w-0">
217
217
  <p className="text-sm font-medium">
218
- <span className="text-muted-foreground mr-1.5">{i + 1}.</span>
218
+ <span className="text-muted-foreground me-1.5">{i + 1}.</span>
219
219
  {step.title}
220
220
  </p>
221
221
 
@@ -372,7 +372,7 @@ export function GoogleSetupWizard() {
372
372
  }
373
373
  >
374
374
  {saving && (
375
- <IconLoader2 className="mr-1.5 h-3 w-3 animate-spin" />
375
+ <IconLoader2 className="me-1.5 h-3 w-3 animate-spin" />
376
376
  )}
377
377
  {saving ? "Saving..." : "Save credentials"}
378
378
  </Button>