@agent-native/core 0.76.2 → 0.76.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/corpus/core/CHANGELOG.md +14 -0
  2. package/corpus/core/package.json +1 -1
  3. package/corpus/core/src/agent/durable-background.ts +8 -7
  4. package/corpus/core/src/client/AgentPanel.tsx +3 -3
  5. package/corpus/core/src/client/AgentTaskCard.tsx +2 -1
  6. package/corpus/core/src/client/AppearancePicker.tsx +1 -1
  7. package/corpus/core/src/client/AssistantChat.tsx +3 -3
  8. package/corpus/core/src/client/CommandMenu.tsx +4 -4
  9. package/corpus/core/src/client/ErrorBoundary.tsx +1 -1
  10. package/corpus/core/src/client/MultiTabAssistantChat.tsx +11 -11
  11. package/corpus/core/src/client/NewWorkspaceAppFlow.tsx +5 -5
  12. package/corpus/core/src/client/components/ui/dropdown-menu.tsx +9 -9
  13. package/corpus/core/src/client/components/ui/sheet.tsx +1 -1
  14. package/corpus/core/src/client/composer/ComposerPlusMenu.tsx +6 -6
  15. package/corpus/core/src/client/composer/MentionPopover.tsx +4 -4
  16. package/corpus/core/src/client/composer/PastedTextChip.tsx +3 -3
  17. package/corpus/core/src/client/composer/PromptComposer.tsx +3 -3
  18. package/corpus/core/src/client/composer/TiptapComposer.tsx +16 -16
  19. package/corpus/core/src/client/guided-questions.tsx +6 -8
  20. package/corpus/core/src/client/i18n.tsx +2 -2
  21. package/corpus/core/src/client/integrations/IntegrationCard.tsx +2 -2
  22. package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +4 -4
  23. package/corpus/core/src/client/notifications/NotificationsBell.tsx +3 -3
  24. package/corpus/core/src/client/onboarding/OnboardingBanner.tsx +3 -3
  25. package/corpus/core/src/client/onboarding/OnboardingPanel.tsx +17 -10
  26. package/corpus/core/src/client/org/OrgSwitcher.tsx +13 -11
  27. package/corpus/core/src/client/org/TeamPage.tsx +2 -2
  28. package/corpus/core/src/client/settings/AgentsSection.tsx +3 -3
  29. package/corpus/core/src/client/settings/AutomationsSection.tsx +3 -3
  30. package/corpus/core/src/client/settings/SecretsSection.tsx +2 -2
  31. package/corpus/core/src/client/settings/SettingsPanel.tsx +5 -7
  32. package/corpus/core/src/client/settings/SettingsSection.tsx +1 -1
  33. package/corpus/core/src/client/settings/UsageSection.tsx +3 -3
  34. package/corpus/core/src/client/settings/VoiceTranscriptionSection.tsx +3 -3
  35. package/corpus/core/src/client/sharing/ShareButton.tsx +7 -7
  36. package/corpus/core/src/client/sharing/ShareDialog.tsx +3 -3
  37. package/corpus/core/src/deploy/build.ts +2 -2
  38. package/corpus/core/src/styles/agent-conversation.css +10 -10
  39. package/corpus/core/src/styles/blocks.css +2 -2
  40. package/corpus/core/src/styles/rich-markdown-editor.css +2 -2
  41. package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +1 -1
  42. package/corpus/templates/analytics/app/components/ui/alert-dialog.tsx +1 -1
  43. package/corpus/templates/analytics/app/components/ui/alert.tsx +1 -1
  44. package/corpus/templates/analytics/app/components/ui/breadcrumb.tsx +1 -1
  45. package/corpus/templates/analytics/app/components/ui/calendar.tsx +6 -6
  46. package/corpus/templates/analytics/app/components/ui/carousel.tsx +6 -6
  47. package/corpus/templates/analytics/app/components/ui/command.tsx +2 -2
  48. package/corpus/templates/analytics/app/components/ui/context-menu.tsx +9 -9
  49. package/corpus/templates/analytics/app/components/ui/date-picker.tsx +1 -1
  50. package/corpus/templates/analytics/app/components/ui/dialog.tsx +2 -2
  51. package/corpus/templates/analytics/app/components/ui/drawer.tsx +1 -1
  52. package/corpus/templates/analytics/app/components/ui/dropdown-menu.tsx +9 -9
  53. package/corpus/templates/analytics/app/components/ui/input-otp.tsx +1 -1
  54. package/corpus/templates/analytics/app/components/ui/menubar.tsx +9 -9
  55. package/corpus/templates/analytics/app/components/ui/navigation-menu.tsx +3 -3
  56. package/corpus/templates/analytics/app/components/ui/pagination.tsx +4 -4
  57. package/corpus/templates/analytics/app/components/ui/scroll-area.tsx +1 -1
  58. package/corpus/templates/analytics/app/components/ui/select.tsx +3 -3
  59. package/corpus/templates/analytics/app/components/ui/sheet.tsx +2 -2
  60. package/corpus/templates/analytics/app/components/ui/sidebar.tsx +6 -6
  61. package/corpus/templates/analytics/app/components/ui/table.tsx +2 -2
  62. package/corpus/templates/analytics/app/components/ui/toast.tsx +3 -3
  63. package/corpus/templates/assets/app/components/layout/Layout.tsx +2 -2
  64. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +12 -12
  65. package/corpus/templates/assets/app/components/ui/alert-dialog.tsx +1 -1
  66. package/corpus/templates/assets/app/components/ui/alert.tsx +1 -1
  67. package/corpus/templates/assets/app/components/ui/breadcrumb.tsx +1 -1
  68. package/corpus/templates/assets/app/components/ui/dialog.tsx +2 -2
  69. package/corpus/templates/assets/app/components/ui/dropdown-menu.tsx +9 -9
  70. package/corpus/templates/assets/app/components/ui/pagination.tsx +4 -4
  71. package/corpus/templates/assets/app/components/ui/scroll-area.tsx +1 -1
  72. package/corpus/templates/assets/app/components/ui/select.tsx +3 -3
  73. package/corpus/templates/assets/app/components/ui/sheet.tsx +2 -2
  74. package/corpus/templates/assets/app/components/ui/table.tsx +2 -2
  75. package/corpus/templates/assets/app/routes/library.tsx +3 -3
  76. package/corpus/templates/assets/app/routes/settings.tsx +1 -1
  77. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +5 -5
  78. package/corpus/templates/brain/app/components/ui/dropdown-menu.tsx +9 -9
  79. package/corpus/templates/brain/app/components/ui/select.tsx +3 -3
  80. package/corpus/templates/brain/app/components/ui/sheet.tsx +2 -2
  81. package/corpus/templates/brain/app/components/ui/table.tsx +2 -2
  82. package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +6 -6
  83. package/corpus/templates/calendar/app/components/calendar/GoogleSetupWizard.tsx +3 -3
  84. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +11 -9
  85. package/corpus/templates/calendar/app/components/ui/alert-dialog.tsx +1 -1
  86. package/corpus/templates/calendar/app/components/ui/alert.tsx +1 -1
  87. package/corpus/templates/calendar/app/components/ui/breadcrumb.tsx +1 -1
  88. package/corpus/templates/calendar/app/components/ui/calendar.tsx +5 -5
  89. package/corpus/templates/calendar/app/components/ui/carousel.tsx +6 -6
  90. package/corpus/templates/calendar/app/components/ui/command.tsx +2 -2
  91. package/corpus/templates/calendar/app/components/ui/context-menu.tsx +9 -9
  92. package/corpus/templates/calendar/app/components/ui/dialog.tsx +2 -2
  93. package/corpus/templates/calendar/app/components/ui/drawer.tsx +1 -1
  94. package/corpus/templates/calendar/app/components/ui/dropdown-menu.tsx +9 -9
  95. package/corpus/templates/calendar/app/components/ui/input-otp.tsx +1 -1
  96. package/corpus/templates/calendar/app/components/ui/menubar.tsx +9 -9
  97. package/corpus/templates/calendar/app/components/ui/navigation-menu.tsx +3 -3
  98. package/corpus/templates/calendar/app/components/ui/pagination.tsx +4 -4
  99. package/corpus/templates/calendar/app/components/ui/scroll-area.tsx +1 -1
  100. package/corpus/templates/calendar/app/components/ui/select.tsx +3 -3
  101. package/corpus/templates/calendar/app/components/ui/sheet.tsx +2 -2
  102. package/corpus/templates/calendar/app/components/ui/sidebar.tsx +6 -6
  103. package/corpus/templates/calendar/app/components/ui/sonner.tsx +1 -1
  104. package/corpus/templates/calendar/app/components/ui/table.tsx +2 -2
  105. package/corpus/templates/calendar/app/components/ui/toast.tsx +3 -3
  106. package/corpus/templates/calendar/app/pages/Settings.tsx +5 -5
  107. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +9 -9
  108. package/corpus/templates/chat/app/components/ui/alert-dialog.tsx +1 -1
  109. package/corpus/templates/chat/app/components/ui/alert.tsx +1 -1
  110. package/corpus/templates/chat/app/components/ui/breadcrumb.tsx +1 -1
  111. package/corpus/templates/chat/app/components/ui/calendar.tsx +5 -5
  112. package/corpus/templates/chat/app/components/ui/carousel.tsx +6 -6
  113. package/corpus/templates/chat/app/components/ui/command.tsx +2 -2
  114. package/corpus/templates/chat/app/components/ui/context-menu.tsx +9 -9
  115. package/corpus/templates/chat/app/components/ui/dialog.tsx +2 -2
  116. package/corpus/templates/chat/app/components/ui/drawer.tsx +1 -1
  117. package/corpus/templates/chat/app/components/ui/dropdown-menu.tsx +9 -9
  118. package/corpus/templates/chat/app/components/ui/input-otp.tsx +1 -1
  119. package/corpus/templates/chat/app/components/ui/menubar.tsx +9 -9
  120. package/corpus/templates/chat/app/components/ui/navigation-menu.tsx +3 -3
  121. package/corpus/templates/chat/app/components/ui/pagination.tsx +4 -4
  122. package/corpus/templates/chat/app/components/ui/scroll-area.tsx +1 -1
  123. package/corpus/templates/chat/app/components/ui/select.tsx +3 -3
  124. package/corpus/templates/chat/app/components/ui/sheet.tsx +2 -2
  125. package/corpus/templates/chat/app/components/ui/sidebar.tsx +6 -6
  126. package/corpus/templates/chat/app/components/ui/table.tsx +2 -2
  127. package/corpus/templates/chat/app/components/ui/toast.tsx +3 -3
  128. package/corpus/templates/clips/app/components/capture-install-options.tsx +3 -3
  129. package/corpus/templates/clips/app/components/editable-recording-title.tsx +1 -1
  130. package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +3 -3
  131. package/corpus/templates/clips/app/components/library/folder-tree.tsx +5 -5
  132. package/corpus/templates/clips/app/components/library/library-layout.tsx +3 -3
  133. package/corpus/templates/clips/app/components/library/organization-switcher.tsx +4 -4
  134. package/corpus/templates/clips/app/components/library/recording-card.tsx +11 -11
  135. package/corpus/templates/clips/app/components/library/search-bar.tsx +4 -4
  136. package/corpus/templates/clips/app/components/library/space-card.tsx +1 -1
  137. package/corpus/templates/clips/app/components/library/tag-input.tsx +1 -1
  138. package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +2 -2
  139. package/corpus/templates/clips/app/components/recorder/camera-visualizer.tsx +2 -2
  140. package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +1 -1
  141. package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +4 -4
  142. package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +1 -1
  143. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -2
  144. package/corpus/templates/clips/app/components/ui/alert-dialog.tsx +1 -1
  145. package/corpus/templates/clips/app/components/ui/alert.tsx +1 -1
  146. package/corpus/templates/clips/app/components/ui/breadcrumb.tsx +1 -1
  147. package/corpus/templates/clips/app/components/ui/calendar.tsx +5 -5
  148. package/corpus/templates/clips/app/components/ui/carousel.tsx +6 -6
  149. package/corpus/templates/clips/app/components/ui/command.tsx +2 -2
  150. package/corpus/templates/clips/app/components/ui/context-menu.tsx +9 -9
  151. package/corpus/templates/clips/app/components/ui/dialog.tsx +2 -2
  152. package/corpus/templates/clips/app/components/ui/drawer.tsx +1 -1
  153. package/corpus/templates/clips/app/components/ui/dropdown-menu.tsx +9 -9
  154. package/corpus/templates/clips/app/components/ui/input-otp.tsx +1 -1
  155. package/corpus/templates/clips/app/components/ui/menubar.tsx +9 -9
  156. package/corpus/templates/clips/app/components/ui/navigation-menu.tsx +3 -3
  157. package/corpus/templates/clips/app/components/ui/pagination.tsx +4 -4
  158. package/corpus/templates/clips/app/components/ui/scroll-area.tsx +1 -1
  159. package/corpus/templates/clips/app/components/ui/select.tsx +3 -3
  160. package/corpus/templates/clips/app/components/ui/sheet.tsx +2 -2
  161. package/corpus/templates/clips/app/components/ui/sidebar.tsx +6 -6
  162. package/corpus/templates/clips/app/components/ui/table.tsx +2 -2
  163. package/corpus/templates/clips/app/components/ui/toast.tsx +3 -3
  164. package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +1 -1
  165. package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +2 -2
  166. package/corpus/templates/clips/app/components/workspace/invite-dialog.tsx +2 -2
  167. package/corpus/templates/clips/app/components/workspace/top-creators-table.tsx +6 -6
  168. package/corpus/templates/clips/app/components/workspace/top-videos-table.tsx +2 -2
  169. package/corpus/templates/clips/app/routes/_app.dictate.tsx +4 -4
  170. package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +7 -7
  171. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +1 -1
  172. package/corpus/templates/clips/app/routes/download.tsx +2 -2
  173. package/corpus/templates/clips/app/routes/invite.$token.tsx +2 -2
  174. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +3 -3
  175. package/corpus/templates/clips/app/routes/record.tsx +5 -5
  176. package/corpus/templates/clips/app/routes/share.$shareId.tsx +7 -7
  177. package/corpus/templates/content/app/components/EmptyState.tsx +1 -1
  178. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +17 -17
  179. package/corpus/templates/content/app/components/layout/Layout.tsx +2 -2
  180. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +10 -9
  181. package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +10 -6
  182. package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +3 -3
  183. package/corpus/templates/content/app/components/ui/alert-dialog.tsx +1 -1
  184. package/corpus/templates/content/app/components/ui/dialog.tsx +2 -2
  185. package/corpus/templates/content/app/components/ui/dropdown-menu.tsx +9 -9
  186. package/corpus/templates/content/app/components/ui/scroll-area.tsx +1 -1
  187. package/corpus/templates/content/app/components/ui/sheet.tsx +2 -2
  188. package/corpus/templates/content/app/components/ui/table.tsx +2 -2
  189. package/corpus/templates/content/app/components/ui/toast.tsx +3 -3
  190. package/corpus/templates/design/app/components/layout/Layout.tsx +3 -3
  191. package/corpus/templates/design/app/components/layout/Sidebar.tsx +3 -3
  192. package/corpus/templates/design/app/components/ui/alert-dialog.tsx +1 -1
  193. package/corpus/templates/design/app/components/ui/alert.tsx +1 -1
  194. package/corpus/templates/design/app/components/ui/breadcrumb.tsx +1 -1
  195. package/corpus/templates/design/app/components/ui/calendar.tsx +5 -5
  196. package/corpus/templates/design/app/components/ui/carousel.tsx +6 -6
  197. package/corpus/templates/design/app/components/ui/command.tsx +2 -2
  198. package/corpus/templates/design/app/components/ui/context-menu.tsx +9 -9
  199. package/corpus/templates/design/app/components/ui/dialog.tsx +2 -2
  200. package/corpus/templates/design/app/components/ui/drawer.tsx +1 -1
  201. package/corpus/templates/design/app/components/ui/dropdown-menu.tsx +9 -9
  202. package/corpus/templates/design/app/components/ui/input-otp.tsx +1 -1
  203. package/corpus/templates/design/app/components/ui/menubar.tsx +9 -9
  204. package/corpus/templates/design/app/components/ui/navigation-menu.tsx +3 -3
  205. package/corpus/templates/design/app/components/ui/pagination.tsx +4 -4
  206. package/corpus/templates/design/app/components/ui/scroll-area.tsx +1 -1
  207. package/corpus/templates/design/app/components/ui/select.tsx +3 -3
  208. package/corpus/templates/design/app/components/ui/sheet.tsx +2 -2
  209. package/corpus/templates/design/app/components/ui/sidebar.tsx +6 -6
  210. package/corpus/templates/design/app/components/ui/table.tsx +2 -2
  211. package/corpus/templates/design/app/components/ui/toast.tsx +3 -3
  212. package/corpus/templates/design/app/pages/DesignSystems.tsx +6 -8
  213. package/corpus/templates/design/app/pages/Index.tsx +8 -8
  214. package/corpus/templates/design/app/pages/NotFound.tsx +1 -1
  215. package/corpus/templates/design/app/pages/Templates.tsx +2 -2
  216. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +3 -3
  217. package/corpus/templates/forms/app/components/ui/alert-dialog.tsx +1 -1
  218. package/corpus/templates/forms/app/components/ui/alert.tsx +1 -1
  219. package/corpus/templates/forms/app/components/ui/breadcrumb.tsx +1 -1
  220. package/corpus/templates/forms/app/components/ui/calendar.tsx +9 -6
  221. package/corpus/templates/forms/app/components/ui/carousel.tsx +6 -6
  222. package/corpus/templates/forms/app/components/ui/command.tsx +2 -2
  223. package/corpus/templates/forms/app/components/ui/context-menu.tsx +9 -9
  224. package/corpus/templates/forms/app/components/ui/dialog.tsx +2 -2
  225. package/corpus/templates/forms/app/components/ui/drawer.tsx +1 -1
  226. package/corpus/templates/forms/app/components/ui/dropdown-menu.tsx +9 -9
  227. package/corpus/templates/forms/app/components/ui/input-otp.tsx +1 -1
  228. package/corpus/templates/forms/app/components/ui/menubar.tsx +9 -9
  229. package/corpus/templates/forms/app/components/ui/navigation-menu.tsx +3 -3
  230. package/corpus/templates/forms/app/components/ui/pagination.tsx +4 -4
  231. package/corpus/templates/forms/app/components/ui/scroll-area.tsx +1 -1
  232. package/corpus/templates/forms/app/components/ui/select.tsx +3 -3
  233. package/corpus/templates/forms/app/components/ui/sheet.tsx +2 -2
  234. package/corpus/templates/forms/app/components/ui/sidebar.tsx +6 -6
  235. package/corpus/templates/forms/app/components/ui/table.tsx +2 -2
  236. package/corpus/templates/forms/app/components/ui/toast.tsx +3 -3
  237. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +18 -18
  238. package/corpus/templates/forms/app/pages/FormsListPage.tsx +9 -9
  239. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +4 -4
  240. package/corpus/templates/macros/app/components/ui/alert-dialog.tsx +1 -1
  241. package/corpus/templates/macros/app/components/ui/alert.tsx +1 -1
  242. package/corpus/templates/macros/app/components/ui/breadcrumb.tsx +1 -1
  243. package/corpus/templates/macros/app/components/ui/command.tsx +2 -2
  244. package/corpus/templates/macros/app/components/ui/context-menu.tsx +9 -9
  245. package/corpus/templates/macros/app/components/ui/dialog.tsx +2 -2
  246. package/corpus/templates/macros/app/components/ui/drawer.tsx +1 -1
  247. package/corpus/templates/macros/app/components/ui/dropdown-menu.tsx +9 -9
  248. package/corpus/templates/macros/app/components/ui/menubar.tsx +9 -9
  249. package/corpus/templates/macros/app/components/ui/navigation-menu.tsx +3 -3
  250. package/corpus/templates/macros/app/components/ui/pagination.tsx +4 -4
  251. package/corpus/templates/macros/app/components/ui/scroll-area.tsx +1 -1
  252. package/corpus/templates/macros/app/components/ui/select.tsx +3 -3
  253. package/corpus/templates/macros/app/components/ui/sheet.tsx +2 -2
  254. package/corpus/templates/macros/app/components/ui/table.tsx +2 -2
  255. package/corpus/templates/macros/app/components/ui/toast.tsx +3 -3
  256. package/corpus/templates/macros/app/routes/_index.tsx +2 -2
  257. package/corpus/templates/macros/app/routes/analytics.tsx +1 -1
  258. package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +6 -6
  259. package/corpus/templates/mail/app/components/email/AttachmentStrip.tsx +2 -2
  260. package/corpus/templates/mail/app/components/email/EmailListItem.tsx +5 -5
  261. package/corpus/templates/mail/app/components/email/IntegrationsSidebar.tsx +5 -5
  262. package/corpus/templates/mail/app/components/email/MobileActionBar.tsx +3 -3
  263. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +10 -10
  264. package/corpus/templates/mail/app/components/layout/CommandPalette.tsx +1 -1
  265. package/corpus/templates/mail/app/components/layout/SearchBar.tsx +3 -3
  266. package/corpus/templates/mail/app/components/ui/alert-dialog.tsx +1 -1
  267. package/corpus/templates/mail/app/components/ui/alert.tsx +1 -1
  268. package/corpus/templates/mail/app/components/ui/breadcrumb.tsx +1 -1
  269. package/corpus/templates/mail/app/components/ui/calendar.tsx +4 -4
  270. package/corpus/templates/mail/app/components/ui/carousel.tsx +6 -6
  271. package/corpus/templates/mail/app/components/ui/command.tsx +2 -2
  272. package/corpus/templates/mail/app/components/ui/context-menu.tsx +9 -9
  273. package/corpus/templates/mail/app/components/ui/dialog.tsx +2 -2
  274. package/corpus/templates/mail/app/components/ui/drawer.tsx +1 -1
  275. package/corpus/templates/mail/app/components/ui/dropdown-menu.tsx +9 -9
  276. package/corpus/templates/mail/app/components/ui/input-otp.tsx +1 -1
  277. package/corpus/templates/mail/app/components/ui/menubar.tsx +9 -9
  278. package/corpus/templates/mail/app/components/ui/navigation-menu.tsx +3 -3
  279. package/corpus/templates/mail/app/components/ui/pagination.tsx +4 -4
  280. package/corpus/templates/mail/app/components/ui/scroll-area.tsx +1 -1
  281. package/corpus/templates/mail/app/components/ui/select.tsx +3 -3
  282. package/corpus/templates/mail/app/components/ui/sheet.tsx +2 -2
  283. package/corpus/templates/mail/app/components/ui/sidebar.tsx +6 -6
  284. package/corpus/templates/mail/app/components/ui/sonner.tsx +2 -2
  285. package/corpus/templates/mail/app/components/ui/table.tsx +2 -2
  286. package/corpus/templates/mail/app/components/ui/toast.tsx +3 -3
  287. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +10 -10
  288. package/corpus/templates/plan/app/components/ui/alert-dialog.tsx +1 -1
  289. package/corpus/templates/plan/app/components/ui/alert.tsx +1 -1
  290. package/corpus/templates/plan/app/components/ui/breadcrumb.tsx +1 -1
  291. package/corpus/templates/plan/app/components/ui/calendar.tsx +5 -5
  292. package/corpus/templates/plan/app/components/ui/carousel.tsx +6 -6
  293. package/corpus/templates/plan/app/components/ui/command.tsx +2 -2
  294. package/corpus/templates/plan/app/components/ui/context-menu.tsx +9 -9
  295. package/corpus/templates/plan/app/components/ui/dialog.tsx +2 -2
  296. package/corpus/templates/plan/app/components/ui/drawer.tsx +1 -1
  297. package/corpus/templates/plan/app/components/ui/dropdown-menu.tsx +9 -9
  298. package/corpus/templates/plan/app/components/ui/input-otp.tsx +1 -1
  299. package/corpus/templates/plan/app/components/ui/menubar.tsx +9 -9
  300. package/corpus/templates/plan/app/components/ui/navigation-menu.tsx +3 -3
  301. package/corpus/templates/plan/app/components/ui/pagination.tsx +4 -4
  302. package/corpus/templates/plan/app/components/ui/scroll-area.tsx +1 -1
  303. package/corpus/templates/plan/app/components/ui/select.tsx +3 -3
  304. package/corpus/templates/plan/app/components/ui/sheet.tsx +2 -2
  305. package/corpus/templates/plan/app/components/ui/sidebar.tsx +6 -6
  306. package/corpus/templates/plan/app/components/ui/table.tsx +2 -2
  307. package/corpus/templates/plan/app/components/ui/toast.tsx +3 -3
  308. package/corpus/templates/slides/app/components/layout/Layout.tsx +1 -1
  309. package/corpus/templates/slides/app/components/ui/alert-dialog.tsx +1 -1
  310. package/corpus/templates/slides/app/components/ui/alert.tsx +1 -1
  311. package/corpus/templates/slides/app/components/ui/breadcrumb.tsx +1 -1
  312. package/corpus/templates/slides/app/components/ui/calendar.tsx +5 -5
  313. package/corpus/templates/slides/app/components/ui/carousel.tsx +6 -6
  314. package/corpus/templates/slides/app/components/ui/command.tsx +2 -2
  315. package/corpus/templates/slides/app/components/ui/context-menu.tsx +9 -9
  316. package/corpus/templates/slides/app/components/ui/dialog.tsx +2 -2
  317. package/corpus/templates/slides/app/components/ui/drawer.tsx +1 -1
  318. package/corpus/templates/slides/app/components/ui/dropdown-menu.tsx +9 -9
  319. package/corpus/templates/slides/app/components/ui/input-otp.tsx +1 -1
  320. package/corpus/templates/slides/app/components/ui/menubar.tsx +9 -9
  321. package/corpus/templates/slides/app/components/ui/navigation-menu.tsx +3 -3
  322. package/corpus/templates/slides/app/components/ui/pagination.tsx +4 -4
  323. package/corpus/templates/slides/app/components/ui/scroll-area.tsx +1 -1
  324. package/corpus/templates/slides/app/components/ui/select.tsx +3 -3
  325. package/corpus/templates/slides/app/components/ui/sheet.tsx +2 -2
  326. package/corpus/templates/slides/app/components/ui/sidebar.tsx +6 -6
  327. package/corpus/templates/slides/app/components/ui/table.tsx +2 -2
  328. package/corpus/templates/slides/app/components/ui/toast.tsx +3 -3
  329. package/corpus/templates/videos/app/components/ui/alert-dialog.tsx +1 -1
  330. package/corpus/templates/videos/app/components/ui/alert.tsx +1 -1
  331. package/corpus/templates/videos/app/components/ui/breadcrumb.tsx +1 -1
  332. package/corpus/templates/videos/app/components/ui/calendar.tsx +5 -5
  333. package/corpus/templates/videos/app/components/ui/carousel.tsx +6 -6
  334. package/corpus/templates/videos/app/components/ui/command.tsx +2 -2
  335. package/corpus/templates/videos/app/components/ui/context-menu.tsx +9 -9
  336. package/corpus/templates/videos/app/components/ui/dialog.tsx +2 -2
  337. package/corpus/templates/videos/app/components/ui/drawer.tsx +1 -1
  338. package/corpus/templates/videos/app/components/ui/dropdown-menu.tsx +9 -9
  339. package/corpus/templates/videos/app/components/ui/input-otp.tsx +1 -1
  340. package/corpus/templates/videos/app/components/ui/menubar.tsx +9 -9
  341. package/corpus/templates/videos/app/components/ui/navigation-menu.tsx +3 -3
  342. package/corpus/templates/videos/app/components/ui/pagination.tsx +4 -4
  343. package/corpus/templates/videos/app/components/ui/scroll-area.tsx +1 -1
  344. package/corpus/templates/videos/app/components/ui/select.tsx +3 -3
  345. package/corpus/templates/videos/app/components/ui/sheet.tsx +2 -2
  346. package/corpus/templates/videos/app/components/ui/sidebar.tsx +6 -6
  347. package/corpus/templates/videos/app/components/ui/table.tsx +2 -2
  348. package/corpus/templates/videos/app/components/ui/toast.tsx +3 -3
  349. package/dist/agent/durable-background.d.ts +2 -2
  350. package/dist/agent/durable-background.d.ts.map +1 -1
  351. package/dist/agent/durable-background.js +8 -7
  352. package/dist/agent/durable-background.js.map +1 -1
  353. package/dist/client/AgentPanel.js +3 -3
  354. package/dist/client/AgentPanel.js.map +1 -1
  355. package/dist/client/AgentTaskCard.d.ts.map +1 -1
  356. package/dist/client/AgentTaskCard.js +1 -1
  357. package/dist/client/AgentTaskCard.js.map +1 -1
  358. package/dist/client/AppearancePicker.js +1 -1
  359. package/dist/client/AppearancePicker.js.map +1 -1
  360. package/dist/client/AssistantChat.js +3 -3
  361. package/dist/client/AssistantChat.js.map +1 -1
  362. package/dist/client/CommandMenu.js +4 -4
  363. package/dist/client/CommandMenu.js.map +1 -1
  364. package/dist/client/ErrorBoundary.js +1 -1
  365. package/dist/client/ErrorBoundary.js.map +1 -1
  366. package/dist/client/MultiTabAssistantChat.js +9 -9
  367. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  368. package/dist/client/NewWorkspaceAppFlow.js +5 -5
  369. package/dist/client/NewWorkspaceAppFlow.js.map +1 -1
  370. package/dist/client/components/ui/dropdown-menu.js +6 -6
  371. package/dist/client/components/ui/dropdown-menu.js.map +1 -1
  372. package/dist/client/components/ui/sheet.js +1 -1
  373. package/dist/client/components/ui/sheet.js.map +1 -1
  374. package/dist/client/composer/ComposerPlusMenu.js +5 -5
  375. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  376. package/dist/client/composer/MentionPopover.js +4 -4
  377. package/dist/client/composer/MentionPopover.js.map +1 -1
  378. package/dist/client/composer/PastedTextChip.js +2 -2
  379. package/dist/client/composer/PastedTextChip.js.map +1 -1
  380. package/dist/client/composer/PromptComposer.js +3 -3
  381. package/dist/client/composer/PromptComposer.js.map +1 -1
  382. package/dist/client/composer/TiptapComposer.js +12 -12
  383. package/dist/client/composer/TiptapComposer.js.map +1 -1
  384. package/dist/client/guided-questions.d.ts.map +1 -1
  385. package/dist/client/guided-questions.js +5 -5
  386. package/dist/client/guided-questions.js.map +1 -1
  387. package/dist/client/i18n.js +2 -2
  388. package/dist/client/i18n.js.map +1 -1
  389. package/dist/client/integrations/IntegrationCard.js +1 -1
  390. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  391. package/dist/client/integrations/IntegrationsPanel.js +4 -4
  392. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  393. package/dist/client/notifications/NotificationsBell.js +3 -3
  394. package/dist/client/notifications/NotificationsBell.js.map +1 -1
  395. package/dist/client/onboarding/OnboardingBanner.js +3 -3
  396. package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
  397. package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
  398. package/dist/client/onboarding/OnboardingPanel.js +15 -10
  399. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  400. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  401. package/dist/client/org/OrgSwitcher.js +7 -7
  402. package/dist/client/org/OrgSwitcher.js.map +1 -1
  403. package/dist/client/org/TeamPage.js +2 -2
  404. package/dist/client/org/TeamPage.js.map +1 -1
  405. package/dist/client/settings/AgentsSection.js +3 -3
  406. package/dist/client/settings/AgentsSection.js.map +1 -1
  407. package/dist/client/settings/AutomationsSection.js +2 -2
  408. package/dist/client/settings/AutomationsSection.js.map +1 -1
  409. package/dist/client/settings/SecretsSection.js +2 -2
  410. package/dist/client/settings/SecretsSection.js.map +1 -1
  411. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  412. package/dist/client/settings/SettingsPanel.js +4 -4
  413. package/dist/client/settings/SettingsPanel.js.map +1 -1
  414. package/dist/client/settings/SettingsSection.js +1 -1
  415. package/dist/client/settings/SettingsSection.js.map +1 -1
  416. package/dist/client/settings/UsageSection.js +2 -2
  417. package/dist/client/settings/UsageSection.js.map +1 -1
  418. package/dist/client/settings/VoiceTranscriptionSection.js +3 -3
  419. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  420. package/dist/client/sharing/ShareButton.js +6 -6
  421. package/dist/client/sharing/ShareButton.js.map +1 -1
  422. package/dist/client/sharing/ShareDialog.js +3 -3
  423. package/dist/client/sharing/ShareDialog.js.map +1 -1
  424. package/dist/deploy/build.js +2 -2
  425. package/dist/deploy/build.js.map +1 -1
  426. package/dist/styles/agent-conversation.css +10 -10
  427. package/dist/styles/blocks.css +2 -2
  428. package/dist/styles/rich-markdown-editor.css +2 -2
  429. package/package.json +1 -1
@@ -1,5 +1,19 @@
1
1
  # @agent-native/core
2
2
 
3
+ ## 0.76.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 6067f27: Fix right-to-left (`ar-SA`) layout in shared framework chrome. Physical directional CSS in the agent panel, command menu, language picker, shadcn `ui/*` primitives, settings/composer/org/sharing/onboarding panels, and the agent-conversation/blocks/rich-markdown styles is converted to logical utilities (`ms`/`me`, `ps`/`pe`, `start`/`end`, `text-start`/`text-end`, `border-s`/`border-e`), and directional icons are mirrored with `rtl:-scale-x-100`. No change to left-to-right rendering (logical utilities are identical to physical in LTR).
8
+
9
+ ## 0.76.3
10
+
11
+ ### Patch Changes
12
+
13
+ - 57e72bb: Correct stale "default-on" doc comments in `durable-background.ts` and
14
+ `deploy/build.ts` so they reflect that durable background agent runs are now
15
+ opt-in (default-off). Comment-only; no behavior change.
16
+
3
17
  ## 0.76.2
4
18
 
5
19
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.76.2",
3
+ "version": "0.76.4",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=22"
@@ -18,16 +18,17 @@
18
18
  * GUARDRAIL: when `isAgentChatDurableBackgroundEnabled()` returns false, the
19
19
  * agent-chat handler must behave byte-for-byte like the current synchronous
20
20
  * path. The gate is true only when ALL of these hold:
21
- * 1. `AGENT_CHAT_DURABLE_BACKGROUND` env is not explicitly disabled. It is
22
- * DEFAULT-ON: unset/empty/unknown counts as enabled; set it to a falsy
23
- * value (`false`/`0`/`no`/`off`) to opt a specific app back out.
21
+ * 1. `AGENT_CHAT_DURABLE_BACKGROUND` env is explicitly enabled. It is
22
+ * DEFAULT-OFF (opt-in): unset/empty/unknown counts as disabled; set it to a
23
+ * truthy value (`true`/`1`/`yes`/`on`) to opt a specific app in.
24
24
  * 2. The runtime is hosted/serverless (local dev keeps the inline path so SSE
25
25
  * stays a single live stream and no second function is needed).
26
26
  * 3. `A2A_SECRET` is configured (the HMAC handoff is required to authenticate
27
27
  * the background dispatch; without it the dispatch can't be trusted).
28
28
  *
29
- * Default-on is safe because a *dispatch failure degrades to an inline run*: if
30
- * the self-dispatch self-POST can't be delivered (fast connection error or
29
+ * Opt-in keeps the blast radius small while the worker path is still being
30
+ * proven. And even when enabled, a *dispatch failure degrades to an inline run*:
31
+ * if the self-dispatch self-POST can't be delivered (fast connection error or
31
32
  * fast non-2xx), the foreground handler runs the turn synchronously instead of
32
33
  * erroring (see `production-agent.ts` — the inline fallback claims the run row
33
34
  * atomically so a delayed delivery can never double-execute). So an app where
@@ -140,8 +141,8 @@ export function resolveAgentChatProcessRunDispatchPath(): string {
140
141
  }
141
142
 
142
143
  /**
143
- * Env flag for durable background runs. DEFAULT-ON: unset means enabled; an app
144
- * opts OUT with an explicit falsy value (`false`/`0`/`no`/`off`).
144
+ * Env flag for durable background runs. DEFAULT-OFF (opt-in): unset means
145
+ * disabled; an app opts IN with an explicit truthy value (`true`/`1`/`yes`/`on`).
145
146
  */
146
147
  export const AGENT_CHAT_DURABLE_BACKGROUND_ENV =
147
148
  "AGENT_CHAT_DURABLE_BACKGROUND";
@@ -1038,7 +1038,7 @@ function AgentPanelInner({
1038
1038
  type="button"
1039
1039
  tabIndex={-1}
1040
1040
  aria-hidden="true"
1041
- className="pointer-events-none absolute right-0 top-full h-px w-px opacity-0"
1041
+ className="pointer-events-none absolute end-0 top-full h-px w-px opacity-0"
1042
1042
  />
1043
1043
  }
1044
1044
  />
@@ -1344,7 +1344,7 @@ function AgentPanelInner({
1344
1344
  : "text-muted-foreground hover:bg-accent hover:text-foreground",
1345
1345
  )}
1346
1346
  >
1347
- <span className="truncate pr-1">{tab.label}</span>
1347
+ <span className="truncate pe-1">{tab.label}</span>
1348
1348
  {tab.status === "running" && (
1349
1349
  <span className="h-1.5 w-1.5 shrink-0 rounded-full bg-muted-foreground/50 animate-pulse" />
1350
1350
  )}
@@ -1458,7 +1458,7 @@ function AgentPanelInner({
1458
1458
  : "text-muted-foreground hover:bg-accent hover:text-foreground",
1459
1459
  )}
1460
1460
  >
1461
- <span className="truncate pr-1">
1461
+ <span className="truncate pe-1">
1462
1462
  {tab.subAgentName || tab.label}
1463
1463
  </span>
1464
1464
  {tab.status === "running" && (
@@ -185,7 +185,7 @@ export function AgentTaskCard({
185
185
  <button
186
186
  type="button"
187
187
  aria-expanded={expanded}
188
- className="flex w-full items-center gap-2 px-3 py-2 text-left transition-colors hover:bg-muted/45"
188
+ className="flex w-full items-center gap-2 px-3 py-2 text-start transition-colors hover:bg-muted/45"
189
189
  onClick={() => setExpanded(!expanded)}
190
190
  >
191
191
  <span className="inline-flex h-5 shrink-0 items-center gap-1 rounded-md border border-border/60 bg-background/70 px-1.5 text-[10px] font-medium text-muted-foreground">
@@ -212,6 +212,7 @@ export function AgentTaskCard({
212
212
  className={cn(
213
213
  "h-3 w-3 shrink-0 text-muted-foreground/40 transition-transform duration-150",
214
214
  expanded && "rotate-90",
215
+ "rtl:-scale-x-100",
215
216
  )}
216
217
  />
217
218
  </button>
@@ -59,7 +59,7 @@ export function AppearancePicker({
59
59
  style={{ background: preset.swatch }}
60
60
  />
61
61
  {active && (
62
- <span className="pointer-events-none absolute -right-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full border border-border bg-background">
62
+ <span className="pointer-events-none absolute -end-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full border border-border bg-background">
63
63
  <IconCheck
64
64
  className="h-3 w-3 text-foreground"
65
65
  stroke={3}
@@ -392,8 +392,8 @@ function ComposerAttachmentPreviewCard({
392
392
  className={cn(
393
393
  "absolute flex h-6 w-6 items-center justify-center rounded-full border border-border/60 bg-background/95 text-muted-foreground shadow-sm transition hover:text-foreground",
394
394
  isImage
395
- ? "right-1.5 top-1.5 opacity-100 md:opacity-0 md:group-hover:opacity-100"
396
- : "right-1.5 top-1.5",
395
+ ? "end-1.5 top-1.5 opacity-100 md:opacity-0 md:group-hover:opacity-100"
396
+ : "end-1.5 top-1.5",
397
397
  )}
398
398
  aria-label={`Remove ${attachment.name}`}
399
399
  >
@@ -3133,7 +3133,7 @@ const AssistantChatInner = forwardRef<
3133
3133
  content: [{ type: "text", text: suggestion }],
3134
3134
  });
3135
3135
  }}
3136
- className="w-full rounded-lg border border-border px-3 py-2 text-left text-[13px] text-muted-foreground hover:bg-accent hover:text-foreground"
3136
+ className="w-full rounded-lg border border-border px-3 py-2 text-start text-[13px] text-muted-foreground hover:bg-accent hover:text-foreground"
3137
3137
  >
3138
3138
  {suggestion}
3139
3139
  </button>
@@ -179,7 +179,7 @@ function CommandShortcut({ children, className }: CommandShortcutProps) {
179
179
  return (
180
180
  <span
181
181
  className={cn(
182
- "ml-auto text-xs tracking-widest text-muted-foreground",
182
+ "ms-auto text-xs tracking-widest text-muted-foreground",
183
183
  className,
184
184
  )}
185
185
  >
@@ -514,7 +514,7 @@ export function CommandMenu({
514
514
  >
515
515
  {/* Search input */}
516
516
  <div className="flex items-center border-b px-3">
517
- <IconSearch className="mr-2 h-4 w-4 shrink-0 opacity-50" />
517
+ <IconSearch className="me-2 h-4 w-4 shrink-0 opacity-50" />
518
518
  <input
519
519
  ref={inputRef}
520
520
  value={search}
@@ -554,7 +554,7 @@ export function CommandMenu({
554
554
  <span>{changelogLabel}</span>
555
555
  {changelogUnseen && (
556
556
  <span
557
- className="ml-auto h-2 w-2 rounded-full bg-primary"
557
+ className="ms-auto h-2 w-2 rounded-full bg-primary"
558
558
  aria-label="New updates available"
559
559
  />
560
560
  )}
@@ -600,7 +600,7 @@ export function CommandMenu({
600
600
  )}
601
601
  </span>
602
602
  {search.trim() && (
603
- <span className="ml-auto text-xs text-muted-foreground">
603
+ <span className="ms-auto text-xs text-muted-foreground">
604
604
 
605
605
  </span>
606
606
  )}
@@ -132,7 +132,7 @@ function ErrorScreen({ error }: { error: unknown }) {
132
132
  Reload
133
133
  </button>
134
134
  {stack && (
135
- <pre className="mt-6 w-full text-left text-xs overflow-auto p-4 bg-muted rounded">
135
+ <pre className="mt-6 w-full text-start text-xs overflow-auto p-4 bg-muted rounded">
136
136
  <code>{stack}</code>
137
137
  </pre>
138
138
  )}
@@ -196,7 +196,7 @@ function ChatSkeleton({
196
196
  {header ?? (
197
197
  <div className="flex items-center px-1 py-1 border-b border-border shrink-0 gap-0.5">
198
198
  <div className="h-[22px] w-20 rounded-md bg-muted animate-pulse" />
199
- <div className="ml-auto flex gap-0.5">
199
+ <div className="ms-auto flex gap-0.5">
200
200
  <div className="h-[22px] w-[22px] rounded-md bg-muted animate-pulse" />
201
201
  <div className="h-[22px] w-[22px] rounded-md bg-muted animate-pulse" />
202
202
  </div>
@@ -290,7 +290,7 @@ function ScopeBadge({
290
290
  <span className="min-w-0 truncate">{heading}</span>
291
291
  {otherCount > 0 && (
292
292
  <span
293
- className="ml-0.5 shrink-0 rounded-full bg-muted px-1.5 py-px text-[10px] leading-none text-muted-foreground"
293
+ className="ms-0.5 shrink-0 rounded-full bg-muted px-1.5 py-px text-[10px] leading-none text-muted-foreground"
294
294
  aria-label={`${otherCount} other chats for ${objectLabel}`}
295
295
  >
296
296
  +{otherCount}
@@ -373,7 +373,7 @@ function PreviousScopedChatsHint({
373
373
  key={thread.id}
374
374
  type="button"
375
375
  onClick={() => onSelectThread(thread.id)}
376
- className="flex items-baseline justify-between gap-2 rounded-md border border-border px-2.5 py-1.5 text-left hover:bg-accent cursor-pointer"
376
+ className="flex items-baseline justify-between gap-2 rounded-md border border-border px-2.5 py-1.5 text-start hover:bg-accent cursor-pointer"
377
377
  >
378
378
  <span className="truncate text-[12px] text-foreground">
379
379
  {thread.title || thread.preview || "Chat"}
@@ -443,7 +443,7 @@ function renderThreadRow(
443
443
  onClose();
444
444
  }}
445
445
  className={cn(
446
- "w-full px-3 py-2 text-left hover:bg-accent/50 cursor-pointer",
446
+ "w-full px-3 py-2 text-start hover:bg-accent/50 cursor-pointer",
447
447
  isActive && "bg-accent/30",
448
448
  )}
449
449
  >
@@ -568,7 +568,7 @@ function HistoryPopover({
568
568
  return (
569
569
  <Popover open onOpenChange={(open) => !open && onClose()}>
570
570
  <PopoverAnchor asChild>
571
- <span aria-hidden className="absolute right-2 top-0 h-px w-px" />
571
+ <span aria-hidden className="absolute end-2 top-0 h-px w-px" />
572
572
  </PopoverAnchor>
573
573
  <PopoverContent
574
574
  align="end"
@@ -682,7 +682,7 @@ function HelpPopover({ onClose }: { onClose: () => void }) {
682
682
  return (
683
683
  <>
684
684
  <div className="fixed inset-0 z-40" onClick={onClose} />
685
- <div className="absolute right-2 top-0 z-50 w-72 rounded-lg border border-border bg-popover shadow-lg">
685
+ <div className="absolute end-2 top-0 z-50 w-72 rounded-lg border border-border bg-popover shadow-lg">
686
686
  <div className="flex items-center justify-between px-3 py-2 border-b border-border">
687
687
  <span className="text-xs font-medium text-foreground">
688
688
  Available Commands
@@ -2548,9 +2548,9 @@ export function MultiTabAssistantChat({
2548
2548
  <button
2549
2549
  type="button"
2550
2550
  onClick={() => switchThread(tab.id)}
2551
- className="flex items-center gap-1 px-2.5 py-1.5 min-w-0 flex-1 text-left"
2551
+ className="flex items-center gap-1 px-2.5 py-1.5 min-w-0 flex-1 text-start"
2552
2552
  >
2553
- <span className="truncate pr-1">{tab.label}</span>
2553
+ <span className="truncate pe-1">{tab.label}</span>
2554
2554
  {tab.status === "running" && (
2555
2555
  <span className="w-1.5 h-1.5 rounded-full bg-muted-foreground/50 shrink-0 animate-pulse" />
2556
2556
  )}
@@ -2583,7 +2583,7 @@ export function MultiTabAssistantChat({
2583
2583
  })}
2584
2584
  </div>
2585
2585
  <TooltipProvider delayDuration={200}>
2586
- <div className="flex items-center gap-px shrink-0 ml-auto">
2586
+ <div className="flex items-center gap-px shrink-0 ms-auto">
2587
2587
  <Tooltip>
2588
2588
  <TooltipTrigger asChild>
2589
2589
  <button
@@ -2646,9 +2646,9 @@ export function MultiTabAssistantChat({
2646
2646
  <button
2647
2647
  type="button"
2648
2648
  onClick={() => switchThread(tab.id)}
2649
- className="flex items-center gap-1 px-2 py-1 min-w-0 flex-1 text-left"
2649
+ className="flex items-center gap-1 px-2 py-1 min-w-0 flex-1 text-start"
2650
2650
  >
2651
- <span className="truncate pr-1">
2651
+ <span className="truncate pe-1">
2652
2652
  {tab.subAgentName || tab.label}
2653
2653
  </span>
2654
2654
  {tab.status === "running" && (
@@ -344,7 +344,7 @@ export function NewWorkspaceAppFlow({
344
344
  href={branchUrl}
345
345
  target="_blank"
346
346
  rel="noreferrer"
347
- className="ml-2 inline-flex items-center gap-1 font-medium text-foreground underline"
347
+ className="ms-2 inline-flex items-center gap-1 font-medium text-foreground underline"
348
348
  >
349
349
  Open branch <IconArrowUpRight className="h-3 w-3" />
350
350
  </a>
@@ -394,7 +394,7 @@ export function NewWorkspaceAppFlow({
394
394
  type="button"
395
395
  aria-pressed={selected}
396
396
  onClick={() => toggleSecret(secret.id)}
397
- className="flex w-full cursor-pointer items-start gap-3 rounded-md px-3 py-2 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30"
397
+ className="flex w-full cursor-pointer items-start gap-3 rounded-md px-3 py-2 text-start focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30"
398
398
  >
399
399
  <span
400
400
  className={`mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded border transition ${
@@ -421,7 +421,7 @@ export function NewWorkspaceAppFlow({
421
421
  <IconChevronDown className="h-3 w-3 transition-transform group-open/details:rotate-180" />
422
422
  Details
423
423
  </summary>
424
- <div className="mt-1.5 space-y-1 pb-0.5 pl-4">
424
+ <div className="mt-1.5 space-y-1 pb-0.5 ps-4">
425
425
  <div className="truncate">
426
426
  Provider: {secret.provider || "Not specified"}
427
427
  </div>
@@ -470,7 +470,7 @@ export function NewWorkspaceAppFlow({
470
470
  type="button"
471
471
  aria-pressed={selected}
472
472
  onClick={() => toggleResource(resource.id)}
473
- className="flex w-full cursor-pointer items-start gap-3 rounded-md px-3 py-2 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30"
473
+ className="flex w-full cursor-pointer items-start gap-3 rounded-md px-3 py-2 text-start focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/30"
474
474
  >
475
475
  <span
476
476
  className={`mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded border transition ${
@@ -498,7 +498,7 @@ export function NewWorkspaceAppFlow({
498
498
  <IconChevronDown className="h-3 w-3 transition-transform group-open/details:rotate-180" />
499
499
  Details
500
500
  </summary>
501
- <div className="mt-1.5 space-y-1 pb-0.5 pl-4">
501
+ <div className="mt-1.5 space-y-1 pb-0.5 ps-4">
502
502
  <div className="truncate">
503
503
  Scope:{" "}
504
504
  {resource.scope === "all"
@@ -21,13 +21,13 @@ const DropdownMenuSubTrigger = React.forwardRef<
21
21
  ref={ref}
22
22
  className={cn(
23
23
  "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",
24
- inset && "pl-8",
24
+ inset && "ps-8",
25
25
  className,
26
26
  )}
27
27
  {...props}
28
28
  >
29
29
  {children}
30
- <IconChevronRight className="ml-auto h-4 w-4" />
30
+ <IconChevronRight className="ms-auto h-4 w-4 rtl:-scale-x-100" />
31
31
  </DropdownMenuPrimitive.SubTrigger>
32
32
  ));
33
33
  DropdownMenuSubTrigger.displayName =
@@ -77,7 +77,7 @@ const DropdownMenuItem = React.forwardRef<
77
77
  ref={ref}
78
78
  className={cn(
79
79
  "relative flex cursor-pointer select-none items-center gap-2 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",
80
- inset && "pl-8",
80
+ inset && "ps-8",
81
81
  className,
82
82
  )}
83
83
  {...props}
@@ -92,13 +92,13 @@ const DropdownMenuCheckboxItem = React.forwardRef<
92
92
  <DropdownMenuPrimitive.CheckboxItem
93
93
  ref={ref}
94
94
  className={cn(
95
- "relative flex cursor-pointer 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",
95
+ "relative flex cursor-pointer 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",
96
96
  className,
97
97
  )}
98
98
  checked={checked}
99
99
  {...props}
100
100
  >
101
- <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
101
+ <span className="absolute start-2 flex h-3.5 w-3.5 items-center justify-center">
102
102
  <DropdownMenuPrimitive.ItemIndicator>
103
103
  <IconCheck className="h-4 w-4" />
104
104
  </DropdownMenuPrimitive.ItemIndicator>
@@ -116,12 +116,12 @@ const DropdownMenuRadioItem = React.forwardRef<
116
116
  <DropdownMenuPrimitive.RadioItem
117
117
  ref={ref}
118
118
  className={cn(
119
- "relative flex cursor-pointer 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",
119
+ "relative flex cursor-pointer 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",
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
  <DropdownMenuPrimitive.ItemIndicator>
126
126
  <IconCircle className="h-2 w-2 fill-current" />
127
127
  </DropdownMenuPrimitive.ItemIndicator>
@@ -141,7 +141,7 @@ const DropdownMenuLabel = React.forwardRef<
141
141
  ref={ref}
142
142
  className={cn(
143
143
  "px-2 py-1.5 text-xs font-semibold text-muted-foreground",
144
- inset && "pl-8",
144
+ inset && "ps-8",
145
145
  className,
146
146
  )}
147
147
  {...props}
@@ -166,7 +166,7 @@ const DropdownMenuShortcut = ({
166
166
  ...props
167
167
  }: React.HTMLAttributes<HTMLSpanElement>) => (
168
168
  <span
169
- className={cn("ml-auto text-xs tracking-widest opacity-60", className)}
169
+ className={cn("ms-auto text-xs tracking-widest opacity-60", className)}
170
170
  {...props}
171
171
  />
172
172
  );
@@ -44,7 +44,7 @@ const SheetContent = React.forwardRef<
44
44
  {...props}
45
45
  >
46
46
  {children}
47
- <SheetPrimitive.Close className="absolute right-3 top-3 flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring">
47
+ <SheetPrimitive.Close className="absolute end-3 top-3 flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring">
48
48
  <IconX className="h-4 w-4" />
49
49
  <span className="sr-only">Close</span>
50
50
  </SheetPrimitive.Close>
@@ -565,7 +565,7 @@ function ComposerPlusMenuFull({
565
565
  }}
566
566
  className="flex items-center gap-1 text-[11px] text-muted-foreground hover:text-foreground mb-1.5"
567
567
  >
568
- <IconArrowLeft className="h-3 w-3" />
568
+ <IconArrowLeft className="h-3 w-3 rtl:-scale-x-100" />
569
569
  Back
570
570
  </button>
571
571
  );
@@ -656,7 +656,7 @@ function ComposerPlusMenuFull({
656
656
  type="button"
657
657
  onClick={item.action}
658
658
  className={cn(
659
- "flex w-full items-center gap-2.5 px-3 py-2 text-left hover:bg-accent/50",
659
+ "flex w-full items-center gap-2.5 px-3 py-2 text-start hover:bg-accent/50",
660
660
  isSkill && skillFlyoutOpen && "bg-accent/50",
661
661
  )}
662
662
  >
@@ -670,7 +670,7 @@ function ComposerPlusMenuFull({
670
670
  </div>
671
671
  </div>
672
672
  {isSkill && (
673
- <span className="ml-auto text-muted-foreground/60">
673
+ <span className="ms-auto text-muted-foreground/60">
674
674
 
675
675
  </span>
676
676
  )}
@@ -694,7 +694,7 @@ function ComposerPlusMenuFull({
694
694
  setSkillFlyoutOpen(false);
695
695
  setOpen(false);
696
696
  }}
697
- className="flex w-full items-center gap-2.5 px-3 py-2 text-left hover:bg-accent/50"
697
+ className="flex w-full items-center gap-2.5 px-3 py-2 text-start hover:bg-accent/50"
698
698
  >
699
699
  <span className="text-muted-foreground">
700
700
  <IconBulb className="h-3.5 w-3.5" />
@@ -714,7 +714,7 @@ function ComposerPlusMenuFull({
714
714
  setSkillFlyoutOpen(false);
715
715
  skillFileInputRef.current?.click();
716
716
  }}
717
- className="flex w-full items-center gap-2.5 px-3 py-2 text-left hover:bg-accent/50"
717
+ className="flex w-full items-center gap-2.5 px-3 py-2 text-start hover:bg-accent/50"
718
718
  >
719
719
  <span className="text-muted-foreground">
720
720
  <IconUpload className="h-3.5 w-3.5" />
@@ -743,7 +743,7 @@ function ComposerPlusMenuFull({
743
743
  onClick={() => setView("menu")}
744
744
  className="mb-1.5 flex items-center gap-1 text-[11px] text-muted-foreground hover:text-foreground"
745
745
  >
746
- <IconArrowLeft className="h-3 w-3" />
746
+ <IconArrowLeft className="h-3 w-3 rtl:-scale-x-100" />
747
747
  Back
748
748
  </button>
749
749
  <label className="mb-1 block text-[11px] font-semibold text-foreground">
@@ -299,7 +299,7 @@ export const MentionPopover = forwardRef<
299
299
  <button
300
300
  key={item.id}
301
301
  data-mention-index={idx}
302
- className={`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-sm ${
302
+ className={`flex w-full items-center gap-2 rounded px-2 py-1.5 text-start text-sm ${
303
303
  idx === selectedIndex
304
304
  ? "bg-accent text-accent-foreground"
305
305
  : "hover:bg-accent/50"
@@ -312,7 +312,7 @@ export const MentionPopover = forwardRef<
312
312
  {item.label}
313
313
  </span>
314
314
  {item.description && (
315
- <span className="ml-auto shrink-0 truncate max-w-[160px] text-xs text-muted-foreground">
315
+ <span className="ms-auto shrink-0 truncate max-w-[160px] text-xs text-muted-foreground">
316
316
  {item.description}
317
317
  </span>
318
318
  )}
@@ -337,7 +337,7 @@ export const MentionPopover = forwardRef<
337
337
  <button
338
338
  key={cmd.name}
339
339
  data-mention-index={i}
340
- className={`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-sm ${
340
+ className={`flex w-full items-center gap-2 rounded px-2 py-1.5 text-start text-sm ${
341
341
  i === selectedIndex
342
342
  ? "bg-accent text-accent-foreground"
343
343
  : "hover:bg-accent/50"
@@ -374,7 +374,7 @@ export const MentionPopover = forwardRef<
374
374
  <button
375
375
  key={skill.path}
376
376
  data-mention-index={i}
377
- className={`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-sm ${
377
+ className={`flex w-full items-center gap-2 rounded px-2 py-1.5 text-start text-sm ${
378
378
  i === selectedIndex
379
379
  ? "bg-accent text-accent-foreground"
380
380
  : "hover:bg-accent/50"
@@ -74,11 +74,11 @@ export function PastedTextChip({
74
74
  <button
75
75
  type="button"
76
76
  className={cn(
77
- "group relative inline-flex items-center gap-2 rounded-md border border-border/70 bg-muted/50 text-left text-foreground hover:bg-muted/70 cursor-pointer",
77
+ "group relative inline-flex items-center gap-2 rounded-md border border-border/70 bg-muted/50 text-start text-foreground hover:bg-muted/70 cursor-pointer",
78
78
  compact
79
79
  ? "max-w-[220px] px-2 py-1.5 text-xs"
80
80
  : "max-w-[260px] px-2.5 py-2 text-xs",
81
- onRemove && !compact && "pr-7",
81
+ onRemove && !compact && "pe-7",
82
82
  )}
83
83
  aria-label="Preview pasted text"
84
84
  >
@@ -106,7 +106,7 @@ export function PastedTextChip({
106
106
  aria-label="Remove pasted text"
107
107
  className={cn(
108
108
  "flex h-5 w-5 shrink-0 cursor-pointer items-center justify-center rounded text-muted-foreground hover:text-foreground",
109
- compact ? "" : "absolute right-1.5 top-1.5",
109
+ compact ? "" : "absolute end-1.5 top-1.5",
110
110
  )}
111
111
  >
112
112
  <IconX className="h-3 w-3" />
@@ -314,7 +314,7 @@ function ImagePreviewLightbox({
314
314
  type="button"
315
315
  onClick={onClose}
316
316
  aria-label="Close preview"
317
- className="absolute right-4 top-4 flex h-8 w-8 cursor-pointer items-center justify-center rounded-full border border-white/30 bg-black/40 text-white hover:bg-black/60"
317
+ className="absolute end-4 top-4 flex h-8 w-8 cursor-pointer items-center justify-center rounded-full border border-white/30 bg-black/40 text-white hover:bg-black/60"
318
318
  >
319
319
  <IconX className="h-4 w-4" />
320
320
  </button>
@@ -371,7 +371,7 @@ function AttachmentChip({
371
371
  }
372
372
  }}
373
373
  aria-label={`Remove ${attachment.name}`}
374
- className="absolute right-1 top-1 flex h-5 w-5 cursor-pointer items-center justify-center rounded-full border border-border/60 bg-background/90 text-muted-foreground hover:text-foreground"
374
+ className="absolute end-1 top-1 flex h-5 w-5 cursor-pointer items-center justify-center rounded-full border border-border/60 bg-background/90 text-muted-foreground hover:text-foreground"
375
375
  >
376
376
  <IconX className="h-3 w-3" />
377
377
  </span>
@@ -539,7 +539,7 @@ function PromptComposerInner({
539
539
 
540
540
  return (
541
541
  <AgentComposerFrame
542
- className={cn("text-left", className)}
542
+ className={cn("text-start", className)}
543
543
  rootClassName={rootClassName}
544
544
  style={style}
545
545
  rootStyle={rootStyle}