@agent-native/core 0.76.3 → 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 (421) hide show
  1. package/corpus/core/CHANGELOG.md +6 -0
  2. package/corpus/core/package.json +1 -1
  3. package/corpus/core/src/client/AgentPanel.tsx +3 -3
  4. package/corpus/core/src/client/AgentTaskCard.tsx +2 -1
  5. package/corpus/core/src/client/AppearancePicker.tsx +1 -1
  6. package/corpus/core/src/client/AssistantChat.tsx +3 -3
  7. package/corpus/core/src/client/CommandMenu.tsx +4 -4
  8. package/corpus/core/src/client/ErrorBoundary.tsx +1 -1
  9. package/corpus/core/src/client/MultiTabAssistantChat.tsx +11 -11
  10. package/corpus/core/src/client/NewWorkspaceAppFlow.tsx +5 -5
  11. package/corpus/core/src/client/components/ui/dropdown-menu.tsx +9 -9
  12. package/corpus/core/src/client/components/ui/sheet.tsx +1 -1
  13. package/corpus/core/src/client/composer/ComposerPlusMenu.tsx +6 -6
  14. package/corpus/core/src/client/composer/MentionPopover.tsx +4 -4
  15. package/corpus/core/src/client/composer/PastedTextChip.tsx +3 -3
  16. package/corpus/core/src/client/composer/PromptComposer.tsx +3 -3
  17. package/corpus/core/src/client/composer/TiptapComposer.tsx +16 -16
  18. package/corpus/core/src/client/guided-questions.tsx +6 -8
  19. package/corpus/core/src/client/i18n.tsx +2 -2
  20. package/corpus/core/src/client/integrations/IntegrationCard.tsx +2 -2
  21. package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +4 -4
  22. package/corpus/core/src/client/notifications/NotificationsBell.tsx +3 -3
  23. package/corpus/core/src/client/onboarding/OnboardingBanner.tsx +3 -3
  24. package/corpus/core/src/client/onboarding/OnboardingPanel.tsx +17 -10
  25. package/corpus/core/src/client/org/OrgSwitcher.tsx +13 -11
  26. package/corpus/core/src/client/org/TeamPage.tsx +2 -2
  27. package/corpus/core/src/client/settings/AgentsSection.tsx +3 -3
  28. package/corpus/core/src/client/settings/AutomationsSection.tsx +3 -3
  29. package/corpus/core/src/client/settings/SecretsSection.tsx +2 -2
  30. package/corpus/core/src/client/settings/SettingsPanel.tsx +5 -7
  31. package/corpus/core/src/client/settings/SettingsSection.tsx +1 -1
  32. package/corpus/core/src/client/settings/UsageSection.tsx +3 -3
  33. package/corpus/core/src/client/settings/VoiceTranscriptionSection.tsx +3 -3
  34. package/corpus/core/src/client/sharing/ShareButton.tsx +7 -7
  35. package/corpus/core/src/client/sharing/ShareDialog.tsx +3 -3
  36. package/corpus/core/src/styles/agent-conversation.css +10 -10
  37. package/corpus/core/src/styles/blocks.css +2 -2
  38. package/corpus/core/src/styles/rich-markdown-editor.css +2 -2
  39. package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +1 -1
  40. package/corpus/templates/analytics/app/components/ui/alert-dialog.tsx +1 -1
  41. package/corpus/templates/analytics/app/components/ui/alert.tsx +1 -1
  42. package/corpus/templates/analytics/app/components/ui/breadcrumb.tsx +1 -1
  43. package/corpus/templates/analytics/app/components/ui/calendar.tsx +6 -6
  44. package/corpus/templates/analytics/app/components/ui/carousel.tsx +6 -6
  45. package/corpus/templates/analytics/app/components/ui/command.tsx +2 -2
  46. package/corpus/templates/analytics/app/components/ui/context-menu.tsx +9 -9
  47. package/corpus/templates/analytics/app/components/ui/date-picker.tsx +1 -1
  48. package/corpus/templates/analytics/app/components/ui/dialog.tsx +2 -2
  49. package/corpus/templates/analytics/app/components/ui/drawer.tsx +1 -1
  50. package/corpus/templates/analytics/app/components/ui/dropdown-menu.tsx +9 -9
  51. package/corpus/templates/analytics/app/components/ui/input-otp.tsx +1 -1
  52. package/corpus/templates/analytics/app/components/ui/menubar.tsx +9 -9
  53. package/corpus/templates/analytics/app/components/ui/navigation-menu.tsx +3 -3
  54. package/corpus/templates/analytics/app/components/ui/pagination.tsx +4 -4
  55. package/corpus/templates/analytics/app/components/ui/scroll-area.tsx +1 -1
  56. package/corpus/templates/analytics/app/components/ui/select.tsx +3 -3
  57. package/corpus/templates/analytics/app/components/ui/sheet.tsx +2 -2
  58. package/corpus/templates/analytics/app/components/ui/sidebar.tsx +6 -6
  59. package/corpus/templates/analytics/app/components/ui/table.tsx +2 -2
  60. package/corpus/templates/analytics/app/components/ui/toast.tsx +3 -3
  61. package/corpus/templates/assets/app/components/layout/Layout.tsx +2 -2
  62. package/corpus/templates/assets/app/components/layout/Sidebar.tsx +12 -12
  63. package/corpus/templates/assets/app/components/ui/alert-dialog.tsx +1 -1
  64. package/corpus/templates/assets/app/components/ui/alert.tsx +1 -1
  65. package/corpus/templates/assets/app/components/ui/breadcrumb.tsx +1 -1
  66. package/corpus/templates/assets/app/components/ui/dialog.tsx +2 -2
  67. package/corpus/templates/assets/app/components/ui/dropdown-menu.tsx +9 -9
  68. package/corpus/templates/assets/app/components/ui/pagination.tsx +4 -4
  69. package/corpus/templates/assets/app/components/ui/scroll-area.tsx +1 -1
  70. package/corpus/templates/assets/app/components/ui/select.tsx +3 -3
  71. package/corpus/templates/assets/app/components/ui/sheet.tsx +2 -2
  72. package/corpus/templates/assets/app/components/ui/table.tsx +2 -2
  73. package/corpus/templates/assets/app/routes/library.tsx +3 -3
  74. package/corpus/templates/assets/app/routes/settings.tsx +1 -1
  75. package/corpus/templates/brain/app/components/layout/Sidebar.tsx +5 -5
  76. package/corpus/templates/brain/app/components/ui/dropdown-menu.tsx +9 -9
  77. package/corpus/templates/brain/app/components/ui/select.tsx +3 -3
  78. package/corpus/templates/brain/app/components/ui/sheet.tsx +2 -2
  79. package/corpus/templates/brain/app/components/ui/table.tsx +2 -2
  80. package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +6 -6
  81. package/corpus/templates/calendar/app/components/calendar/GoogleSetupWizard.tsx +3 -3
  82. package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +11 -9
  83. package/corpus/templates/calendar/app/components/ui/alert-dialog.tsx +1 -1
  84. package/corpus/templates/calendar/app/components/ui/alert.tsx +1 -1
  85. package/corpus/templates/calendar/app/components/ui/breadcrumb.tsx +1 -1
  86. package/corpus/templates/calendar/app/components/ui/calendar.tsx +5 -5
  87. package/corpus/templates/calendar/app/components/ui/carousel.tsx +6 -6
  88. package/corpus/templates/calendar/app/components/ui/command.tsx +2 -2
  89. package/corpus/templates/calendar/app/components/ui/context-menu.tsx +9 -9
  90. package/corpus/templates/calendar/app/components/ui/dialog.tsx +2 -2
  91. package/corpus/templates/calendar/app/components/ui/drawer.tsx +1 -1
  92. package/corpus/templates/calendar/app/components/ui/dropdown-menu.tsx +9 -9
  93. package/corpus/templates/calendar/app/components/ui/input-otp.tsx +1 -1
  94. package/corpus/templates/calendar/app/components/ui/menubar.tsx +9 -9
  95. package/corpus/templates/calendar/app/components/ui/navigation-menu.tsx +3 -3
  96. package/corpus/templates/calendar/app/components/ui/pagination.tsx +4 -4
  97. package/corpus/templates/calendar/app/components/ui/scroll-area.tsx +1 -1
  98. package/corpus/templates/calendar/app/components/ui/select.tsx +3 -3
  99. package/corpus/templates/calendar/app/components/ui/sheet.tsx +2 -2
  100. package/corpus/templates/calendar/app/components/ui/sidebar.tsx +6 -6
  101. package/corpus/templates/calendar/app/components/ui/sonner.tsx +1 -1
  102. package/corpus/templates/calendar/app/components/ui/table.tsx +2 -2
  103. package/corpus/templates/calendar/app/components/ui/toast.tsx +3 -3
  104. package/corpus/templates/calendar/app/pages/Settings.tsx +5 -5
  105. package/corpus/templates/chat/app/components/layout/Sidebar.tsx +9 -9
  106. package/corpus/templates/chat/app/components/ui/alert-dialog.tsx +1 -1
  107. package/corpus/templates/chat/app/components/ui/alert.tsx +1 -1
  108. package/corpus/templates/chat/app/components/ui/breadcrumb.tsx +1 -1
  109. package/corpus/templates/chat/app/components/ui/calendar.tsx +5 -5
  110. package/corpus/templates/chat/app/components/ui/carousel.tsx +6 -6
  111. package/corpus/templates/chat/app/components/ui/command.tsx +2 -2
  112. package/corpus/templates/chat/app/components/ui/context-menu.tsx +9 -9
  113. package/corpus/templates/chat/app/components/ui/dialog.tsx +2 -2
  114. package/corpus/templates/chat/app/components/ui/drawer.tsx +1 -1
  115. package/corpus/templates/chat/app/components/ui/dropdown-menu.tsx +9 -9
  116. package/corpus/templates/chat/app/components/ui/input-otp.tsx +1 -1
  117. package/corpus/templates/chat/app/components/ui/menubar.tsx +9 -9
  118. package/corpus/templates/chat/app/components/ui/navigation-menu.tsx +3 -3
  119. package/corpus/templates/chat/app/components/ui/pagination.tsx +4 -4
  120. package/corpus/templates/chat/app/components/ui/scroll-area.tsx +1 -1
  121. package/corpus/templates/chat/app/components/ui/select.tsx +3 -3
  122. package/corpus/templates/chat/app/components/ui/sheet.tsx +2 -2
  123. package/corpus/templates/chat/app/components/ui/sidebar.tsx +6 -6
  124. package/corpus/templates/chat/app/components/ui/table.tsx +2 -2
  125. package/corpus/templates/chat/app/components/ui/toast.tsx +3 -3
  126. package/corpus/templates/clips/app/components/capture-install-options.tsx +3 -3
  127. package/corpus/templates/clips/app/components/editable-recording-title.tsx +1 -1
  128. package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +3 -3
  129. package/corpus/templates/clips/app/components/library/folder-tree.tsx +5 -5
  130. package/corpus/templates/clips/app/components/library/library-layout.tsx +3 -3
  131. package/corpus/templates/clips/app/components/library/organization-switcher.tsx +4 -4
  132. package/corpus/templates/clips/app/components/library/recording-card.tsx +11 -11
  133. package/corpus/templates/clips/app/components/library/search-bar.tsx +4 -4
  134. package/corpus/templates/clips/app/components/library/space-card.tsx +1 -1
  135. package/corpus/templates/clips/app/components/library/tag-input.tsx +1 -1
  136. package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +2 -2
  137. package/corpus/templates/clips/app/components/recorder/camera-visualizer.tsx +2 -2
  138. package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +1 -1
  139. package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +4 -4
  140. package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +1 -1
  141. package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -2
  142. package/corpus/templates/clips/app/components/ui/alert-dialog.tsx +1 -1
  143. package/corpus/templates/clips/app/components/ui/alert.tsx +1 -1
  144. package/corpus/templates/clips/app/components/ui/breadcrumb.tsx +1 -1
  145. package/corpus/templates/clips/app/components/ui/calendar.tsx +5 -5
  146. package/corpus/templates/clips/app/components/ui/carousel.tsx +6 -6
  147. package/corpus/templates/clips/app/components/ui/command.tsx +2 -2
  148. package/corpus/templates/clips/app/components/ui/context-menu.tsx +9 -9
  149. package/corpus/templates/clips/app/components/ui/dialog.tsx +2 -2
  150. package/corpus/templates/clips/app/components/ui/drawer.tsx +1 -1
  151. package/corpus/templates/clips/app/components/ui/dropdown-menu.tsx +9 -9
  152. package/corpus/templates/clips/app/components/ui/input-otp.tsx +1 -1
  153. package/corpus/templates/clips/app/components/ui/menubar.tsx +9 -9
  154. package/corpus/templates/clips/app/components/ui/navigation-menu.tsx +3 -3
  155. package/corpus/templates/clips/app/components/ui/pagination.tsx +4 -4
  156. package/corpus/templates/clips/app/components/ui/scroll-area.tsx +1 -1
  157. package/corpus/templates/clips/app/components/ui/select.tsx +3 -3
  158. package/corpus/templates/clips/app/components/ui/sheet.tsx +2 -2
  159. package/corpus/templates/clips/app/components/ui/sidebar.tsx +6 -6
  160. package/corpus/templates/clips/app/components/ui/table.tsx +2 -2
  161. package/corpus/templates/clips/app/components/ui/toast.tsx +3 -3
  162. package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +1 -1
  163. package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +2 -2
  164. package/corpus/templates/clips/app/components/workspace/invite-dialog.tsx +2 -2
  165. package/corpus/templates/clips/app/components/workspace/top-creators-table.tsx +6 -6
  166. package/corpus/templates/clips/app/components/workspace/top-videos-table.tsx +2 -2
  167. package/corpus/templates/clips/app/routes/_app.dictate.tsx +4 -4
  168. package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +7 -7
  169. package/corpus/templates/clips/app/routes/_app.settings._index.tsx +1 -1
  170. package/corpus/templates/clips/app/routes/download.tsx +2 -2
  171. package/corpus/templates/clips/app/routes/invite.$token.tsx +2 -2
  172. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +3 -3
  173. package/corpus/templates/clips/app/routes/record.tsx +5 -5
  174. package/corpus/templates/clips/app/routes/share.$shareId.tsx +7 -7
  175. package/corpus/templates/content/app/components/EmptyState.tsx +1 -1
  176. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +17 -17
  177. package/corpus/templates/content/app/components/layout/Layout.tsx +2 -2
  178. package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +10 -9
  179. package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +10 -6
  180. package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +3 -3
  181. package/corpus/templates/content/app/components/ui/alert-dialog.tsx +1 -1
  182. package/corpus/templates/content/app/components/ui/dialog.tsx +2 -2
  183. package/corpus/templates/content/app/components/ui/dropdown-menu.tsx +9 -9
  184. package/corpus/templates/content/app/components/ui/scroll-area.tsx +1 -1
  185. package/corpus/templates/content/app/components/ui/sheet.tsx +2 -2
  186. package/corpus/templates/content/app/components/ui/table.tsx +2 -2
  187. package/corpus/templates/content/app/components/ui/toast.tsx +3 -3
  188. package/corpus/templates/design/app/components/layout/Layout.tsx +3 -3
  189. package/corpus/templates/design/app/components/layout/Sidebar.tsx +3 -3
  190. package/corpus/templates/design/app/components/ui/alert-dialog.tsx +1 -1
  191. package/corpus/templates/design/app/components/ui/alert.tsx +1 -1
  192. package/corpus/templates/design/app/components/ui/breadcrumb.tsx +1 -1
  193. package/corpus/templates/design/app/components/ui/calendar.tsx +5 -5
  194. package/corpus/templates/design/app/components/ui/carousel.tsx +6 -6
  195. package/corpus/templates/design/app/components/ui/command.tsx +2 -2
  196. package/corpus/templates/design/app/components/ui/context-menu.tsx +9 -9
  197. package/corpus/templates/design/app/components/ui/dialog.tsx +2 -2
  198. package/corpus/templates/design/app/components/ui/drawer.tsx +1 -1
  199. package/corpus/templates/design/app/components/ui/dropdown-menu.tsx +9 -9
  200. package/corpus/templates/design/app/components/ui/input-otp.tsx +1 -1
  201. package/corpus/templates/design/app/components/ui/menubar.tsx +9 -9
  202. package/corpus/templates/design/app/components/ui/navigation-menu.tsx +3 -3
  203. package/corpus/templates/design/app/components/ui/pagination.tsx +4 -4
  204. package/corpus/templates/design/app/components/ui/scroll-area.tsx +1 -1
  205. package/corpus/templates/design/app/components/ui/select.tsx +3 -3
  206. package/corpus/templates/design/app/components/ui/sheet.tsx +2 -2
  207. package/corpus/templates/design/app/components/ui/sidebar.tsx +6 -6
  208. package/corpus/templates/design/app/components/ui/table.tsx +2 -2
  209. package/corpus/templates/design/app/components/ui/toast.tsx +3 -3
  210. package/corpus/templates/design/app/pages/DesignSystems.tsx +6 -8
  211. package/corpus/templates/design/app/pages/Index.tsx +8 -8
  212. package/corpus/templates/design/app/pages/NotFound.tsx +1 -1
  213. package/corpus/templates/design/app/pages/Templates.tsx +2 -2
  214. package/corpus/templates/forms/app/components/layout/Sidebar.tsx +3 -3
  215. package/corpus/templates/forms/app/components/ui/alert-dialog.tsx +1 -1
  216. package/corpus/templates/forms/app/components/ui/alert.tsx +1 -1
  217. package/corpus/templates/forms/app/components/ui/breadcrumb.tsx +1 -1
  218. package/corpus/templates/forms/app/components/ui/calendar.tsx +9 -6
  219. package/corpus/templates/forms/app/components/ui/carousel.tsx +6 -6
  220. package/corpus/templates/forms/app/components/ui/command.tsx +2 -2
  221. package/corpus/templates/forms/app/components/ui/context-menu.tsx +9 -9
  222. package/corpus/templates/forms/app/components/ui/dialog.tsx +2 -2
  223. package/corpus/templates/forms/app/components/ui/drawer.tsx +1 -1
  224. package/corpus/templates/forms/app/components/ui/dropdown-menu.tsx +9 -9
  225. package/corpus/templates/forms/app/components/ui/input-otp.tsx +1 -1
  226. package/corpus/templates/forms/app/components/ui/menubar.tsx +9 -9
  227. package/corpus/templates/forms/app/components/ui/navigation-menu.tsx +3 -3
  228. package/corpus/templates/forms/app/components/ui/pagination.tsx +4 -4
  229. package/corpus/templates/forms/app/components/ui/scroll-area.tsx +1 -1
  230. package/corpus/templates/forms/app/components/ui/select.tsx +3 -3
  231. package/corpus/templates/forms/app/components/ui/sheet.tsx +2 -2
  232. package/corpus/templates/forms/app/components/ui/sidebar.tsx +6 -6
  233. package/corpus/templates/forms/app/components/ui/table.tsx +2 -2
  234. package/corpus/templates/forms/app/components/ui/toast.tsx +3 -3
  235. package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +18 -18
  236. package/corpus/templates/forms/app/pages/FormsListPage.tsx +9 -9
  237. package/corpus/templates/macros/app/components/layout/AppLayout.tsx +4 -4
  238. package/corpus/templates/macros/app/components/ui/alert-dialog.tsx +1 -1
  239. package/corpus/templates/macros/app/components/ui/alert.tsx +1 -1
  240. package/corpus/templates/macros/app/components/ui/breadcrumb.tsx +1 -1
  241. package/corpus/templates/macros/app/components/ui/command.tsx +2 -2
  242. package/corpus/templates/macros/app/components/ui/context-menu.tsx +9 -9
  243. package/corpus/templates/macros/app/components/ui/dialog.tsx +2 -2
  244. package/corpus/templates/macros/app/components/ui/drawer.tsx +1 -1
  245. package/corpus/templates/macros/app/components/ui/dropdown-menu.tsx +9 -9
  246. package/corpus/templates/macros/app/components/ui/menubar.tsx +9 -9
  247. package/corpus/templates/macros/app/components/ui/navigation-menu.tsx +3 -3
  248. package/corpus/templates/macros/app/components/ui/pagination.tsx +4 -4
  249. package/corpus/templates/macros/app/components/ui/scroll-area.tsx +1 -1
  250. package/corpus/templates/macros/app/components/ui/select.tsx +3 -3
  251. package/corpus/templates/macros/app/components/ui/sheet.tsx +2 -2
  252. package/corpus/templates/macros/app/components/ui/table.tsx +2 -2
  253. package/corpus/templates/macros/app/components/ui/toast.tsx +3 -3
  254. package/corpus/templates/macros/app/routes/_index.tsx +2 -2
  255. package/corpus/templates/macros/app/routes/analytics.tsx +1 -1
  256. package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +6 -6
  257. package/corpus/templates/mail/app/components/email/AttachmentStrip.tsx +2 -2
  258. package/corpus/templates/mail/app/components/email/EmailListItem.tsx +5 -5
  259. package/corpus/templates/mail/app/components/email/IntegrationsSidebar.tsx +5 -5
  260. package/corpus/templates/mail/app/components/email/MobileActionBar.tsx +3 -3
  261. package/corpus/templates/mail/app/components/layout/AppLayout.tsx +10 -10
  262. package/corpus/templates/mail/app/components/layout/CommandPalette.tsx +1 -1
  263. package/corpus/templates/mail/app/components/layout/SearchBar.tsx +3 -3
  264. package/corpus/templates/mail/app/components/ui/alert-dialog.tsx +1 -1
  265. package/corpus/templates/mail/app/components/ui/alert.tsx +1 -1
  266. package/corpus/templates/mail/app/components/ui/breadcrumb.tsx +1 -1
  267. package/corpus/templates/mail/app/components/ui/calendar.tsx +4 -4
  268. package/corpus/templates/mail/app/components/ui/carousel.tsx +6 -6
  269. package/corpus/templates/mail/app/components/ui/command.tsx +2 -2
  270. package/corpus/templates/mail/app/components/ui/context-menu.tsx +9 -9
  271. package/corpus/templates/mail/app/components/ui/dialog.tsx +2 -2
  272. package/corpus/templates/mail/app/components/ui/drawer.tsx +1 -1
  273. package/corpus/templates/mail/app/components/ui/dropdown-menu.tsx +9 -9
  274. package/corpus/templates/mail/app/components/ui/input-otp.tsx +1 -1
  275. package/corpus/templates/mail/app/components/ui/menubar.tsx +9 -9
  276. package/corpus/templates/mail/app/components/ui/navigation-menu.tsx +3 -3
  277. package/corpus/templates/mail/app/components/ui/pagination.tsx +4 -4
  278. package/corpus/templates/mail/app/components/ui/scroll-area.tsx +1 -1
  279. package/corpus/templates/mail/app/components/ui/select.tsx +3 -3
  280. package/corpus/templates/mail/app/components/ui/sheet.tsx +2 -2
  281. package/corpus/templates/mail/app/components/ui/sidebar.tsx +6 -6
  282. package/corpus/templates/mail/app/components/ui/sonner.tsx +2 -2
  283. package/corpus/templates/mail/app/components/ui/table.tsx +2 -2
  284. package/corpus/templates/mail/app/components/ui/toast.tsx +3 -3
  285. package/corpus/templates/plan/app/components/layout/Sidebar.tsx +10 -10
  286. package/corpus/templates/plan/app/components/ui/alert-dialog.tsx +1 -1
  287. package/corpus/templates/plan/app/components/ui/alert.tsx +1 -1
  288. package/corpus/templates/plan/app/components/ui/breadcrumb.tsx +1 -1
  289. package/corpus/templates/plan/app/components/ui/calendar.tsx +5 -5
  290. package/corpus/templates/plan/app/components/ui/carousel.tsx +6 -6
  291. package/corpus/templates/plan/app/components/ui/command.tsx +2 -2
  292. package/corpus/templates/plan/app/components/ui/context-menu.tsx +9 -9
  293. package/corpus/templates/plan/app/components/ui/dialog.tsx +2 -2
  294. package/corpus/templates/plan/app/components/ui/drawer.tsx +1 -1
  295. package/corpus/templates/plan/app/components/ui/dropdown-menu.tsx +9 -9
  296. package/corpus/templates/plan/app/components/ui/input-otp.tsx +1 -1
  297. package/corpus/templates/plan/app/components/ui/menubar.tsx +9 -9
  298. package/corpus/templates/plan/app/components/ui/navigation-menu.tsx +3 -3
  299. package/corpus/templates/plan/app/components/ui/pagination.tsx +4 -4
  300. package/corpus/templates/plan/app/components/ui/scroll-area.tsx +1 -1
  301. package/corpus/templates/plan/app/components/ui/select.tsx +3 -3
  302. package/corpus/templates/plan/app/components/ui/sheet.tsx +2 -2
  303. package/corpus/templates/plan/app/components/ui/sidebar.tsx +6 -6
  304. package/corpus/templates/plan/app/components/ui/table.tsx +2 -2
  305. package/corpus/templates/plan/app/components/ui/toast.tsx +3 -3
  306. package/corpus/templates/slides/app/components/layout/Layout.tsx +1 -1
  307. package/corpus/templates/slides/app/components/ui/alert-dialog.tsx +1 -1
  308. package/corpus/templates/slides/app/components/ui/alert.tsx +1 -1
  309. package/corpus/templates/slides/app/components/ui/breadcrumb.tsx +1 -1
  310. package/corpus/templates/slides/app/components/ui/calendar.tsx +5 -5
  311. package/corpus/templates/slides/app/components/ui/carousel.tsx +6 -6
  312. package/corpus/templates/slides/app/components/ui/command.tsx +2 -2
  313. package/corpus/templates/slides/app/components/ui/context-menu.tsx +9 -9
  314. package/corpus/templates/slides/app/components/ui/dialog.tsx +2 -2
  315. package/corpus/templates/slides/app/components/ui/drawer.tsx +1 -1
  316. package/corpus/templates/slides/app/components/ui/dropdown-menu.tsx +9 -9
  317. package/corpus/templates/slides/app/components/ui/input-otp.tsx +1 -1
  318. package/corpus/templates/slides/app/components/ui/menubar.tsx +9 -9
  319. package/corpus/templates/slides/app/components/ui/navigation-menu.tsx +3 -3
  320. package/corpus/templates/slides/app/components/ui/pagination.tsx +4 -4
  321. package/corpus/templates/slides/app/components/ui/scroll-area.tsx +1 -1
  322. package/corpus/templates/slides/app/components/ui/select.tsx +3 -3
  323. package/corpus/templates/slides/app/components/ui/sheet.tsx +2 -2
  324. package/corpus/templates/slides/app/components/ui/sidebar.tsx +6 -6
  325. package/corpus/templates/slides/app/components/ui/table.tsx +2 -2
  326. package/corpus/templates/slides/app/components/ui/toast.tsx +3 -3
  327. package/corpus/templates/videos/app/components/ui/alert-dialog.tsx +1 -1
  328. package/corpus/templates/videos/app/components/ui/alert.tsx +1 -1
  329. package/corpus/templates/videos/app/components/ui/breadcrumb.tsx +1 -1
  330. package/corpus/templates/videos/app/components/ui/calendar.tsx +5 -5
  331. package/corpus/templates/videos/app/components/ui/carousel.tsx +6 -6
  332. package/corpus/templates/videos/app/components/ui/command.tsx +2 -2
  333. package/corpus/templates/videos/app/components/ui/context-menu.tsx +9 -9
  334. package/corpus/templates/videos/app/components/ui/dialog.tsx +2 -2
  335. package/corpus/templates/videos/app/components/ui/drawer.tsx +1 -1
  336. package/corpus/templates/videos/app/components/ui/dropdown-menu.tsx +9 -9
  337. package/corpus/templates/videos/app/components/ui/input-otp.tsx +1 -1
  338. package/corpus/templates/videos/app/components/ui/menubar.tsx +9 -9
  339. package/corpus/templates/videos/app/components/ui/navigation-menu.tsx +3 -3
  340. package/corpus/templates/videos/app/components/ui/pagination.tsx +4 -4
  341. package/corpus/templates/videos/app/components/ui/scroll-area.tsx +1 -1
  342. package/corpus/templates/videos/app/components/ui/select.tsx +3 -3
  343. package/corpus/templates/videos/app/components/ui/sheet.tsx +2 -2
  344. package/corpus/templates/videos/app/components/ui/sidebar.tsx +6 -6
  345. package/corpus/templates/videos/app/components/ui/table.tsx +2 -2
  346. package/corpus/templates/videos/app/components/ui/toast.tsx +3 -3
  347. package/dist/client/AgentPanel.js +3 -3
  348. package/dist/client/AgentPanel.js.map +1 -1
  349. package/dist/client/AgentTaskCard.d.ts.map +1 -1
  350. package/dist/client/AgentTaskCard.js +1 -1
  351. package/dist/client/AgentTaskCard.js.map +1 -1
  352. package/dist/client/AppearancePicker.js +1 -1
  353. package/dist/client/AppearancePicker.js.map +1 -1
  354. package/dist/client/AssistantChat.js +3 -3
  355. package/dist/client/AssistantChat.js.map +1 -1
  356. package/dist/client/CommandMenu.js +4 -4
  357. package/dist/client/CommandMenu.js.map +1 -1
  358. package/dist/client/ErrorBoundary.js +1 -1
  359. package/dist/client/ErrorBoundary.js.map +1 -1
  360. package/dist/client/MultiTabAssistantChat.js +9 -9
  361. package/dist/client/MultiTabAssistantChat.js.map +1 -1
  362. package/dist/client/NewWorkspaceAppFlow.js +5 -5
  363. package/dist/client/NewWorkspaceAppFlow.js.map +1 -1
  364. package/dist/client/components/ui/dropdown-menu.js +6 -6
  365. package/dist/client/components/ui/dropdown-menu.js.map +1 -1
  366. package/dist/client/components/ui/sheet.js +1 -1
  367. package/dist/client/components/ui/sheet.js.map +1 -1
  368. package/dist/client/composer/ComposerPlusMenu.js +5 -5
  369. package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
  370. package/dist/client/composer/MentionPopover.js +4 -4
  371. package/dist/client/composer/MentionPopover.js.map +1 -1
  372. package/dist/client/composer/PastedTextChip.js +2 -2
  373. package/dist/client/composer/PastedTextChip.js.map +1 -1
  374. package/dist/client/composer/PromptComposer.js +3 -3
  375. package/dist/client/composer/PromptComposer.js.map +1 -1
  376. package/dist/client/composer/TiptapComposer.js +12 -12
  377. package/dist/client/composer/TiptapComposer.js.map +1 -1
  378. package/dist/client/guided-questions.d.ts.map +1 -1
  379. package/dist/client/guided-questions.js +5 -5
  380. package/dist/client/guided-questions.js.map +1 -1
  381. package/dist/client/i18n.js +2 -2
  382. package/dist/client/i18n.js.map +1 -1
  383. package/dist/client/integrations/IntegrationCard.js +1 -1
  384. package/dist/client/integrations/IntegrationCard.js.map +1 -1
  385. package/dist/client/integrations/IntegrationsPanel.js +4 -4
  386. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  387. package/dist/client/notifications/NotificationsBell.js +3 -3
  388. package/dist/client/notifications/NotificationsBell.js.map +1 -1
  389. package/dist/client/onboarding/OnboardingBanner.js +3 -3
  390. package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
  391. package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
  392. package/dist/client/onboarding/OnboardingPanel.js +15 -10
  393. package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
  394. package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
  395. package/dist/client/org/OrgSwitcher.js +7 -7
  396. package/dist/client/org/OrgSwitcher.js.map +1 -1
  397. package/dist/client/org/TeamPage.js +2 -2
  398. package/dist/client/org/TeamPage.js.map +1 -1
  399. package/dist/client/settings/AgentsSection.js +3 -3
  400. package/dist/client/settings/AgentsSection.js.map +1 -1
  401. package/dist/client/settings/AutomationsSection.js +2 -2
  402. package/dist/client/settings/AutomationsSection.js.map +1 -1
  403. package/dist/client/settings/SecretsSection.js +2 -2
  404. package/dist/client/settings/SecretsSection.js.map +1 -1
  405. package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
  406. package/dist/client/settings/SettingsPanel.js +4 -4
  407. package/dist/client/settings/SettingsPanel.js.map +1 -1
  408. package/dist/client/settings/SettingsSection.js +1 -1
  409. package/dist/client/settings/SettingsSection.js.map +1 -1
  410. package/dist/client/settings/UsageSection.js +2 -2
  411. package/dist/client/settings/UsageSection.js.map +1 -1
  412. package/dist/client/settings/VoiceTranscriptionSection.js +3 -3
  413. package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
  414. package/dist/client/sharing/ShareButton.js +6 -6
  415. package/dist/client/sharing/ShareButton.js.map +1 -1
  416. package/dist/client/sharing/ShareDialog.js +3 -3
  417. package/dist/client/sharing/ShareDialog.js.map +1 -1
  418. package/dist/styles/agent-conversation.css +10 -10
  419. package/dist/styles/blocks.css +2 -2
  420. package/dist/styles/rich-markdown-editor.css +2 -2
  421. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ShareDialog.js","sourceRoot":"","sources":["../../../src/client/sharing/ShareDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACL,KAAK,EACL,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAiDjD,SAAS,aAAa;IACpB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAc,EAAE,CAAC,CAAC;IACxD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,KAAK,CAAC,eAAe,CAAC,4BAA4B,CAAC,CAAC;aACjD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACrC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,SAAS,IAAI,CAAC,IAAI;gBAAE,OAAO;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,UAAU,CACR,IAAI;iBACD,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAChB,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;gBAClD,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;aAClD,CAAC,CAAC;iBACF,MAAM,CAAC,CAAC,CAAY,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CACrC,CAAC;QACJ,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACnB,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,OAAoB;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;IACrD,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IACxD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,WAAW,GACf,yVAAyV,CAAC;AAC5V,MAAM,iBAAiB,GAAG,EAAE,CAC1B,WAAW,EACX,yFAAyF,CAC1F,CAAC;AACF,MAAM,iBAAiB,GAAG,EAAE,CAC1B,WAAW,EACX,iEAAiE,CAClE,CAAC;AACF,MAAM,iBAAiB,GAAG,EAAE,CAC1B,WAAW,EACX,gFAAgF,CACjF,CAAC;AAEF,MAAM,QAAQ,GAGV;IACF,OAAO,EAAE;QACP,KAAK,EAAE,SAAS;QAChB,WAAW,EAAE,kCAAkC;QAC/C,IAAI,EAAE,QAAQ;KACf;IACD,GAAG,EAAE;QACH,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,YAAY;KACnB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,yCAAyC;QACtD,IAAI,EAAE,SAAS;KAChB;CACF,CAAC;AAEF,MAAM,YAAY,GAChB;IACE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;IAC7D,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;IAC7D;QACE,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,4BAA4B;KAC1C;CACF,CAAC;AAEJ;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,eAAe,EACf,aAAa,GACd,GAAG,KAAK,CAAC;IAEV,MAAM,WAAW,GAAG,cAAc,CAAiB,sBAAsB,EAAE;QACzE,YAAY;QACZ,UAAU;KACX,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,UAAU,IAAI,WAAW,CAAC;IAE9C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAC5B,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAC/B,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEvB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;QACpC,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,SAAS,GAAG,aAAa;QAC7B,CAAC,CAAC,UAAU,aAAa,GAAG;QAC5B,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC;IAE5B,OAAO,YAAY,CACjB,cACE,SAAS,EAAC,wFAAwF,EAClG,OAAO,EAAE,OAAO,YAEhB,eACE,IAAI,EAAC,QAAQ,gBACF,MAAM,gBACL,SAAS,EACrB,SAAS,EAAC,4GAA4G,EACtH,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,aAEnC,eAAK,SAAS,EAAC,uDAAuD,aACpE,eAAK,SAAS,EAAC,gBAAgB,aAC7B,cAAK,SAAS,EAAC,kCAAkC,EAAC,KAAK,EAAE,SAAS,YAC/D,SAAS,GACN,EACL,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAC9B,eAAK,SAAS,EAAC,+CAA+C,wBACpD,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,IACxD,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,EACN,iBACE,IAAI,EAAC,QAAQ,gBACF,OAAO,EAClB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,iBAAiB,YAE5B,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,GAAI,GACZ,IACL,EAEL,WAAW,CAAC,CAAC,CAAC,CACb,eACE,IAAI,EAAC,SAAS,gBACH,eAAe,EAC1B,SAAS,EAAC,6CAA6C,aAEtD,UAAU,CAAC,CAAC,CAAC,CACZ,KAAC,UAAU,IACT,MAAM,EAAE,GAAG,KAAK,MAAM,EACtB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAC7B,IAAI,EAAE,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,GAAI,EAC/C,KAAK,EAAC,MAAM,GACZ,CACH,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,UAAU,IACT,MAAM,EAAE,GAAG,KAAK,QAAQ,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAC/B,IAAI,EAAE,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,GAAI,EAC/C,KAAK,EAAC,QAAQ,GACd,EACD,WAAW,CAAC,CAAC,CAAC,CACb,KAAC,UAAU,IACT,MAAM,EAAE,GAAG,KAAK,OAAO,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAC9B,IAAI,EAAE,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,GAAI,EAC/C,KAAK,EAAC,OAAO,GACb,CACH,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC,CAAC,CAAC,IAAI,EAER,eAAK,SAAS,EAAC,WAAW,aACvB,WAAW,IAAI,GAAG,KAAK,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,CAC7C,KAAC,OAAO,IACN,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAS,EACnB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,aAAa,GACrB,CACH,CAAC,CAAC,CAAC,IAAI,EACP,CAAC,WAAW,IAAI,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAClC,KAAC,SAAS,IACR,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,CAAC,WAAW,EAC5B,UAAU,EAAE,UAAU,GACtB,CACH,CAAC,CAAC,CAAC,IAAI,EACP,WAAW,IAAI,GAAG,KAAK,OAAO,IAAI,WAAW;4BAC5C,CAAC,CAAC,CAAC,eAAe,IAAI,KAAC,gBAAgB,IAAC,QAAQ,EAAE,QAAS,GAAI,CAAC;4BAChE,CAAC,CAAC,IAAI,IACJ,EAEN,cAAK,SAAS,EAAC,mDAAmD,YAChE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,qBAE3D,GACL,IACF,GACF,EACN,QAAQ,CAAC,IAAI,CACd,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,OAAO;AACP,8EAA8E;AAE9E,SAAS,UAAU,CAAC,KAKnB;IACC,OAAO,CACL,kBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,mBACK,KAAK,CAAC,MAAM,EAC3B,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,SAAS,EAAE,EAAE,CACX,6FAA6F,EAC7F,KAAK,CAAC,MAAM;YACV,CAAC,CAAC,mCAAmC;YACrC,CAAC,CAAC,gEAAgE,CACrE,aAEA,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,IACL,CACV,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,mEAAmE;AACnE,8EAA8E;AAE9E,SAAS,OAAO,CAAC,KAMhB;IACC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE1E,MAAM,aAAa,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,MAAM,UAAU,GACb,IAAI,EAAE,UAAgC,IAAI,SAAS,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAElC,MAAM,gBAAgB,GAAG,CAAC,IAAgB,EAAE,EAAE;QAC5C,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO;QAChC,aAAa,CAAC,MAAM,CAClB,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAS,EACrD,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAC3C,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,0BACE,cAAK,SAAS,EAAC,4BAA4B,+BAAqB,EAChE,eAAK,SAAS,EAAC,yBAAyB,aACtC,oCAEE,SAAS,EAAC,sGAAsG,YAEhH,KAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,GAAI,GACrC,EACP,eAAK,SAAS,EAAC,gBAAgB,aAC7B,KAAC,gBAAgB,IACf,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,CAAC,SAAS,GACpB,EACF,cAAK,SAAS,EAAC,sCAAsC,YAClD,IAAI,CAAC,WAAW,GACb,IACF,IACF,IACF,EAEN,KAAC,SAAS,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,QAAQ,GAAI,EAEhD,MAAM,IACH,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,qEAAqE;AACrE,8EAA8E;AAE9E,SAAS,SAAS,CAAC,KAOlB;IACC,MAAM,EACJ,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,cAAc,EACd,UAAU,GACX,GAAG,KAAK,CAAC;IAEV,MAAM,KAAK,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;IAEnE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAO,QAAQ,CAAC,CAAC;IACjD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;IAClC,MAAM,UAAU,GACb,IAAI,EAAE,UAAgC,IAAI,SAAS,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC;IACnE,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IAElC,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,KAAK,CAAC,MAAM,CACV;YACE,YAAY;YACZ,UAAU;YACV,aAAa,EAAE,MAAM;YACrB,WAAW,EAAE,OAAO;YACpB,IAAI;YACJ,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE,kBAAkB,CAAC,QAAQ,CAAC;SACnC,EACR;YACE,SAAS,EAAE,GAAG,EAAE;gBACd,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACb,WAAW,CAAC,OAAO,EAAE,CAAC;YACxB,CAAC;SACF,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,CAAQ,EAAE,EAAE;QAChC,OAAO,CAAC,MAAM,CACZ;YACE,YAAY;YACZ,UAAU;YACV,aAAa,EAAE,CAAC,CAAC,aAAa;YAC9B,WAAW,EAAE,CAAC,CAAC,WAAW;SACpB,EACR,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAC3C,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,IAAgB,EAAE,EAAE;QAC5C,IAAI,IAAI,KAAK,UAAU;YAAE,OAAO;QAChC,aAAa,CAAC,MAAM,CAClB,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAS,EACrD,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAC3C,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACvB,SAAS,CAAC,CAAC,CAAC,CACX,eAAK,SAAS,EAAC,WAAW,aACxB,eAAK,SAAS,EAAC,0BAA0B,aACvC,gBACE,IAAI,EAAC,OAAO,EACZ,WAAW,EAAC,qBAAqB,EACjC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;oCACf,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO;wCAAE,SAAS,EAAE,CAAC;gCACrC,CAAC,EACD,YAAY,EAAC,KAAK,EAClB,SAAS,EAAC,iOAAiO,GAC3O,EACF,KAAC,UAAU,IAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAI,IAC1C,EACL,cAAc,CAAC,CAAC,CAAC,CAChB,iBAAO,SAAS,EAAC,8DAA8D,aAC7E,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAClD,SAAS,EAAC,6CAA6C,GACvD,qBAEI,CACT,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC,CAAC,CAAC,IAAI,EAER,0BACE,cAAK,SAAS,EAAC,4BAA4B,mCAAyB,EACpE,cAAI,SAAS,EAAC,uCAAuC,aAClD,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAClB,cAAI,SAAS,EAAC,6CAA6C,aACzD,KAAC,MAAM,IAAC,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GAAI,EAC3D,eAAM,SAAS,EAAC,yBAAyB,YACtC,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,GACpC,EACP,eAAM,SAAS,EAAC,+BAA+B,sBAAa,IACzD,CACN,CAAC,CAAC,CAAC,IAAI,EACP,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACjB,cAEE,SAAS,EAAC,6CAA6C,aAEvD,KAAC,MAAM,IACL,KAAK,EACH,CAAC,CAAC,aAAa,KAAK,KAAK;4CACvB,CAAC,CAAC,CAAC,CAAC,WAAW;4CACf,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,EAE5C,GAAG,EAAE,CAAC,CAAC,aAAa,KAAK,KAAK,GAC9B,EACF,eAAM,SAAS,EAAC,yBAAyB,YACtC,CAAC,CAAC,aAAa,KAAK,KAAK;4CACxB,CAAC,CAAC,CAAC,CAAC,WAAW;4CACf,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,GACrC,EACP,eAAM,SAAS,EAAC,+BAA+B,YAC5C,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GACP,EACN,SAAS,CAAC,CAAC,CAAC,CACX,iBACE,IAAI,EAAC,QAAQ,gBACF,QAAQ,EACnB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,EAC9B,SAAS,EAAE,iBAAiB,YAE5B,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,CACV,CAAC,CAAC,CAAC,IAAI,KA5BH,GAAG,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,WAAW,EAAE,CA6BvC,CACN,CAAC,EACD,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CACrC,aAAI,SAAS,EAAC,2CAA2C,uCAEpD,CACN,CAAC,CAAC,CAAC,IAAI,IACL,IACD,EAEL,cAAc,CAAC,CAAC,CAAC,CAChB,0BACE,cAAK,SAAS,EAAC,4BAA4B,+BAAqB,EAChE,eAAK,SAAS,EAAC,yBAAyB,aACtC,oCAEE,SAAS,EAAC,sGAAsG,YAEhH,KAAC,IAAI,CAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,GAAI,GACrC,EACP,eAAK,SAAS,EAAC,gBAAgB,aAC7B,KAAC,gBAAgB,IACf,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,CAAC,SAAS,GACpB,EACF,cAAK,SAAS,EAAC,sCAAsC,YAClD,IAAI,CAAC,WAAW,GACb,IACF,IACF,IACF,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,wDAAwD;AACxD,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,EAAE,QAAQ,EAAwB;IAC1D,MAAM,IAAI,GAAG,8EAA8E,QAAQ,iJAAiJ,CAAC;IACrP,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,SAAS,IAAC,KAAK,EAAC,WAAW,EAAC,KAAK,EAAE,QAAQ,GAAI,EAChD,KAAC,SAAS,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,IAAI,EAAE,SAAS,SAAG,IACnD,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E,SAAS,SAAS,CAAC,EACjB,KAAK,EACL,KAAK,EACL,SAAS,GAKV;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,CAAC,CAAC,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACvC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjB,OAAO;QACT,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,OAAO,CACL,0BACE,cAAK,SAAS,EAAC,gDAAgD,YAC5D,KAAK,GACF,EACN,eAAK,SAAS,EAAC,0BAA0B,aACtC,SAAS,CAAC,CAAC,CAAC,CACX,mBACE,QAAQ,QACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAC,kKAAkK,GAC5K,CACH,CAAC,CAAC,CAAC,CACF,gBACE,QAAQ,QACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAC,wJAAwJ,GAClK,CACH,EACD,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,gBACF,MAAM,EACjB,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,UAAU,CAAC,YAE3C,MAAM,CAAC,CAAC,CAAC,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,CAAC,CAAC,CAAC,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,GACnD,IACL,IACF,CACP,CAAC;AACJ,CAAC;AAED,MAAM,kBAAkB,GACtB,yHAAyH,CAAC;AAC5H,MAAM,eAAe,GACnB,8NAA8N,CAAC;AAEjO,SAAS,WAAW,CAAC,EACnB,KAAK,GAGN;IACC,OAAO,CACL,4BACG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACjB,MAAC,MAAM,CAAC,IAAI,IAEV,KAAK,EAAE,EAAE,CAAC,KAAK,EACf,SAAS,EAAE,eAAe,aAE1B,eAAM,SAAS,EAAC,gEAAgE,YAC9E,KAAC,MAAM,CAAC,aAAa,cACnB,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GACF,GAClB,EACP,gBAAM,SAAS,EAAC,eAAe,aAC7B,KAAC,MAAM,CAAC,QAAQ,cAAE,EAAE,CAAC,KAAK,GAAmB,EAC5C,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAChB,eAAM,SAAS,EAAC,+BAA+B,YAC5C,EAAE,CAAC,WAAW,GACV,CACR,CAAC,CAAC,CAAC,IAAI,IACH,KAhBF,EAAE,CAAC,KAAK,CAiBD,CACf,CAAC,GACD,CACJ,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAAmD;IACrE,MAAM,OAAO,GACX,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,CACL,MAAC,MAAM,CAAC,IAAI,IACV,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAS,CAAC,aAE/C,MAAC,MAAM,CAAC,OAAO,kBACF,MAAM,EACjB,SAAS,EAAE,EAAE,CACX,WAAW,EACX,yFAAyF,CAC1F,aAED,KAAC,MAAM,CAAC,KAAK,cAAE,OAAO,CAAC,KAAK,GAAgB,EAC5C,KAAC,MAAM,CAAC,IAAI,cACV,KAAC,eAAe,IAAC,IAAI,EAAE,EAAE,GAAI,GACjB,IACC,EACjB,KAAC,MAAM,CAAC,MAAM,cACZ,KAAC,MAAM,CAAC,OAAO,IACb,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAC,QAAQ,EACjB,UAAU,EAAE,CAAC,YAEb,KAAC,MAAM,CAAC,QAAQ,cACd,KAAC,WAAW,IAAC,KAAK,EAAE,YAAY,GAAI,GACpB,GACH,GACH,IACJ,CACf,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAIzB;IACC,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,CACL,MAAC,MAAM,CAAC,IAAI,IACV,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAe,CAAC,EACrD,QAAQ,EAAE,KAAK,CAAC,QAAQ,aAExB,MAAC,MAAM,CAAC,OAAO,kBACF,gBAAgB,EAC3B,SAAS,EAAE,EAAE,CACX,WAAW,EACX,4FAA4F,CAC7F,aAED,KAAC,MAAM,CAAC,KAAK,cAAE,OAAO,CAAC,KAAK,GAAgB,EAC5C,KAAC,MAAM,CAAC,IAAI,cACV,KAAC,eAAe,IAAC,IAAI,EAAE,EAAE,GAAI,GACjB,IACC,EACjB,KAAC,MAAM,CAAC,MAAM,cACZ,KAAC,MAAM,CAAC,OAAO,IACb,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,EAAC,QAAQ,EACjB,UAAU,EAAE,CAAC,YAEb,KAAC,MAAM,CAAC,QAAQ,cACd,KAAC,WAAW,IACV,KAAK,EAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gCACzD,KAAK,EAAE,CAAC;gCACR,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK;gCACxB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW;6BACrC,CAAC,CAAC,GACH,GACc,GACH,GACH,IACJ,CACf,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAoC;IAC9D,OAAO,CACL,oCAEE,SAAS,EAAC,gIAAgI,YAEzI,GAAG,CAAC,CAAC,CAAC,CACL,KAAC,YAAY,IAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,GAAI,CAC9C,CAAC,CAAC,CAAC,CACF,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAC5D,GACI,CACR,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAiB;IAC3C,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC9B,CAAC;AAED,SAAS,GAAG,CAAC,CAAS;IACpB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC","sourcesContent":["import { useEffect, useState, type ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n IconX,\n IconTrash,\n IconLock,\n IconBuilding,\n IconWorld,\n IconCheck,\n IconCopy,\n IconLink,\n IconMail,\n IconCode,\n IconChevronDown,\n} from \"@tabler/icons-react\";\nimport * as Select from \"@radix-ui/react-select\";\nimport { writeClipboardText } from \"../clipboard.js\";\nimport { useActionQuery, useActionMutation } from \"../use-action.js\";\nimport { cn } from \"../utils.js\";\nimport { agentNativePath } from \"../api-path.js\";\n\nexport interface ShareDialogProps {\n open: boolean;\n onClose: () => void;\n resourceType: string;\n resourceId: string;\n resourceTitle?: string;\n /**\n * When provided, enables the \"Link\" tab with a copy-link field.\n * Pass the user-facing share URL (e.g. `https://…/share/<id>`).\n */\n shareUrl?: string;\n /**\n * When provided, enables the \"Embed\" tab with a default iframe snippet.\n * For richer per-resource controls (autoplay, start time, responsive /\n * fixed size), pass `embedTabContent` instead (or in addition) — it\n * replaces the default embed body.\n */\n embedUrl?: string;\n /** Advanced: fully custom Embed tab body. Requires `embedUrl` to enable the tab. */\n embedTabContent?: ReactNode;\n /** Extra content appended to the bottom of the Link tab (e.g. download buttons). */\n linkTabExtras?: ReactNode;\n}\n\ntype Visibility = \"private\" | \"org\" | \"public\";\ntype Role = \"viewer\" | \"editor\" | \"admin\";\n\ninterface Share {\n id: string;\n principalType: \"user\" | \"org\";\n principalId: string;\n role: Role;\n}\n\ninterface SharesResponse {\n ownerEmail: string | null;\n orgId: string | null;\n visibility: Visibility | null;\n role?: \"owner\" | Role;\n shares: Share[];\n}\n\ninterface OrgMember {\n email: string;\n name?: string | null;\n}\n\nfunction useOrgMembers(): OrgMember[] {\n const [members, setMembers] = useState<OrgMember[]>([]);\n useEffect(() => {\n let cancelled = false;\n fetch(agentNativePath(\"/_agent-native/org/members\"))\n .then((r) => (r.ok ? r.json() : null))\n .then((data) => {\n if (cancelled || !data) return;\n const list = Array.isArray(data?.members) ? data.members : [];\n setMembers(\n list\n .map((m: any) => ({\n email: typeof m?.email === \"string\" ? m.email : \"\",\n name: typeof m?.name === \"string\" ? m.name : null,\n }))\n .filter((m: OrgMember) => m.email),\n );\n })\n .catch(() => {});\n return () => {\n cancelled = true;\n };\n }, []);\n return members;\n}\n\nfunction displayName(email: string, members: OrgMember[]): string {\n const match = members.find((m) => m.email === email);\n if (match?.name && match.name.trim()) return match.name;\n return email;\n}\n\nconst BUTTON_BASE =\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\";\nconst BUTTON_OUTLINE_SM = cn(\n BUTTON_BASE,\n \"h-9 px-3 border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n);\nconst BUTTON_PRIMARY_SM = cn(\n BUTTON_BASE,\n \"h-9 px-4 bg-primary text-primary-foreground hover:bg-primary/90\",\n);\nconst BUTTON_GHOST_ICON = cn(\n BUTTON_BASE,\n \"h-8 w-8 p-0 text-muted-foreground hover:bg-accent hover:text-accent-foreground\",\n);\n\nconst VIS_META: Record<\n Visibility,\n { label: string; description: string; Icon: typeof IconLock }\n> = {\n private: {\n label: \"Private\",\n description: \"Only people with access can view\",\n Icon: IconLock,\n },\n org: {\n label: \"Organization\",\n description: \"Anyone in your organization can view\",\n Icon: IconBuilding,\n },\n public: {\n label: \"Public\",\n description: \"Anyone signed in with the link can view\",\n Icon: IconWorld,\n },\n};\n\nconst ROLE_OPTIONS: Array<{ value: Role; label: string; description: string }> =\n [\n { value: \"viewer\", label: \"Viewer\", description: \"Can view\" },\n { value: \"editor\", label: \"Editor\", description: \"Can edit\" },\n {\n value: \"admin\",\n label: \"Admin\",\n description: \"Can edit and manage access\",\n },\n ];\n\n/**\n * Framework share dialog. Drop into any template via\n * `<ShareDialog open onClose resourceType resourceId />`. Passing\n * `shareUrl` lights up a Link tab with a copy field; passing `embedUrl`\n * lights up an Embed tab. With neither prop, renders a single Invite +\n * general-access panel (Google-Docs-lite).\n */\nexport function ShareDialog(props: ShareDialogProps) {\n const {\n open,\n onClose,\n resourceType,\n resourceId,\n resourceTitle,\n shareUrl,\n embedUrl,\n embedTabContent,\n linkTabExtras,\n } = props;\n\n const sharesQuery = useActionQuery<SharesResponse>(\"list-resource-shares\", {\n resourceType,\n resourceId,\n });\n const orgMembers = useOrgMembers();\n\n const hasLinkTab = Boolean(shareUrl);\n const hasEmbedTab = Boolean(embedUrl);\n const tabsEnabled = hasLinkTab || hasEmbedTab;\n\n const [tab, setTab] = useState<\"link\" | \"invite\" | \"embed\">(\n hasLinkTab ? \"link\" : \"invite\",\n );\n\n useEffect(() => {\n if (!open) return;\n setTab(hasLinkTab ? \"link\" : \"invite\");\n }, [open, hasLinkTab]);\n\n useEffect(() => {\n if (!open) return;\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n window.addEventListener(\"keydown\", onKey);\n return () => window.removeEventListener(\"keydown\", onKey);\n }, [open, onClose]);\n\n if (!open) return null;\n\n const titleText = resourceTitle\n ? `Share \"${resourceTitle}\"`\n : `Share ${resourceType}`;\n\n return createPortal(\n <div\n className=\"fixed inset-0 z-[2000] flex items-start justify-center bg-black/40 p-4 sm:items-center\"\n onClick={onClose}\n >\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={titleText}\n className=\"w-full max-w-lg rounded-xl border border-border bg-popover text-popover-foreground shadow-2xl outline-none\"\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"flex items-start justify-between gap-3 px-5 pt-4 pb-3\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"truncate text-base font-semibold\" title={titleText}>\n {titleText}\n </div>\n {sharesQuery.data?.ownerEmail ? (\n <div className=\"mt-0.5 truncate text-xs text-muted-foreground\">\n Owner: {displayName(sharesQuery.data.ownerEmail, orgMembers)}\n </div>\n ) : null}\n </div>\n <button\n type=\"button\"\n aria-label=\"Close\"\n onClick={onClose}\n className={BUTTON_GHOST_ICON}\n >\n <IconX size={16} />\n </button>\n </div>\n\n {tabsEnabled ? (\n <div\n role=\"tablist\"\n aria-label=\"Share options\"\n className=\"mx-5 mt-1 flex gap-1 border-b border-border\"\n >\n {hasLinkTab ? (\n <TabTrigger\n active={tab === \"link\"}\n onClick={() => setTab(\"link\")}\n icon={<IconLink size={14} strokeWidth={1.75} />}\n label=\"Link\"\n />\n ) : null}\n <TabTrigger\n active={tab === \"invite\"}\n onClick={() => setTab(\"invite\")}\n icon={<IconMail size={14} strokeWidth={1.75} />}\n label=\"Invite\"\n />\n {hasEmbedTab ? (\n <TabTrigger\n active={tab === \"embed\"}\n onClick={() => setTab(\"embed\")}\n icon={<IconCode size={14} strokeWidth={1.75} />}\n label=\"Embed\"\n />\n ) : null}\n </div>\n ) : null}\n\n <div className=\"px-5 py-4\">\n {tabsEnabled && tab === \"link\" && hasLinkTab ? (\n <LinkTab\n resourceType={resourceType}\n resourceId={resourceId}\n shareUrl={shareUrl!}\n sharesQuery={sharesQuery}\n extras={linkTabExtras}\n />\n ) : null}\n {!tabsEnabled || tab === \"invite\" ? (\n <InviteTab\n resourceType={resourceType}\n resourceId={resourceId}\n shareUrl={shareUrl}\n sharesQuery={sharesQuery}\n showVisibility={!tabsEnabled}\n orgMembers={orgMembers}\n />\n ) : null}\n {tabsEnabled && tab === \"embed\" && hasEmbedTab\n ? (embedTabContent ?? <DefaultEmbedBody embedUrl={embedUrl!} />)\n : null}\n </div>\n\n <div className=\"flex justify-end border-t border-border px-5 py-3\">\n <button type=\"button\" onClick={onClose} className={BUTTON_PRIMARY_SM}>\n Done\n </button>\n </div>\n </div>\n </div>,\n document.body,\n );\n}\n\n// ---------------------------------------------------------------------------\n// Tabs\n// ---------------------------------------------------------------------------\n\nfunction TabTrigger(props: {\n active: boolean;\n onClick: () => void;\n icon: ReactNode;\n label: string;\n}) {\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={props.active}\n onClick={props.onClick}\n className={cn(\n \"inline-flex items-center gap-1.5 border-b-2 px-3 py-2 text-sm font-medium transition-colors\",\n props.active\n ? \"border-foreground text-foreground\"\n : \"border-transparent text-muted-foreground hover:text-foreground\",\n )}\n >\n {props.icon}\n {props.label}\n </button>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Link tab — visibility picker + copy-link field + optional extras\n// ---------------------------------------------------------------------------\n\nfunction LinkTab(props: {\n resourceType: string;\n resourceId: string;\n shareUrl: string;\n sharesQuery: ReturnType<typeof useActionQuery<SharesResponse>>;\n extras?: ReactNode;\n}) {\n const { resourceType, resourceId, shareUrl, sharesQuery, extras } = props;\n\n const setVisibility = useActionMutation(\"set-resource-visibility\");\n const data = sharesQuery.data;\n const visibility: Visibility =\n (data?.visibility as Visibility | null) ?? \"private\";\n const canManage = data?.role === \"owner\" || data?.role === \"admin\";\n const meta = VIS_META[visibility];\n\n const handleVisibility = (next: Visibility) => {\n if (next === visibility) return;\n setVisibility.mutate(\n { resourceType, resourceId, visibility: next } as any,\n { onSuccess: () => sharesQuery.refetch() },\n );\n };\n\n return (\n <div className=\"space-y-4\">\n <div>\n <div className=\"mb-2 text-sm font-semibold\">General access</div>\n <div className=\"flex items-center gap-3\">\n <span\n aria-hidden\n className=\"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground\"\n >\n <meta.Icon size={16} strokeWidth={1.75} />\n </span>\n <div className=\"min-w-0 flex-1\">\n <VisibilitySelect\n value={visibility}\n onChange={handleVisibility}\n disabled={!canManage}\n />\n <div className=\"mt-0.5 text-xs text-muted-foreground\">\n {meta.description}\n </div>\n </div>\n </div>\n </div>\n\n <CopyField label=\"Share link\" value={shareUrl} />\n\n {extras}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Invite tab — invite-by-email + shares list + (optional) visibility\n// ---------------------------------------------------------------------------\n\nfunction InviteTab(props: {\n resourceType: string;\n resourceId: string;\n shareUrl?: string;\n sharesQuery: ReturnType<typeof useActionQuery<SharesResponse>>;\n showVisibility: boolean;\n orgMembers: OrgMember[];\n}) {\n const {\n resourceType,\n resourceId,\n shareUrl,\n sharesQuery,\n showVisibility,\n orgMembers,\n } = props;\n\n const share = useActionMutation(\"share-resource\");\n const unshare = useActionMutation(\"unshare-resource\");\n const setVisibility = useActionMutation(\"set-resource-visibility\");\n\n const [email, setEmail] = useState(\"\");\n const [role, setRole] = useState<Role>(\"viewer\");\n const [notifyPeople, setNotifyPeople] = useState(true);\n const hasInviteEmail = email.trim().length > 0;\n\n const data = sharesQuery.data;\n const shares = data?.shares ?? [];\n const visibility: Visibility =\n (data?.visibility as Visibility | null) ?? \"private\";\n const canManage = data?.role === \"owner\" || data?.role === \"admin\";\n const meta = VIS_META[visibility];\n\n const handleAdd = () => {\n const trimmed = email.trim();\n if (!trimmed) return;\n share.mutate(\n {\n resourceType,\n resourceId,\n principalType: \"user\",\n principalId: trimmed,\n role,\n notify: notifyPeople,\n resourceUrl: getNotificationUrl(shareUrl),\n } as any,\n {\n onSuccess: () => {\n setEmail(\"\");\n sharesQuery.refetch();\n },\n },\n );\n };\n\n const handleRemove = (s: Share) => {\n unshare.mutate(\n {\n resourceType,\n resourceId,\n principalType: s.principalType,\n principalId: s.principalId,\n } as any,\n { onSuccess: () => sharesQuery.refetch() },\n );\n };\n\n const handleVisibility = (next: Visibility) => {\n if (next === visibility) return;\n setVisibility.mutate(\n { resourceType, resourceId, visibility: next } as any,\n { onSuccess: () => sharesQuery.refetch() },\n );\n };\n\n return (\n <div className=\"space-y-4\">\n {canManage ? (\n <div className=\"space-y-2\">\n <div className=\"flex items-stretch gap-2\">\n <input\n type=\"email\"\n placeholder=\"Add people by email\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") handleAdd();\n }}\n autoComplete=\"off\"\n className=\"flex-1 min-w-0 h-9 rounded-md border border-input bg-background px-3 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background\"\n />\n <RoleSelect value={role} onChange={setRole} />\n </div>\n {hasInviteEmail ? (\n <label className=\"inline-flex items-center gap-2 text-xs text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={notifyPeople}\n onChange={(e) => setNotifyPeople(e.target.checked)}\n className=\"h-4 w-4 rounded border-input accent-primary\"\n />\n Notify people\n </label>\n ) : null}\n </div>\n ) : null}\n\n <div>\n <div className=\"mb-2 text-sm font-semibold\">People with access</div>\n <ul className=\"flex flex-col gap-1 list-none p-0 m-0\">\n {data?.ownerEmail ? (\n <li className=\"flex items-center gap-3 px-1 py-1.5 text-sm\">\n <Avatar label={displayName(data.ownerEmail, orgMembers)} />\n <span className=\"flex-1 min-w-0 truncate\">\n {displayName(data.ownerEmail, orgMembers)}\n </span>\n <span className=\"text-xs text-muted-foreground\">Owner</span>\n </li>\n ) : null}\n {shares.map((s) => (\n <li\n key={`${s.principalType}:${s.principalId}`}\n className=\"flex items-center gap-3 px-1 py-1.5 text-sm\"\n >\n <Avatar\n label={\n s.principalType === \"org\"\n ? s.principalId\n : displayName(s.principalId, orgMembers)\n }\n org={s.principalType === \"org\"}\n />\n <span className=\"flex-1 min-w-0 truncate\">\n {s.principalType === \"org\"\n ? s.principalId\n : displayName(s.principalId, orgMembers)}\n </span>\n <span className=\"text-xs text-muted-foreground\">\n {cap(s.role)}\n </span>\n {canManage ? (\n <button\n type=\"button\"\n aria-label=\"Remove\"\n onClick={() => handleRemove(s)}\n className={BUTTON_GHOST_ICON}\n >\n <IconTrash size={14} />\n </button>\n ) : null}\n </li>\n ))}\n {!shares.length && !data?.ownerEmail ? (\n <li className=\"px-1 py-1.5 text-sm text-muted-foreground\">\n No one has access yet.\n </li>\n ) : null}\n </ul>\n </div>\n\n {showVisibility ? (\n <div>\n <div className=\"mb-2 text-sm font-semibold\">General access</div>\n <div className=\"flex items-center gap-3\">\n <span\n aria-hidden\n className=\"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground\"\n >\n <meta.Icon size={16} strokeWidth={1.75} />\n </span>\n <div className=\"min-w-0 flex-1\">\n <VisibilitySelect\n value={visibility}\n onChange={handleVisibility}\n disabled={!canManage}\n />\n <div className=\"mt-0.5 text-xs text-muted-foreground\">\n {meta.description}\n </div>\n </div>\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Default Embed body (simple responsive iframe snippet)\n// ---------------------------------------------------------------------------\n\nfunction DefaultEmbedBody({ embedUrl }: { embedUrl: string }) {\n const code = `<div style=\"position:relative;padding-bottom:56.25%;height:0\"><iframe src=\"${embedUrl}\" frameborder=\"0\" allowfullscreen allow=\"autoplay; picture-in-picture\" style=\"position:absolute;inset:0;width:100%;height:100%\"></iframe></div>`;\n return (\n <div className=\"space-y-3\">\n <CopyField label=\"Embed URL\" value={embedUrl} />\n <CopyField label=\"Embed code\" value={code} multiline />\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Primitives\n// ---------------------------------------------------------------------------\n\nfunction CopyField({\n label,\n value,\n multiline,\n}: {\n label: string;\n value: string;\n multiline?: boolean;\n}) {\n const [copied, setCopied] = useState(false);\n const copy = async () => {\n if (!(await writeClipboardText(value))) {\n setCopied(false);\n return;\n }\n setCopied(true);\n setTimeout(() => setCopied(false), 1400);\n };\n return (\n <div>\n <div className=\"mb-1 text-xs font-medium text-muted-foreground\">\n {label}\n </div>\n <div className=\"flex items-stretch gap-2\">\n {multiline ? (\n <textarea\n readOnly\n value={value}\n className=\"flex-1 h-20 rounded-md border border-input bg-background px-3 py-2 text-xs font-mono text-foreground resize-none focus:outline-none focus:ring-2 focus:ring-ring\"\n />\n ) : (\n <input\n readOnly\n value={value}\n className=\"flex-1 min-w-0 h-9 rounded-md border border-input bg-background px-3 text-xs font-mono text-foreground focus:outline-none focus:ring-2 focus:ring-ring\"\n />\n )}\n <button\n type=\"button\"\n onClick={copy}\n aria-label=\"Copy\"\n className={cn(BUTTON_OUTLINE_SM, \"w-9 px-0\")}\n >\n {copied ? <IconCheck size={14} /> : <IconCopy size={14} />}\n </button>\n </div>\n </div>\n );\n}\n\nconst selectContentClass =\n \"z-[2100] min-w-[12rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md\";\nconst selectItemClass =\n \"relative flex w-full cursor-pointer select-none items-start gap-2 rounded-sm py-2 pl-8 pr-3 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\";\n\nfunction SelectItems({\n items,\n}: {\n items: Array<{ value: string; label: string; description?: string }>;\n}) {\n return (\n <>\n {items.map((it) => (\n <Select.Item\n key={it.value}\n value={it.value}\n className={selectItemClass}\n >\n <span className=\"absolute left-2 top-2 flex h-4 w-4 items-center justify-center\">\n <Select.ItemIndicator>\n <IconCheck size={14} />\n </Select.ItemIndicator>\n </span>\n <span className=\"flex flex-col\">\n <Select.ItemText>{it.label}</Select.ItemText>\n {it.description ? (\n <span className=\"text-xs text-muted-foreground\">\n {it.description}\n </span>\n ) : null}\n </span>\n </Select.Item>\n ))}\n </>\n );\n}\n\nfunction RoleSelect(props: { value: Role; onChange: (v: Role) => void }) {\n const current =\n ROLE_OPTIONS.find((o) => o.value === props.value) ?? ROLE_OPTIONS[0];\n return (\n <Select.Root\n value={props.value}\n onValueChange={(v) => props.onChange(v as Role)}\n >\n <Select.Trigger\n aria-label=\"Role\"\n className={cn(\n BUTTON_BASE,\n \"h-9 px-3 border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n )}\n >\n <Select.Value>{current.label}</Select.Value>\n <Select.Icon>\n <IconChevronDown size={14} />\n </Select.Icon>\n </Select.Trigger>\n <Select.Portal>\n <Select.Content\n className={selectContentClass}\n position=\"popper\"\n sideOffset={4}\n >\n <Select.Viewport>\n <SelectItems items={ROLE_OPTIONS} />\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n );\n}\n\nfunction VisibilitySelect(props: {\n value: Visibility;\n onChange: (v: Visibility) => void;\n disabled?: boolean;\n}) {\n const current = VIS_META[props.value];\n return (\n <Select.Root\n value={props.value}\n onValueChange={(v) => props.onChange(v as Visibility)}\n disabled={props.disabled}\n >\n <Select.Trigger\n aria-label=\"General access\"\n className={cn(\n BUTTON_BASE,\n \"h-7 px-1 -ml-1 bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground\",\n )}\n >\n <Select.Value>{current.label}</Select.Value>\n <Select.Icon>\n <IconChevronDown size={14} />\n </Select.Icon>\n </Select.Trigger>\n <Select.Portal>\n <Select.Content\n className={selectContentClass}\n position=\"popper\"\n sideOffset={4}\n >\n <Select.Viewport>\n <SelectItems\n items={(Object.keys(VIS_META) as Visibility[]).map((k) => ({\n value: k,\n label: VIS_META[k].label,\n description: VIS_META[k].description,\n }))}\n />\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n );\n}\n\nfunction Avatar({ label, org }: { label: string; org?: boolean }) {\n return (\n <span\n aria-hidden\n className=\"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-muted text-[11px] font-semibold text-muted-foreground\"\n >\n {org ? (\n <IconBuilding size={14} strokeWidth={1.75} />\n ) : (\n (label.split(\"@\")[0]?.[0] ?? label[0] ?? \"?\").toUpperCase()\n )}\n </span>\n );\n}\n\nfunction getNotificationUrl(explicit?: string): string | undefined {\n if (explicit) return explicit;\n if (typeof window === \"undefined\") return undefined;\n return window.location.href;\n}\n\nfunction cap(s: string): string {\n return s.charAt(0).toUpperCase() + s.slice(1);\n}\n"]}
1
+ {"version":3,"file":"ShareDialog.js","sourceRoot":"","sources":["../../../src/client/sharing/ShareDialog.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState, type ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport {\n IconX,\n IconTrash,\n IconLock,\n IconBuilding,\n IconWorld,\n IconCheck,\n IconCopy,\n IconLink,\n IconMail,\n IconCode,\n IconChevronDown,\n} from \"@tabler/icons-react\";\nimport * as Select from \"@radix-ui/react-select\";\nimport { writeClipboardText } from \"../clipboard.js\";\nimport { useActionQuery, useActionMutation } from \"../use-action.js\";\nimport { cn } from \"../utils.js\";\nimport { agentNativePath } from \"../api-path.js\";\n\nexport interface ShareDialogProps {\n open: boolean;\n onClose: () => void;\n resourceType: string;\n resourceId: string;\n resourceTitle?: string;\n /**\n * When provided, enables the \"Link\" tab with a copy-link field.\n * Pass the user-facing share URL (e.g. `https://…/share/<id>`).\n */\n shareUrl?: string;\n /**\n * When provided, enables the \"Embed\" tab with a default iframe snippet.\n * For richer per-resource controls (autoplay, start time, responsive /\n * fixed size), pass `embedTabContent` instead (or in addition) — it\n * replaces the default embed body.\n */\n embedUrl?: string;\n /** Advanced: fully custom Embed tab body. Requires `embedUrl` to enable the tab. */\n embedTabContent?: ReactNode;\n /** Extra content appended to the bottom of the Link tab (e.g. download buttons). */\n linkTabExtras?: ReactNode;\n}\n\ntype Visibility = \"private\" | \"org\" | \"public\";\ntype Role = \"viewer\" | \"editor\" | \"admin\";\n\ninterface Share {\n id: string;\n principalType: \"user\" | \"org\";\n principalId: string;\n role: Role;\n}\n\ninterface SharesResponse {\n ownerEmail: string | null;\n orgId: string | null;\n visibility: Visibility | null;\n role?: \"owner\" | Role;\n shares: Share[];\n}\n\ninterface OrgMember {\n email: string;\n name?: string | null;\n}\n\nfunction useOrgMembers(): OrgMember[] {\n const [members, setMembers] = useState<OrgMember[]>([]);\n useEffect(() => {\n let cancelled = false;\n fetch(agentNativePath(\"/_agent-native/org/members\"))\n .then((r) => (r.ok ? r.json() : null))\n .then((data) => {\n if (cancelled || !data) return;\n const list = Array.isArray(data?.members) ? data.members : [];\n setMembers(\n list\n .map((m: any) => ({\n email: typeof m?.email === \"string\" ? m.email : \"\",\n name: typeof m?.name === \"string\" ? m.name : null,\n }))\n .filter((m: OrgMember) => m.email),\n );\n })\n .catch(() => {});\n return () => {\n cancelled = true;\n };\n }, []);\n return members;\n}\n\nfunction displayName(email: string, members: OrgMember[]): string {\n const match = members.find((m) => m.email === email);\n if (match?.name && match.name.trim()) return match.name;\n return email;\n}\n\nconst BUTTON_BASE =\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\";\nconst BUTTON_OUTLINE_SM = cn(\n BUTTON_BASE,\n \"h-9 px-3 border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n);\nconst BUTTON_PRIMARY_SM = cn(\n BUTTON_BASE,\n \"h-9 px-4 bg-primary text-primary-foreground hover:bg-primary/90\",\n);\nconst BUTTON_GHOST_ICON = cn(\n BUTTON_BASE,\n \"h-8 w-8 p-0 text-muted-foreground hover:bg-accent hover:text-accent-foreground\",\n);\n\nconst VIS_META: Record<\n Visibility,\n { label: string; description: string; Icon: typeof IconLock }\n> = {\n private: {\n label: \"Private\",\n description: \"Only people with access can view\",\n Icon: IconLock,\n },\n org: {\n label: \"Organization\",\n description: \"Anyone in your organization can view\",\n Icon: IconBuilding,\n },\n public: {\n label: \"Public\",\n description: \"Anyone signed in with the link can view\",\n Icon: IconWorld,\n },\n};\n\nconst ROLE_OPTIONS: Array<{ value: Role; label: string; description: string }> =\n [\n { value: \"viewer\", label: \"Viewer\", description: \"Can view\" },\n { value: \"editor\", label: \"Editor\", description: \"Can edit\" },\n {\n value: \"admin\",\n label: \"Admin\",\n description: \"Can edit and manage access\",\n },\n ];\n\n/**\n * Framework share dialog. Drop into any template via\n * `<ShareDialog open onClose resourceType resourceId />`. Passing\n * `shareUrl` lights up a Link tab with a copy field; passing `embedUrl`\n * lights up an Embed tab. With neither prop, renders a single Invite +\n * general-access panel (Google-Docs-lite).\n */\nexport function ShareDialog(props: ShareDialogProps) {\n const {\n open,\n onClose,\n resourceType,\n resourceId,\n resourceTitle,\n shareUrl,\n embedUrl,\n embedTabContent,\n linkTabExtras,\n } = props;\n\n const sharesQuery = useActionQuery<SharesResponse>(\"list-resource-shares\", {\n resourceType,\n resourceId,\n });\n const orgMembers = useOrgMembers();\n\n const hasLinkTab = Boolean(shareUrl);\n const hasEmbedTab = Boolean(embedUrl);\n const tabsEnabled = hasLinkTab || hasEmbedTab;\n\n const [tab, setTab] = useState<\"link\" | \"invite\" | \"embed\">(\n hasLinkTab ? \"link\" : \"invite\",\n );\n\n useEffect(() => {\n if (!open) return;\n setTab(hasLinkTab ? \"link\" : \"invite\");\n }, [open, hasLinkTab]);\n\n useEffect(() => {\n if (!open) return;\n const onKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n window.addEventListener(\"keydown\", onKey);\n return () => window.removeEventListener(\"keydown\", onKey);\n }, [open, onClose]);\n\n if (!open) return null;\n\n const titleText = resourceTitle\n ? `Share \"${resourceTitle}\"`\n : `Share ${resourceType}`;\n\n return createPortal(\n <div\n className=\"fixed inset-0 z-[2000] flex items-start justify-center bg-black/40 p-4 sm:items-center\"\n onClick={onClose}\n >\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={titleText}\n className=\"w-full max-w-lg rounded-xl border border-border bg-popover text-popover-foreground shadow-2xl outline-none\"\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"flex items-start justify-between gap-3 px-5 pt-4 pb-3\">\n <div className=\"min-w-0 flex-1\">\n <div className=\"truncate text-base font-semibold\" title={titleText}>\n {titleText}\n </div>\n {sharesQuery.data?.ownerEmail ? (\n <div className=\"mt-0.5 truncate text-xs text-muted-foreground\">\n Owner: {displayName(sharesQuery.data.ownerEmail, orgMembers)}\n </div>\n ) : null}\n </div>\n <button\n type=\"button\"\n aria-label=\"Close\"\n onClick={onClose}\n className={BUTTON_GHOST_ICON}\n >\n <IconX size={16} />\n </button>\n </div>\n\n {tabsEnabled ? (\n <div\n role=\"tablist\"\n aria-label=\"Share options\"\n className=\"mx-5 mt-1 flex gap-1 border-b border-border\"\n >\n {hasLinkTab ? (\n <TabTrigger\n active={tab === \"link\"}\n onClick={() => setTab(\"link\")}\n icon={<IconLink size={14} strokeWidth={1.75} />}\n label=\"Link\"\n />\n ) : null}\n <TabTrigger\n active={tab === \"invite\"}\n onClick={() => setTab(\"invite\")}\n icon={<IconMail size={14} strokeWidth={1.75} />}\n label=\"Invite\"\n />\n {hasEmbedTab ? (\n <TabTrigger\n active={tab === \"embed\"}\n onClick={() => setTab(\"embed\")}\n icon={<IconCode size={14} strokeWidth={1.75} />}\n label=\"Embed\"\n />\n ) : null}\n </div>\n ) : null}\n\n <div className=\"px-5 py-4\">\n {tabsEnabled && tab === \"link\" && hasLinkTab ? (\n <LinkTab\n resourceType={resourceType}\n resourceId={resourceId}\n shareUrl={shareUrl!}\n sharesQuery={sharesQuery}\n extras={linkTabExtras}\n />\n ) : null}\n {!tabsEnabled || tab === \"invite\" ? (\n <InviteTab\n resourceType={resourceType}\n resourceId={resourceId}\n shareUrl={shareUrl}\n sharesQuery={sharesQuery}\n showVisibility={!tabsEnabled}\n orgMembers={orgMembers}\n />\n ) : null}\n {tabsEnabled && tab === \"embed\" && hasEmbedTab\n ? (embedTabContent ?? <DefaultEmbedBody embedUrl={embedUrl!} />)\n : null}\n </div>\n\n <div className=\"flex justify-end border-t border-border px-5 py-3\">\n <button type=\"button\" onClick={onClose} className={BUTTON_PRIMARY_SM}>\n Done\n </button>\n </div>\n </div>\n </div>,\n document.body,\n );\n}\n\n// ---------------------------------------------------------------------------\n// Tabs\n// ---------------------------------------------------------------------------\n\nfunction TabTrigger(props: {\n active: boolean;\n onClick: () => void;\n icon: ReactNode;\n label: string;\n}) {\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={props.active}\n onClick={props.onClick}\n className={cn(\n \"inline-flex items-center gap-1.5 border-b-2 px-3 py-2 text-sm font-medium transition-colors\",\n props.active\n ? \"border-foreground text-foreground\"\n : \"border-transparent text-muted-foreground hover:text-foreground\",\n )}\n >\n {props.icon}\n {props.label}\n </button>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Link tab — visibility picker + copy-link field + optional extras\n// ---------------------------------------------------------------------------\n\nfunction LinkTab(props: {\n resourceType: string;\n resourceId: string;\n shareUrl: string;\n sharesQuery: ReturnType<typeof useActionQuery<SharesResponse>>;\n extras?: ReactNode;\n}) {\n const { resourceType, resourceId, shareUrl, sharesQuery, extras } = props;\n\n const setVisibility = useActionMutation(\"set-resource-visibility\");\n const data = sharesQuery.data;\n const visibility: Visibility =\n (data?.visibility as Visibility | null) ?? \"private\";\n const canManage = data?.role === \"owner\" || data?.role === \"admin\";\n const meta = VIS_META[visibility];\n\n const handleVisibility = (next: Visibility) => {\n if (next === visibility) return;\n setVisibility.mutate(\n { resourceType, resourceId, visibility: next } as any,\n { onSuccess: () => sharesQuery.refetch() },\n );\n };\n\n return (\n <div className=\"space-y-4\">\n <div>\n <div className=\"mb-2 text-sm font-semibold\">General access</div>\n <div className=\"flex items-center gap-3\">\n <span\n aria-hidden\n className=\"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground\"\n >\n <meta.Icon size={16} strokeWidth={1.75} />\n </span>\n <div className=\"min-w-0 flex-1\">\n <VisibilitySelect\n value={visibility}\n onChange={handleVisibility}\n disabled={!canManage}\n />\n <div className=\"mt-0.5 text-xs text-muted-foreground\">\n {meta.description}\n </div>\n </div>\n </div>\n </div>\n\n <CopyField label=\"Share link\" value={shareUrl} />\n\n {extras}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Invite tab — invite-by-email + shares list + (optional) visibility\n// ---------------------------------------------------------------------------\n\nfunction InviteTab(props: {\n resourceType: string;\n resourceId: string;\n shareUrl?: string;\n sharesQuery: ReturnType<typeof useActionQuery<SharesResponse>>;\n showVisibility: boolean;\n orgMembers: OrgMember[];\n}) {\n const {\n resourceType,\n resourceId,\n shareUrl,\n sharesQuery,\n showVisibility,\n orgMembers,\n } = props;\n\n const share = useActionMutation(\"share-resource\");\n const unshare = useActionMutation(\"unshare-resource\");\n const setVisibility = useActionMutation(\"set-resource-visibility\");\n\n const [email, setEmail] = useState(\"\");\n const [role, setRole] = useState<Role>(\"viewer\");\n const [notifyPeople, setNotifyPeople] = useState(true);\n const hasInviteEmail = email.trim().length > 0;\n\n const data = sharesQuery.data;\n const shares = data?.shares ?? [];\n const visibility: Visibility =\n (data?.visibility as Visibility | null) ?? \"private\";\n const canManage = data?.role === \"owner\" || data?.role === \"admin\";\n const meta = VIS_META[visibility];\n\n const handleAdd = () => {\n const trimmed = email.trim();\n if (!trimmed) return;\n share.mutate(\n {\n resourceType,\n resourceId,\n principalType: \"user\",\n principalId: trimmed,\n role,\n notify: notifyPeople,\n resourceUrl: getNotificationUrl(shareUrl),\n } as any,\n {\n onSuccess: () => {\n setEmail(\"\");\n sharesQuery.refetch();\n },\n },\n );\n };\n\n const handleRemove = (s: Share) => {\n unshare.mutate(\n {\n resourceType,\n resourceId,\n principalType: s.principalType,\n principalId: s.principalId,\n } as any,\n { onSuccess: () => sharesQuery.refetch() },\n );\n };\n\n const handleVisibility = (next: Visibility) => {\n if (next === visibility) return;\n setVisibility.mutate(\n { resourceType, resourceId, visibility: next } as any,\n { onSuccess: () => sharesQuery.refetch() },\n );\n };\n\n return (\n <div className=\"space-y-4\">\n {canManage ? (\n <div className=\"space-y-2\">\n <div className=\"flex items-stretch gap-2\">\n <input\n type=\"email\"\n placeholder=\"Add people by email\"\n value={email}\n onChange={(e) => setEmail(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") handleAdd();\n }}\n autoComplete=\"off\"\n className=\"flex-1 min-w-0 h-9 rounded-md border border-input bg-background px-3 text-sm text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background\"\n />\n <RoleSelect value={role} onChange={setRole} />\n </div>\n {hasInviteEmail ? (\n <label className=\"inline-flex items-center gap-2 text-xs text-muted-foreground\">\n <input\n type=\"checkbox\"\n checked={notifyPeople}\n onChange={(e) => setNotifyPeople(e.target.checked)}\n className=\"h-4 w-4 rounded border-input accent-primary\"\n />\n Notify people\n </label>\n ) : null}\n </div>\n ) : null}\n\n <div>\n <div className=\"mb-2 text-sm font-semibold\">People with access</div>\n <ul className=\"flex flex-col gap-1 list-none p-0 m-0\">\n {data?.ownerEmail ? (\n <li className=\"flex items-center gap-3 px-1 py-1.5 text-sm\">\n <Avatar label={displayName(data.ownerEmail, orgMembers)} />\n <span className=\"flex-1 min-w-0 truncate\">\n {displayName(data.ownerEmail, orgMembers)}\n </span>\n <span className=\"text-xs text-muted-foreground\">Owner</span>\n </li>\n ) : null}\n {shares.map((s) => (\n <li\n key={`${s.principalType}:${s.principalId}`}\n className=\"flex items-center gap-3 px-1 py-1.5 text-sm\"\n >\n <Avatar\n label={\n s.principalType === \"org\"\n ? s.principalId\n : displayName(s.principalId, orgMembers)\n }\n org={s.principalType === \"org\"}\n />\n <span className=\"flex-1 min-w-0 truncate\">\n {s.principalType === \"org\"\n ? s.principalId\n : displayName(s.principalId, orgMembers)}\n </span>\n <span className=\"text-xs text-muted-foreground\">\n {cap(s.role)}\n </span>\n {canManage ? (\n <button\n type=\"button\"\n aria-label=\"Remove\"\n onClick={() => handleRemove(s)}\n className={BUTTON_GHOST_ICON}\n >\n <IconTrash size={14} />\n </button>\n ) : null}\n </li>\n ))}\n {!shares.length && !data?.ownerEmail ? (\n <li className=\"px-1 py-1.5 text-sm text-muted-foreground\">\n No one has access yet.\n </li>\n ) : null}\n </ul>\n </div>\n\n {showVisibility ? (\n <div>\n <div className=\"mb-2 text-sm font-semibold\">General access</div>\n <div className=\"flex items-center gap-3\">\n <span\n aria-hidden\n className=\"inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-muted text-muted-foreground\"\n >\n <meta.Icon size={16} strokeWidth={1.75} />\n </span>\n <div className=\"min-w-0 flex-1\">\n <VisibilitySelect\n value={visibility}\n onChange={handleVisibility}\n disabled={!canManage}\n />\n <div className=\"mt-0.5 text-xs text-muted-foreground\">\n {meta.description}\n </div>\n </div>\n </div>\n </div>\n ) : null}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Default Embed body (simple responsive iframe snippet)\n// ---------------------------------------------------------------------------\n\nfunction DefaultEmbedBody({ embedUrl }: { embedUrl: string }) {\n const code = `<div style=\"position:relative;padding-bottom:56.25%;height:0\"><iframe src=\"${embedUrl}\" frameborder=\"0\" allowfullscreen allow=\"autoplay; picture-in-picture\" style=\"position:absolute;inset:0;width:100%;height:100%\"></iframe></div>`;\n return (\n <div className=\"space-y-3\">\n <CopyField label=\"Embed URL\" value={embedUrl} />\n <CopyField label=\"Embed code\" value={code} multiline />\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Primitives\n// ---------------------------------------------------------------------------\n\nfunction CopyField({\n label,\n value,\n multiline,\n}: {\n label: string;\n value: string;\n multiline?: boolean;\n}) {\n const [copied, setCopied] = useState(false);\n const copy = async () => {\n if (!(await writeClipboardText(value))) {\n setCopied(false);\n return;\n }\n setCopied(true);\n setTimeout(() => setCopied(false), 1400);\n };\n return (\n <div>\n <div className=\"mb-1 text-xs font-medium text-muted-foreground\">\n {label}\n </div>\n <div className=\"flex items-stretch gap-2\">\n {multiline ? (\n <textarea\n readOnly\n value={value}\n className=\"flex-1 h-20 rounded-md border border-input bg-background px-3 py-2 text-xs font-mono text-foreground resize-none focus:outline-none focus:ring-2 focus:ring-ring\"\n />\n ) : (\n <input\n readOnly\n value={value}\n className=\"flex-1 min-w-0 h-9 rounded-md border border-input bg-background px-3 text-xs font-mono text-foreground focus:outline-none focus:ring-2 focus:ring-ring\"\n />\n )}\n <button\n type=\"button\"\n onClick={copy}\n aria-label=\"Copy\"\n className={cn(BUTTON_OUTLINE_SM, \"w-9 px-0\")}\n >\n {copied ? <IconCheck size={14} /> : <IconCopy size={14} />}\n </button>\n </div>\n </div>\n );\n}\n\nconst selectContentClass =\n \"z-[2100] min-w-[12rem] overflow-hidden rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md\";\nconst selectItemClass =\n \"relative flex w-full cursor-pointer select-none items-start gap-2 rounded-sm py-2 ps-8 pe-3 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\";\n\nfunction SelectItems({\n items,\n}: {\n items: Array<{ value: string; label: string; description?: string }>;\n}) {\n return (\n <>\n {items.map((it) => (\n <Select.Item\n key={it.value}\n value={it.value}\n className={selectItemClass}\n >\n <span className=\"absolute start-2 top-2 flex h-4 w-4 items-center justify-center\">\n <Select.ItemIndicator>\n <IconCheck size={14} />\n </Select.ItemIndicator>\n </span>\n <span className=\"flex flex-col\">\n <Select.ItemText>{it.label}</Select.ItemText>\n {it.description ? (\n <span className=\"text-xs text-muted-foreground\">\n {it.description}\n </span>\n ) : null}\n </span>\n </Select.Item>\n ))}\n </>\n );\n}\n\nfunction RoleSelect(props: { value: Role; onChange: (v: Role) => void }) {\n const current =\n ROLE_OPTIONS.find((o) => o.value === props.value) ?? ROLE_OPTIONS[0];\n return (\n <Select.Root\n value={props.value}\n onValueChange={(v) => props.onChange(v as Role)}\n >\n <Select.Trigger\n aria-label=\"Role\"\n className={cn(\n BUTTON_BASE,\n \"h-9 px-3 border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n )}\n >\n <Select.Value>{current.label}</Select.Value>\n <Select.Icon>\n <IconChevronDown size={14} />\n </Select.Icon>\n </Select.Trigger>\n <Select.Portal>\n <Select.Content\n className={selectContentClass}\n position=\"popper\"\n sideOffset={4}\n >\n <Select.Viewport>\n <SelectItems items={ROLE_OPTIONS} />\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n );\n}\n\nfunction VisibilitySelect(props: {\n value: Visibility;\n onChange: (v: Visibility) => void;\n disabled?: boolean;\n}) {\n const current = VIS_META[props.value];\n return (\n <Select.Root\n value={props.value}\n onValueChange={(v) => props.onChange(v as Visibility)}\n disabled={props.disabled}\n >\n <Select.Trigger\n aria-label=\"General access\"\n className={cn(\n BUTTON_BASE,\n \"h-7 px-1 -ms-1 bg-transparent text-foreground hover:bg-accent hover:text-accent-foreground\",\n )}\n >\n <Select.Value>{current.label}</Select.Value>\n <Select.Icon>\n <IconChevronDown size={14} />\n </Select.Icon>\n </Select.Trigger>\n <Select.Portal>\n <Select.Content\n className={selectContentClass}\n position=\"popper\"\n sideOffset={4}\n >\n <Select.Viewport>\n <SelectItems\n items={(Object.keys(VIS_META) as Visibility[]).map((k) => ({\n value: k,\n label: VIS_META[k].label,\n description: VIS_META[k].description,\n }))}\n />\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n );\n}\n\nfunction Avatar({ label, org }: { label: string; org?: boolean }) {\n return (\n <span\n aria-hidden\n className=\"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-muted text-[11px] font-semibold text-muted-foreground\"\n >\n {org ? (\n <IconBuilding size={14} strokeWidth={1.75} />\n ) : (\n (label.split(\"@\")[0]?.[0] ?? label[0] ?? \"?\").toUpperCase()\n )}\n </span>\n );\n}\n\nfunction getNotificationUrl(explicit?: string): string | undefined {\n if (explicit) return explicit;\n if (typeof window === \"undefined\") return undefined;\n return window.location.href;\n}\n\nfunction cap(s: string): string {\n return s.charAt(0).toUpperCase() + s.slice(1);\n}\n"]}
@@ -31,7 +31,7 @@
31
31
 
32
32
  .agent-conversation__scroll-bottom {
33
33
  position: absolute;
34
- right: 18px;
34
+ inset-inline-end: 18px;
35
35
  bottom: 92px;
36
36
  z-index: 2;
37
37
  display: flex;
@@ -115,12 +115,12 @@
115
115
 
116
116
  .agent-conversation-markdown ul,
117
117
  .agent-conversation-markdown ol {
118
- padding-left: 20px;
118
+ padding-inline-start: 20px;
119
119
  }
120
120
 
121
121
  .agent-conversation-markdown li {
122
122
  margin: 3px 0;
123
- padding-left: 2px;
123
+ padding-inline-start: 2px;
124
124
  }
125
125
 
126
126
  .agent-conversation-markdown li > p {
@@ -248,7 +248,7 @@
248
248
  }
249
249
 
250
250
  .agent-conversation-tool__summary {
251
- margin-left: auto;
251
+ margin-inline-start: auto;
252
252
  font-size: 11px;
253
253
  }
254
254
 
@@ -410,7 +410,7 @@
410
410
  display: inline-flex;
411
411
  align-items: center;
412
412
  gap: 5px;
413
- margin-left: auto;
413
+ margin-inline-start: auto;
414
414
  color: hsl(var(--muted-foreground));
415
415
  text-decoration: none;
416
416
  }
@@ -496,7 +496,7 @@
496
496
  .agent-markdown ul,
497
497
  .agent-markdown ol {
498
498
  margin: 0.5em 0;
499
- padding-left: 1.5em;
499
+ padding-inline-start: 1.5em;
500
500
  }
501
501
 
502
502
  .agent-markdown li {
@@ -576,8 +576,8 @@
576
576
  }
577
577
 
578
578
  .agent-markdown blockquote {
579
- border-left: 2px solid hsl(var(--border, 0 0% 20%));
580
- padding-left: 0.75em;
579
+ border-inline-start: 2px solid hsl(var(--border, 0 0% 20%));
580
+ padding-inline-start: 0.75em;
581
581
  margin: 0.5em 0;
582
582
  opacity: 0.8;
583
583
  }
@@ -592,7 +592,7 @@
592
592
  .agent-markdown td {
593
593
  border: 1px solid hsl(var(--border, 0 0% 20%));
594
594
  padding: 0.35em 0.65em;
595
- text-align: left;
595
+ text-align: start;
596
596
  }
597
597
 
598
598
  .agent-markdown th {
@@ -608,7 +608,7 @@
608
608
  display: inline-block;
609
609
  width: 0.42em;
610
610
  height: 1em;
611
- margin-left: 0.12em;
611
+ margin-inline-start: 0.12em;
612
612
  border-radius: 999px;
613
613
  background: currentColor;
614
614
  opacity: 0.35;
@@ -642,7 +642,7 @@
642
642
  .plan-code-chrome-float {
643
643
  position: absolute;
644
644
  top: 0.5rem;
645
- right: 0.5rem;
645
+ inset-inline-end: 0.5rem;
646
646
  z-index: 2;
647
647
  }
648
648
 
@@ -917,7 +917,7 @@
917
917
  background: transparent;
918
918
  color: hsl(var(--foreground));
919
919
  font-size: 0.8rem;
920
- text-align: left;
920
+ text-align: start;
921
921
  cursor: pointer;
922
922
  }
923
923
 
@@ -317,7 +317,7 @@
317
317
  .an-rich-md-prose h3.is-empty::before,
318
318
  .an-rich-md-prose h4.is-empty::before {
319
319
  content: attr(data-placeholder);
320
- float: left;
320
+ float: inline-start;
321
321
  color: hsl(var(--muted-foreground));
322
322
  opacity: 0.55;
323
323
  pointer-events: none;
@@ -432,7 +432,7 @@
432
432
  align-items: center;
433
433
  gap: 8px;
434
434
  padding: 6px 10px;
435
- text-align: left;
435
+ text-align: start;
436
436
  background: none;
437
437
  border: none;
438
438
  cursor: pointer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.76.3",
3
+ "version": "0.76.4",
4
4
  "type": "module",
5
5
  "engines": {
6
6
  "node": ">=22"