@manta-eu/react 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) hide show
  1. package/README.md +59 -0
  2. package/dist/components/AppErrorBoundary.d.ts.map +1 -1
  3. package/dist/components/AppErrorBoundary.js +14 -11
  4. package/dist/components/AppErrorBoundary.js.map +1 -1
  5. package/dist/components/app-gate/AppGate.d.ts +8 -0
  6. package/dist/components/app-gate/AppGate.d.ts.map +1 -0
  7. package/dist/components/app-gate/AppGate.js +68 -0
  8. package/dist/components/app-gate/AppGate.js.map +1 -0
  9. package/dist/components/app-gate/AwaitingDatastoreStatus.d.ts +7 -0
  10. package/dist/components/app-gate/AwaitingDatastoreStatus.d.ts.map +1 -0
  11. package/dist/components/app-gate/AwaitingDatastoreStatus.js +19 -0
  12. package/dist/components/app-gate/AwaitingDatastoreStatus.js.map +1 -0
  13. package/dist/components/app-gate/EnterDatastoreRoute.d.ts +2 -0
  14. package/dist/components/app-gate/EnterDatastoreRoute.d.ts.map +1 -0
  15. package/dist/components/app-gate/EnterDatastoreRoute.js +25 -0
  16. package/dist/components/app-gate/EnterDatastoreRoute.js.map +1 -0
  17. package/dist/components/app-gate/ErrorRoute.d.ts +2 -0
  18. package/dist/components/app-gate/ErrorRoute.d.ts.map +1 -0
  19. package/dist/components/app-gate/ErrorRoute.js +27 -0
  20. package/dist/components/app-gate/ErrorRoute.js.map +1 -0
  21. package/dist/components/app-gate/FailureAlert.d.ts +5 -0
  22. package/dist/components/app-gate/FailureAlert.d.ts.map +1 -0
  23. package/dist/components/app-gate/FailureAlert.js +9 -0
  24. package/dist/components/app-gate/FailureAlert.js.map +1 -0
  25. package/dist/components/app-gate/NoDatastoreAccess.d.ts +8 -0
  26. package/dist/components/app-gate/NoDatastoreAccess.d.ts.map +1 -0
  27. package/dist/components/app-gate/NoDatastoreAccess.js +9 -0
  28. package/dist/components/app-gate/NoDatastoreAccess.js.map +1 -0
  29. package/dist/components/app-gate/NotFoundRoute.d.ts +2 -0
  30. package/dist/components/app-gate/NotFoundRoute.d.ts.map +1 -0
  31. package/dist/components/app-gate/NotFoundRoute.js +9 -0
  32. package/dist/components/app-gate/NotFoundRoute.js.map +1 -0
  33. package/dist/components/app-gate/PendingInvitations.d.ts +5 -0
  34. package/dist/components/app-gate/PendingInvitations.d.ts.map +1 -0
  35. package/dist/components/app-gate/PendingInvitations.js +58 -0
  36. package/dist/components/app-gate/PendingInvitations.js.map +1 -0
  37. package/dist/components/app-gate/ServiceError.d.ts +8 -0
  38. package/dist/components/app-gate/ServiceError.d.ts.map +1 -0
  39. package/dist/components/app-gate/ServiceError.js +10 -0
  40. package/dist/components/app-gate/ServiceError.js.map +1 -0
  41. package/dist/components/app-gate/index.d.ts +3 -0
  42. package/dist/components/app-gate/index.d.ts.map +1 -0
  43. package/dist/components/app-gate/index.js +3 -0
  44. package/dist/components/app-gate/index.js.map +1 -0
  45. package/dist/components/app-gate/sdk-route-elements.d.ts +23 -0
  46. package/dist/components/app-gate/sdk-route-elements.d.ts.map +1 -0
  47. package/dist/components/app-gate/sdk-route-elements.js +35 -0
  48. package/dist/components/app-gate/sdk-route-elements.js.map +1 -0
  49. package/dist/components/app-shell/AppShell.d.ts +7 -0
  50. package/dist/components/app-shell/AppShell.d.ts.map +1 -0
  51. package/dist/components/app-shell/AppShell.js +10 -0
  52. package/dist/components/app-shell/AppShell.js.map +1 -0
  53. package/dist/components/app-shell/AppShellRoutes.d.ts +9 -0
  54. package/dist/components/app-shell/AppShellRoutes.d.ts.map +1 -0
  55. package/dist/components/app-shell/AppShellRoutes.js +20 -0
  56. package/dist/components/app-shell/AppShellRoutes.js.map +1 -0
  57. package/dist/components/app-shell/GroupDatastores.d.ts +8 -0
  58. package/dist/components/app-shell/GroupDatastores.d.ts.map +1 -0
  59. package/dist/components/app-shell/GroupDatastores.js +15 -0
  60. package/dist/components/app-shell/GroupDatastores.js.map +1 -0
  61. package/dist/components/app-shell/GroupRoute.d.ts +2 -0
  62. package/dist/components/app-shell/GroupRoute.d.ts.map +1 -0
  63. package/dist/components/app-shell/GroupRoute.js +22 -0
  64. package/dist/components/app-shell/GroupRoute.js.map +1 -0
  65. package/dist/components/app-shell/index.d.ts +3 -0
  66. package/dist/components/app-shell/index.d.ts.map +1 -0
  67. package/dist/components/app-shell/index.js +3 -0
  68. package/dist/components/app-shell/index.js.map +1 -0
  69. package/dist/components/authenticated-chat/index.d.ts +1 -2
  70. package/dist/components/authenticated-chat/index.d.ts.map +1 -1
  71. package/dist/components/authenticated-chat/index.js +1 -12
  72. package/dist/components/authenticated-chat/index.js.map +1 -1
  73. package/dist/components/chat-view/Chat.d.ts +2 -1
  74. package/dist/components/chat-view/Chat.d.ts.map +1 -1
  75. package/dist/components/chat-view/Chat.js +3 -2
  76. package/dist/components/chat-view/Chat.js.map +1 -1
  77. package/dist/components/chat-view/MessageItem.d.ts.map +1 -1
  78. package/dist/components/chat-view/MessageItem.js +4 -2
  79. package/dist/components/chat-view/MessageItem.js.map +1 -1
  80. package/dist/components/chat-view/tool-part-rendering.d.ts +1 -0
  81. package/dist/components/chat-view/tool-part-rendering.d.ts.map +1 -1
  82. package/dist/components/chat-view/tool-part-rendering.js +8 -1
  83. package/dist/components/chat-view/tool-part-rendering.js.map +1 -1
  84. package/dist/components/chip/index.d.ts +1 -0
  85. package/dist/components/chip/index.d.ts.map +1 -1
  86. package/dist/components/chip/index.js +2 -1
  87. package/dist/components/chip/index.js.map +1 -1
  88. package/dist/components/embedded-chat/index.d.ts +1 -1
  89. package/dist/components/embedded-chat/index.d.ts.map +1 -1
  90. package/dist/components/embedded-chat/index.js +1 -1
  91. package/dist/components/embedded-chat/index.js.map +1 -1
  92. package/dist/components/input/input-date-time.d.ts +6 -0
  93. package/dist/components/input/input-date-time.d.ts.map +1 -1
  94. package/dist/components/input/input-date-time.js +2 -1
  95. package/dist/components/input/input-date-time.js.map +1 -1
  96. package/dist/components/input/input-date.d.ts +22 -0
  97. package/dist/components/input/input-date.d.ts.map +1 -1
  98. package/dist/components/input/input-date.js +28 -14
  99. package/dist/components/input/input-date.js.map +1 -1
  100. package/dist/components/input/input-time.d.ts +9 -0
  101. package/dist/components/input/input-time.d.ts.map +1 -1
  102. package/dist/components/input/input-time.js +29 -18
  103. package/dist/components/input/input-time.js.map +1 -1
  104. package/dist/components/layouts/RouteLayout.d.ts +0 -9
  105. package/dist/components/layouts/RouteLayout.d.ts.map +1 -1
  106. package/dist/components/layouts/RouteLayout.js +7 -4
  107. package/dist/components/layouts/RouteLayout.js.map +1 -1
  108. package/dist/components/layouts/Sidebar.d.ts +1 -8
  109. package/dist/components/layouts/Sidebar.d.ts.map +1 -1
  110. package/dist/components/layouts/Sidebar.js +7 -14
  111. package/dist/components/layouts/Sidebar.js.map +1 -1
  112. package/dist/components/plan-limits/PlanLimitsDialog.d.ts +20 -0
  113. package/dist/components/plan-limits/PlanLimitsDialog.d.ts.map +1 -0
  114. package/dist/components/plan-limits/PlanLimitsDialog.js +109 -0
  115. package/dist/components/plan-limits/PlanLimitsDialog.js.map +1 -0
  116. package/dist/components/plan-limits/index.d.ts +4 -0
  117. package/dist/components/plan-limits/index.d.ts.map +1 -0
  118. package/dist/components/plan-limits/index.js +2 -0
  119. package/dist/components/plan-limits/index.js.map +1 -0
  120. package/dist/components/plan-limits/plan-limits-client.d.ts +15 -0
  121. package/dist/components/plan-limits/plan-limits-client.d.ts.map +1 -0
  122. package/dist/components/plan-limits/plan-limits-client.js +44 -0
  123. package/dist/components/plan-limits/plan-limits-client.js.map +1 -0
  124. package/dist/components/plan-limits/plan-limits-model.d.ts +66 -0
  125. package/dist/components/plan-limits/plan-limits-model.d.ts.map +1 -0
  126. package/dist/components/plan-limits/plan-limits-model.js +123 -0
  127. package/dist/components/plan-limits/plan-limits-model.js.map +1 -0
  128. package/dist/components/plan-limits/plan-limits-save.d.ts +31 -0
  129. package/dist/components/plan-limits/plan-limits-save.d.ts.map +1 -0
  130. package/dist/components/plan-limits/plan-limits-save.js +43 -0
  131. package/dist/components/plan-limits/plan-limits-save.js.map +1 -0
  132. package/dist/components/planning/PlanLimitsAction.d.ts +6 -0
  133. package/dist/components/planning/PlanLimitsAction.d.ts.map +1 -0
  134. package/dist/components/planning/PlanLimitsAction.js +19 -0
  135. package/dist/components/planning/PlanLimitsAction.js.map +1 -0
  136. package/dist/components/slider/index.d.ts.map +1 -1
  137. package/dist/components/slider/index.js +2 -1
  138. package/dist/components/slider/index.js.map +1 -1
  139. package/dist/datastore-picker/datastore-picker-rows.d.ts +7 -0
  140. package/dist/datastore-picker/datastore-picker-rows.d.ts.map +1 -1
  141. package/dist/datastore-picker/datastore-picker-rows.js +26 -22
  142. package/dist/datastore-picker/datastore-picker-rows.js.map +1 -1
  143. package/dist/globals.css +85 -2
  144. package/dist/hooks/use-action-plans-list.d.ts +3 -0
  145. package/dist/hooks/use-action-plans-list.d.ts.map +1 -1
  146. package/dist/hooks/use-action-plans-list.js +8 -9
  147. package/dist/hooks/use-action-plans-list.js.map +1 -1
  148. package/dist/hooks/use-activity-feed.d.ts +10 -1
  149. package/dist/hooks/use-activity-feed.d.ts.map +1 -1
  150. package/dist/hooks/use-activity-feed.js +9 -11
  151. package/dist/hooks/use-activity-feed.js.map +1 -1
  152. package/dist/hooks/use-entity.d.ts +4 -3
  153. package/dist/hooks/use-entity.d.ts.map +1 -1
  154. package/dist/hooks/use-entity.js +4 -4
  155. package/dist/hooks/use-entity.js.map +1 -1
  156. package/dist/hooks/use-manual-actions.d.ts +1 -1
  157. package/dist/hooks/use-manual-actions.d.ts.map +1 -1
  158. package/dist/hooks/use-manual-actions.js +5 -5
  159. package/dist/hooks/use-manual-actions.js.map +1 -1
  160. package/dist/hooks/use-unsaved-changes-warning.d.ts +2 -0
  161. package/dist/hooks/use-unsaved-changes-warning.d.ts.map +1 -0
  162. package/dist/hooks/use-unsaved-changes-warning.js +13 -0
  163. package/dist/hooks/use-unsaved-changes-warning.js.map +1 -0
  164. package/dist/hooks/useAuth.d.ts.map +1 -1
  165. package/dist/hooks/useAuth.js +4 -3
  166. package/dist/hooks/useAuth.js.map +1 -1
  167. package/dist/hooks/useChatPanelSync.d.ts.map +1 -1
  168. package/dist/hooks/useChatPanelSync.js +2 -3
  169. package/dist/hooks/useChatPanelSync.js.map +1 -1
  170. package/dist/hooks/useDatastoreSelection.d.ts.map +1 -1
  171. package/dist/hooks/useDatastoreSelection.js +11 -4
  172. package/dist/hooks/useDatastoreSelection.js.map +1 -1
  173. package/dist/hooks/useExecuteAction.d.ts +1 -0
  174. package/dist/hooks/useExecuteAction.d.ts.map +1 -1
  175. package/dist/hooks/useExecuteAction.js.map +1 -1
  176. package/dist/hooks/useLoginRedirect.d.ts +6 -0
  177. package/dist/hooks/useLoginRedirect.d.ts.map +1 -0
  178. package/dist/hooks/useLoginRedirect.js +51 -0
  179. package/dist/hooks/useLoginRedirect.js.map +1 -0
  180. package/dist/hooks/usePlanLimits.d.ts +18 -0
  181. package/dist/hooks/usePlanLimits.d.ts.map +1 -0
  182. package/dist/hooks/usePlanLimits.js +56 -0
  183. package/dist/hooks/usePlanLimits.js.map +1 -0
  184. package/dist/ldo-ui.d.ts +1 -1
  185. package/dist/ldo-ui.d.ts.map +1 -1
  186. package/dist/ldo-ui.js.map +1 -1
  187. package/dist/lib/app-tools.d.ts +18 -0
  188. package/dist/lib/app-tools.d.ts.map +1 -0
  189. package/dist/lib/app-tools.js +42 -0
  190. package/dist/lib/app-tools.js.map +1 -0
  191. package/dist/lib/chat-types.d.ts +3 -0
  192. package/dist/lib/chat-types.d.ts.map +1 -1
  193. package/dist/lib/chat-types.js.map +1 -1
  194. package/dist/lib/datastore-route-table.d.ts +3 -0
  195. package/dist/lib/datastore-route-table.d.ts.map +1 -1
  196. package/dist/lib/datastore-route-table.js +6 -0
  197. package/dist/lib/datastore-route-table.js.map +1 -1
  198. package/dist/lib/graphql-error.d.ts +2 -0
  199. package/dist/lib/graphql-error.d.ts.map +1 -0
  200. package/dist/lib/graphql-error.js +7 -0
  201. package/dist/lib/graphql-error.js.map +1 -0
  202. package/dist/lib/update-notice.d.ts +2 -1
  203. package/dist/lib/update-notice.d.ts.map +1 -1
  204. package/dist/lib/update-notice.js +8 -2
  205. package/dist/lib/update-notice.js.map +1 -1
  206. package/dist/providers/ActiveChatProvider.d.ts +2 -0
  207. package/dist/providers/ActiveChatProvider.d.ts.map +1 -1
  208. package/dist/providers/ActiveChatProvider.js +6 -3
  209. package/dist/providers/ActiveChatProvider.js.map +1 -1
  210. package/dist/providers/ActiveDatastoreProvider.d.ts +12 -0
  211. package/dist/providers/ActiveDatastoreProvider.d.ts.map +1 -1
  212. package/dist/providers/ActiveDatastoreProvider.js +114 -11
  213. package/dist/providers/ActiveDatastoreProvider.js.map +1 -1
  214. package/dist/providers/AuthContext.d.ts +1 -0
  215. package/dist/providers/AuthContext.d.ts.map +1 -1
  216. package/dist/providers/AuthContext.js.map +1 -1
  217. package/dist/providers/KnowledgeGraphStateContext.d.ts +2 -2
  218. package/dist/providers/KnowledgeGraphStateContext.d.ts.map +1 -1
  219. package/dist/providers/KnowledgeGraphStateProvider.d.ts.map +1 -1
  220. package/dist/providers/KnowledgeGraphStateProvider.js +8 -49
  221. package/dist/providers/KnowledgeGraphStateProvider.js.map +1 -1
  222. package/dist/providers/MantaClientProvider.d.ts.map +1 -1
  223. package/dist/providers/MantaClientProvider.js +3 -3
  224. package/dist/providers/MantaClientProvider.js.map +1 -1
  225. package/dist/providers/index.d.ts +3 -1
  226. package/dist/providers/index.d.ts.map +1 -1
  227. package/dist/providers/index.js +2 -2
  228. package/dist/providers/index.js.map +1 -1
  229. package/dist/routes/activity/detail/ActivityDetailRoute.d.ts.map +1 -1
  230. package/dist/routes/activity/detail/ActivityDetailRoute.js +1 -3
  231. package/dist/routes/activity/detail/ActivityDetailRoute.js.map +1 -1
  232. package/dist/routes/activity/index.d.ts.map +1 -1
  233. package/dist/routes/activity/index.js +1 -3
  234. package/dist/routes/activity/index.js.map +1 -1
  235. package/dist/routes/chat/index.d.ts +2 -21
  236. package/dist/routes/chat/index.d.ts.map +1 -1
  237. package/dist/routes/chat/index.js +4 -2
  238. package/dist/routes/chat/index.js.map +1 -1
  239. package/dist/routes/data-collection/index.d.ts.map +1 -1
  240. package/dist/routes/data-collection/index.js +1 -3
  241. package/dist/routes/data-collection/index.js.map +1 -1
  242. package/dist/routes/data-explorer/components/DataExplorerLayout.d.ts.map +1 -1
  243. package/dist/routes/data-explorer/components/DataExplorerLayout.js +1 -3
  244. package/dist/routes/data-explorer/components/DataExplorerLayout.js.map +1 -1
  245. package/dist/routes/data-explorer/components/class-detail/UsedByRules.js +2 -2
  246. package/dist/routes/data-explorer/components/class-detail/UsedByRules.js.map +1 -1
  247. package/dist/routes/datastores/index.d.ts.map +1 -1
  248. package/dist/routes/datastores/index.js +2 -2
  249. package/dist/routes/datastores/index.js.map +1 -1
  250. package/dist/routes/explain/index.d.ts.map +1 -1
  251. package/dist/routes/explain/index.js +1 -3
  252. package/dist/routes/explain/index.js.map +1 -1
  253. package/dist/routes/integrations/components/connect-forms/DashConnectForm.d.ts.map +1 -1
  254. package/dist/routes/integrations/components/connect-forms/DashConnectForm.js +0 -1
  255. package/dist/routes/integrations/components/connect-forms/DashConnectForm.js.map +1 -1
  256. package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.d.ts.map +1 -1
  257. package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.js +0 -1
  258. package/dist/routes/integrations/components/connect-forms/GoogleAdsConnectForm.js.map +1 -1
  259. package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.d.ts.map +1 -1
  260. package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.js +0 -1
  261. package/dist/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.js.map +1 -1
  262. package/dist/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.d.ts.map +1 -1
  263. package/dist/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.js +0 -1
  264. package/dist/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.js.map +1 -1
  265. package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.d.ts +0 -1
  266. package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.d.ts.map +1 -1
  267. package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.js +3 -2
  268. package/dist/routes/integrations/components/connect-forms/InferalCredentialConnectForm.js.map +1 -1
  269. package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.d.ts.map +1 -1
  270. package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.js +0 -1
  271. package/dist/routes/integrations/components/connect-forms/KlaviyoConnectForm.js.map +1 -1
  272. package/dist/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.d.ts.map +1 -1
  273. package/dist/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.js +0 -1
  274. package/dist/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.js.map +1 -1
  275. package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.d.ts +0 -1
  276. package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.d.ts.map +1 -1
  277. package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.js +4 -3
  278. package/dist/routes/integrations/components/connect-forms/OAuthSetupConnectForm.js.map +1 -1
  279. package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.d.ts.map +1 -1
  280. package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.js +0 -1
  281. package/dist/routes/integrations/components/connect-forms/TriplewhaleConnectForm.js.map +1 -1
  282. package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.d.ts.map +1 -1
  283. package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.js +0 -1
  284. package/dist/routes/integrations/components/connect-forms/WoocommerceConnectForm.js.map +1 -1
  285. package/dist/routes/integrations/types.d.ts +2 -1
  286. package/dist/routes/integrations/types.d.ts.map +1 -1
  287. package/dist/routes/integrations/types.js +16 -0
  288. package/dist/routes/integrations/types.js.map +1 -1
  289. package/dist/routes/memories/components/DateValueInput.d.ts +16 -0
  290. package/dist/routes/memories/components/DateValueInput.d.ts.map +1 -0
  291. package/dist/routes/memories/components/DateValueInput.js +35 -0
  292. package/dist/routes/memories/components/DateValueInput.js.map +1 -0
  293. package/dist/routes/memories/components/EntityValuePicker.d.ts +11 -0
  294. package/dist/routes/memories/components/EntityValuePicker.d.ts.map +1 -0
  295. package/dist/routes/memories/components/EntityValuePicker.js +61 -0
  296. package/dist/routes/memories/components/EntityValuePicker.js.map +1 -0
  297. package/dist/routes/memories/components/FieldLabel.d.ts +12 -0
  298. package/dist/routes/memories/components/FieldLabel.d.ts.map +1 -0
  299. package/dist/routes/memories/components/FieldLabel.js +12 -0
  300. package/dist/routes/memories/components/FieldLabel.js.map +1 -0
  301. package/dist/routes/memories/components/ImportanceSlider.d.ts +2 -0
  302. package/dist/routes/memories/components/ImportanceSlider.d.ts.map +1 -1
  303. package/dist/routes/memories/components/ImportanceSlider.js +4 -1
  304. package/dist/routes/memories/components/ImportanceSlider.js.map +1 -1
  305. package/dist/routes/memories/components/MemoriesFilters.d.ts +2 -2
  306. package/dist/routes/memories/components/MemoriesFilters.d.ts.map +1 -1
  307. package/dist/routes/memories/components/MemoriesFilters.js.map +1 -1
  308. package/dist/routes/memories/components/MemoriesPanel.d.ts.map +1 -1
  309. package/dist/routes/memories/components/MemoriesPanel.js +4 -0
  310. package/dist/routes/memories/components/MemoriesPanel.js.map +1 -1
  311. package/dist/routes/memories/components/MemoriesTabPanel.d.ts +2 -2
  312. package/dist/routes/memories/components/MemoriesTabPanel.d.ts.map +1 -1
  313. package/dist/routes/memories/components/MemoryActions.d.ts +2 -0
  314. package/dist/routes/memories/components/MemoryActions.d.ts.map +1 -1
  315. package/dist/routes/memories/components/MemoryActions.js +3 -3
  316. package/dist/routes/memories/components/MemoryActions.js.map +1 -1
  317. package/dist/routes/memories/components/MemoryFields.d.ts +15 -3
  318. package/dist/routes/memories/components/MemoryFields.d.ts.map +1 -1
  319. package/dist/routes/memories/components/MemoryFields.js +34 -5
  320. package/dist/routes/memories/components/MemoryFields.js.map +1 -1
  321. package/dist/routes/memories/components/MemoryFormDialog.d.ts +6 -3
  322. package/dist/routes/memories/components/MemoryFormDialog.d.ts.map +1 -1
  323. package/dist/routes/memories/components/MemoryFormDialog.js +105 -59
  324. package/dist/routes/memories/components/MemoryFormDialog.js.map +1 -1
  325. package/dist/routes/memories/components/MemoryPropertyFields.d.ts +10 -0
  326. package/dist/routes/memories/components/MemoryPropertyFields.d.ts.map +1 -0
  327. package/dist/routes/memories/components/MemoryPropertyFields.js +67 -0
  328. package/dist/routes/memories/components/MemoryPropertyFields.js.map +1 -0
  329. package/dist/routes/memories/components/RuleDraftDialog.d.ts +7 -0
  330. package/dist/routes/memories/components/RuleDraftDialog.d.ts.map +1 -0
  331. package/dist/routes/memories/components/RuleDraftDialog.js +20 -0
  332. package/dist/routes/memories/components/RuleDraftDialog.js.map +1 -0
  333. package/dist/routes/memories/components/SchemasTab.d.ts +17 -2
  334. package/dist/routes/memories/components/SchemasTab.d.ts.map +1 -1
  335. package/dist/routes/memories/components/SchemasTab.js +146 -28
  336. package/dist/routes/memories/components/SchemasTab.js.map +1 -1
  337. package/dist/routes/memories/components/badges.d.ts +7 -0
  338. package/dist/routes/memories/components/badges.d.ts.map +1 -1
  339. package/dist/routes/memories/components/badges.js +11 -3
  340. package/dist/routes/memories/components/badges.js.map +1 -1
  341. package/dist/routes/memories/hooks/useMemoryColumns.d.ts +4 -2
  342. package/dist/routes/memories/hooks/useMemoryColumns.d.ts.map +1 -1
  343. package/dist/routes/memories/hooks/useMemoryColumns.js +31 -15
  344. package/dist/routes/memories/hooks/useMemoryColumns.js.map +1 -1
  345. package/dist/routes/memories/index.d.ts +2 -1
  346. package/dist/routes/memories/index.d.ts.map +1 -1
  347. package/dist/routes/memories/index.js +72 -30
  348. package/dist/routes/memories/index.js.map +1 -1
  349. package/dist/routes/memories/memory-mutation-input.d.ts.map +1 -1
  350. package/dist/routes/memories/memory-mutation-input.js +5 -2
  351. package/dist/routes/memories/memory-mutation-input.js.map +1 -1
  352. package/dist/routes/memories/memory-property-values.d.ts +13 -0
  353. package/dist/routes/memories/memory-property-values.d.ts.map +1 -0
  354. package/dist/routes/memories/memory-property-values.js +40 -0
  355. package/dist/routes/memories/memory-property-values.js.map +1 -0
  356. package/dist/routes/memories/schemas/AllowedValuesField.d.ts +14 -0
  357. package/dist/routes/memories/schemas/AllowedValuesField.d.ts.map +1 -0
  358. package/dist/routes/memories/schemas/AllowedValuesField.js +64 -0
  359. package/dist/routes/memories/schemas/AllowedValuesField.js.map +1 -0
  360. package/dist/routes/memories/schemas/MemorySchemaPage.d.ts +127 -0
  361. package/dist/routes/memories/schemas/MemorySchemaPage.d.ts.map +1 -0
  362. package/dist/routes/memories/schemas/MemorySchemaPage.js +285 -0
  363. package/dist/routes/memories/schemas/MemorySchemaPage.js.map +1 -0
  364. package/dist/routes/memories/schemas/SchemaChangeReviewDialog.d.ts +20 -0
  365. package/dist/routes/memories/schemas/SchemaChangeReviewDialog.d.ts.map +1 -0
  366. package/dist/routes/memories/schemas/SchemaChangeReviewDialog.js +54 -0
  367. package/dist/routes/memories/schemas/SchemaChangeReviewDialog.js.map +1 -0
  368. package/dist/routes/memories/schemas/SchemaConfirmDialog.d.ts +15 -0
  369. package/dist/routes/memories/schemas/SchemaConfirmDialog.d.ts.map +1 -0
  370. package/dist/routes/memories/schemas/SchemaConfirmDialog.js +8 -0
  371. package/dist/routes/memories/schemas/SchemaConfirmDialog.js.map +1 -0
  372. package/dist/routes/memories/schemas/SchemaDetailPage.d.ts +15 -0
  373. package/dist/routes/memories/schemas/SchemaDetailPage.d.ts.map +1 -0
  374. package/dist/routes/memories/schemas/SchemaDetailPage.js +74 -0
  375. package/dist/routes/memories/schemas/SchemaDetailPage.js.map +1 -0
  376. package/dist/routes/memories/schemas/SchemaEditorForm.d.ts +10 -0
  377. package/dist/routes/memories/schemas/SchemaEditorForm.d.ts.map +1 -0
  378. package/dist/routes/memories/schemas/SchemaEditorForm.js +242 -0
  379. package/dist/routes/memories/schemas/SchemaEditorForm.js.map +1 -0
  380. package/dist/routes/memories/schemas/SchemaTemplatesDialog.d.ts +13 -0
  381. package/dist/routes/memories/schemas/SchemaTemplatesDialog.d.ts.map +1 -0
  382. package/dist/routes/memories/schemas/SchemaTemplatesDialog.js +13 -0
  383. package/dist/routes/memories/schemas/SchemaTemplatesDialog.js.map +1 -0
  384. package/dist/routes/memories/schemas/ValueTypeSelect.d.ts +12 -0
  385. package/dist/routes/memories/schemas/ValueTypeSelect.d.ts.map +1 -0
  386. package/dist/routes/memories/schemas/ValueTypeSelect.js +10 -0
  387. package/dist/routes/memories/schemas/ValueTypeSelect.js.map +1 -0
  388. package/dist/routes/memories/schemas/schema-form.d.ts +72 -0
  389. package/dist/routes/memories/schemas/schema-form.d.ts.map +1 -0
  390. package/dist/routes/memories/schemas/schema-form.js +279 -0
  391. package/dist/routes/memories/schemas/schema-form.js.map +1 -0
  392. package/dist/routes/memories/schemas/schema-impact.d.ts +13 -0
  393. package/dist/routes/memories/schemas/schema-impact.d.ts.map +1 -0
  394. package/dist/routes/memories/schemas/schema-impact.js +40 -0
  395. package/dist/routes/memories/schemas/schema-impact.js.map +1 -0
  396. package/dist/routes/memories/schemas/schema-route.d.ts +18 -0
  397. package/dist/routes/memories/schemas/schema-route.d.ts.map +1 -0
  398. package/dist/routes/memories/schemas/schema-route.js +21 -0
  399. package/dist/routes/memories/schemas/schema-route.js.map +1 -0
  400. package/dist/routes/memories/schemas/schema-rule-context.d.ts +17 -0
  401. package/dist/routes/memories/schemas/schema-rule-context.d.ts.map +1 -0
  402. package/dist/routes/memories/schemas/schema-rule-context.js +83 -0
  403. package/dist/routes/memories/schemas/schema-rule-context.js.map +1 -0
  404. package/dist/routes/memories/schemas/schema-table.d.ts +11 -0
  405. package/dist/routes/memories/schemas/schema-table.d.ts.map +1 -0
  406. package/dist/routes/memories/schemas/schema-table.js +34 -0
  407. package/dist/routes/memories/schemas/schema-table.js.map +1 -0
  408. package/dist/routes/memories/schemas/useMemorySchemaMutations.d.ts +32 -0
  409. package/dist/routes/memories/schemas/useMemorySchemaMutations.d.ts.map +1 -0
  410. package/dist/routes/memories/schemas/useMemorySchemaMutations.js +31 -0
  411. package/dist/routes/memories/schemas/useMemorySchemaMutations.js.map +1 -0
  412. package/dist/routes/memories/schemas/useSchemaChangeReview.d.ts +51 -0
  413. package/dist/routes/memories/schemas/useSchemaChangeReview.d.ts.map +1 -0
  414. package/dist/routes/memories/schemas/useSchemaChangeReview.js +175 -0
  415. package/dist/routes/memories/schemas/useSchemaChangeReview.js.map +1 -0
  416. package/dist/routes/memories/schemas/useSchemaLifecycle.d.ts +46 -0
  417. package/dist/routes/memories/schemas/useSchemaLifecycle.d.ts.map +1 -0
  418. package/dist/routes/memories/schemas/useSchemaLifecycle.js +93 -0
  419. package/dist/routes/memories/schemas/useSchemaLifecycle.js.map +1 -0
  420. package/dist/routes/memories/schemas/useSchemasTab.d.ts +18 -0
  421. package/dist/routes/memories/schemas/useSchemasTab.d.ts.map +1 -0
  422. package/dist/routes/memories/schemas/useSchemasTab.js +92 -0
  423. package/dist/routes/memories/schemas/useSchemasTab.js.map +1 -0
  424. package/dist/routes/plans/index.d.ts.map +1 -1
  425. package/dist/routes/plans/index.js +2 -2
  426. package/dist/routes/plans/index.js.map +1 -1
  427. package/dist/routes/rules/components/CreateRuleChatModal.d.ts +7 -1
  428. package/dist/routes/rules/components/CreateRuleChatModal.d.ts.map +1 -1
  429. package/dist/routes/rules/components/CreateRuleChatModal.js +9 -4
  430. package/dist/routes/rules/components/CreateRuleChatModal.js.map +1 -1
  431. package/dist/routes/rules/components/RuleValueControls.d.ts.map +1 -1
  432. package/dist/routes/rules/components/RuleValueControls.js +3 -24
  433. package/dist/routes/rules/components/RuleValueControls.js.map +1 -1
  434. package/dist/routes/rules/components/rule-value-input.d.ts +11 -0
  435. package/dist/routes/rules/components/rule-value-input.d.ts.map +1 -0
  436. package/dist/routes/rules/components/rule-value-input.js +24 -0
  437. package/dist/routes/rules/components/rule-value-input.js.map +1 -0
  438. package/dist/routes/rules/components/rules.utils.d.ts +5 -0
  439. package/dist/routes/rules/components/rules.utils.d.ts.map +1 -1
  440. package/dist/routes/rules/components/rules.utils.js +18 -3
  441. package/dist/routes/rules/components/rules.utils.js.map +1 -1
  442. package/dist/routes/rules/pages.d.ts +1 -1
  443. package/dist/routes/rules/pages.d.ts.map +1 -1
  444. package/dist/routes/rules/pages.js +1 -1
  445. package/dist/routes/rules/pages.js.map +1 -1
  446. package/dist/shared/graph-derived-queries.d.ts.map +1 -1
  447. package/dist/shared/graph-derived-queries.js +4 -1
  448. package/dist/shared/graph-derived-queries.js.map +1 -1
  449. package/dist/worker/index.d.ts +22 -0
  450. package/dist/worker/index.d.ts.map +1 -0
  451. package/dist/worker/index.js +110 -0
  452. package/dist/worker/index.js.map +1 -0
  453. package/dist/worker/policy.d.ts +21 -0
  454. package/dist/worker/policy.d.ts.map +1 -0
  455. package/dist/worker/policy.js +42 -0
  456. package/dist/worker/policy.js.map +1 -0
  457. package/dist/worker/proxy.d.ts +14 -0
  458. package/dist/worker/proxy.d.ts.map +1 -0
  459. package/dist/worker/proxy.js +58 -0
  460. package/dist/worker/proxy.js.map +1 -0
  461. package/dist/worker/session.d.ts +24 -0
  462. package/dist/worker/session.d.ts.map +1 -0
  463. package/dist/worker/session.js +72 -0
  464. package/dist/worker/session.js.map +1 -0
  465. package/package.json +52 -7
  466. package/src/app-subpaths.json +9 -1
  467. package/src/components/AppErrorBoundary.tsx +14 -11
  468. package/src/components/app-gate/AppGate.tsx +122 -0
  469. package/src/components/app-gate/AwaitingDatastoreStatus.tsx +35 -0
  470. package/src/components/app-gate/EnterDatastoreRoute.tsx +30 -0
  471. package/src/components/app-gate/ErrorRoute.tsx +43 -0
  472. package/src/components/app-gate/FailureAlert.tsx +15 -0
  473. package/src/components/app-gate/NoDatastoreAccess.tsx +26 -0
  474. package/src/components/app-gate/NotFoundRoute.tsx +20 -0
  475. package/src/components/app-gate/PendingInvitations.tsx +134 -0
  476. package/src/components/app-gate/ServiceError.tsx +27 -0
  477. package/src/components/app-gate/index.ts +2 -0
  478. package/src/components/app-gate/sdk-route-elements.tsx +46 -0
  479. package/src/components/app-shell/AppShell.tsx +22 -0
  480. package/src/components/app-shell/AppShellRoutes.tsx +34 -0
  481. package/src/components/app-shell/GroupDatastores.tsx +28 -0
  482. package/src/components/app-shell/GroupRoute.tsx +34 -0
  483. package/src/components/app-shell/index.ts +2 -0
  484. package/src/components/authenticated-chat/index.tsx +1 -34
  485. package/src/components/chat-view/Chat.tsx +9 -3
  486. package/src/components/chat-view/MessageItem.tsx +10 -2
  487. package/src/components/chat-view/tool-part-rendering.ts +10 -1
  488. package/src/components/chip/index.tsx +8 -1
  489. package/src/components/embedded-chat/index.tsx +2 -1
  490. package/src/components/input/input-date-time.tsx +10 -3
  491. package/src/components/input/input-date.tsx +93 -21
  492. package/src/components/input/input-time.tsx +59 -26
  493. package/src/components/layouts/RouteLayout.tsx +11 -50
  494. package/src/components/layouts/Sidebar.tsx +21 -23
  495. package/src/components/plan-limits/PlanLimitsDialog.tsx +331 -0
  496. package/src/components/plan-limits/index.tsx +3 -0
  497. package/src/components/plan-limits/plan-limits-client.ts +71 -0
  498. package/src/components/plan-limits/plan-limits-model.ts +180 -0
  499. package/src/components/plan-limits/plan-limits-save.ts +68 -0
  500. package/src/components/planning/PlanLimitsAction.tsx +44 -0
  501. package/src/components/slider/index.tsx +2 -1
  502. package/src/datastore-picker/datastore-picker-rows.ts +36 -20
  503. package/src/hooks/use-action-plans-list.ts +20 -12
  504. package/src/hooks/use-activity-feed.ts +30 -14
  505. package/src/hooks/use-entity.ts +11 -6
  506. package/src/hooks/use-manual-actions.ts +11 -6
  507. package/src/hooks/use-unsaved-changes-warning.ts +12 -0
  508. package/src/hooks/useAuth.ts +5 -3
  509. package/src/hooks/useChatPanelSync.ts +2 -3
  510. package/src/hooks/useDatastoreSelection.ts +10 -4
  511. package/src/hooks/useExecuteAction.ts +2 -0
  512. package/src/hooks/useLoginRedirect.ts +66 -0
  513. package/src/hooks/usePlanLimits.ts +97 -0
  514. package/src/ldo-ui.ts +1 -0
  515. package/src/lib/app-tools.ts +63 -0
  516. package/src/lib/chat-types.ts +5 -0
  517. package/src/lib/datastore-route-table.ts +9 -0
  518. package/src/lib/graphql-error.ts +7 -0
  519. package/src/lib/update-notice.ts +12 -2
  520. package/src/providers/ActiveChatProvider.tsx +8 -3
  521. package/src/providers/ActiveDatastoreProvider.tsx +179 -9
  522. package/src/providers/AuthContext.ts +1 -0
  523. package/src/providers/KnowledgeGraphStateContext.ts +2 -2
  524. package/src/providers/KnowledgeGraphStateProvider.tsx +13 -65
  525. package/src/providers/MantaClientProvider.tsx +8 -3
  526. package/src/providers/index.tsx +7 -4
  527. package/src/routes/activity/detail/ActivityDetailRoute.tsx +1 -10
  528. package/src/routes/activity/index.tsx +1 -10
  529. package/src/routes/chat/index.tsx +11 -47
  530. package/src/routes/data-collection/index.tsx +1 -11
  531. package/src/routes/data-explorer/components/DataExplorerLayout.tsx +1 -11
  532. package/src/routes/data-explorer/components/class-detail/UsedByRules.tsx +2 -2
  533. package/src/routes/datastores/index.tsx +3 -9
  534. package/src/routes/explain/index.tsx +1 -11
  535. package/src/routes/integrations/components/connect-forms/DashConnectForm.tsx +0 -1
  536. package/src/routes/integrations/components/connect-forms/GoogleAdsConnectForm.tsx +0 -1
  537. package/src/routes/integrations/components/connect-forms/GoogleAnalyticsConnectForm.tsx +0 -1
  538. package/src/routes/integrations/components/connect-forms/GoogleMerchantCenterConnectForm.tsx +0 -1
  539. package/src/routes/integrations/components/connect-forms/InferalCredentialConnectForm.tsx +5 -3
  540. package/src/routes/integrations/components/connect-forms/KlaviyoConnectForm.tsx +0 -1
  541. package/src/routes/integrations/components/connect-forms/MicrosoftAdsConnectForm.tsx +0 -1
  542. package/src/routes/integrations/components/connect-forms/OAuthSetupConnectForm.tsx +7 -7
  543. package/src/routes/integrations/components/connect-forms/TriplewhaleConnectForm.tsx +0 -1
  544. package/src/routes/integrations/components/connect-forms/WoocommerceConnectForm.tsx +0 -1
  545. package/src/routes/integrations/types.ts +22 -6
  546. package/src/routes/memories/components/DateValueInput.tsx +72 -0
  547. package/src/routes/memories/components/EntityValuePicker.tsx +132 -0
  548. package/src/routes/memories/components/FieldLabel.tsx +49 -0
  549. package/src/routes/memories/components/ImportanceSlider.tsx +5 -1
  550. package/src/routes/memories/components/MemoriesFilters.tsx +2 -2
  551. package/src/routes/memories/components/MemoriesPanel.tsx +7 -3
  552. package/src/routes/memories/components/MemoriesTabPanel.tsx +2 -2
  553. package/src/routes/memories/components/MemoryActions.tsx +26 -2
  554. package/src/routes/memories/components/MemoryFields.tsx +75 -12
  555. package/src/routes/memories/components/MemoryFormDialog.tsx +305 -199
  556. package/src/routes/memories/components/MemoryPropertyFields.tsx +288 -0
  557. package/src/routes/memories/components/RuleDraftDialog.tsx +35 -0
  558. package/src/routes/memories/components/SchemasTab.tsx +481 -118
  559. package/src/routes/memories/components/badges.tsx +16 -4
  560. package/src/routes/memories/hooks/useMemoryColumns.tsx +69 -35
  561. package/src/routes/memories/index.tsx +125 -51
  562. package/src/routes/memories/memory-mutation-input.ts +5 -2
  563. package/src/routes/memories/memory-property-values.ts +83 -0
  564. package/src/routes/memories/schemas/AllowedValuesField.tsx +188 -0
  565. package/src/routes/memories/schemas/MemorySchemaPage.tsx +476 -0
  566. package/src/routes/memories/schemas/SchemaChangeReviewDialog.tsx +290 -0
  567. package/src/routes/memories/schemas/SchemaConfirmDialog.tsx +62 -0
  568. package/src/routes/memories/schemas/SchemaDetailPage.tsx +373 -0
  569. package/src/routes/memories/schemas/SchemaEditorForm.tsx +990 -0
  570. package/src/routes/memories/schemas/SchemaTemplatesDialog.tsx +81 -0
  571. package/src/routes/memories/schemas/ValueTypeSelect.tsx +37 -0
  572. package/src/routes/memories/schemas/schema-form.ts +360 -0
  573. package/src/routes/memories/schemas/schema-impact.ts +66 -0
  574. package/src/routes/memories/schemas/schema-route.ts +30 -0
  575. package/src/routes/memories/schemas/schema-rule-context.ts +103 -0
  576. package/src/routes/memories/schemas/schema-table.ts +54 -0
  577. package/src/routes/memories/schemas/useMemorySchemaMutations.ts +49 -0
  578. package/src/routes/memories/schemas/useSchemaChangeReview.ts +238 -0
  579. package/src/routes/memories/schemas/useSchemaLifecycle.tsx +151 -0
  580. package/src/routes/memories/schemas/useSchemasTab.ts +119 -0
  581. package/src/routes/plans/index.tsx +3 -14
  582. package/src/routes/rules/components/CreateRuleChatModal.tsx +46 -22
  583. package/src/routes/rules/components/RuleValueControls.tsx +3 -35
  584. package/src/routes/rules/components/rule-value-input.ts +34 -0
  585. package/src/routes/rules/components/rules.utils.ts +25 -3
  586. package/src/routes/rules/pages.ts +5 -1
  587. package/src/shared/graph-derived-queries.ts +6 -0
  588. package/src/themes/manta-dark.css +4 -0
  589. package/src/worker/index.ts +175 -0
  590. package/src/worker/policy.ts +62 -0
  591. package/src/worker/proxy.ts +101 -0
  592. package/src/worker/session.ts +111 -0
@@ -0,0 +1,43 @@
1
+ import { Button } from "#components/button/index";
2
+ import { StatusScreen } from "#components/layouts/StatusScreen";
3
+ import { Link, useSearchParams } from "react-router";
4
+ import { match } from "ts-pattern";
5
+
6
+ type ErrorCopy = {
7
+ title: string;
8
+ description: string;
9
+ };
10
+
11
+ const genericErrorCopy: ErrorCopy = {
12
+ title: "Something went wrong",
13
+ description: "We couldn't open this link.",
14
+ };
15
+
16
+ function copyForStatus(status: string | null): ErrorCopy {
17
+ return match(status)
18
+ .with("400", () => ({
19
+ title: "Broken link",
20
+ description: "This link isn't valid.",
21
+ }))
22
+ .with("404", () => ({
23
+ title: "Nothing to open",
24
+ description: "We couldn't find anything at this link.",
25
+ }))
26
+ .otherwise(() => genericErrorCopy);
27
+ }
28
+
29
+ export function ErrorRoute() {
30
+ const [searchParams] = useSearchParams();
31
+
32
+ const { title, description } = copyForStatus(searchParams.get("status"));
33
+
34
+ return (
35
+ <div className="h-screen w-full">
36
+ <StatusScreen title={title} description={description} role="alert">
37
+ <Button asChild variant="secondary">
38
+ <Link to="/">Back to Manta</Link>
39
+ </Button>
40
+ </StatusScreen>
41
+ </div>
42
+ );
43
+ }
@@ -0,0 +1,15 @@
1
+ import { isPresent } from "@manta-eu/lib/present";
2
+
3
+ export type FailureAlertProps = { failure?: string };
4
+
5
+ export function FailureAlert(props: FailureAlertProps) {
6
+ const { failure } = props;
7
+
8
+ if (!isPresent(failure)) return null;
9
+
10
+ return (
11
+ <p role="alert" className="text-center text-balance typography-small text-error-foreground">
12
+ {failure}
13
+ </p>
14
+ );
15
+ }
@@ -0,0 +1,26 @@
1
+ import { isPresent } from "@manta-eu/lib/present";
2
+ import { Button } from "#components/button/index";
3
+ import { StatusScreen } from "#components/layouts/StatusScreen";
4
+ import type { Datastore } from "#lib/chat-types";
5
+
6
+ export type NoDatastoreAccessProps = { requestedDatastoreId: string; datastore?: Datastore; onEnter: () => void };
7
+
8
+ export function NoDatastoreAccess(props: NoDatastoreAccessProps) {
9
+ const { requestedDatastoreId, datastore, onEnter } = props;
10
+
11
+ return (
12
+ <div className="h-screen">
13
+ <StatusScreen
14
+ title={`You don't have access to "${requestedDatastoreId}"`}
15
+ description="Ask whoever shared this link to grant you access, or open one of your own datastores."
16
+ role="alert"
17
+ >
18
+ {isPresent(datastore) && (
19
+ <Button variant="tertiary" rounded="sm" data-testid="no-datastore-access-enter" onClick={onEnter}>
20
+ Go to {datastore.name}
21
+ </Button>
22
+ )}
23
+ </StatusScreen>
24
+ </div>
25
+ );
26
+ }
@@ -0,0 +1,20 @@
1
+ import { Button } from "#components/button/index";
2
+ import { RouteLayout } from "#components/layouts/RouteLayout";
3
+ import { StatusScreen } from "#components/layouts/StatusScreen";
4
+ import { Link } from "react-router";
5
+
6
+ export function NotFoundRoute() {
7
+ return (
8
+ <RouteLayout>
9
+ <StatusScreen
10
+ title="Page not found"
11
+ description="This page doesn't exist, or your account doesn't have access to it."
12
+ role="alert"
13
+ >
14
+ <Button asChild variant="secondary">
15
+ <Link to="/">Back to Manta</Link>
16
+ </Button>
17
+ </StatusScreen>
18
+ </RouteLayout>
19
+ );
20
+ }
@@ -0,0 +1,134 @@
1
+ import { isPresent } from "@manta-eu/lib/present";
2
+ import { useQueryClient } from "@tanstack/react-query";
3
+ import { match } from "ts-pattern";
4
+ import { AwaitingDatastoreStatus } from "./AwaitingDatastoreStatus";
5
+ import { FailureAlert } from "./FailureAlert";
6
+ import { Button } from "#components/button/index";
7
+ import { LoadingView } from "#components/chat-view/LoadingView";
8
+ import { StatusScreen } from "#components/layouts/StatusScreen";
9
+ import { userContextQueryKey } from "#hooks/useAuth";
10
+ import { graphqlErrorMessage } from "#lib/graphql-error";
11
+ import { useMantaClient } from "#providers/MantaClientProvider";
12
+ import {
13
+ useAcceptInvitationMutation,
14
+ useDeclineInvitationMutation,
15
+ usePendingInvitationsQuery,
16
+ } from "@manta-eu/client";
17
+
18
+ export type PendingInvitationsProps = { onSignOut: () => void };
19
+
20
+ const invitationsStaleMs = 30_000;
21
+
22
+ export function PendingInvitations(props: PendingInvitationsProps) {
23
+ const { onSignOut } = props;
24
+
25
+ const { mantaClient } = useMantaClient();
26
+
27
+ const queryClient = useQueryClient();
28
+
29
+ const invitationsQuery = usePendingInvitationsQuery(mantaClient, undefined, {
30
+ staleTime: invitationsStaleMs,
31
+ refetchInterval: invitationsStaleMs,
32
+ refetchIntervalInBackground: false,
33
+ retry: 1,
34
+ });
35
+
36
+ function refreshInvitations() {
37
+ return queryClient.invalidateQueries({ queryKey: usePendingInvitationsQuery.getKey() });
38
+ }
39
+
40
+ const acceptMutation = useAcceptInvitationMutation(mantaClient, {
41
+ onSuccess: () => queryClient.invalidateQueries({ queryKey: userContextQueryKey }),
42
+ onError: refreshInvitations,
43
+ });
44
+ const declineMutation = useDeclineInvitationMutation(mantaClient, { onSettled: refreshInvitations });
45
+
46
+ const invitations = invitationsQuery.data?.pendingInvitations ?? [];
47
+ const [only] = invitations;
48
+
49
+ const busy = acceptMutation.isPending || declineMutation.isPending;
50
+
51
+ const failure = match({ acceptMutation, declineMutation, invitationsQuery })
52
+ .with({ acceptMutation: { isError: true } }, (failed) =>
53
+ graphqlErrorMessage(failed.acceptMutation.error, "The invitation could not be accepted. Try again."),
54
+ )
55
+ .with({ declineMutation: { isError: true } }, (failed) =>
56
+ graphqlErrorMessage(failed.declineMutation.error, "The invitation could not be declined. Try again."),
57
+ )
58
+ .with({ invitationsQuery: { isError: true } }, (failed) =>
59
+ graphqlErrorMessage(
60
+ failed.invitationsQuery.error,
61
+ "Your invitations could not be loaded. Reload the page to try again.",
62
+ ),
63
+ )
64
+ .otherwise(() => undefined);
65
+
66
+ if (acceptMutation.isSuccess) return <AwaitingDatastoreStatus inOrganization onSignOut={onSignOut} />;
67
+
68
+ if (invitationsQuery.isPending) return <LoadingView />;
69
+
70
+ if (!isPresent(invitations)) {
71
+ return <AwaitingDatastoreStatus inOrganization={false} failure={failure} onSignOut={onSignOut} />;
72
+ }
73
+
74
+ return (
75
+ <div className="h-screen w-full">
76
+ <StatusScreen
77
+ title="You've been invited"
78
+ description={
79
+ invitations.length === 1 && isPresent(only)
80
+ ? `${only.organizationName} invited you to join their organization.`
81
+ : "These organizations invited you. Pick the one to join."
82
+ }
83
+ branded
84
+ >
85
+ <div className="flex w-104 max-w-full flex-col gap-4">
86
+ <FailureAlert failure={failure} />
87
+ <ul className="divide-y divide-muted-border overflow-hidden rounded-lg-v4 border border-muted-border bg-card text-left">
88
+ {invitations.map((invitation) => (
89
+ <li key={invitation.organizationId} className="flex items-center gap-3 px-4 py-3">
90
+ <span className="min-w-0 flex-1 truncate typography-body-semibold text-default-foreground">
91
+ {invitation.organizationName}
92
+ </span>
93
+ <Button
94
+ variant="tertiary"
95
+ size="sm"
96
+ data-testid="decline-invitation"
97
+ aria-label={`Decline ${invitation.organizationName}'s invitation`}
98
+ disabled={busy}
99
+ onClick={() => {
100
+ acceptMutation.reset();
101
+ declineMutation.mutate({ organizationId: invitation.organizationId });
102
+ }}
103
+ >
104
+ Decline
105
+ </Button>
106
+ <Button
107
+ size="sm"
108
+ data-testid="accept-invitation"
109
+ aria-label={`Join ${invitation.organizationName}`}
110
+ disabled={busy}
111
+ onClick={() => {
112
+ declineMutation.reset();
113
+ acceptMutation.mutate({ organizationId: invitation.organizationId });
114
+ }}
115
+ >
116
+ Join
117
+ </Button>
118
+ </li>
119
+ ))}
120
+ </ul>
121
+ <Button
122
+ variant="tertiary"
123
+ rounded="sm"
124
+ data-testid="awaiting-datastore-sign-out"
125
+ onClick={onSignOut}
126
+ className="self-center"
127
+ >
128
+ Sign out
129
+ </Button>
130
+ </div>
131
+ </StatusScreen>
132
+ </div>
133
+ );
134
+ }
@@ -0,0 +1,27 @@
1
+ import { isPresent } from "@manta-eu/lib/present";
2
+ import { Button } from "#components/button/index";
3
+ import { StatusScreen } from "#components/layouts/StatusScreen";
4
+
5
+ export type ServiceErrorProps = { title?: string; message: string; onRetry?: () => void; onSignOut?: () => void };
6
+
7
+ export function ServiceError(props: ServiceErrorProps) {
8
+ const { title = "Something went wrong", message, onRetry, onSignOut } = props;
9
+
10
+ const handleRetry = onRetry ?? (() => window.location.reload());
11
+
12
+ return (
13
+ <div data-testid="service-error" className="h-screen w-full">
14
+ <StatusScreen title={title} description={message} role="alert">
15
+ <Button variant="tertiary" rounded="sm" onClick={handleRetry}>
16
+ {isPresent(onRetry) ? "Try again" : "Retry"}
17
+ </Button>
18
+
19
+ {isPresent(onSignOut) && (
20
+ <Button variant="tertiary" rounded="sm" data-testid="service-error-sign-out" onClick={onSignOut}>
21
+ Sign out
22
+ </Button>
23
+ )}
24
+ </StatusScreen>
25
+ </div>
26
+ );
27
+ }
@@ -0,0 +1,2 @@
1
+ export { AppGate, type AppGateProps } from "./AppGate";
2
+ export { sdkRouteElements } from "./sdk-route-elements";
@@ -0,0 +1,46 @@
1
+ import { GroupRoute } from "#components/app-shell/GroupRoute";
2
+ import { AuthenticatedChat } from "#components/authenticated-chat/index";
3
+ import { EnterDatastoreRoute } from "./EnterDatastoreRoute";
4
+ import { NotFoundRoute } from "./NotFoundRoute";
5
+ import type { RouteElements } from "#lib/datastore-route-table";
6
+ import { ActivityRoute } from "#routes/activity/index";
7
+ import { ActivityDetailRoute } from "#routes/activity/detail/ActivityDetailRoute";
8
+ import { DataCollectionRoute } from "#routes/data-collection/index";
9
+ import {
10
+ DataDetailRoute,
11
+ DataExplorerCoverageRoute,
12
+ DataExplorerEntityRoute,
13
+ DataExplorerFilesRoute,
14
+ DataExplorerIndexRoute,
15
+ DataExplorerIngestRoute,
16
+ DataExplorerLayout,
17
+ DataExplorerPrefixRoute,
18
+ DataExplorerRecentRoute,
19
+ DataExplorerTypeRoute,
20
+ } from "#routes/data-explorer/index";
21
+ import { ExplainRoute } from "#routes/explain/index";
22
+ import { MemoriesRoute } from "#routes/memories/index";
23
+ import { PlansRoute } from "#routes/plans/index";
24
+
25
+ export const sdkRouteElements = {
26
+ Chat: <AuthenticatedChat />,
27
+ EnterDatastore: <EnterDatastoreRoute />,
28
+ Group: <GroupRoute />,
29
+ Plans: <PlansRoute />,
30
+ Explain: <ExplainRoute />,
31
+ Memories: <MemoriesRoute />,
32
+ Activity: <ActivityRoute />,
33
+ ActivityDetail: <ActivityDetailRoute />,
34
+ DataExplorerLayout: <DataExplorerLayout />,
35
+ DataExplorerIndex: <DataExplorerIndexRoute />,
36
+ DataExplorerRecent: <DataExplorerRecentRoute />,
37
+ DataExplorerCoverage: <DataExplorerCoverageRoute />,
38
+ DataExplorerFiles: <DataExplorerFilesRoute />,
39
+ DataExplorerIngest: <DataExplorerIngestRoute />,
40
+ DataCollection: <DataCollectionRoute />,
41
+ DataExplorerPrefix: <DataExplorerPrefixRoute />,
42
+ DataExplorerType: <DataExplorerTypeRoute />,
43
+ DataEntity: <DataExplorerEntityRoute />,
44
+ DataDetail: <DataDetailRoute />,
45
+ NotFound: <NotFoundRoute />,
46
+ } satisfies RouteElements;
@@ -0,0 +1,22 @@
1
+ import { AppGate } from "#components/app-gate/index";
2
+ import { Providers } from "#providers/index";
3
+ import { NavExtrasProvider, type NavExtra } from "#providers/NavExtrasProvider";
4
+ import { AppShellRoutes, type AppShellRoutesProps } from "./AppShellRoutes";
5
+
6
+ export type AppShellProps = AppShellRoutesProps & { navItems?: NavExtra[] };
7
+
8
+ export function AppShell(props: AppShellProps) {
9
+ const { navItems, ...routes } = props;
10
+
11
+ return (
12
+ <Providers mantaBaseUrl={window.location.origin}>
13
+ <NavExtrasProvider items={navItems}>
14
+ <div className="typography-body text-default-foreground">
15
+ <AppGate>
16
+ <AppShellRoutes {...routes} />
17
+ </AppGate>
18
+ </div>
19
+ </NavExtrasProvider>
20
+ </Providers>
21
+ );
22
+ }
@@ -0,0 +1,34 @@
1
+ import { isPresent } from "@manta-eu/lib/present";
2
+ import { sdkRouteElements } from "#components/app-gate/index";
3
+ import type { RouteElements } from "#lib/datastore-route-table";
4
+ import { getDatastoreRoutes, getGlobalRoutes } from "#lib/datastore-routes";
5
+ import { useActiveDatastore } from "#providers/index";
6
+ import { useAuthContext } from "#providers/AuthContext";
7
+ import { ChatManagerProvider, type ChatManagerProviderProps } from "#providers/ChatManagerProvider";
8
+ import { DatastoresRoute } from "#routes/datastores/index";
9
+ import type { ReactNode } from "react";
10
+
11
+ export type AppShellRoutesProps = Pick<ChatManagerProviderProps, "onStartupTiming"> & {
12
+ routes?: Partial<RouteElements>;
13
+ datastoreRoutes?: ReactNode;
14
+ };
15
+
16
+ export function AppShellRoutes(props: AppShellRoutesProps) {
17
+ const { routes, datastoreRoutes, onStartupTiming } = props;
18
+
19
+ const { canManageDatastores, datastore } = useAuthContext();
20
+
21
+ const { datastoreId: routeDatastoreId } = useActiveDatastore();
22
+
23
+ const elements: RouteElements = {
24
+ ...sdkRouteElements,
25
+ ...(canManageDatastores && { Datastores: <DatastoresRoute /> }),
26
+ ...routes,
27
+ };
28
+
29
+ return (
30
+ <ChatManagerProvider key={datastore?.id} datastoreId={datastore?.id} onStartupTiming={onStartupTiming}>
31
+ {isPresent(routeDatastoreId) ? getDatastoreRoutes(elements, datastoreRoutes) : getGlobalRoutes(elements)}
32
+ </ChatManagerProvider>
33
+ );
34
+ }
@@ -0,0 +1,28 @@
1
+ import { isPresent } from "@manta-eu/lib/present";
2
+ import { Button } from "#components/button/index";
3
+ import { LoadingView } from "#components/chat-view/LoadingView";
4
+ import { EmptyState } from "#components/empty-state/index";
5
+ import type { Datastore } from "#lib/chat-types";
6
+ import { Building2 } from "lucide-react";
7
+
8
+ export type GroupDatastoresProps = { members: Datastore[]; isLoading: boolean; onOpen: (datastoreId: string) => void };
9
+
10
+ export function GroupDatastores(props: GroupDatastoresProps) {
11
+ const { members, isLoading, onOpen } = props;
12
+
13
+ if (isLoading) return <LoadingView />;
14
+
15
+ if (!isPresent(members)) return <EmptyState icon={Building2} title="No datastores you can open are in this group." />;
16
+
17
+ return (
18
+ <ul data-testid="group-datastores" className="flex flex-col gap-1">
19
+ {members.map((member) => (
20
+ <li key={member.id}>
21
+ <Button variant="ghost" rounded="lg" className="w-full justify-start" onClick={() => onOpen(member.id)}>
22
+ {member.name}
23
+ </Button>
24
+ </li>
25
+ ))}
26
+ </ul>
27
+ );
28
+ }
@@ -0,0 +1,34 @@
1
+ import { useDatastoreTreeQuery } from "@manta-eu/client";
2
+ import { PageBody, PageHeader } from "#components/layouts/page/index";
3
+ import { RouteLayout } from "#components/layouts/RouteLayout";
4
+ import { datastoreOfTreeNode, groupMembers } from "#datastore-picker/datastore-picker-rows";
5
+ import { useActiveDatastore, useMantaClient } from "#providers/index";
6
+ import { useAuthContext } from "#providers/AuthContext";
7
+ import { Building2 } from "lucide-react";
8
+ import { useParams } from "react-router";
9
+ import { GroupDatastores } from "./GroupDatastores";
10
+
11
+ export function GroupRoute() {
12
+ const { group = "" } = useParams();
13
+
14
+ const { datastores = [], isOperator } = useAuthContext();
15
+
16
+ const { enterDatastore } = useActiveDatastore();
17
+
18
+ const { mantaClient } = useMantaClient();
19
+
20
+ const { data, isLoading } = useDatastoreTreeQuery(mantaClient, undefined, { enabled: isOperator });
21
+
22
+ const reachable = isOperator ? (data?.datastoreTree ?? []).map(datastoreOfTreeNode) : datastores;
23
+ const name = reachable.find(({ id }) => id === group)?.name ?? group;
24
+ const members = groupMembers(reachable, group);
25
+
26
+ return (
27
+ <RouteLayout>
28
+ <PageHeader title={name} icon={Building2} />
29
+ <PageBody>
30
+ <GroupDatastores members={members} isLoading={isLoading} onOpen={enterDatastore} />
31
+ </PageBody>
32
+ </RouteLayout>
33
+ );
34
+ }
@@ -0,0 +1,2 @@
1
+ export { AppShell, type AppShellProps } from "./AppShell";
2
+ export { AppShellRoutes, type AppShellRoutesProps } from "./AppShellRoutes";
@@ -1,34 +1 @@
1
- import { resolveChatProps, type AuthenticatedChatProps } from "#lib/chat-types";
2
- import { cn } from "#lib/utils";
3
- import { ChatRoute } from "#routes/chat/index";
4
-
5
- export function AuthenticatedChat(props: AuthenticatedChatProps) {
6
- const { datastore, user, onLogout, isOperator, canSwitchDatastore, datastores, ...otherProps } =
7
- resolveChatProps(props);
8
-
9
- if (!user) {
10
- console.error("AuthenticatedChat: user object is required");
11
- return (
12
- <div className="flex items-center justify-center min-h-screen">
13
- <div className="text-center space-y-2">
14
- <h2 className="typography-large-body-semibold text-error-foreground">Authentication Error</h2>
15
-
16
- <p className="typography-small text-muted-foreground">Invalid user session. Please sign in again.</p>
17
-
18
- {onLogout && (
19
- <button
20
- onClick={onLogout}
21
- className={cn("px-4 py-2 rounded-lg transition-colors", "bg-background hover:bg-accent")}
22
- >
23
- Sign Out
24
- </button>
25
- )}
26
- </div>
27
- </div>
28
- );
29
- }
30
-
31
- return (
32
- <ChatRoute {...{ ...otherProps, isOperator, canSwitchDatastore, datastore, datastores, user, logout: onLogout }} />
33
- );
34
- }
1
+ export { ChatRoute as AuthenticatedChat, type ChatRouteProps as AuthenticatedChatRouteProps } from "#routes/chat/index";
@@ -1,6 +1,7 @@
1
1
  import { extractPlanName, humanizePlanName } from "@manta-eu/client/shared/agent-mode";
2
2
  import { ChatContextKind, type ChatContext } from "@manta-eu/client/shared/agent-types";
3
3
  import type { ChatUIMessage } from "@manta-eu/client/shared/index";
4
+ import { uploadedFileRoutePath } from "@manta-eu/client/shared/datastore-path";
4
5
  import { createUserMessage } from "@manta-eu/client/shared/message-utils";
5
6
  import {
6
7
  anthropicPrimaryModel,
@@ -48,7 +49,7 @@ import { useShouldAutoFocusInput } from "#hooks/use-should-auto-focus-input";
48
49
  import { useConversationGraphContext } from "#hooks/useConversationGraphContext";
49
50
  import { useSelectedModel } from "#hooks/useSelectedModel";
50
51
  import { isDevBuild } from "#lib/build-config";
51
- import type { ChatDraft, CopilotMenuDefaults, Datastore, PageContext, User } from "#lib/chat-types";
52
+ import type { AppTools, ChatDraft, CopilotMenuDefaults, Datastore, PageContext, User } from "#lib/chat-types";
52
53
  import { findLatestShowcase } from "#lib/find-latest-showcase";
53
54
  import { useFileUpload } from "#lib/hooks/useFileUpload";
54
55
  import { planStatusLabel } from "#lib/plan-status-label";
@@ -69,6 +70,7 @@ export type ChatProps = {
69
70
  isOperator: boolean;
70
71
  onCloseAction?: () => void;
71
72
  pageContext?: PageContext;
73
+ appTools?: AppTools;
72
74
  allowedModels?: MantaModelId[];
73
75
  initialPrompt?: string;
74
76
  initialDraft?: ChatDraft;
@@ -174,7 +176,11 @@ export function Chat(props: ChatProps) {
174
176
  const composerCarryOver = useRef<ComposerCarryOver>({ conversationId: undefined, text: "" });
175
177
  const content = <ChatContent {...props} turnState={turnState} composerCarryOver={composerCarryOver} />;
176
178
 
177
- return <ActiveChatProvider>{props.isEmbedded ? <Suspense>{content}</Suspense> : content}</ActiveChatProvider>;
179
+ return (
180
+ <ActiveChatProvider appTools={props.appTools}>
181
+ {props.isEmbedded ? <Suspense>{content}</Suspense> : content}
182
+ </ActiveChatProvider>
183
+ );
178
184
  }
179
185
 
180
186
  function referenceToFilePart(reference: UploadedFileReference, uploadsUrl: string): FileUIPart {
@@ -380,7 +386,7 @@ function ChatContent(props: ChatContentProps) {
380
386
  try {
381
387
  const { uploaded, failed } = await uploadFiles(files);
382
388
 
383
- const uploadsUrl = new URL(datastorePath("/agents/uploads/file"), mantaBaseUrl.origin).toString();
389
+ const uploadsUrl = new URL(datastorePath(uploadedFileRoutePath), mantaBaseUrl.origin).toString();
384
390
  fileParts = uploaded.map((reference) => referenceToFilePart(reference, uploadsUrl));
385
391
 
386
392
  if (isPresent(failed)) {
@@ -17,7 +17,11 @@ import { hasInlineVisualOutput } from "../tool-invocation-card/types";
17
17
  import { FileMessagePart } from "./FileMessagePart";
18
18
  import { MessageStepGroup } from "./MessageStepGroup";
19
19
  import { TextMessagePart } from "./TextMessagePart";
20
- import { filterSupersededRequestUserInputErrors, isStandaloneToolPart } from "./tool-part-rendering";
20
+ import {
21
+ filterSupersededRequestUserInputErrors,
22
+ hasAnsweredApprovalInLastStep,
23
+ isStandaloneToolPart,
24
+ } from "./tool-part-rendering";
21
25
  import { ToolMessagePart } from "./ToolMessagePart";
22
26
  import { Banner } from "#components/banner/index";
23
27
  import { groupMessageParts } from "#lib/message-grouping";
@@ -71,7 +75,11 @@ function resolveFallbackText(
71
75
 
72
76
  return match(message.metadata?.responseState)
73
77
  .returnType<FallbackText | null>()
74
- .with("finished", () => ({ part: finishedWithoutFinalResponsePart, muted: false }))
78
+ .with("finished", () =>
79
+ hasAnsweredApprovalInLastStep(message.parts)
80
+ ? null
81
+ : { part: finishedWithoutFinalResponsePart, muted: false },
82
+ )
75
83
  .with("failed", () => ({ part: failedAssistantResponsePart, muted: false }))
76
84
  .with(P.union("in-progress", "aborted", undefined), () => null)
77
85
  .exhaustive();
@@ -1,5 +1,6 @@
1
1
  import { questionnaireInputSchema, requestUserInputToolPartType } from "@manta-eu/client/shared/questionnaire";
2
- import { isStaticToolUIPart, type ToolUIPart, type UIMessage } from "ai";
2
+ import { isStaticToolUIPart, isToolUIPart, type ToolUIPart, type UIMessage } from "ai";
3
+ import { findLastIndex } from "ramda";
3
4
 
4
5
  const standaloneToolPartTypes = new Set<ToolUIPart["type"]>(["tool-actionPlanShowcase", requestUserInputToolPartType]);
5
6
 
@@ -20,6 +21,14 @@ export function isStandaloneToolPart(part: ToolUIPart): boolean {
20
21
  return standaloneToolPartTypes.has(part.type) || part.state === "approval-requested";
21
22
  }
22
23
 
24
+ export function hasAnsweredApprovalInLastStep(parts: UIMessage["parts"]): boolean {
25
+ const lastStepStartIndex = findLastIndex((part) => part.type === "step-start", parts);
26
+
27
+ return parts
28
+ .slice(lastStepStartIndex + 1)
29
+ .some((part) => isToolUIPart(part) && part.approval?.approved !== undefined);
30
+ }
31
+
23
32
  export function isPendingRequestUserInputPart(part: UIMessage["parts"][number]): boolean {
24
33
  return (
25
34
  isStaticToolUIPart(part) &&
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { X } from "lucide-react";
4
4
  import type { ReactNode } from "react";
5
+ import { cn } from "#style";
5
6
 
6
7
  export type ChipProps = {
7
8
  label: ReactNode;
@@ -9,12 +10,18 @@ export type ChipProps = {
9
10
  removeLabel: string;
10
11
  onRemove: () => void;
11
12
  disabled?: boolean;
13
+ className?: string;
12
14
  };
13
15
 
14
16
  /** A removable pill shared by MultiSelect and InputTags; hides its remove button when disabled. */
15
17
  export function Chip(props: ChipProps) {
16
18
  return (
17
- <span className="inline-flex max-w-full items-center gap-1 rounded-sm bg-faint px-1.5 py-0.5 typography-caption text-default-foreground">
19
+ <span
20
+ className={cn(
21
+ "inline-flex max-w-full items-center gap-1 rounded-sm bg-faint px-1.5 py-0.5 typography-caption text-default-foreground",
22
+ props.className,
23
+ )}
24
+ >
18
25
  <span className="truncate">{props.label}</span>
19
26
  {!props.disabled && (
20
27
  <button
@@ -13,7 +13,7 @@ import { KnowledgeGraphStateProvider } from "#providers/KnowledgeGraphStateProvi
13
13
  import { useMantaClient } from "#providers/MantaClientProvider";
14
14
  import { ActionPlansPage, PlanDetailRouteContent, useActionPlanRouteState } from "#routes/plans/index";
15
15
 
16
- export type { ChatDraft, ChatStartupReport } from "#lib/chat-types";
16
+ export type { AppTool, AppTools, ChatDraft, ChatStartupReport } from "#lib/chat-types";
17
17
 
18
18
  export function EmbeddedChat(props: AuthenticatedChatProps) {
19
19
  const inRouter = useInRouterContext();
@@ -105,6 +105,7 @@ function EmbeddedContent(props: ResolvedChatProps) {
105
105
  isEmbedded
106
106
  isOperator={isOperator}
107
107
  pageContext={props.pageContext}
108
+ appTools={props.appTools}
108
109
  title={props.title}
109
110
  mark={props.mark}
110
111
  initialPrompt={props.initialPrompt}
@@ -7,16 +7,23 @@ export type InputDateTimeProps = {
7
7
  onChange: (date: Date) => void;
8
8
  minDate?: Date;
9
9
  maxDate?: Date;
10
+ allowPast?: boolean;
10
11
  disabled?: boolean;
11
12
  className?: string;
12
13
  align?: "start" | "center" | "end";
14
+ placeholder?: string;
15
+ invalid?: boolean;
16
+ minuteStep?: number;
17
+ "aria-label"?: string;
18
+ "aria-describedby"?: string;
13
19
  };
14
20
 
15
21
  export function InputDateTime(props: InputDateTimeProps) {
22
+ const { id, minuteStep, "aria-label": label, ...shared } = props;
16
23
  return (
17
- <span id={props.id} className="flex items-center gap-2">
18
- <InputDate {...props} />
19
- <InputTime {...props} />
24
+ <span className="flex flex-wrap items-center gap-2">
25
+ <InputDate {...shared} id={id} aria-label={label} />
26
+ <InputTime {...shared} minuteStep={minuteStep} aria-label={label ? `${label} time` : undefined} />
20
27
  </span>
21
28
  );
22
29
  }