@vertesia/ui 1.5.0-dev.20260717.131047Z → 1.5.0-dev.20260722.120446Z

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 (329) hide show
  1. package/lib/core/components/SidePanel.js +1 -1
  2. package/lib/core/components/SidePanel.js.map +1 -1
  3. package/lib/core/components/shadcn/button.d.ts +10 -3
  4. package/lib/core/components/shadcn/button.d.ts.map +1 -1
  5. package/lib/core/components/shadcn/button.js +41 -9
  6. package/lib/core/components/shadcn/button.js.map +1 -1
  7. package/lib/core/components/shadcn/modal/dialog.js +1 -1
  8. package/lib/core/components/shadcn/modal/dialog.js.map +1 -1
  9. package/lib/core/components/shadcn/theme/ThemeSwitcher.js +1 -1
  10. package/lib/core/components/shadcn/theme/ThemeSwitcher.js.map +1 -1
  11. package/lib/features/agent/chat/AgentChatPlaybackControls.d.ts.map +1 -1
  12. package/lib/features/agent/chat/AgentChatPlaybackControls.js +2 -2
  13. package/lib/features/agent/chat/AgentChatPlaybackControls.js.map +1 -1
  14. package/lib/features/agent/chat/AgentRequestInputOverlay.d.ts.map +1 -1
  15. package/lib/features/agent/chat/AgentRequestInputOverlay.js +2 -2
  16. package/lib/features/agent/chat/AgentRequestInputOverlay.js.map +1 -1
  17. package/lib/features/agent/chat/ArtifactsTab.d.ts.map +1 -1
  18. package/lib/features/agent/chat/ArtifactsTab.js +5 -2
  19. package/lib/features/agent/chat/ArtifactsTab.js.map +1 -1
  20. package/lib/features/agent/chat/ImageLightbox.d.ts.map +1 -1
  21. package/lib/features/agent/chat/ImageLightbox.js +1 -1
  22. package/lib/features/agent/chat/ImageLightbox.js.map +1 -1
  23. package/lib/features/agent/chat/ModernAgentConversation.js +1 -1
  24. package/lib/features/agent/chat/ModernAgentConversation.js.map +1 -1
  25. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.d.ts.map +1 -1
  26. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +5 -5
  27. package/lib/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
  28. package/lib/features/agent/chat/ModernAgentOutput/Header.d.ts.map +1 -1
  29. package/lib/features/agent/chat/ModernAgentOutput/Header.js +4 -2
  30. package/lib/features/agent/chat/ModernAgentOutput/Header.js.map +1 -1
  31. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.d.ts.map +1 -1
  32. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js +2 -2
  33. package/lib/features/agent/chat/ModernAgentOutput/MessageInput.js.map +1 -1
  34. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.d.ts.map +1 -1
  35. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js +2 -1
  36. package/lib/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
  37. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.d.ts +6 -0
  38. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.d.ts.map +1 -1
  39. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js +15 -1
  40. package/lib/features/agent/chat/ModernAgentOutput/requestInputMessages.js.map +1 -1
  41. package/lib/features/environment/SelectEnvironment.d.ts +28 -0
  42. package/lib/features/environment/SelectEnvironment.d.ts.map +1 -0
  43. package/lib/features/environment/SelectEnvironment.js +97 -0
  44. package/lib/features/environment/SelectEnvironment.js.map +1 -0
  45. package/lib/features/environment/index.d.ts +2 -0
  46. package/lib/features/environment/index.d.ts.map +1 -0
  47. package/lib/features/environment/index.js +2 -0
  48. package/lib/features/environment/index.js.map +1 -0
  49. package/lib/features/index.d.ts +2 -0
  50. package/lib/features/index.d.ts.map +1 -1
  51. package/lib/features/index.js +2 -0
  52. package/lib/features/index.js.map +1 -1
  53. package/lib/features/magic-pdf/AnnotatedImageSlider.js +12 -12
  54. package/lib/features/magic-pdf/AnnotatedImageSlider.js.map +1 -1
  55. package/lib/features/magic-pdf/DownloadPopover.d.ts.map +1 -1
  56. package/lib/features/magic-pdf/DownloadPopover.js +3 -17
  57. package/lib/features/magic-pdf/DownloadPopover.js.map +1 -1
  58. package/lib/features/magic-pdf/ExtractedContentView.js +2 -6
  59. package/lib/features/magic-pdf/ExtractedContentView.js.map +1 -1
  60. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.d.ts +25 -0
  61. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.d.ts.map +1 -0
  62. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.js +42 -0
  63. package/lib/features/magic-pdf/GroundedExtractionAssistantPanel.js.map +1 -0
  64. package/lib/features/magic-pdf/GroundedExtractionView.d.ts +27 -0
  65. package/lib/features/magic-pdf/GroundedExtractionView.d.ts.map +1 -0
  66. package/lib/features/magic-pdf/GroundedExtractionView.js +377 -0
  67. package/lib/features/magic-pdf/GroundedExtractionView.js.map +1 -0
  68. package/lib/features/magic-pdf/MagicPdfProvider.d.ts +0 -2
  69. package/lib/features/magic-pdf/MagicPdfProvider.d.ts.map +1 -1
  70. package/lib/features/magic-pdf/MagicPdfProvider.js +15 -42
  71. package/lib/features/magic-pdf/MagicPdfProvider.js.map +1 -1
  72. package/lib/features/magic-pdf/MagicPdfView.d.ts.map +1 -1
  73. package/lib/features/magic-pdf/MagicPdfView.js +2 -19
  74. package/lib/features/magic-pdf/MagicPdfView.js.map +1 -1
  75. package/lib/features/magic-pdf/index.d.ts +1 -0
  76. package/lib/features/magic-pdf/index.d.ts.map +1 -1
  77. package/lib/features/magic-pdf/index.js +1 -0
  78. package/lib/features/magic-pdf/index.js.map +1 -1
  79. package/lib/features/magic-pdf/types.d.ts +1 -1
  80. package/lib/features/magic-pdf/types.d.ts.map +1 -1
  81. package/lib/features/oauth/McpConnectionsButton.d.ts.map +1 -1
  82. package/lib/features/oauth/McpConnectionsButton.js +2 -2
  83. package/lib/features/oauth/McpConnectionsButton.js.map +1 -1
  84. package/lib/features/oauth/McpConnectionsDialog.d.ts.map +1 -1
  85. package/lib/features/oauth/McpConnectionsDialog.js +1 -1
  86. package/lib/features/oauth/McpConnectionsDialog.js.map +1 -1
  87. package/lib/features/oauth/RemoteMcpConnectionButton.d.ts.map +1 -1
  88. package/lib/features/oauth/RemoteMcpConnectionButton.js +1 -1
  89. package/lib/features/oauth/RemoteMcpConnectionButton.js.map +1 -1
  90. package/lib/features/pdf-viewer/PdfPageSlider.js +2 -2
  91. package/lib/features/pdf-viewer/PdfPageSlider.js.map +1 -1
  92. package/lib/features/pdf-viewer/SimplePdfViewer.d.ts.map +1 -1
  93. package/lib/features/pdf-viewer/SimplePdfViewer.js +3 -3
  94. package/lib/features/pdf-viewer/SimplePdfViewer.js.map +1 -1
  95. package/lib/features/permissions/UserPermissionsProvider.js +1 -1
  96. package/lib/features/permissions/UserPermissionsProvider.js.map +1 -1
  97. package/lib/features/store/objects/DocumentQuickFilter.d.ts.map +1 -1
  98. package/lib/features/store/objects/DocumentQuickFilter.js +5 -5
  99. package/lib/features/store/objects/DocumentQuickFilter.js.map +1 -1
  100. package/lib/features/store/objects/DocumentSearchResults.d.ts.map +1 -1
  101. package/lib/features/store/objects/DocumentSearchResults.js +2 -2
  102. package/lib/features/store/objects/DocumentSearchResults.js.map +1 -1
  103. package/lib/features/store/objects/components/ContentDispositionButton.d.ts.map +1 -1
  104. package/lib/features/store/objects/components/ContentDispositionButton.js +1 -1
  105. package/lib/features/store/objects/components/ContentDispositionButton.js.map +1 -1
  106. package/lib/features/store/objects/components/ContentOverview.d.ts.map +1 -1
  107. package/lib/features/store/objects/components/ContentOverview.js +78 -21
  108. package/lib/features/store/objects/components/ContentOverview.js.map +1 -1
  109. package/lib/features/store/objects/components/DocumentIcon.js +1 -1
  110. package/lib/features/store/objects/components/VectorSearchWidget.js +1 -1
  111. package/lib/features/store/objects/components/VectorSearchWidget.js.map +1 -1
  112. package/lib/features/store/objects/components/useContentPanelHooks.d.ts +1 -2
  113. package/lib/features/store/objects/components/useContentPanelHooks.d.ts.map +1 -1
  114. package/lib/features/store/objects/components/useContentPanelHooks.js +4 -8
  115. package/lib/features/store/objects/components/useContentPanelHooks.js.map +1 -1
  116. package/lib/features/store/objects/layout/renderers.d.ts.map +1 -1
  117. package/lib/features/store/objects/layout/renderers.js +2 -2
  118. package/lib/features/store/objects/layout/renderers.js.map +1 -1
  119. package/lib/features/store/objects/selection/SelectionActions.js +1 -1
  120. package/lib/features/store/objects/selection/SelectionActions.js.map +1 -1
  121. package/lib/features/store/types/ContentObjectTypesTable.d.ts.map +1 -1
  122. package/lib/features/store/types/ContentObjectTypesTable.js +4 -4
  123. package/lib/features/store/types/ContentObjectTypesTable.js.map +1 -1
  124. package/lib/features/store/types/IntakePolicyEditor.d.ts +15 -0
  125. package/lib/features/store/types/IntakePolicyEditor.d.ts.map +1 -0
  126. package/lib/features/store/types/IntakePolicyEditor.js +455 -0
  127. package/lib/features/store/types/IntakePolicyEditor.js.map +1 -0
  128. package/lib/features/store/types/IntakePolicyForm.d.ts +11 -0
  129. package/lib/features/store/types/IntakePolicyForm.d.ts.map +1 -0
  130. package/lib/features/store/types/IntakePolicyForm.js +91 -0
  131. package/lib/features/store/types/IntakePolicyForm.js.map +1 -0
  132. package/lib/features/store/types/SelectContentTypeModal.js +1 -1
  133. package/lib/features/store/types/SelectContentTypeModal.js.map +1 -1
  134. package/lib/features/store/types/index.d.ts +2 -0
  135. package/lib/features/store/types/index.d.ts.map +1 -1
  136. package/lib/features/store/types/index.js +2 -0
  137. package/lib/features/store/types/index.js.map +1 -1
  138. package/lib/features/store/types/intake-policy-editor.logic.d.ts +7 -0
  139. package/lib/features/store/types/intake-policy-editor.logic.d.ts.map +1 -0
  140. package/lib/features/store/types/intake-policy-editor.logic.js +60 -0
  141. package/lib/features/store/types/intake-policy-editor.logic.js.map +1 -0
  142. package/lib/features/store/types/typeCatalogCache.d.ts +5 -0
  143. package/lib/features/store/types/typeCatalogCache.d.ts.map +1 -0
  144. package/lib/features/store/types/typeCatalogCache.js +40 -0
  145. package/lib/features/store/types/typeCatalogCache.js.map +1 -0
  146. package/lib/features/user/UserInfo.js +7 -3
  147. package/lib/features/user/UserInfo.js.map +1 -1
  148. package/lib/features/views/ViewExperience.d.ts +20 -0
  149. package/lib/features/views/ViewExperience.d.ts.map +1 -0
  150. package/lib/features/views/ViewExperience.js +188 -0
  151. package/lib/features/views/ViewExperience.js.map +1 -0
  152. package/lib/features/views/ViewNavigation.d.ts +3 -0
  153. package/lib/features/views/ViewNavigation.d.ts.map +1 -0
  154. package/lib/features/views/ViewNavigation.js +36 -0
  155. package/lib/features/views/ViewNavigation.js.map +1 -0
  156. package/lib/features/views/ViewResults.d.ts +9 -0
  157. package/lib/features/views/ViewResults.d.ts.map +1 -0
  158. package/lib/features/views/ViewResults.js +229 -0
  159. package/lib/features/views/ViewResults.js.map +1 -0
  160. package/lib/features/views/ViewSearch.d.ts +3 -0
  161. package/lib/features/views/ViewSearch.d.ts.map +1 -0
  162. package/lib/features/views/ViewSearch.js +74 -0
  163. package/lib/features/views/ViewSearch.js.map +1 -0
  164. package/lib/features/views/index.d.ts +7 -0
  165. package/lib/features/views/index.d.ts.map +1 -0
  166. package/lib/features/views/index.js +7 -0
  167. package/lib/features/views/index.js.map +1 -0
  168. package/lib/features/views/types.d.ts +39 -0
  169. package/lib/features/views/types.d.ts.map +1 -0
  170. package/lib/features/views/types.js +2 -0
  171. package/lib/features/views/types.js.map +1 -0
  172. package/lib/features/views/viewState.d.ts +14 -0
  173. package/lib/features/views/viewState.d.ts.map +1 -0
  174. package/lib/features/views/viewState.js +117 -0
  175. package/lib/features/views/viewState.js.map +1 -0
  176. package/lib/i18n/locales/ar.json +16 -0
  177. package/lib/i18n/locales/de.json +12 -0
  178. package/lib/i18n/locales/en.json +245 -33
  179. package/lib/i18n/locales/es.json +13 -0
  180. package/lib/i18n/locales/fr.json +13 -0
  181. package/lib/i18n/locales/it.json +13 -0
  182. package/lib/i18n/locales/ja.json +11 -0
  183. package/lib/i18n/locales/ko.json +11 -0
  184. package/lib/i18n/locales/pt.json +13 -0
  185. package/lib/i18n/locales/ru.json +14 -0
  186. package/lib/i18n/locales/tr.json +12 -0
  187. package/lib/i18n/locales/zh-TW.json +11 -0
  188. package/lib/i18n/locales/zh.json +11 -0
  189. package/lib/router/HistoryNavigator.d.ts.map +1 -1
  190. package/lib/router/HistoryNavigator.js +23 -13
  191. package/lib/router/HistoryNavigator.js.map +1 -1
  192. package/lib/router/Nav.d.ts.map +1 -1
  193. package/lib/router/Nav.js +15 -6
  194. package/lib/router/Nav.js.map +1 -1
  195. package/lib/session/UserSession.d.ts.map +1 -1
  196. package/lib/session/UserSession.js +5 -3
  197. package/lib/session/UserSession.js.map +1 -1
  198. package/lib/vertesia-ui-core.js +4 -4
  199. package/lib/vertesia-ui-core.js.map +1 -1
  200. package/lib/vertesia-ui-features.js +34 -27
  201. package/lib/vertesia-ui-features.js.map +1 -1
  202. package/lib/vertesia-ui-i18n.js +15 -15
  203. package/lib/vertesia-ui-i18n.js.map +1 -1
  204. package/lib/vertesia-ui-router.js +1 -1
  205. package/lib/vertesia-ui-router.js.map +1 -1
  206. package/lib/vertesia-ui-session.js +1 -1
  207. package/lib/vertesia-ui-session.js.map +1 -1
  208. package/lib/vertesia-ui-shell.js +1 -1
  209. package/lib/vertesia-ui-shell.js.map +1 -1
  210. package/lib/vertesia-ui-widgets.js +7 -7
  211. package/lib/vertesia-ui-widgets.js.map +1 -1
  212. package/lib/widgets/form/Form.js +1 -1
  213. package/lib/widgets/form/Form.js.map +1 -1
  214. package/lib/widgets/json-view/JSONSwitcher.js +1 -1
  215. package/lib/widgets/json-view/JSONSwitcher.js.map +1 -1
  216. package/lib/widgets/json-view/JSONView.js +6 -6
  217. package/lib/widgets/json-view/JSONView.js.map +1 -1
  218. package/lib/widgets/monacoEditor/MonacoEditor.d.ts.map +1 -1
  219. package/lib/widgets/monacoEditor/MonacoEditor.js +29 -0
  220. package/lib/widgets/monacoEditor/MonacoEditor.js.map +1 -1
  221. package/lib/widgets/schema-editor/ManagedSchema.d.ts +8 -0
  222. package/lib/widgets/schema-editor/ManagedSchema.d.ts.map +1 -1
  223. package/lib/widgets/schema-editor/ManagedSchema.js +16 -0
  224. package/lib/widgets/schema-editor/ManagedSchema.js.map +1 -1
  225. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.d.ts +2 -0
  226. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.d.ts.map +1 -1
  227. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.js +1 -0
  228. package/lib/widgets/schema-editor/editor/EditableSchemaProperty.js.map +1 -1
  229. package/lib/widgets/schema-editor/editor/PropertyViewer.d.ts.map +1 -1
  230. package/lib/widgets/schema-editor/editor/PropertyViewer.js +4 -1
  231. package/lib/widgets/schema-editor/editor/PropertyViewer.js.map +1 -1
  232. package/lib/widgets/schema-editor/editor/SchemaEditor.d.ts.map +1 -1
  233. package/lib/widgets/schema-editor/editor/SchemaEditor.js +22 -11
  234. package/lib/widgets/schema-editor/editor/SchemaEditor.js.map +1 -1
  235. package/package.json +32 -32
  236. package/src/__tests__/a11y.test.tsx +73 -0
  237. package/src/core/components/SidePanel.tsx +1 -1
  238. package/src/core/components/shadcn/button.tsx +67 -12
  239. package/src/core/components/shadcn/modal/dialog.tsx +1 -1
  240. package/src/core/components/shadcn/theme/ThemeSwitcher.tsx +1 -1
  241. package/src/features/agent/chat/AgentChatPlaybackControls.tsx +0 -5
  242. package/src/features/agent/chat/AgentRequestInputOverlay.test.tsx +31 -0
  243. package/src/features/agent/chat/AgentRequestInputOverlay.tsx +6 -2
  244. package/src/features/agent/chat/ArtifactsTab.tsx +19 -9
  245. package/src/features/agent/chat/ImageLightbox.tsx +0 -1
  246. package/src/features/agent/chat/ModernAgentConversation.test.tsx +48 -0
  247. package/src/features/agent/chat/ModernAgentConversation.tsx +0 -2
  248. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.test.tsx +6 -1
  249. package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +21 -15
  250. package/src/features/agent/chat/ModernAgentOutput/Header.tsx +3 -3
  251. package/src/features/agent/chat/ModernAgentOutput/MessageInput.tsx +0 -2
  252. package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +4 -1
  253. package/src/features/agent/chat/ModernAgentOutput/requestInputMessages.test.ts +80 -0
  254. package/src/features/agent/chat/ModernAgentOutput/requestInputMessages.ts +21 -1
  255. package/src/features/environment/SelectEnvironment.tsx +186 -0
  256. package/src/features/environment/index.ts +1 -0
  257. package/src/features/index.ts +2 -0
  258. package/src/features/magic-pdf/AnnotatedImageSlider.tsx +62 -66
  259. package/src/features/magic-pdf/DownloadPopover.tsx +5 -48
  260. package/src/features/magic-pdf/ExtractedContentView.tsx +2 -14
  261. package/src/features/magic-pdf/GroundedExtractionAssistantPanel.tsx +86 -0
  262. package/src/features/magic-pdf/GroundedExtractionView.test.tsx +65 -0
  263. package/src/features/magic-pdf/GroundedExtractionView.tsx +1055 -0
  264. package/src/features/magic-pdf/MagicPdfProvider.tsx +17 -47
  265. package/src/features/magic-pdf/MagicPdfView.tsx +3 -51
  266. package/src/features/magic-pdf/index.ts +1 -0
  267. package/src/features/magic-pdf/types.ts +1 -1
  268. package/src/features/oauth/McpConnectionsButton.tsx +0 -2
  269. package/src/features/oauth/McpConnectionsDialog.tsx +0 -1
  270. package/src/features/oauth/RemoteMcpConnectionButton.tsx +0 -1
  271. package/src/features/pdf-viewer/PdfPageSlider.tsx +5 -5
  272. package/src/features/pdf-viewer/SimplePdfViewer.tsx +11 -12
  273. package/src/features/permissions/UserPermissionsProvider.tsx +1 -1
  274. package/src/features/store/objects/DocumentQuickFilter.tsx +13 -15
  275. package/src/features/store/objects/DocumentSearchResults.tsx +3 -6
  276. package/src/features/store/objects/components/ContentDispositionButton.tsx +5 -1
  277. package/src/features/store/objects/components/ContentOverview.tsx +144 -44
  278. package/src/features/store/objects/components/DocumentIcon.tsx +1 -1
  279. package/src/features/store/objects/components/VectorSearchWidget.tsx +2 -2
  280. package/src/features/store/objects/components/useContentPanelHooks.ts +3 -15
  281. package/src/features/store/objects/layout/renderers.tsx +1 -2
  282. package/src/features/store/objects/selection/SelectionActions.tsx +1 -1
  283. package/src/features/store/types/ContentObjectTypesTable.tsx +12 -14
  284. package/src/features/store/types/IntakePolicyEditor.tsx +679 -0
  285. package/src/features/store/types/IntakePolicyForm.tsx +838 -0
  286. package/src/features/store/types/SelectContentTypeModal.tsx +2 -2
  287. package/src/features/store/types/index.ts +2 -0
  288. package/src/features/store/types/intake-policy-editor.logic.test.ts +109 -0
  289. package/src/features/store/types/intake-policy-editor.logic.ts +87 -0
  290. package/src/features/store/types/typeCatalogCache.ts +45 -0
  291. package/src/features/user/UserInfo.tsx +7 -7
  292. package/src/features/views/ViewExperience.test.tsx +273 -0
  293. package/src/features/views/ViewExperience.tsx +408 -0
  294. package/src/features/views/ViewNavigation.test.tsx +86 -0
  295. package/src/features/views/ViewNavigation.tsx +187 -0
  296. package/src/features/views/ViewResults.test.ts +82 -0
  297. package/src/features/views/ViewResults.tsx +609 -0
  298. package/src/features/views/ViewSearch.test.tsx +147 -0
  299. package/src/features/views/ViewSearch.tsx +205 -0
  300. package/src/features/views/index.ts +6 -0
  301. package/src/features/views/types.ts +57 -0
  302. package/src/features/views/viewState.test.ts +111 -0
  303. package/src/features/views/viewState.ts +132 -0
  304. package/src/i18n/locales/ar.json +16 -0
  305. package/src/i18n/locales/de.json +12 -0
  306. package/src/i18n/locales/en.json +965 -753
  307. package/src/i18n/locales/es.json +13 -0
  308. package/src/i18n/locales/fr.json +13 -0
  309. package/src/i18n/locales/it.json +13 -0
  310. package/src/i18n/locales/ja.json +11 -0
  311. package/src/i18n/locales/ko.json +11 -0
  312. package/src/i18n/locales/pt.json +13 -0
  313. package/src/i18n/locales/ru.json +14 -0
  314. package/src/i18n/locales/tr.json +12 -0
  315. package/src/i18n/locales/zh-TW.json +11 -0
  316. package/src/i18n/locales/zh.json +11 -0
  317. package/src/router/HistoryNavigator.test.ts +48 -0
  318. package/src/router/HistoryNavigator.ts +24 -13
  319. package/src/router/Nav.tsx +18 -8
  320. package/src/session/UserSession.test.ts +39 -0
  321. package/src/session/UserSession.ts +5 -3
  322. package/src/widgets/form/Form.tsx +1 -1
  323. package/src/widgets/json-view/JSONSwitcher.tsx +2 -2
  324. package/src/widgets/json-view/JSONView.tsx +7 -7
  325. package/src/widgets/monacoEditor/MonacoEditor.tsx +29 -0
  326. package/src/widgets/schema-editor/ManagedSchema.ts +22 -0
  327. package/src/widgets/schema-editor/editor/EditableSchemaProperty.tsx +3 -0
  328. package/src/widgets/schema-editor/editor/PropertyViewer.tsx +14 -3
  329. package/src/widgets/schema-editor/editor/SchemaEditor.tsx +80 -29
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewExperience.js","sourceRoot":"","sources":["../../../src/features/views/ViewExperience.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ViewNavigationRendererProps } from './types.js';
2
+ export declare function DefaultViewNavigation({ configuration, result, isLoading, onChange }: ViewNavigationRendererProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=ViewNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewNavigation.d.ts","sourceRoot":"","sources":["../../../src/features/views/ViewNavigation.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AAiB9D,wBAAgB,qBAAqB,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,2BAA2B,+BAoKhH"}
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Checkbox, SelectBox } from '@vertesia/ui/core';
3
+ import { useUITranslation } from '@vertesia/ui/i18n';
4
+ import { ChevronRight, X } from 'lucide-react';
5
+ import { useId } from 'react';
6
+ function nextSelection(current, id, selected, multiSelect) {
7
+ if (!selected)
8
+ return current.filter((value) => value !== id);
9
+ if (multiSelect === false)
10
+ return [id];
11
+ return current.includes(id) ? current : [...current, id];
12
+ }
13
+ function NodeLabel({ node }) {
14
+ return (_jsxs("span", { className: "flex min-w-0 flex-1 items-center justify-between gap-2", children: [_jsx("span", { className: "truncate", children: node.label }), _jsx("span", { className: "text-xs tabular-nums text-muted", children: node.count })] }));
15
+ }
16
+ export function DefaultViewNavigation({ configuration, result, isLoading, onChange }) {
17
+ const { t } = useUITranslation();
18
+ const idPrefix = useId();
19
+ const presentation = configuration.presentation ??
20
+ (configuration.source === 'location' || configuration.source === 'hierarchy' ? 'tree' : 'list');
21
+ const multiSelect = configuration.source === 'hierarchy' ? false : configuration.multi_select;
22
+ const breadcrumbs = result.breadcrumbs ?? [];
23
+ const toggle = (id, selected) => {
24
+ onChange(nextSelection(result.selected, id, selected, multiSelect));
25
+ };
26
+ return (_jsxs("section", { className: "space-y-2", "aria-labelledby": `${idPrefix}-label`, children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("h2", { id: `${idPrefix}-label`, className: "text-sm font-semibold", children: configuration.label }), result.selected.length > 0 && (_jsxs(Button, { type: "button", variant: "ghost", size: "sm", disabled: isLoading, onClick: () => onChange([]), "aria-label": `${t('filter.clearAll')}: ${configuration.label}`, children: [_jsx(X, { className: "size-3.5" }), t('filter.clearAll')] }))] }), configuration.source === 'hierarchy' && breadcrumbs.length > 0 && (_jsx("nav", { "aria-label": `${configuration.label} path`, children: _jsx("ol", { className: "flex flex-wrap items-center gap-1 text-sm", children: breadcrumbs.map((node, index) => (_jsxs("li", { className: "flex items-center gap-1", children: [index > 0 && _jsx(ChevronRight, { "aria-hidden": "true", className: "size-3.5 text-muted" }), _jsx(Button, { type: "button", variant: "ghost", size: "sm", disabled: isLoading, onClick: () => onChange([node.id]), "aria-current": index === breadcrumbs.length - 1 ? 'page' : undefined, children: node.label })] }, node.id))) }) })), result.selected.length > 0 &&
27
+ (configuration.source === 'location' || configuration.source === 'collection') && (_jsx("div", { className: "flex flex-wrap gap-1", children: result.selected.map((value) => {
28
+ const node = result.nodes.find((candidate) => candidate.id === value);
29
+ const label = node?.label ?? value;
30
+ return (_jsxs(Button, { type: "button", variant: "secondary", size: "sm", disabled: isLoading, onClick: () => toggle(value, false), "aria-label": t('view.removeSelection', { value: label }), children: [label, _jsx(X, { "aria-hidden": "true", className: "size-3.5" })] }, value));
31
+ }) })), presentation === 'select' && multiSelect === false ? (_jsx(SelectBox, { options: result.nodes, value: result.nodes.find((node) => result.selected.includes(node.id)), onChange: (node) => onChange([node.id]), optionLabel: (node) => `${node.label} (${node.count})`, by: "id", disabled: isLoading, placeholder: configuration.label, "aria-label": configuration.label })) : presentation === 'select' ? (_jsx(SelectBox, { multiple: true, options: result.nodes, value: result.nodes.filter((node) => result.selected.includes(node.id)), onChange: (nodes) => onChange(nodes.map((node) => node.id)), optionLabel: (node) => `${node.label} (${node.count})`, by: "id", disabled: isLoading, placeholder: configuration.label, "aria-label": configuration.label })) : presentation === 'chips' ? (_jsx("div", { className: "flex flex-wrap gap-2", children: result.nodes.map((node) => (_jsxs(Button, { type: "button", variant: result.selected.includes(node.id) ? 'secondary' : 'outline', size: "sm", disabled: isLoading, onClick: () => toggle(node.id, !result.selected.includes(node.id)), children: [node.label, _jsx("span", { className: "text-xs tabular-nums text-muted", children: node.count })] }, node.id))) })) : configuration.source === 'hierarchy' ? (_jsx("div", { className: "space-y-1", children: result.nodes.map((node) => (_jsxs(Button, { type: "button", variant: result.selected.includes(node.id) ? 'secondary' : 'ghost', className: "w-full justify-start", disabled: isLoading, onClick: () => onChange([node.id]), children: [_jsx(NodeLabel, { node: node }), node.expandable && (_jsx(ChevronRight, { "aria-hidden": "true", className: "size-4 shrink-0 text-muted" }))] }, node.id))) })) : (_jsx("div", { className: "space-y-1", children: result.nodes.map((node, index) => {
32
+ const nodeId = `${idPrefix}-${index}`;
33
+ return (_jsxs("div", { className: "flex items-center gap-2 rounded-md px-2 py-1.5 hover:bg-muted", children: [_jsx(Checkbox, { id: nodeId, checked: result.selected.includes(node.id), disabled: isLoading, onCheckedChange: (checked) => toggle(node.id, checked === true) }), _jsx("label", { htmlFor: nodeId, className: "flex min-w-0 flex-1 cursor-pointer text-sm", children: _jsx(NodeLabel, { node: node }) })] }, node.id));
34
+ }) })), result.nodes.length === 0 && _jsx("p", { className: "text-sm text-muted", children: t('filter.noAvailableFilters') })] }));
35
+ }
36
+ //# sourceMappingURL=ViewNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewNavigation.js","sourceRoot":"","sources":["../../../src/features/views/ViewNavigation.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ViewHit, ViewResultField } from '@vertesia/common';
2
+ import { type LocaleFormat } from '@vertesia/ui/i18n';
3
+ import type { ViewResultsRendererProps } from './types.js';
4
+ export declare function getViewFieldValue(hit: ViewHit, field: string): unknown;
5
+ type ViewValueFormatters = Pick<LocaleFormat, 'formatDate' | 'formatNumber'>;
6
+ export declare function formatViewFieldValue(hit: ViewHit, field: ViewResultField, formatters?: ViewValueFormatters): string;
7
+ export declare function DefaultViewResults({ configuration, definition, request, result, isLoading, onSortChange, onOpenHit, resolveMedia, }: ViewResultsRendererProps): import("react").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=ViewResults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewResults.d.ts","sourceRoot":"","sources":["../../../src/features/views/ViewResults.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKR,OAAO,EAEP,eAAe,EAIlB,MAAM,kBAAkB,CAAC;AAiB1B,OAAO,EAAE,KAAK,YAAY,EAAqC,MAAM,mBAAmB,CAAC;AAGzF,OAAO,KAAK,EAAqB,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAW9E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKtE;AAED,KAAK,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,CAAC,CAAC;AAW7E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAwBnH;AA+eD,wBAAgB,kBAAkB,CAAC,EAC/B,aAAa,EACb,UAAU,EACV,OAAO,EACP,MAAM,EACN,SAAS,EACT,YAAY,EACZ,SAAS,EACT,YAAY,GACf,EAAE,wBAAwB,+BAoB1B"}
@@ -0,0 +1,229 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, SortableTableHeaderCell, Table, TableHeaderCell, TBody, THead, VTooltip, } from '@vertesia/ui/core';
3
+ import { useLocaleFormat, useUITranslation } from '@vertesia/ui/i18n';
4
+ import { ChevronDown, ChevronsUpDown, ChevronUp, ExternalLink, FileText, ImageIcon } from 'lucide-react';
5
+ import { createContext, useContext, useEffect, useState } from 'react';
6
+ import { resolveViewSort } from './viewState.js';
7
+ function nestedValue(root, path) {
8
+ if (!path || path === '.')
9
+ return root;
10
+ return path.split('.').reduce((value, segment) => {
11
+ if (!value || typeof value !== 'object' || Array.isArray(value))
12
+ return undefined;
13
+ return value[segment];
14
+ }, root);
15
+ }
16
+ export function getViewFieldValue(hit, field) {
17
+ if (field === 'score')
18
+ return hit.score;
19
+ if (field.startsWith('annotation.'))
20
+ return nestedValue(hit.annotation, field.slice('annotation.'.length));
21
+ if (field.startsWith('document.'))
22
+ return nestedValue(hit.document, field.slice('document.'.length));
23
+ return nestedValue(hit.document, field);
24
+ }
25
+ const ViewValueFormattersContext = createContext(undefined);
26
+ function primitiveText(value) {
27
+ if (value === undefined || value === null || value === '')
28
+ return undefined;
29
+ if (Array.isArray(value))
30
+ return value.map(primitiveText).filter(Boolean).join(', ');
31
+ if (typeof value === 'object')
32
+ return JSON.stringify(value);
33
+ return String(value);
34
+ }
35
+ export function formatViewFieldValue(hit, field, formatters) {
36
+ const value = getViewFieldValue(hit, field.field);
37
+ const fallback = field.fallback ?? '';
38
+ if (value === undefined || value === null || value === '')
39
+ return fallback;
40
+ if (field.format === 'date') {
41
+ const text = String(value);
42
+ const dateOnly = /^\d{4}-\d{2}-\d{2}$/.test(text);
43
+ const date = new Date(text);
44
+ if (Number.isNaN(date.getTime()))
45
+ return primitiveText(value) ?? fallback;
46
+ const options = {
47
+ year: 'numeric',
48
+ month: 'numeric',
49
+ day: 'numeric',
50
+ ...(dateOnly ? { timeZone: 'UTC' } : {}),
51
+ };
52
+ return formatters?.formatDate(date, options) ?? new Intl.DateTimeFormat(undefined, options).format(date);
53
+ }
54
+ if (field.format === 'number') {
55
+ const number = typeof value === 'number' ? value : Number(value);
56
+ if (!Number.isFinite(number))
57
+ return primitiveText(value) ?? fallback;
58
+ return formatters?.formatNumber(number) ?? new Intl.NumberFormat().format(number);
59
+ }
60
+ return primitiveText(value) ?? fallback;
61
+ }
62
+ function ViewField({ hit, field, className }) {
63
+ const formatters = useContext(ViewValueFormattersContext);
64
+ const text = formatViewFieldValue(hit, field, formatters);
65
+ if (!text)
66
+ return null;
67
+ if (field.format === 'badge' || field.format === 'content_type') {
68
+ return _jsx(Badge, { className: className, children: text });
69
+ }
70
+ return _jsx("span", { className: className, children: text });
71
+ }
72
+ function OpenResultButton({ hit, onOpenHit, compact = false, }) {
73
+ const { t } = useUITranslation();
74
+ if (!onOpenHit)
75
+ return null;
76
+ if (compact) {
77
+ return (_jsx(VTooltip, { description: t('agent.openDocument'), asChild: true, children: _jsx(Button, { type: "button", variant: "ghost", size: "icon", "aria-label": t('agent.openDocument'), onClick: () => onOpenHit(hit), children: _jsx(ExternalLink, { className: "size-4" }) }) }));
78
+ }
79
+ return (_jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: () => onOpenHit(hit), children: [_jsx(ExternalLink, { className: "size-4" }), t('agent.openDocument')] }));
80
+ }
81
+ function safeMediaUrl(hit, media) {
82
+ if (media.source !== 'property' || !media.field)
83
+ return undefined;
84
+ const value = primitiveText(getViewFieldValue(hit, media.field));
85
+ if (!value)
86
+ return undefined;
87
+ try {
88
+ const url = new URL(value, typeof window === 'undefined' ? 'https://localhost' : window.location.origin);
89
+ return url.protocol === 'http:' || url.protocol === 'https:' ? url.toString() : undefined;
90
+ }
91
+ catch {
92
+ return undefined;
93
+ }
94
+ }
95
+ function ViewMedia({ hit, media, resolveMedia, className, }) {
96
+ const directUrl = media ? safeMediaUrl(hit, media) : undefined;
97
+ const [resolvedUrl, setResolvedUrl] = useState();
98
+ const [failed, setFailed] = useState(false);
99
+ useEffect(() => {
100
+ setResolvedUrl(undefined);
101
+ setFailed(false);
102
+ if (directUrl || !media || !resolveMedia)
103
+ return;
104
+ let active = true;
105
+ Promise.resolve(resolveMedia(hit, media))
106
+ .then((url) => {
107
+ if (active)
108
+ setResolvedUrl(url);
109
+ })
110
+ .catch(() => {
111
+ if (active)
112
+ setFailed(true);
113
+ });
114
+ return () => {
115
+ active = false;
116
+ };
117
+ }, [directUrl, hit, media, resolveMedia]);
118
+ const url = failed ? undefined : (directUrl ?? resolvedUrl);
119
+ const fit = media?.fit === 'contain' ? 'object-contain' : 'object-cover';
120
+ if (url) {
121
+ return _jsx("img", { src: url, alt: "", className: `${fit} ${className ?? ''}`, onError: () => setFailed(true) });
122
+ }
123
+ const fallback = media?.source === 'type_icon' ? 'type_icon' : (media?.fallback ?? 'type_icon');
124
+ if (fallback === 'none')
125
+ return null;
126
+ return (_jsx("div", { className: `flex items-center justify-center bg-muted ${className ?? ''}`, "aria-hidden": "true", children: fallback === 'placeholder' ? (_jsx(ImageIcon, { className: "size-10 text-muted-foreground" })) : (_jsx(FileText, { className: "size-10 text-muted-foreground" })) }));
127
+ }
128
+ function Annotation({ hit }) {
129
+ const annotation = hit.annotation?.why_match ?? hit.annotation?.answer ?? hit.annotation?.excerpt;
130
+ return annotation ? _jsx("p", { className: "text-sm text-info", children: annotation }) : null;
131
+ }
132
+ function BadgeFields({ hit, fields }) {
133
+ if (!fields?.length)
134
+ return null;
135
+ return (_jsx("div", { className: "flex flex-wrap gap-1", children: fields.map((field) => (_jsx(ViewField, { hit: hit, field: field }, `${field.field}-${field.label ?? ''}`))) }));
136
+ }
137
+ function LabeledFields({ hit, fields }) {
138
+ const formatters = useContext(ViewValueFormattersContext);
139
+ if (!fields?.length)
140
+ return null;
141
+ return (_jsx("dl", { className: "space-y-1 text-sm", children: fields.map((field) => {
142
+ const value = formatViewFieldValue(hit, field, formatters);
143
+ if (!value)
144
+ return null;
145
+ return (_jsxs("div", { className: "flex gap-2", children: [field.label && _jsx("dt", { className: "shrink-0 text-muted", children: field.label }), _jsx("dd", { className: "min-w-0 truncate", children: value })] }, `${field.field}-${field.label ?? ''}`));
146
+ }) }));
147
+ }
148
+ function ListResults({ display, hits, onOpenHit, resolveMedia, }) {
149
+ return (_jsx("div", { className: "divide-y divide-border rounded-md border", children: hits.map((hit) => (_jsxs("article", { className: "flex gap-4 p-4", children: [display.media && (_jsx(ViewMedia, { hit: hit, media: display.media, resolveMedia: resolveMedia, className: "size-20 shrink-0 rounded-md" })), _jsxs("div", { className: "min-w-0 flex-1 space-y-2", children: [_jsxs("div", { children: [_jsx("h3", { className: "font-semibold", children: _jsx(ViewField, { hit: hit, field: display.title }) }), display.subtitle && (_jsx("div", { className: "flex flex-wrap gap-x-3 gap-y-1 text-sm text-muted", children: display.subtitle.map((field) => (_jsx(ViewField, { hit: hit, field: field }, field.field))) }))] }), display.description && (_jsx("p", { className: "line-clamp-3 text-sm text-muted-foreground", children: _jsx(ViewField, { hit: hit, field: display.description }) })), _jsx(BadgeFields, { hit: hit, fields: display.badges }), _jsx(Annotation, { hit: hit })] }), _jsx("div", { className: "shrink-0 self-center", children: _jsx(OpenResultButton, { hit: hit, onOpenHit: onOpenHit, compact: true }) })] }, hit.id))) }));
150
+ }
151
+ function TableResults({ display, hits, isLoading, onOpenHit, sortOptions, currentSort, onSortChange, }) {
152
+ const { t } = useUITranslation();
153
+ return (_jsx("div", { className: "overflow-x-auto rounded-md border", children: _jsxs(Table, { className: "w-full", children: [_jsx(THead, { children: _jsxs("tr", { children: [display.columns.map((column) => {
154
+ const sortOption = column.sort_option
155
+ ? sortOptions?.find((option) => option.id === column.sort_option)
156
+ : undefined;
157
+ if (!column.sortable || !sortOption) {
158
+ return (_jsx(TableHeaderCell, { children: column.label ?? column.field }, `${column.field}-${column.label ?? ''}`));
159
+ }
160
+ const direction = currentSort === sortOption.id
161
+ ? sortOption.sort[0]?.order === 'desc'
162
+ ? 'descending'
163
+ : 'ascending'
164
+ : 'none';
165
+ return (_jsx(SortableTableHeaderCell, { sortDirection: direction, onSort: () => onSortChange?.(sortOption.id), disabled: isLoading || !onSortChange, sortIndicator: (sortDirection) => {
166
+ if (sortDirection === 'ascending') {
167
+ return _jsx(ChevronUp, { className: "size-3", "aria-hidden": "true" });
168
+ }
169
+ if (sortDirection === 'descending') {
170
+ return _jsx(ChevronDown, { className: "size-3", "aria-hidden": "true" });
171
+ }
172
+ return _jsx(ChevronsUpDown, { className: "size-3 text-muted", "aria-hidden": "true" });
173
+ }, children: column.label ?? column.field }, `${column.field}-${column.label ?? ''}`));
174
+ }), onOpenHit && (_jsx(TableHeaderCell, { className: "w-0", children: _jsx("span", { className: "sr-only", children: t('agent.openDocument') }) }))] }) }), _jsx(TBody, { isLoading: isLoading && hits.length === 0, columns: display.columns.length + (onOpenHit ? 1 : 0), children: hits.map((hit) => (_jsxs("tr", { children: [display.columns.map((column) => (_jsx("td", { style: column.width ? { width: column.width } : undefined, children: _jsx(ViewField, { hit: hit, field: column }) }, `${hit.id}-${column.field}`))), onOpenHit && (_jsx("td", { className: "w-0 whitespace-nowrap text-end", children: _jsx(OpenResultButton, { hit: hit, onOpenHit: onOpenHit, compact: true }) }))] }, hit.id))) })] }) }));
175
+ }
176
+ const GRID_COLUMNS = {
177
+ 2: 'md:grid-cols-2',
178
+ 3: 'md:grid-cols-2 xl:grid-cols-3',
179
+ 4: 'md:grid-cols-2 xl:grid-cols-4',
180
+ 5: 'md:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-5',
181
+ 6: 'md:grid-cols-2 lg:grid-cols-3 2xl:grid-cols-6',
182
+ };
183
+ function ResultCard({ hit, configuration, onOpenHit, resolveMedia, }) {
184
+ return (_jsxs(Card, { className: "flex h-full min-w-0 flex-col overflow-hidden", children: [configuration.media && (_jsx(ViewMedia, { hit: hit, media: configuration.media, resolveMedia: resolveMedia, className: "h-40 w-full border-b" })), _jsxs(CardHeader, { className: "gap-2 p-4", children: [_jsx(BadgeFields, { hit: hit, fields: configuration.badges }), _jsx(CardTitle, { className: "truncate text-base", children: _jsx(ViewField, { hit: hit, field: configuration.title }) }), configuration.description && (_jsx(CardDescription, { className: "line-clamp-3", children: _jsx(ViewField, { hit: hit, field: configuration.description }) }))] }), _jsxs(CardContent, { className: "flex-1 p-4 pt-0", children: [_jsx(LabeledFields, { hit: hit, fields: configuration.fields }), _jsx(Annotation, { hit: hit })] }), onOpenHit && (_jsx(CardFooter, { className: "justify-end p-4 pt-0", children: _jsx(OpenResultButton, { hit: hit, onOpenHit: onOpenHit }) }))] }));
185
+ }
186
+ function CardsResults({ display, hits, onOpenHit, resolveMedia, }) {
187
+ return (_jsx("div", { className: `grid grid-cols-1 gap-4 ${GRID_COLUMNS[display.columns ?? 3]}`, children: hits.map((hit) => (_jsx(ResultCard, { hit: hit, configuration: display, onOpenHit: onOpenHit, resolveMedia: resolveMedia }, hit.id))) }));
188
+ }
189
+ function GalleryResults({ display, hits, onOpenHit, resolveMedia, }) {
190
+ return (_jsx("div", { className: `grid grid-cols-1 gap-4 ${GRID_COLUMNS[display.columns ?? 4]}`, children: hits.map((hit) => (_jsxs(Card, { className: "overflow-hidden", children: [_jsx(ViewMedia, { hit: hit, media: display.media, resolveMedia: resolveMedia, className: "aspect-square w-full border-b" }), _jsxs(CardContent, { className: "space-y-2 p-3", children: [_jsx("h3", { className: "truncate font-semibold", children: _jsx(ViewField, { hit: hit, field: display.title }) }), display.caption && (_jsx("div", { className: "space-y-1 text-sm text-muted", children: display.caption.map((field) => (_jsx("div", { className: "truncate", children: _jsx(ViewField, { hit: hit, field: field }) }, field.field))) })), _jsx(OpenResultButton, { hit: hit, onOpenHit: onOpenHit })] })] }, hit.id))) }));
191
+ }
192
+ function BoardResults({ display, hits, onOpenHit, resolveMedia, }) {
193
+ const grouped = new Map();
194
+ for (const hit of hits) {
195
+ const key = primitiveText(getViewFieldValue(hit, display.group_by)) ?? '';
196
+ grouped.set(key, [...(grouped.get(key) ?? []), hit]);
197
+ }
198
+ const columns = display.columns?.length
199
+ ? [...display.columns].sort((left, right) => (left.order ?? 0) - (right.order ?? 0))
200
+ : [...grouped.keys()].sort().map((value) => ({ value, label: value || '—' }));
201
+ return (_jsx("div", { className: "flex min-w-max gap-4 overflow-x-auto pb-2", children: columns.map((column) => {
202
+ const columnHits = grouped.get(column.value) ?? [];
203
+ return (_jsxs("section", { className: "w-80 shrink-0 space-y-3 rounded-lg bg-muted/40 p-3", children: [_jsxs("div", { className: "flex items-center justify-between gap-2", children: [_jsx("h3", { className: "font-semibold", children: column.label }), _jsx(Badge, { children: columnHits.length })] }), _jsx("div", { className: "space-y-3", children: columnHits.map((hit) => (_jsx(ResultCard, { hit: hit, configuration: display.card, onOpenHit: onOpenHit, resolveMedia: resolveMedia }, hit.id))) })] }, column.value));
204
+ }) }));
205
+ }
206
+ function renderResults(configuration, hits, isLoading, onOpenHit, resolveMedia, sortOptions, currentSort, onSortChange) {
207
+ if (configuration.type === 'table') {
208
+ return (_jsx(TableResults, { display: configuration, hits: hits, isLoading: isLoading, onOpenHit: onOpenHit, sortOptions: sortOptions, currentSort: currentSort, onSortChange: onSortChange }));
209
+ }
210
+ if (configuration.type === 'cards') {
211
+ return _jsx(CardsResults, { display: configuration, hits: hits, onOpenHit: onOpenHit, resolveMedia: resolveMedia });
212
+ }
213
+ if (configuration.type === 'gallery') {
214
+ return _jsx(GalleryResults, { display: configuration, hits: hits, onOpenHit: onOpenHit, resolveMedia: resolveMedia });
215
+ }
216
+ if (configuration.type === 'board') {
217
+ return _jsx(BoardResults, { display: configuration, hits: hits, onOpenHit: onOpenHit, resolveMedia: resolveMedia });
218
+ }
219
+ return _jsx(ListResults, { display: configuration, hits: hits, onOpenHit: onOpenHit, resolveMedia: resolveMedia });
220
+ }
221
+ export function DefaultViewResults({ configuration, definition, request, result, isLoading, onSortChange, onOpenHit, resolveMedia, }) {
222
+ const { t } = useUITranslation();
223
+ const formatters = useLocaleFormat();
224
+ if (!isLoading && result.hits.length === 0) {
225
+ return _jsx("p", { className: "py-12 text-center text-sm text-muted", children: t('filter.noResultsFound') });
226
+ }
227
+ return (_jsx(ViewValueFormattersContext.Provider, { value: formatters, children: renderResults(configuration, result.hits, isLoading, onOpenHit, resolveMedia, definition.results?.sort_options, resolveViewSort(request, result, definition.results?.default_sort), onSortChange) }));
228
+ }
229
+ //# sourceMappingURL=ViewResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewResults.js","sourceRoot":"","sources":["../../../src/features/views/ViewResults.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ViewSearchRendererProps } from './types.js';
2
+ export declare function DefaultViewSearch({ configuration, query, keyTerms, isLoading, onQueryChange, onKeyTermsChange, onSubmit, }: ViewSearchRendererProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=ViewSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewSearch.d.ts","sourceRoot":"","sources":["../../../src/features/views/ViewSearch.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAoF1D,wBAAgB,iBAAiB,CAAC,EAC9B,aAAa,EACb,KAAK,EACL,QAAQ,EACR,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,QAAQ,GACX,EAAE,uBAAuB,+BA4GzB"}
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, FormItem, Input } from '@vertesia/ui/core';
3
+ import { useUITranslation } from '@vertesia/ui/i18n';
4
+ import { Search } from 'lucide-react';
5
+ import { useEffect, useId, useRef, useState } from 'react';
6
+ function keyTermInputType(type, multiple) {
7
+ if (multiple)
8
+ return 'text';
9
+ if (type === 'number')
10
+ return 'number';
11
+ if (type === 'date')
12
+ return 'date';
13
+ return 'text';
14
+ }
15
+ function rangeBounds(values) {
16
+ const [from = '', to = ''] = (values[0] ?? '').split('..', 2);
17
+ return [from, to];
18
+ }
19
+ function rangeValues(from, to) {
20
+ return from || to ? [`${from}..${to}`] : [];
21
+ }
22
+ function serializeKeyTerm(values, multiple) {
23
+ return multiple ? values.join(', ') : (values[0] ?? '');
24
+ }
25
+ function parseKeyTerm(value, multiple) {
26
+ if (multiple) {
27
+ return value
28
+ .split(',')
29
+ .map((entry) => entry.trim())
30
+ .filter(Boolean);
31
+ }
32
+ return value.trim() ? [value.trim()] : [];
33
+ }
34
+ function KeyTermInput({ term, values, isLoading, onChange, }) {
35
+ const focused = useRef(false);
36
+ const lastEmittedValues = useRef(undefined);
37
+ const [input, setInput] = useState(() => serializeKeyTerm(values, term.multiple));
38
+ const serializedValues = serializeKeyTerm(values, term.multiple);
39
+ useEffect(() => {
40
+ const isLocalEcho = focused.current && lastEmittedValues.current === serializedValues;
41
+ if (!isLocalEcho)
42
+ setInput(serializedValues);
43
+ lastEmittedValues.current = undefined;
44
+ }, [serializedValues]);
45
+ return (_jsx(FormItem, { label: term.label, children: _jsx(Input, { type: keyTermInputType(term.type, term.multiple), name: `view-key-term-${term.id}`, autoComplete: "off", value: input, onFocus: () => {
46
+ focused.current = true;
47
+ }, onBlur: () => {
48
+ focused.current = false;
49
+ const normalized = parseKeyTerm(input, term.multiple);
50
+ setInput(serializeKeyTerm(normalized, term.multiple));
51
+ }, onChange: (value) => {
52
+ setInput(value);
53
+ const parsed = parseKeyTerm(value, term.multiple);
54
+ lastEmittedValues.current = serializeKeyTerm(parsed, term.multiple);
55
+ onChange(parsed);
56
+ }, placeholder: term.label, disabled: isLoading }) }));
57
+ }
58
+ export function DefaultViewSearch({ configuration, query, keyTerms, isLoading, onQueryChange, onKeyTermsChange, onSubmit, }) {
59
+ const { t } = useUITranslation();
60
+ const searchId = useId();
61
+ const fieldTerms = configuration.key_terms?.filter((term) => term.operator !== 'range') ?? [];
62
+ const rangeTerms = configuration.key_terms?.filter((term) => term.operator === 'range') ?? [];
63
+ const renderTerm = (term) => (_jsx(KeyTermInput, { term: term, values: keyTerms[term.id] ?? [], isLoading: isLoading, onChange: (values) => onKeyTermsChange(term.id, values) }, term.id));
64
+ const renderRange = (term) => {
65
+ const [from, to] = rangeBounds(keyTerms[term.id] ?? []);
66
+ const inputType = term.type === 'number' ? 'number' : term.type === 'date' ? 'date' : 'text';
67
+ return (_jsxs("fieldset", { className: "min-w-0", children: [_jsx("legend", { className: "mb-1 text-sm font-medium", children: term.label }), _jsxs("div", { className: "grid grid-cols-2 gap-2", children: [_jsx(Input, { type: inputType, name: `view-key-term-${term.id}-from`, autoComplete: "off", "aria-label": `${term.label}: ${t('view.from')}`, value: from, onChange: (value) => onKeyTermsChange(term.id, rangeValues(value.trim(), to)), placeholder: t('view.from'), disabled: isLoading }), _jsx(Input, { type: inputType, name: `view-key-term-${term.id}-to`, autoComplete: "off", "aria-label": `${term.label}: ${t('view.to')}`, value: to, onChange: (value) => onKeyTermsChange(term.id, rangeValues(from, value.trim())), placeholder: t('view.to'), disabled: isLoading })] })] }, term.id));
68
+ };
69
+ return (_jsxs("form", { className: "flex flex-col gap-3", "aria-label": t('layout.search'), autoComplete: "off", onSubmit: (event) => {
70
+ event.preventDefault();
71
+ onSubmit();
72
+ }, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("label", { htmlFor: searchId, className: "sr-only", children: t('layout.search') }), _jsx(Input, { id: searchId, name: "view-query", autoComplete: "off", value: query, onChange: onQueryChange, placeholder: configuration.placeholder ?? t('store.searchPlaceholder'), disabled: isLoading }), _jsxs(Button, { type: "submit", disabled: isLoading, className: "shrink-0", children: [_jsx(Search, { className: "size-4" }), isLoading ? t('store.searching') : t('store.search')] })] }), configuration.key_terms && configuration.key_terms.length > 0 && (_jsxs("div", { className: "grid gap-3 lg:grid-cols-2", children: [fieldTerms.length > 0 && (_jsxs("fieldset", { className: `rounded-md border border-mixer-muted/30 bg-mixer-muted/5 p-3 ${rangeTerms.length === 0 ? 'lg:col-span-2' : ''}`, children: [_jsx("legend", { className: "px-1 text-xs font-medium text-muted", children: t('view.searchFields') }), _jsx("div", { className: `grid gap-3 sm:grid-cols-2 ${rangeTerms.length === 0 ? 'lg:grid-cols-4' : ''}`, children: fieldTerms.map(renderTerm) })] })), rangeTerms.length > 0 && (_jsxs("fieldset", { className: `rounded-md border border-mixer-muted/30 bg-mixer-muted/5 p-3 ${fieldTerms.length === 0 ? 'lg:col-span-2' : ''}`, children: [_jsx("legend", { className: "px-1 text-xs font-medium text-muted", children: t('view.ranges') }), _jsx("div", { className: "grid gap-3 sm:grid-cols-2", children: rangeTerms.map(renderRange) })] }))] }))] }));
73
+ }
74
+ //# sourceMappingURL=ViewSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ViewSearch.js","sourceRoot":"","sources":["../../../src/features/views/ViewSearch.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './types.js';
2
+ export * from './ViewExperience.js';
3
+ export * from './ViewNavigation.js';
4
+ export * from './ViewResults.js';
5
+ export * from './ViewSearch.js';
6
+ export * from './viewState.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/views/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './types.js';
2
+ export * from './ViewExperience.js';
3
+ export * from './ViewNavigation.js';
4
+ export * from './ViewResults.js';
5
+ export * from './ViewSearch.js';
6
+ export * from './viewState.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/views/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import type { ExecuteViewRequest, ViewDisplayConfiguration, ViewExecutionDefinition, ViewExecutionResult, ViewHit, ViewNavigationItem, ViewNavigationResult, ViewResultMedia, ViewSearchConfiguration } from '@vertesia/common';
2
+ import type { ComponentType } from 'react';
3
+ export interface ViewSearchRendererProps {
4
+ configuration: ViewSearchConfiguration;
5
+ query: string;
6
+ keyTerms: Record<string, string[]>;
7
+ isLoading: boolean;
8
+ onQueryChange: (query: string) => void;
9
+ onKeyTermsChange: (id: string, values: string[]) => void;
10
+ onSubmit: () => void;
11
+ }
12
+ export interface ViewNavigationRendererProps {
13
+ configuration: ViewNavigationItem;
14
+ result: ViewNavigationResult;
15
+ isLoading: boolean;
16
+ onChange: (values: string[]) => void;
17
+ }
18
+ export interface ViewResultsRendererProps {
19
+ configuration: ViewDisplayConfiguration;
20
+ definition: ViewExecutionDefinition;
21
+ request: ExecuteViewRequest;
22
+ result: ViewExecutionResult;
23
+ isLoading: boolean;
24
+ onSortChange?: (sort: string) => void;
25
+ onOpenHit?: (hit: ViewHit) => void;
26
+ resolveMedia?: ViewMediaResolver;
27
+ }
28
+ export interface ViewExperienceRenderers {
29
+ search?: Record<string, ComponentType<ViewSearchRendererProps>>;
30
+ navigation?: Record<string, ComponentType<ViewNavigationRendererProps>>;
31
+ results?: Record<string, ComponentType<ViewResultsRendererProps>>;
32
+ }
33
+ export type ViewExecutor = (request: ExecuteViewRequest) => Promise<ViewExecutionResult>;
34
+ /**
35
+ * Resolves media that is not already an HTTP URL, such as a signed content
36
+ * thumbnail. Embedded apps can provide their own resolver.
37
+ */
38
+ export type ViewMediaResolver = (hit: ViewHit, media: ViewResultMedia) => string | undefined | Promise<string | undefined>;
39
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/views/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,OAAO,EACP,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,uBAAuB;IACpC,aAAa,EAAE,uBAAuB,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACzD,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IACxC,aAAa,EAAE,kBAAkB,CAAC;IAClC,MAAM,EAAE,oBAAoB,CAAC;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,wBAAwB;IACrC,aAAa,EAAE,wBAAwB,CAAC;IACxC,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;CACrE;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEzF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAC5B,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,eAAe,KACrB,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/features/views/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import type { ExecuteViewRequest, ViewExecutionResult } from '@vertesia/common';
2
+ /** Parse the stable, shareable URL representation of a View execution request. */
3
+ export declare function parseViewState(search: string): ExecuteViewRequest;
4
+ /** Serialize View state while preserving unrelated host parameters such as account/project selection. */
5
+ export declare function serializeViewState(request: ExecuteViewRequest, currentSearch?: string): string;
6
+ /** Remove stale configuration IDs and apply the display/sort selected by the authoritative runtime. */
7
+ export declare function canonicalizeViewState(request: ExecuteViewRequest, result: ViewExecutionResult): ExecuteViewRequest;
8
+ /**
9
+ * Resolve the sort the server actually applied. Natural-language queries with
10
+ * no returned sort use Elasticsearch relevance rather than the browse default.
11
+ */
12
+ export declare function resolveViewSort(request: ExecuteViewRequest, result: ViewExecutionResult, defaultSort: string | undefined): string | undefined;
13
+ export declare function replaceViewStateInUrl(request: ExecuteViewRequest): void;
14
+ //# sourceMappingURL=viewState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewState.d.ts","sourceRoot":"","sources":["../../../src/features/views/viewState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAyBhF,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAiBjE;AA0BD,yGAAyG;AACzG,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,EAAE,aAAa,SAAK,GAAG,MAAM,CAa1F;AAWD,uGAAuG;AACvG,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,GAAG,kBAAkB,CAkBlH;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,mBAAmB,EAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,GAChC,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAIvE"}