@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
@@ -1,50 +1,122 @@
1
- import { getHours, getMinutes, setHours, setMinutes, startOfDay } from "date-fns";
1
+ import {
2
+ addYears,
3
+ getHours,
4
+ getMinutes,
5
+ isAfter,
6
+ isBefore,
7
+ max,
8
+ min,
9
+ setHours,
10
+ setMinutes,
11
+ startOfDay,
12
+ } from "date-fns";
2
13
  import { Calendar as CalendarBlank, ChevronDown } from "lucide-react";
14
+ import { useState } from "react";
3
15
  import { Button } from "../button";
4
- import { Calendar } from "../calendar";
16
+ import { Calendar, type CalendarProps } from "../calendar";
5
17
  import { Popover, PopoverContent, PopoverTrigger } from "../popover";
6
18
  import { cn } from "#style";
7
19
 
20
+ const earliestDefaultMonth = new Date(1900, 0, 1);
21
+
22
+ // A day picked with no time yet starts at midnight rather than now, and never lands outside the bounds.
23
+ export function pickedDateTime(day: Date, selected?: Date, minDate?: Date, maxDate?: Date): Date {
24
+ const picked = selected ? setMinutes(setHours(day, getHours(selected)), getMinutes(selected)) : startOfDay(day);
25
+ if (minDate && isBefore(picked, minDate)) return minDate;
26
+ if (maxDate && isAfter(picked, maxDate)) return maxDate;
27
+ return picked;
28
+ }
29
+
8
30
  export type InputDateArgs = {
31
+ id?: string;
9
32
  selected?: Date;
10
33
 
11
34
  onChange: (date: Date) => void;
35
+ /** The first day that can be picked; today unless `allowPast` is set. */
12
36
  minDate?: Date;
13
37
  maxDate?: Date;
38
+ /** Let days before today be picked. `minDate` still applies when given. */
39
+ allowPast?: boolean;
14
40
  disabled?: boolean;
15
41
  className?: string;
16
42
  align?: "start" | "center" | "end";
43
+ placeholder?: string;
44
+ /** Close the picker once a day is picked. */
45
+ closeOnSelect?: boolean;
46
+ captionLayout?: CalendarProps["captionLayout"];
47
+ startMonth?: Date;
48
+ endMonth?: Date;
49
+ invalid?: boolean;
50
+ "aria-label"?: string;
51
+ "aria-invalid"?: boolean;
52
+ "aria-describedby"?: string;
17
53
  };
18
54
 
55
+ /** The first pickable day: `minDate` when given, else today, else none when `allowPast` is set. */
56
+ export function inputDateLowerBound(options: { minDate?: Date; allowPast?: boolean; today?: Date }): Date | undefined {
57
+ const { minDate, allowPast = false, today = new Date() } = options;
58
+ return minDate ?? (allowPast ? undefined : startOfDay(today));
59
+ }
60
+
19
61
  export function InputDate(props: InputDateArgs) {
20
- const { selected, onChange, minDate = startOfDay(new Date()), maxDate, disabled, className, align = "start" } = props;
62
+ const {
63
+ id,
64
+ selected,
65
+ onChange,
66
+ minDate,
67
+ maxDate,
68
+ allowPast = false,
69
+ disabled,
70
+ className,
71
+ align = "start",
72
+ placeholder = "Select date",
73
+ closeOnSelect = false,
74
+ captionLayout = "dropdown",
75
+ startMonth,
76
+ endMonth,
77
+ invalid,
78
+ "aria-label": ariaLabel,
79
+ "aria-invalid": ariaInvalid,
80
+ "aria-describedby": ariaDescribedBy,
81
+ } = props;
82
+ const [open, setOpen] = useState(false);
83
+ const lowerBound = inputDateLowerBound({ minDate, allowPast });
21
84
 
22
85
  function handleOnChange(date?: Date) {
23
86
  if (!date) return;
24
-
25
- const originalDate = selected ?? new Date();
26
- const hours = getHours(originalDate);
27
- const minutes = getMinutes(originalDate);
28
-
29
- const withHours = setHours(date, hours);
30
- const withMinutes = setMinutes(withHours, minutes);
31
-
32
- onChange(withMinutes);
87
+ onChange(pickedDateTime(date, selected, lowerBound, maxDate));
88
+ if (closeOnSelect) setOpen(false);
33
89
  }
34
90
 
91
+ const firstMonth = startMonth ?? lowerBound ?? min([earliestDefaultMonth, ...(selected ? [selected] : [])]);
92
+ const lastMonth = endMonth ?? maxDate ?? max([addYears(new Date(), 50), ...(selected ? [selected] : [])]);
93
+
35
94
  return (
36
- <Popover>
95
+ <Popover open={open} onOpenChange={setOpen}>
37
96
  <PopoverTrigger asChild>
38
- <Button rounded="md" variant="tertiary" disabled={disabled} className={cn(className, "px-3 whitespace-nowrap")}>
97
+ <Button
98
+ id={id}
99
+ rounded="md"
100
+ variant="tertiary"
101
+ disabled={disabled}
102
+ aria-label={ariaLabel}
103
+ aria-describedby={ariaDescribedBy}
104
+ aria-invalid={invalid || ariaInvalid ? true : undefined}
105
+ className={cn(
106
+ className,
107
+ "px-3 whitespace-nowrap",
108
+ invalid && "border border-error-border ring-2 ring-error-foreground/20",
109
+ )}
110
+ >
39
111
  <CalendarBlank className="size-md" />
40
112
  {selected ? (
41
113
  selected.toLocaleDateString(undefined, {
42
114
  month: "short",
43
115
  day: "numeric",
44
- year: "2-digit",
116
+ year: "numeric",
45
117
  })
46
118
  ) : (
47
- <span className="text-muted-foreground">Select date</span>
119
+ <span className="text-muted-foreground">{placeholder}</span>
48
120
  )}
49
121
  <ChevronDown className="size-md text-muted-foreground" />
50
122
  </Button>
@@ -54,15 +126,15 @@ export function InputDate(props: InputDateArgs) {
54
126
  className="w-full"
55
127
  mode="single"
56
128
  required
57
- defaultMonth={selected}
129
+ captionLayout={captionLayout}
130
+ startMonth={firstMonth}
131
+ endMonth={lastMonth}
132
+ defaultMonth={selected ?? lowerBound}
58
133
  selected={selected}
59
134
  onSelect={handleOnChange}
60
135
  fixedWeeks
61
136
  showOutsideDays
62
- disabled={{
63
- before: minDate,
64
- after: maxDate,
65
- }}
137
+ disabled={[...(lowerBound ? [{ before: lowerBound }] : []), ...(maxDate ? [{ after: maxDate }] : [])]}
66
138
  />
67
139
  </PopoverContent>
68
140
  </Popover>
@@ -1,4 +1,4 @@
1
- import { getHours, isAfter, isBefore, setHours, startOfHour } from "date-fns";
1
+ import { getHours, getMinutes, isAfter, isBefore, setHours, setMinutes, startOfDay, startOfMinute } from "date-fns";
2
2
  import { ChevronDown } from "lucide-react";
3
3
  import { Button } from "../button";
4
4
  import { Dropdown, DropdownContent, DropdownItem, DropdownTrigger } from "../dropdown";
@@ -8,6 +8,32 @@ function formatTime24(date: Date): string {
8
8
  return date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit", hour12: false });
9
9
  }
10
10
 
11
+ function minuteOfDay(date: Date): number {
12
+ return getHours(date) * 60 + getMinutes(date);
13
+ }
14
+
15
+ function atMinuteOfDay(day: Date, minute: number): Date {
16
+ return setMinutes(setHours(startOfDay(day), Math.floor(minute / 60)), minute % 60);
17
+ }
18
+
19
+ function floorToStep(date: Date, minuteStep: number): Date {
20
+ const minutes = minuteOfDay(date);
21
+ return atMinuteOfDay(date, minutes - (minutes % minuteStep));
22
+ }
23
+
24
+ // A slot is enabled only when its own start is within the bounds. A wall time the clocks skip on a daylight saving day
25
+ // is left out rather than listed again as the hour after it.
26
+ export function timeSlots(day: Date, minuteStep: number, minDate?: Date, maxDate?: Date) {
27
+ return Array.from({ length: Math.ceil((24 * 60) / minuteStep) }, (_, index) => index * minuteStep).flatMap(
28
+ (minute) => {
29
+ const slot = atMinuteOfDay(day, minute);
30
+ if (minuteOfDay(slot) !== minute) return [];
31
+ const disabled = Boolean(minDate && isBefore(slot, minDate)) || Boolean(maxDate && isAfter(slot, maxDate));
32
+ return [{ value: slot.toISOString(), label: formatTime24(slot), disabled }];
33
+ },
34
+ );
35
+ }
36
+
11
37
  export type InputTimeArgs = {
12
38
  selected?: Date;
13
39
 
@@ -17,34 +43,33 @@ export type InputTimeArgs = {
17
43
  minDate?: Date;
18
44
  maxDate?: Date;
19
45
  align?: "start" | "center" | "end";
46
+ minuteStep?: number;
47
+ invalid?: boolean;
48
+ "aria-label"?: string;
49
+ "aria-describedby"?: string;
20
50
  };
21
51
 
22
52
  export function InputTime(props: InputTimeArgs) {
23
- const { selected, onChange, disabled, minDate, maxDate, className, align = "start" } = props;
24
-
25
- const baseDate = selected ?? new Date();
26
-
27
- const options = Array.from({ length: 24 }, (_, hour) => {
28
- const d = setHours(startOfHour(baseDate), hour);
29
-
30
- const minCheck = minDate ? startOfHour(minDate) : undefined;
31
- const maxCheck = maxDate ? startOfHour(maxDate) : undefined;
32
-
33
- const isDisabled = Boolean(minCheck && isBefore(d, minCheck)) || Boolean(maxCheck && isAfter(d, maxCheck));
53
+ const {
54
+ selected,
55
+ onChange,
56
+ disabled,
57
+ minDate,
58
+ maxDate,
59
+ className,
60
+ align = "start",
61
+ minuteStep = 60,
62
+ invalid,
63
+ } = props;
34
64
 
35
- return {
36
- value: d.toISOString(),
37
- label: formatTime24(d),
38
- disabled: isDisabled,
39
- };
40
- });
65
+ const options = timeSlots(selected ?? new Date(), minuteStep, minDate, maxDate);
41
66
 
42
- const selectedValue =
43
- selected instanceof Date
44
- ? (options.find((opt) => getHours(new Date(opt.value)) === getHours(selected))?.value ?? "")
45
- : "";
67
+ const selectedStart = selected instanceof Date ? floorToStep(startOfMinute(selected), minuteStep) : undefined;
68
+ const selectedValue = selectedStart
69
+ ? (options.find((opt) => new Date(opt.value).getTime() === selectedStart.getTime())?.value ?? "")
70
+ : "";
46
71
 
47
- const selectedLabel = selectedValue ? (options.find((opt) => opt.value === selectedValue)?.label ?? "") : "";
72
+ const selectedLabel = selected instanceof Date ? formatTime24(selected) : "";
48
73
 
49
74
  return (
50
75
  <Dropdown>
@@ -53,14 +78,22 @@ export function InputTime(props: InputTimeArgs) {
53
78
  variant="tertiary"
54
79
  size="base"
55
80
  rounded="md"
56
- className={cn("w-fit min-w-32 justify-between", !selectedLabel && "text-muted-foreground", className)}
81
+ className={cn(
82
+ "w-fit min-w-32 justify-between whitespace-nowrap",
83
+ !selectedLabel && "text-muted-foreground",
84
+ invalid && "border border-error-border ring-2 ring-error-foreground/20",
85
+ className,
86
+ )}
57
87
  disabled={disabled}
88
+ aria-label={props["aria-label"]}
89
+ aria-describedby={props["aria-describedby"]}
90
+ aria-invalid={invalid ? true : undefined}
58
91
  >
59
- {selectedLabel || "Select hour"}
92
+ {selectedLabel || (minuteStep >= 60 ? "Select hour" : "Select time")}
60
93
  <ChevronDown className="size-4 shrink-0 opacity-50" />
61
94
  </Button>
62
95
  </DropdownTrigger>
63
- <DropdownContent align={align}>
96
+ <DropdownContent align={align} className="max-h-72 overflow-y-auto">
64
97
  {options.map((opt) => (
65
98
  <DropdownItem
66
99
  key={opt.value}
@@ -1,4 +1,3 @@
1
- import type { MantaModelId } from "@manta-eu/client/shared/model";
2
1
  import { useCallback, useState, type ReactNode } from "react";
3
2
  import { Chat } from "../chat-view/index";
4
3
  import { LoadingView } from "../chat-view/LoadingView";
@@ -21,7 +20,7 @@ import { useShouldAutoFocusInput } from "#hooks/use-should-auto-focus-input";
21
20
  import { useChatPanelSync } from "#hooks/useChatPanelSync";
22
21
  import { useDatastoreSelection } from "#hooks/useDatastoreSelection";
23
22
  import { useOnboardingState } from "#hooks/useOnboardingState";
24
- import type { Datastore, User } from "#lib/chat-types";
23
+ import { useAuthContext } from "#providers/AuthContext";
25
24
  import { ChatPanelProvider } from "#providers/ChatPanelContext";
26
25
  import { CommandProvider } from "#providers/commands/CommandContext";
27
26
  import { KnowledgeGraphStateProvider } from "#providers/KnowledgeGraphStateProvider";
@@ -30,33 +29,17 @@ const expandedSidebarWidth = 232;
30
29
  const collapsedSidebarWidth = 68;
31
30
 
32
31
  export type RouteLayoutProps = {
33
- user: User;
34
- datastore?: Datastore;
35
- datastores?: Datastore[];
36
- isOperator: boolean;
37
- canSwitchDatastore?: boolean;
38
- logout?: () => void;
39
32
  floatingMobileMenu?: boolean;
40
- allowedModels?: MantaModelId[];
41
33
  title?: string;
42
34
  mark?: ReactNode;
43
35
  children: ReactNode;
44
36
  };
45
37
 
46
38
  export function RouteLayout(props: RouteLayoutProps) {
47
- const {
48
- user,
49
- datastore,
50
- datastores,
51
- isOperator,
52
- canSwitchDatastore,
53
- logout,
54
- floatingMobileMenu,
55
- allowedModels,
56
- title,
57
- mark,
58
- children,
59
- } = props;
39
+ const { floatingMobileMenu, title, mark, children } = props;
40
+
41
+ const { datastore, canSwitchDatastore } = useAuthContext();
42
+
60
43
  const { setSelectedDatastore, isSwitching } = useDatastoreSelection({ canSwitchDatastore });
61
44
 
62
45
  const handleDatastoreSelected = useCallback(
@@ -65,14 +48,7 @@ export function RouteLayout(props: RouteLayoutProps) {
65
48
  );
66
49
 
67
50
  const body = (
68
- <RouteLayoutBody
69
- user={user}
70
- datastore={datastore}
71
- isOperator={isOperator}
72
- allowedModels={allowedModels}
73
- title={title}
74
- mark={mark}
75
- >
51
+ <RouteLayoutBody title={title} mark={mark}>
76
52
  {children}
77
53
  </RouteLayoutBody>
78
54
  );
@@ -82,16 +58,7 @@ export function RouteLayout(props: RouteLayoutProps) {
82
58
  <CommandProvider>
83
59
  <SidebarProvider className="h-dvh">
84
60
  <ChatPanelProvider>
85
- <Sidebar
86
- user={user}
87
- datastore={datastore}
88
- datastores={datastores}
89
- isOperator={isOperator}
90
- isSwitching={isSwitching}
91
- canSwitchDatastore={canSwitchDatastore}
92
- onLogout={logout}
93
- onDatastoreSelected={handleDatastoreSelected}
94
- />
61
+ <Sidebar isSwitching={isSwitching} onDatastoreSelected={handleDatastoreSelected} />
95
62
  <SidebarInset className="min-w-0 overflow-hidden">
96
63
  <MainContent className="relative flex min-w-0 flex-col overflow-hidden">
97
64
  <ConnectionBanner />
@@ -158,18 +125,12 @@ function OnboardingLayer() {
158
125
  );
159
126
  }
160
127
 
161
- type RouteLayoutBodyProps = {
162
- user: User;
163
- datastore?: Datastore;
164
- isOperator: boolean;
165
- allowedModels?: MantaModelId[];
166
- title?: string;
167
- mark?: ReactNode;
168
- children: ReactNode;
169
- };
128
+ type RouteLayoutBodyProps = Omit<RouteLayoutProps, "floatingMobileMenu">;
170
129
 
171
130
  function RouteLayoutBody(props: RouteLayoutBodyProps) {
172
- const { user, datastore, isOperator, allowedModels, title, mark, children } = props;
131
+ const { title, mark, children } = props;
132
+
133
+ const { user, datastore, isOperator, allowedModels } = useAuthContext();
173
134
 
174
135
  const { splitEligible, chatOpen, chatReady, closeChat } = useChatPanelSync();
175
136
 
@@ -22,7 +22,7 @@ import {
22
22
  } from "lucide-react";
23
23
  import { AnimatePresence, motion } from "motion/react";
24
24
  import type { MouseEvent } from "react";
25
- import { use, useCallback, useEffect, useMemo, useRef, useState } from "react";
25
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
26
26
  import { Link, useLocation } from "react-router";
27
27
  import { ConnectionBadge } from "../ConnectionBadge";
28
28
  import { ManageDatastoresMenuItem } from "../datastore-management/ManageDatastoresMenuItem";
@@ -53,12 +53,11 @@ import { useConnectionProblems } from "#hooks/use-connection-problems";
53
53
  import { useConversations } from "#hooks/useConversations";
54
54
  import { useDeleteChat } from "#hooks/useDeleteChat";
55
55
  import { canPickDatastore } from "#ldo-ui";
56
- import { currentRealm, enableDatastoreManagement } from "#lib/build-config";
57
- import type { Datastore, User } from "#lib/chat-types";
56
+ import { currentRealm } from "#lib/build-config";
58
57
  import { usePlatform } from "#lib/use-platform";
59
58
  import { cn } from "#lib/utils";
60
59
  import { useAbsoluteNavigate } from "#providers/ActiveDatastoreProvider";
61
- import { AuthContext } from "#providers/AuthContext";
60
+ import { useAuthContext } from "#providers/AuthContext";
62
61
  import { useChatManagerConnection } from "#providers/ChatManagerProvider";
63
62
  import { useCommandContext } from "#providers/commands/CommandContext";
64
63
  import { useKnowledgeGraphState } from "#providers/KnowledgeGraphStateContext";
@@ -85,14 +84,8 @@ function onNavClick(handler: () => void) {
85
84
  }
86
85
 
87
86
  type SidebarProps = {
88
- user?: User;
89
- datastore?: Datastore;
90
- datastores?: Datastore[];
91
- isOperator?: boolean;
92
87
  isSwitching?: boolean;
93
- canSwitchDatastore?: boolean;
94
- onLogout?: () => void;
95
- onDatastoreSelected?: (datastoreId: string) => void;
88
+ onDatastoreSelected: (datastoreId: string) => void;
96
89
  };
97
90
 
98
91
  export function Sidebar(props: SidebarProps) {
@@ -100,15 +93,22 @@ export function Sidebar(props: SidebarProps) {
100
93
  const { pathname } = useLocation();
101
94
  const { isKnowledgeGraphUnavailable } = useKnowledgeGraphState();
102
95
 
103
- const { user, datastore, datastores, isOperator, isSwitching, canSwitchDatastore, onLogout, onDatastoreSelected } =
104
- props;
96
+ const { isSwitching, onDatastoreSelected } = props;
105
97
 
106
- const authContext = use(AuthContext);
107
- const canManageTeam = authContext?.canManageTeam ?? false;
108
- const canManageCustomApps = authContext?.canManageCustomApps ?? false;
109
- const canDisconnectCustomApps = authContext?.canDisconnectCustomApps ?? false;
110
- const hasProfilePage = authContext?.hasProfilePage ?? false;
111
- const canManageStreams = authContext?.canManageStreams ?? isOperator ?? false;
98
+ const {
99
+ user,
100
+ datastore,
101
+ datastores,
102
+ isOperator,
103
+ canSwitchDatastore,
104
+ logout: onLogout,
105
+ canManageTeam,
106
+ canManageCustomApps,
107
+ canManageStreams,
108
+ canManageDatastores = false,
109
+ canDisconnectCustomApps = false,
110
+ hasProfilePage = false,
111
+ } = useAuthContext();
112
112
 
113
113
  const { state: sidebarState, isMobile, toggleSidebar, setOpenMobile } = useSidebar();
114
114
  const isSidebarExpanded = isMobile || sidebarState === "expanded";
@@ -233,10 +233,9 @@ export function Sidebar(props: SidebarProps) {
233
233
  const datastoreName = datastore?.name ?? (isOperator ? realmVocabLabel(realmDatastoreId) : "");
234
234
 
235
235
  const chatId = activeConversation?.id;
236
- const canManageDatastores = enableDatastoreManagement && !!isOperator && !!onDatastoreSelected;
237
236
  const showDatastorePicker = canPickDatastore({
238
237
  canSwitchDatastore,
239
- canSelect: !!onDatastoreSelected,
238
+ canSelect: true,
240
239
  datastores,
241
240
  isOperator,
242
241
  });
@@ -455,8 +454,7 @@ export function Sidebar(props: SidebarProps) {
455
454
  picture={user?.picture}
456
455
  currentDatastore={{ name: datastoreName }}
457
456
  pickerSlot={
458
- showDatastorePicker &&
459
- onDatastoreSelected && (
457
+ showDatastorePicker && (
460
458
  <ConnectedDatastorePicker
461
459
  currentDatastoreId={datastore?.id}
462
460
  isOperator={isOperator}