@vertesia/ui 0.65.0 → 0.67.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 (234) hide show
  1. package/lib/esm/core/components/EmptyCollection.js +2 -2
  2. package/lib/esm/core/components/EmptyCollection.js.map +1 -1
  3. package/lib/esm/core/components/InputList.js +2 -2
  4. package/lib/esm/core/components/InputList.js.map +1 -1
  5. package/lib/esm/core/components/SidePanel.js +1 -1
  6. package/lib/esm/core/components/SidePanel.js.map +1 -1
  7. package/lib/esm/core/components/Switch.js +2 -2
  8. package/lib/esm/core/components/Switch.js.map +1 -1
  9. package/lib/esm/core/components/shadcn/calendar.js +0 -1
  10. package/lib/esm/core/components/shadcn/calendar.js.map +1 -1
  11. package/lib/esm/core/components/shadcn/checkbox.js +0 -1
  12. package/lib/esm/core/components/shadcn/checkbox.js.map +1 -1
  13. package/lib/esm/core/components/shadcn/command.js +0 -1
  14. package/lib/esm/core/components/shadcn/command.js.map +1 -1
  15. package/lib/esm/core/components/shadcn/dialog.js +0 -1
  16. package/lib/esm/core/components/shadcn/dialog.js.map +1 -1
  17. package/lib/esm/core/components/shadcn/filters/comboBox.js +18 -0
  18. package/lib/esm/core/components/shadcn/filters/comboBox.js.map +1 -1
  19. package/lib/esm/core/components/shadcn/filters/filterBar.js +38 -17
  20. package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -1
  21. package/lib/esm/core/components/shadcn/filters/filters.js +11 -5
  22. package/lib/esm/core/components/shadcn/filters/filters.js.map +1 -1
  23. package/lib/esm/core/components/shadcn/filters/selectFilter.js +1 -1
  24. package/lib/esm/core/components/shadcn/filters/selectFilter.js.map +1 -1
  25. package/lib/esm/core/components/shadcn/filters/stringListFilter.js +24 -0
  26. package/lib/esm/core/components/shadcn/filters/stringListFilter.js.map +1 -0
  27. package/lib/esm/core/components/shadcn/filters/textFilter.js +2 -1
  28. package/lib/esm/core/components/shadcn/filters/textFilter.js.map +1 -1
  29. package/lib/esm/core/components/shadcn/label.js +0 -1
  30. package/lib/esm/core/components/shadcn/label.js.map +1 -1
  31. package/lib/esm/features/agent/PayloadBuilder.js +27 -0
  32. package/lib/esm/features/agent/PayloadBuilder.js.map +1 -1
  33. package/lib/esm/features/agent/chat/ModernAgentConversation.js +1 -1
  34. package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
  35. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +3 -3
  36. package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
  37. package/lib/esm/features/facets/VEnvironmentFacet.js +24 -0
  38. package/lib/esm/features/facets/VEnvironmentFacet.js.map +1 -0
  39. package/lib/esm/features/facets/VFacetsNav.js +69 -26
  40. package/lib/esm/features/facets/VFacetsNav.js.map +1 -1
  41. package/lib/esm/features/facets/VInteractionFacet.js +45 -0
  42. package/lib/esm/features/facets/VInteractionFacet.js.map +1 -0
  43. package/lib/esm/features/facets/VStringFacet.js +6 -5
  44. package/lib/esm/features/facets/VStringFacet.js.map +1 -1
  45. package/lib/esm/features/facets/VUserFacet.js +6 -6
  46. package/lib/esm/features/facets/VUserFacet.js.map +1 -1
  47. package/lib/esm/features/layout/GenericPageNavHeader.js +1 -1
  48. package/lib/esm/features/magic-pdf/TextPageView.js +1 -2
  49. package/lib/esm/features/magic-pdf/TextPageView.js.map +1 -1
  50. package/lib/esm/features/store/collections/CollectionsTable.js +9 -5
  51. package/lib/esm/features/store/collections/CollectionsTable.js.map +1 -1
  52. package/lib/esm/features/store/collections/{CollectionsView.js → CreateCollection.js} +6 -14
  53. package/lib/esm/features/store/collections/CreateCollection.js.map +1 -0
  54. package/lib/esm/features/store/collections/EditCollectionView.js +1 -1
  55. package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
  56. package/lib/esm/features/store/collections/SelectCollection.js +24 -0
  57. package/lib/esm/features/store/collections/SelectCollection.js.map +1 -0
  58. package/lib/esm/features/store/collections/index.js +2 -2
  59. package/lib/esm/features/store/collections/index.js.map +1 -1
  60. package/lib/esm/features/store/objects/DocumentSearchResults.js +6 -3
  61. package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -1
  62. package/lib/esm/features/store/objects/components/ContentOverview.js +17 -16
  63. package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -1
  64. package/lib/esm/features/store/objects/components/DocumentIcon.js +7 -10
  65. package/lib/esm/features/store/objects/components/DocumentIcon.js.map +1 -1
  66. package/lib/esm/features/store/objects/components/DocumentInput.js +1 -2
  67. package/lib/esm/features/store/objects/components/DocumentInput.js.map +1 -1
  68. package/lib/esm/features/store/objects/components/PropertiesEditorModal.js +4 -2
  69. package/lib/esm/features/store/objects/components/PropertiesEditorModal.js.map +1 -1
  70. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js +1 -2
  71. package/lib/esm/features/store/objects/components/SaveVersionConfirmModal.js.map +1 -1
  72. package/lib/esm/features/store/objects/components/SelectDocument.js +9 -3
  73. package/lib/esm/features/store/objects/components/SelectDocument.js.map +1 -1
  74. package/lib/esm/features/store/objects/components/SelectDocumentModal.js +2 -2
  75. package/lib/esm/features/store/objects/components/SelectDocumentModal.js.map +1 -1
  76. package/lib/esm/features/store/objects/layout/documentLayout.js +2 -2
  77. package/lib/esm/features/store/objects/layout/documentLayout.js.map +1 -1
  78. package/lib/esm/features/store/objects/search/DocumentSearchContext.js +4 -2
  79. package/lib/esm/features/store/objects/search/DocumentSearchContext.js.map +1 -1
  80. package/lib/esm/features/store/objects/selection/SelectionActions.js +1 -1
  81. package/lib/esm/features/store/objects/selection/SelectionActions.js.map +1 -1
  82. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +7 -10
  83. package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -1
  84. package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js +1 -1
  85. package/lib/esm/features/store/objects/selection/actions/ChangeTypeAction.js.map +1 -1
  86. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js +2 -2
  87. package/lib/esm/features/store/objects/selection/actions/DeleteObjectsAction.js.map +1 -1
  88. package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js +1 -1
  89. package/lib/esm/features/store/objects/selection/actions/ExportPropertiesAction.js.map +1 -1
  90. package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js +1 -1
  91. package/lib/esm/features/store/objects/selection/actions/RemoveFromCollectionAction.js.map +1 -1
  92. package/lib/esm/features/store/types/ContentObjectTypesSearch.js +2 -3
  93. package/lib/esm/features/store/types/ContentObjectTypesSearch.js.map +1 -1
  94. package/lib/esm/features/store/types/ContentObjectTypesTable.js +1 -1
  95. package/lib/esm/features/store/types/ContentObjectTypesTable.js.map +1 -1
  96. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js +2 -2
  97. package/lib/esm/features/store/types/CreateOrUpdateTypeModal.js.map +1 -1
  98. package/lib/esm/features/store/types/ObjectSchemaEditor.js +2 -3
  99. package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +1 -1
  100. package/lib/esm/features/store/types/TableLayoutEditor.js +1 -1
  101. package/lib/esm/features/store/types/TableLayoutEditor.js.map +1 -1
  102. package/lib/esm/features/store/types/index.js +0 -2
  103. package/lib/esm/features/store/types/index.js.map +1 -1
  104. package/lib/esm/features/user/UserInfo.js +1 -2
  105. package/lib/esm/features/user/UserInfo.js.map +1 -1
  106. package/lib/esm/features/utils/rendition.js +22 -2
  107. package/lib/esm/features/utils/rendition.js.map +1 -1
  108. package/lib/esm/layout/FullHeightLayout.js +2 -4
  109. package/lib/esm/layout/FullHeightLayout.js.map +1 -1
  110. package/lib/esm/session/UserSession.js +2 -2
  111. package/lib/esm/session/UserSession.js.map +1 -1
  112. package/lib/esm/session/auth/composable.js +1 -1
  113. package/lib/esm/session/auth/composable.js.map +1 -1
  114. package/lib/esm/session/constants.js +3 -0
  115. package/lib/esm/session/constants.js.map +1 -0
  116. package/lib/esm/widgets/codemirror/CodeMirrorEditor.js +2 -2
  117. package/lib/esm/widgets/codemirror/CodeMirrorEditor.js.map +1 -1
  118. package/lib/esm/widgets/properties/PropertiesView.js +4 -2
  119. package/lib/esm/widgets/properties/PropertiesView.js.map +1 -1
  120. package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js +1 -1
  121. package/lib/esm/widgets/schema-editor/editor/SchemaEditor.js.map +1 -1
  122. package/lib/tsconfig.tsbuildinfo +1 -1
  123. package/lib/types/core/components/InputList.d.ts +2 -1
  124. package/lib/types/core/components/Switch.d.ts +2 -1
  125. package/lib/types/core/components/shadcn/filters/comboBox.d.ts +5 -0
  126. package/lib/types/core/components/shadcn/filters/stringListFilter.d.ts +10 -0
  127. package/lib/types/core/components/shadcn/filters/types.d.ts +3 -3
  128. package/lib/types/features/agent/PayloadBuilder.d.ts +8 -1
  129. package/lib/types/features/facets/VEnvironmentFacet.d.ts +11 -0
  130. package/lib/types/features/facets/VFacetsNav.d.ts +9 -1
  131. package/lib/types/features/facets/VInteractionFacet.d.ts +14 -0
  132. package/lib/types/features/facets/VStringFacet.d.ts +3 -2
  133. package/lib/types/features/facets/VUserFacet.d.ts +3 -2
  134. package/lib/types/features/store/collections/{CollectionsView.d.ts → CreateCollection.d.ts} +5 -3
  135. package/lib/types/features/store/collections/SelectCollection.d.ts +14 -0
  136. package/lib/types/features/store/collections/index.d.ts +2 -2
  137. package/lib/types/features/store/objects/components/ContentOverview.d.ts +2 -1
  138. package/lib/types/features/store/objects/components/DocumentIcon.d.ts +2 -1
  139. package/lib/types/features/store/objects/components/PropertiesEditorModal.d.ts +2 -1
  140. package/lib/types/features/store/objects/layout/documentLayout.d.ts +1 -1
  141. package/lib/types/features/store/objects/search/DocumentSearchContext.d.ts +3 -2
  142. package/lib/types/features/store/objects/selection/actions/DeleteObjectsAction.d.ts +2 -1
  143. package/lib/types/features/store/objects/selection/actions/RemoveFromCollectionAction.d.ts +2 -1
  144. package/lib/types/features/store/types/index.d.ts +0 -2
  145. package/lib/types/features/utils/rendition.d.ts +1 -1
  146. package/lib/types/session/UserSession.d.ts +2 -2
  147. package/lib/types/session/constants.d.ts +2 -0
  148. package/lib/vertesia-ui-core.js +1 -1
  149. package/lib/vertesia-ui-core.js.map +1 -1
  150. package/lib/vertesia-ui-features.js +1 -1
  151. package/lib/vertesia-ui-features.js.map +1 -1
  152. package/lib/vertesia-ui-layout.js +1 -1
  153. package/lib/vertesia-ui-layout.js.map +1 -1
  154. package/lib/vertesia-ui-session.js +1 -1
  155. package/lib/vertesia-ui-session.js.map +1 -1
  156. package/lib/vertesia-ui-widgets.js +1 -1
  157. package/lib/vertesia-ui-widgets.js.map +1 -1
  158. package/package.json +4 -4
  159. package/src/core/components/EmptyCollection.tsx +26 -24
  160. package/src/core/components/InputList.tsx +3 -1
  161. package/src/core/components/SidePanel.tsx +2 -2
  162. package/src/core/components/Switch.tsx +4 -3
  163. package/src/core/components/shadcn/calendar.tsx +0 -2
  164. package/src/core/components/shadcn/checkbox.tsx +0 -2
  165. package/src/core/components/shadcn/command.tsx +0 -2
  166. package/src/core/components/shadcn/dialog.tsx +0 -2
  167. package/src/core/components/shadcn/filters/comboBox.tsx +73 -0
  168. package/src/core/components/shadcn/filters/filterBar.tsx +41 -17
  169. package/src/core/components/shadcn/filters/filters.tsx +30 -14
  170. package/src/core/components/shadcn/filters/selectFilter.tsx +3 -3
  171. package/src/core/components/shadcn/filters/stringListFilter.tsx +58 -0
  172. package/src/core/components/shadcn/filters/textFilter.tsx +2 -1
  173. package/src/core/components/shadcn/filters/types.ts +3 -3
  174. package/src/core/components/shadcn/label.tsx +0 -2
  175. package/src/features/agent/PayloadBuilder.tsx +34 -1
  176. package/src/features/agent/chat/ModernAgentConversation.tsx +639 -639
  177. package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +12 -13
  178. package/src/features/facets/VEnvironmentFacet.tsx +42 -0
  179. package/src/features/facets/VFacetsNav.tsx +87 -29
  180. package/src/features/facets/VInteractionFacet.tsx +73 -0
  181. package/src/features/facets/VStringFacet.tsx +7 -6
  182. package/src/features/facets/VUserFacet.tsx +7 -6
  183. package/src/features/layout/GenericPageNavHeader.tsx +1 -1
  184. package/src/features/magic-pdf/TextPageView.tsx +1 -2
  185. package/src/features/store/collections/CollectionsTable.tsx +49 -40
  186. package/src/features/store/collections/{CollectionsView.tsx → CreateCollection.tsx} +15 -42
  187. package/src/features/store/collections/EditCollectionView.tsx +1 -1
  188. package/src/features/store/collections/SelectCollection.tsx +46 -0
  189. package/src/features/store/collections/index.ts +2 -2
  190. package/src/features/store/objects/DocumentSearchResults.tsx +6 -3
  191. package/src/features/store/objects/components/ContentOverview.tsx +38 -98
  192. package/src/features/store/objects/components/DocumentIcon.tsx +27 -14
  193. package/src/features/store/objects/components/DocumentInput.tsx +1 -2
  194. package/src/features/store/objects/components/PropertiesEditorModal.tsx +7 -3
  195. package/src/features/store/objects/components/SaveVersionConfirmModal.tsx +2 -2
  196. package/src/features/store/objects/components/SelectDocument.tsx +18 -3
  197. package/src/features/store/objects/components/SelectDocumentModal.tsx +6 -6
  198. package/src/features/store/objects/layout/documentLayout.tsx +2 -2
  199. package/src/features/store/objects/search/DocumentSearchContext.ts +6 -3
  200. package/src/features/store/objects/selection/ObjectsActionContext.tsx +1 -1
  201. package/src/features/store/objects/selection/SelectionActions.tsx +0 -1
  202. package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +10 -21
  203. package/src/features/store/objects/selection/actions/ChangeTypeAction.tsx +1 -1
  204. package/src/features/store/objects/selection/actions/DeleteObjectsAction.tsx +2 -2
  205. package/src/features/store/objects/selection/actions/ExportPropertiesAction.tsx +1 -1
  206. package/src/features/store/objects/selection/actions/RemoveFromCollectionAction.tsx +1 -1
  207. package/src/features/store/types/ContentObjectTypesSearch.tsx +3 -4
  208. package/src/features/store/types/ContentObjectTypesTable.tsx +3 -1
  209. package/src/features/store/types/CreateOrUpdateTypeModal.tsx +2 -9
  210. package/src/features/store/types/ObjectSchemaEditor.tsx +4 -5
  211. package/src/features/store/types/TableLayoutEditor.tsx +4 -4
  212. package/src/features/store/types/index.ts +0 -2
  213. package/src/features/user/UserInfo.tsx +1 -2
  214. package/src/features/utils/rendition.ts +23 -1
  215. package/src/layout/FullHeightLayout.tsx +2 -2
  216. package/src/session/UserSession.ts +2 -2
  217. package/src/session/auth/composable.ts +1 -1
  218. package/src/session/constants.ts +2 -0
  219. package/src/widgets/codemirror/CodeMirrorEditor.tsx +2 -2
  220. package/src/widgets/properties/PropertiesView.tsx +10 -2
  221. package/src/widgets/schema-editor/editor/SchemaEditor.tsx +1 -1
  222. package/lib/esm/features/store/collections/CollectionView.js +0 -53
  223. package/lib/esm/features/store/collections/CollectionView.js.map +0 -1
  224. package/lib/esm/features/store/collections/CollectionsView.js.map +0 -1
  225. package/lib/esm/features/store/types/ContentObjectTypeView.js +0 -158
  226. package/lib/esm/features/store/types/ContentObjectTypeView.js.map +0 -1
  227. package/lib/esm/features/store/types/ContentObjectTypesView.js +0 -55
  228. package/lib/esm/features/store/types/ContentObjectTypesView.js.map +0 -1
  229. package/lib/types/features/store/collections/CollectionView.d.ts +0 -5
  230. package/lib/types/features/store/types/ContentObjectTypeView.d.ts +0 -5
  231. package/lib/types/features/store/types/ContentObjectTypesView.d.ts +0 -8
  232. package/src/features/store/collections/CollectionView.tsx +0 -94
  233. package/src/features/store/types/ContentObjectTypeView.tsx +0 -244
  234. package/src/features/store/types/ContentObjectTypesView.tsx +0 -71
@@ -1,7 +1,7 @@
1
1
  import { useToast } from "@vertesia/ui/core";
2
2
  import { useUserSession } from "@vertesia/ui/session";
3
3
  import { useCallback, useState } from "react";
4
- import { SelectContentTypeModal } from "../../../../store";
4
+ import { SelectContentTypeModal } from "../../../types";
5
5
  import { useObjectsActionCallback } from "../ObjectsActionContext";
6
6
  import { ActionComponentTypeProps, ObjectsActionSpec } from "../ObjectsActionSpec";
7
7
 
@@ -4,12 +4,12 @@ import { useToast } from '@vertesia/ui/core';
4
4
  import { useNavigate } from "@vertesia/ui/router";
5
5
  import { useUserSession } from '@vertesia/ui/session';
6
6
 
7
- import { useDocumentSearch } from '../../../../store';
7
+ import { useDocumentSearch } from '../../search/DocumentSearchContext';
8
8
  import { useObjectsActionContext } from '../ObjectsActionContext';
9
9
  import { ActionComponentTypeProps, ObjectsActionSpec } from '../ObjectsActionSpec';
10
10
  import ConfirmAction from './ConfirmAction';
11
11
 
12
- function DeleteObjectsActionComponent({ action, objectIds, children }: ActionComponentTypeProps) {
12
+ export function DeleteObjectsActionComponent({ action, objectIds, children }: ActionComponentTypeProps) {
13
13
  const ctx = useObjectsActionContext();
14
14
 
15
15
  const toast = useToast();
@@ -1,7 +1,7 @@
1
1
  import { useToast } from "@vertesia/ui/core";
2
2
  import { useUserSession } from "@vertesia/ui/session";
3
3
  import { useCallback, useState } from "react";
4
- import { ExportPropertiesModal, ExportTypes } from "../../../../store";
4
+ import { ExportPropertiesModal, ExportTypes } from "../../ExportPropertiesModal";
5
5
  import { useObjectsActionCallback } from "../ObjectsActionContext";
6
6
  import { ActionComponentTypeProps, ObjectsActionSpec } from "../ObjectsActionSpec";
7
7
 
@@ -8,7 +8,7 @@ import { useObjectsActionContext } from '../ObjectsActionContext';
8
8
  import { ActionComponentTypeProps, ObjectsActionSpec } from '../ObjectsActionSpec';
9
9
  import ConfirmAction from './ConfirmAction';
10
10
 
11
- function RemoveFromCollectionActionComponent({ action, objectIds, collectionId }: ActionComponentTypeProps) {
11
+ export function RemoveFromCollectionActionComponent({ action, objectIds, collectionId }: ActionComponentTypeProps) {
12
12
  const ctx = useObjectsActionContext();
13
13
 
14
14
  const toast = useToast();
@@ -3,8 +3,7 @@ import { useEffect, useRef, useState } from 'react';
3
3
  import { ContentObjectTypesTable } from './ContentObjectTypesTable';
4
4
  import { useWatchSearchResult } from './search/ObjectTypeSearchContext';
5
5
  import { useUserSession } from '@vertesia/ui/session';
6
- import { EmptyCollection, ErrorBox, Input, SelectBox, useToast } from '@vertesia/ui/core';
7
- import { useDebounce, useIntersectionObserver } from '@vertesia/ui/core';
6
+ import { EmptyCollection, ErrorBox, Input, SelectBox, useToast, useDebounce, useIntersectionObserver } from '@vertesia/ui/core';
8
7
 
9
8
  import { CreateOrUpdateTypeModal, CreateOrUpdateTypePayload } from './CreateOrUpdateTypeModal';
10
9
 
@@ -90,12 +89,12 @@ export function ContentObjectTypesSearch({ isDirty = false }: ContentObjectTypes
90
89
  };
91
90
 
92
91
  return (
93
- <div>
92
+ <div className='flex flex-col gap-4 h-full'>
94
93
  <div className="flex gap-4">
95
94
  <Input placeholder="Filter by Name" value={searchTerm} onChange={setSearchTerm} />
96
95
  <SelectBox className="w-60" isClearable options={Object.values(ChunkableOptions)} value={chunkable} onChange={onChunkableChange} placeholder={"Is Chunkable"} />
97
96
  </div>
98
- <div className="w-full">
97
+ <div className="flex-1">
99
98
  {
100
99
  (!isLoading && objects?.length === 0) ?
101
100
  <EmptyCollection title="No Type" buttonLabel='Create Type' onClick={onOpenCreateModal}>
@@ -19,7 +19,8 @@ export function ContentObjectTypesTable({ objects, isLoading }: ContentObjectTyp
19
19
  <thead>
20
20
  <tr>
21
21
  <th>Name</th>
22
- <th>Is Chunkable?</th>
22
+ <th>Strict Mode</th>
23
+ <th>Semantic Chunking</th>
23
24
  <th>Updated At</th>
24
25
  </tr>
25
26
  </thead>
@@ -27,6 +28,7 @@ export function ContentObjectTypesTable({ objects, isLoading }: ContentObjectTyp
27
28
  {objects?.map((obj: any) => (
28
29
  <tr key={obj.id} onClick={() => navigate(`/types/${obj.id}`)} className='cursor-pointer hover:bg-muted'>
29
30
  <td>{obj.name}</td>
31
+ <td>{obj.strict_mode ? 'Yes' : 'No'}</td>
30
32
  <td>{obj.is_chunkable ? 'Yes' : 'No'}</td>
31
33
  <td>{dayjs(obj.updated_at).fromNow()}</td>
32
34
  </tr>
@@ -1,6 +1,6 @@
1
1
  import { useState } from 'react';
2
2
 
3
- import { Button, Input, Modal, ModalBody, ModalFooter, ModalTitle, Switch, useToast } from '@vertesia/ui/core';
3
+ import { Button, Input, Modal, ModalBody, ModalFooter, ModalTitle, useToast, Textarea } from '@vertesia/ui/core';
4
4
 
5
5
  export interface CreateOrUpdateTypePayload {
6
6
  name: string;
@@ -48,14 +48,7 @@ export function CreateOrUpdateTypeModal({ title, isOpen, onClose, okLabel, initi
48
48
  </div>
49
49
  <div>
50
50
  <label className="block text-sm font-medium text-muted">Description</label>
51
- <Input value={description} onChange={setDescription} />
52
- </div>
53
- <div className="flex items-center justify-between">
54
- <label className="block text-sm font-medium text-muted-foreground">Strict Mode</label>
55
- <Switch value={strictMode} onChange={setStrictMode} />
56
- </div>
57
- <div className="text-xs text-muted-foreground">
58
- When enabled, objects will be validated against the schema at generation and save time.
51
+ <Textarea value={description} onChange={setDescription} />
59
52
  </div>
60
53
  </div>
61
54
  </ModalBody>
@@ -3,9 +3,8 @@ import { useMemo, useRef, useState } from 'react';
3
3
 
4
4
  import { useUserSession } from '@vertesia/ui/session';
5
5
  import { json } from '@codemirror/lang-json';
6
- import { CodeMirrorEditor, EditorApi } from '@vertesia/ui/widgets';
6
+ import { CodeMirrorEditor, EditorApi, SchemaEditor, useSchema } from '@vertesia/ui/widgets';
7
7
  import { Button, useToast } from '@vertesia/ui/core';
8
- import { SchemaEditor, useSchema } from '@vertesia/ui/widgets';
9
8
  import { ContentObjectType } from '@vertesia/common';
10
9
 
11
10
  const CODE_MIRROR_EXTENSIONS = [basicSetup, json()];
@@ -85,9 +84,9 @@ export function ObjectSchemaEditor({ objectType, onSchemaUpdate }: ObjectSchemaE
85
84
  };
86
85
 
87
86
  return (
88
- <div className="mx-2 my-2 rounded-md border border-solid shadow-md border-spacing-2">
89
- <div className="flex items-center rounded-t-md border-b gap-x-2 py-2 px-4">
90
- <div className="text-lg font-semibold">Schema Editor</div>
87
+ <div className="mx-2 my-2 rounded-2xl border border-solid shadow-md border-spacing-2">
88
+ <div className="flex items-center rounded-t-md border-b gap-x-2 py-2 pl-4 pr-2">
89
+ <div className="text-base font-semibold">Schema Editor</div>
91
90
  <div>
92
91
  <Button variant="outline" size="sm" onClick={handleOnSave}>
93
92
  {
@@ -81,11 +81,11 @@ export function TableLayoutEditor({ objectType, onLayoutUpdate }: TableLayoutEdi
81
81
 
82
82
 
83
83
  return (
84
- <div className="mx-2 my-2 rounded-md border border-solid shadow-xs">
85
- <div className="flex items-center rounded-t-md gap-x-2 bg-gray-50 dark:bg-slate-800 py-2 px-2">
86
- <div className="text-lg font-semibold ">Table Layout Editor</div>
84
+ <div className="mx-2 my-2 rounded-2xl border border-solid shadow-xs">
85
+ <div className="flex items-center rounded-t-md border-b gap-x-2 py-2 pl-4 pr-2">
86
+ <div className="text-base font-semibold ">Table Layout Editor</div>
87
87
  <div className="ml-auto flex gap-x-2">
88
- <Button isLoading={isUpdating} variant="secondary" onClick={onSave}>Save Changes</Button>
88
+ <Button isLoading={isUpdating} variant="outline" size="sm" onClick={onSave}>Save Changes</Button>
89
89
  </div>
90
90
  </div>
91
91
  <div className="px-4 py-2">
@@ -1,7 +1,5 @@
1
1
  export * from "./ContentObjectTypesSearch";
2
2
  export * from "./ContentObjectTypesTable";
3
- export * from "./ContentObjectTypesView";
4
- export * from "./ContentObjectTypeView";
5
3
  export * from "./CreateOrUpdateTypeModal";
6
4
  export * from "./ObjectSchemaEditor";
7
5
  export * from "./search";
@@ -1,7 +1,6 @@
1
1
  import { useUserSession } from "@vertesia/ui/session";
2
2
  import { ApiKey, ApiKeyTypes, PrincipalType, User } from "@vertesia/common";
3
- import { Avatar, Table, Popover, PopoverContent, PopoverTrigger } from "@vertesia/ui/core";
4
- import { useFetch } from "@vertesia/ui/core";
3
+ import { Avatar, Table, Popover, PopoverContent, PopoverTrigger, useFetch } from "@vertesia/ui/core";
5
4
  import { ReactNode } from "react";
6
5
 
7
6
  //TODO use a real cache
@@ -18,6 +18,7 @@ export async function retrieveRendition(
18
18
  doc: ContentObjectItem,
19
19
  setRenditionUrl: (url: string) => void,
20
20
  setRenditionAlt: (alt: string) => void,
21
+ setRenditionStatus: (status: string) => void,
21
22
  ) {
22
23
  if (
23
24
  !doc?.content?.type ||
@@ -27,9 +28,11 @@ export async function retrieveRendition(
27
28
  isPdf(doc.content.type)
28
29
  )
29
30
  ) {
31
+ setRenditionStatus("No preview available");
30
32
  return;
31
33
  }
32
34
 
35
+ setRenditionStatus("Preparing preview...");
33
36
  const currentTime = new Date().getTime() / 1000;
34
37
 
35
38
  const savedId = localStorage.getItem(
@@ -46,16 +49,27 @@ export async function retrieveRendition(
46
49
  ) {
47
50
  setRenditionUrl(savedId);
48
51
  setRenditionAlt(`${doc.name} Rendition`);
52
+ setRenditionStatus("ready");
49
53
  return savedId;
50
54
  }
51
55
 
56
+ setRenditionStatus("Preparing preview...");
52
57
  client.objects.getRendition(doc.id, RENDITION_OPTIONS).then((response) => {
53
58
  if (response.status === "generating") {
54
- setTimeout(retrieveRendition, 60000);
59
+ setRenditionStatus("Preparing preview...");
60
+ setRenditionUrl("");
61
+ setRenditionAlt("");
62
+ setTimeout(() => retrieveRendition(client, doc, setRenditionUrl, setRenditionAlt, setRenditionStatus), 60000);
55
63
  } else if (response.status === "failed") {
64
+ setRenditionStatus("No preview available");
65
+ setRenditionUrl("");
66
+ setRenditionAlt("");
56
67
  return;
57
68
  } else {
58
69
  if (!response?.renditions?.length) {
70
+ setRenditionStatus("No preview available");
71
+ setRenditionUrl("");
72
+ setRenditionAlt("");
59
73
  return;
60
74
  }
61
75
  const rendition = response.renditions[0];
@@ -70,6 +84,14 @@ export async function retrieveRendition(
70
84
  );
71
85
  setRenditionUrl(rendition);
72
86
  setRenditionAlt(`${doc.name} Rendition`);
87
+ setRenditionStatus("ready");
88
+ console.log(`Rendition for document ${doc.id} retrieved successfully: ${rendition}`);
73
89
  }
90
+ }).catch((error) => {
91
+
92
+ setRenditionStatus("No preview available");
93
+ console.warn("Failed to retrieve rendition:", error);
94
+ setRenditionUrl("");
95
+ setRenditionAlt("");
74
96
  });
75
97
  }
@@ -12,7 +12,7 @@ export function FullHeightLayout({ className, children }: FlexibleHeightLayoutPr
12
12
  "flex flex-col",
13
13
  "h-full",
14
14
  "overflow-y-auto",
15
- // "dark:bg-slate-900 text-slate-950 dark:text-slate-200",
15
+ "px-2",
16
16
  className
17
17
  )}
18
18
  >
@@ -50,7 +50,7 @@ FullHeightLayout.Body = function Body({ className, children }: BodyProps) {
50
50
  className={clsx(
51
51
  "grow overflow-auto",
52
52
  "min-h-0",
53
- "px-4 py-2",
53
+ "p-2",
54
54
  className
55
55
  )}
56
56
  >
@@ -9,8 +9,8 @@ import { getComposableToken } from './auth/composable';
9
9
  import { getFirebaseAuth } from './auth/firebase';
10
10
  import { TypeRegistry } from './TypeRegistry';
11
11
 
12
- export const LastSelectedAccountId_KEY = 'composableai.lastSelectedAccountId';
13
- export const LastSelectedProjectId_KEY = 'composableai.lastSelectedProjectId';
12
+ import { LastSelectedAccountId_KEY, LastSelectedProjectId_KEY } from './constants';
13
+ export { LastSelectedAccountId_KEY, LastSelectedProjectId_KEY };
14
14
 
15
15
 
16
16
  class UserSession {
@@ -4,7 +4,7 @@
4
4
  import { AuthTokenPayload } from "@vertesia/common";
5
5
  import { jwtDecode } from "jwt-decode";
6
6
  import { Env } from '@vertesia/ui/env';
7
- import { LastSelectedAccountId_KEY, LastSelectedProjectId_KEY } from '../UserSession';
7
+ import { LastSelectedAccountId_KEY, LastSelectedProjectId_KEY } from '../constants';
8
8
  import { getFirebaseAuth, getFirebaseAuthToken } from './firebase';
9
9
 
10
10
  let AUTH_TOKEN_RAW: string | undefined;
@@ -0,0 +1,2 @@
1
+ export const LastSelectedAccountId_KEY = 'composableai.lastSelectedAccountId';
2
+ export const LastSelectedProjectId_KEY = 'composableai.lastSelectedProjectId';
@@ -30,8 +30,8 @@ const customTheme = EditorView.theme({
30
30
  ".cm-gutters": { backgroundColor: "transparent", color: "#ddd" },
31
31
  ".cm-focused": { outline: "none" },
32
32
  ".cm-cursor": {
33
- borderLeft: "2px solid #000",
34
- borderLeftColor: "#000",
33
+ borderLeft: "2px solid #808080",
34
+ borderLeftColor: "#808080",
35
35
  animation: "blink 1.2s step-start infinite"
36
36
  },
37
37
  "@keyframes blink": { "50%": { opacity: 0 } }
@@ -1,4 +1,5 @@
1
- import { Table } from "@vertesia/ui/core";
1
+ import { Table, VTooltip } from "@vertesia/ui/core";
2
+ import { Info } from "lucide-react";
2
3
 
3
4
 
4
5
  interface PropertiesViewProps {
@@ -12,8 +13,15 @@ export function PropertiesView({ className, properties }: PropertiesViewProps) {
12
13
  {
13
14
  properties.map((property) => (
14
15
  <tr key={property.name}>
15
- <td className='w-1/3 font-semibold' >
16
+ <td className='w-1/3 font-semibold gap-2' >
16
17
  <span>{property.name}</span>
18
+ {property.description &&
19
+ <VTooltip
20
+ description={property.description}
21
+ placement="top">
22
+ <Info className="size-3 ml-2 text-muted-foreground" />
23
+ </VTooltip>
24
+ }
17
25
  </td>
18
26
  <td className='w-2/3'>{property.value ?? 'undefined'}</td>
19
27
  </tr>
@@ -154,7 +154,7 @@ function AddPropertyButton({ parent }: AddPropertyButtonProps) {
154
154
  parent.reloadTree();
155
155
  }
156
156
  return (
157
- <Button variant="outline" onClick={add}>
157
+ <Button variant="ghost" onClick={add}>
158
158
  <Plus className='size-4' />Add property
159
159
  </Button>
160
160
  )
@@ -1,53 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { ErrorBox, Spinner, useFetch, VTabs, VTabsBar, VTabsPanel } from "@vertesia/ui/core";
3
- import { FullHeightLayout } from "@vertesia/ui/layout";
4
- import { NavLink } from "@vertesia/ui/router";
5
- import { useUserSession } from "@vertesia/ui/session";
6
- import { PanelErrorBoundary } from "../../errors";
7
- import { GenericPageNavHeader } from "../../layout";
8
- import { DocumentSearchProvider, DocumentSelectionProvider } from "../../store";
9
- import { SelectionActions, UploadObjectsButton } from "../objects/selection/SelectionActions";
10
- import { BrowseCollectionView } from "./BrowseCollectionView";
11
- import { EditCollectionView } from "./EditCollectionView";
12
- const facets = [
13
- {
14
- name: 'status',
15
- field: 'status'
16
- },
17
- {
18
- name: 'type',
19
- field: 'type'
20
- }
21
- ];
22
- export function CollectionView({ collectionId }) {
23
- const { client } = useUserSession();
24
- const { data: collection, error, refetch, isLoading } = useFetch(() => client.store.collections.retrieve(collectionId), [collectionId]);
25
- if (error) {
26
- return _jsx(ErrorBox, { title: 'Collection fetch failed', children: error.message });
27
- }
28
- const actions = [
29
- _jsx(SelectionActions, {}, 'selection'),
30
- _jsx(UploadObjectsButton, { collectionId: collectionId ?? '' }, "upload")
31
- ];
32
- const title = (_jsx("div", { className: 'flex gap-x-1 items-center', children: _jsx("div", { children: collection?.name || '' }) }));
33
- const breadcrumbs = [
34
- _jsx(NavLink, { href: '/collections', children: "Collections" }, 'collections'),
35
- _jsx("span", { children: "Collection Detail" }, 'collection-detail')
36
- ];
37
- const tabs = [
38
- {
39
- name: 'browse',
40
- label: 'Browse',
41
- content: _jsx(BrowseCollectionView, { collection: collection })
42
- },
43
- {
44
- name: 'metadata',
45
- label: 'Metadata',
46
- content: _jsx(EditCollectionView, { collection: collection, refetch: refetch })
47
- }
48
- ];
49
- return (_jsx(FullHeightLayout, { children: _jsx(DocumentSearchProvider, { facets: facets, collectionId: collectionId, children: _jsxs(DocumentSelectionProvider, { collectionId: collectionId, children: [_jsx(GenericPageNavHeader, { title: title, description: collection?.description || '', actions: actions, breadcrumbs: breadcrumbs }), _jsxs(VTabs, { defaultValue: "browse", tabs: tabs, children: [_jsx(VTabsBar, { className: "px-4" }), isLoading ?
50
- _jsx("div", { className: "w-full flex justify-center", children: _jsx(Spinner, {}) }) :
51
- _jsx("div", { className: "h-[calc(100vh-165px)] overflow-auto px-4 py-2", children: _jsx(PanelErrorBoundary, { children: _jsx(VTabsPanel, {}) }) })] })] }) }) }));
52
- }
53
- //# sourceMappingURL=CollectionView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CollectionView.js","sourceRoot":"","sources":["../../../../../src/features/store/collections/CollectionView.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CollectionsView.js","sourceRoot":"","sources":["../../../../../src/features/store/collections/CollectionsView.tsx"],"names":[],"mappings":"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"}
@@ -1,158 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import dayjs from 'dayjs';
3
- import LocalizedFormat from 'dayjs/plugin/localizedFormat';
4
- import { useState } from 'react';
5
- import { Button, Center, ErrorBox, Popover, PopoverContent, PopoverTrigger, Spinner, Switch, Tabs, TabsBar, TabsPanel, useFetch, useToast } from '@vertesia/ui/core';
6
- import { FullHeightLayout } from '@vertesia/ui/layout';
7
- import { useLocation, useNavigate } from "@vertesia/ui/router";
8
- import { useUserSession } from '@vertesia/ui/session';
9
- import { PropertiesView } from '@vertesia/ui/widgets';
10
- import { EllipsisVertical, SquarePen, Trash2 } from 'lucide-react';
11
- import { GenericPageNavHeader } from "../../layout";
12
- import { UserInfo } from '../../user/UserInfo';
13
- import { CreateOrUpdateTypeModal } from './CreateOrUpdateTypeModal';
14
- import { ObjectSchemaEditor } from './ObjectSchemaEditor';
15
- import { TableLayoutEditor } from './TableLayoutEditor';
16
- dayjs.extend(LocalizedFormat);
17
- export function ContentObjectTypeView({ typeId }) {
18
- const { store, user } = useUserSession();
19
- const { hash } = useLocation();
20
- const currentTab = hash ? hash.substring(1) : undefined;
21
- let { data: objectType, isLoading, error, refetch } = useFetch(() => {
22
- if (user) {
23
- return store.types.retrieve(typeId);
24
- }
25
- else {
26
- return Promise.resolve(undefined);
27
- }
28
- }, [user]);
29
- if (error) {
30
- return _jsx(ErrorBox, { title: "Error", children: error.message });
31
- }
32
- if (isLoading) {
33
- return _jsx(Center, { className: "py-10", children: _jsx(Spinner, { size: 'lg' }) });
34
- }
35
- if (!objectType) {
36
- return null;
37
- }
38
- const actions = [
39
- _jsx(DeleteTypeButton, { objectType: objectType }, "delete")
40
- ];
41
- const onSchemaUpdate = (value) => {
42
- objectType.object_schema = value.schema;
43
- };
44
- const onLayoutUpdate = (value) => {
45
- objectType.table_layout = value;
46
- };
47
- const tabs = [
48
- { name: 'metadata', label: "Metadata", href: "#metadata", content: _jsx(MetadataView, { objectType: objectType }) },
49
- { name: 'schema', label: "Object Schema", href: "#schema", content: _jsx(ObjectSchemaEditor, { objectType: objectType, onSchemaUpdate: onSchemaUpdate }) },
50
- { name: 'layout', label: "Table Layout", href: "#layout", content: _jsx(TableLayoutEditor, { objectType: objectType, onLayoutUpdate: onLayoutUpdate }) },
51
- ];
52
- const breadcrumbs = [breadcrumb()];
53
- const title = pageTitle(objectType, refetch);
54
- const description = objectType.description;
55
- return (_jsxs(FullHeightLayout, { children: [_jsx(GenericPageNavHeader, { title: title, description: description, actions: [actions], breadcrumbs: breadcrumbs }), _jsxs(Tabs, { tabs: tabs, current: currentTab, children: [_jsx(TabsBar, {}), _jsx(FullHeightLayout.Body, { children: _jsx("div", { className: "h-[calc(100vh-187px)] overflow-auto", children: _jsx(TabsPanel, {}) }) })] })] }));
56
- }
57
- function breadcrumb() {
58
- return _jsx("span", { children: "Content Type" });
59
- }
60
- function pageTitle(objectType, refetch) {
61
- return _jsx(PageTitle, { objectType: objectType, refetch: refetch });
62
- }
63
- function PageTitle({ objectType, refetch }) {
64
- const toast = useToast();
65
- const session = useUserSession();
66
- const { store } = session;
67
- const [showEditModal, setShowEditModal] = useState(false);
68
- const onCloseEditModal = (payload) => {
69
- if (!payload) {
70
- setShowEditModal(false);
71
- return Promise.resolve();
72
- }
73
- return store.types.update(objectType.id, payload).then(() => {
74
- toast({
75
- status: 'success',
76
- title: 'Type updated',
77
- duration: 2000
78
- });
79
- return refetch().finally(() => session.reloadTypes());
80
- }).catch(err => {
81
- toast({
82
- status: 'error',
83
- title: 'Error updating type',
84
- description: err.message,
85
- duration: 5000
86
- });
87
- });
88
- };
89
- return _jsxs(_Fragment, { children: [_jsxs("div", { className: 'flex items-center gap-x-2', children: [objectType.name, " ", _jsx(Button, { variant: "ghost", size: "sm", title: "Edit", onClick: () => setShowEditModal(true), children: _jsx(SquarePen, { className: "size-4" }) })] }), _jsx(CreateOrUpdateTypeModal, { okLabel: "Save Changes", title: "Edit Type", isOpen: showEditModal, onClose: onCloseEditModal, initialPayload: objectType })] });
90
- }
91
- function MetadataView({ objectType }) {
92
- return (_jsx(PropertiesView, { className: 'w-full', properties: [
93
- { name: "Id", value: objectType.id },
94
- { name: "Name", value: objectType.name },
95
- { name: "Is Chunkable", value: _jsx(ChunkableSwitch, { objectType: objectType }) },
96
- { name: "Strict Mode", value: _jsx(StrictModeSwitch, { objectType: objectType }) },
97
- { name: 'Created By', value: _jsx(UserInfo, { userRef: objectType.created_by }) },
98
- { name: 'Created At', value: dayjs(objectType.created_at).format('LLL') },
99
- { name: 'Updated By', value: _jsx(UserInfo, { userRef: objectType.updated_by }) },
100
- { name: 'Updated At', value: dayjs(objectType.updated_at).format('LLL') },
101
- ] }));
102
- }
103
- function TypeSwitch({ objectType, field, initialValue }) {
104
- const [value, setValue] = useState(initialValue ?? false);
105
- const toast = useToast();
106
- const { store } = useUserSession();
107
- const onChange = (value) => {
108
- store.types.update(objectType.id, {
109
- [field]: value
110
- }).then(() => {
111
- setValue(value);
112
- toast({
113
- status: 'success',
114
- title: 'Successfully Updated.',
115
- duration: 2000
116
- });
117
- }).catch((err) => {
118
- toast({
119
- status: 'error',
120
- title: 'Failed to update.',
121
- description: err.message,
122
- duration: 5000
123
- });
124
- });
125
- };
126
- return (_jsx(Switch, { value: value, onChange: onChange }));
127
- }
128
- function ChunkableSwitch({ objectType }) {
129
- return (_jsx(TypeSwitch, { objectType: objectType, field: "is_chunkable", initialValue: objectType.is_chunkable ?? false }));
130
- }
131
- function StrictModeSwitch({ objectType }) {
132
- return (_jsx(TypeSwitch, { objectType: objectType, field: "strict_mode", initialValue: objectType.strict_mode ?? false }));
133
- }
134
- function DeleteTypeButton({ objectType }) {
135
- const toast = useToast();
136
- const navigate = useNavigate();
137
- const { store } = useUserSession();
138
- const onDelete = () => {
139
- confirm('Are you sure you want to delete this rule?') &&
140
- store.types.delete(objectType.id).then(() => {
141
- toast({
142
- status: 'success',
143
- title: `Object type ${objectType.name} deleted`,
144
- duration: 2000
145
- });
146
- navigate('/types');
147
- }).catch(err => {
148
- toast({
149
- status: 'error',
150
- title: 'Failed to delete rule',
151
- description: err.message,
152
- duration: 5000
153
- });
154
- });
155
- };
156
- return (_jsxs(Popover, { hover: true, children: [_jsx(PopoverTrigger, { children: _jsx("div", { className: 'cursor-pointer hover:bg-muted p-2 rounded-md', children: _jsx(Button, { variant: "ghost", size: 'sm', title: 'More actions', children: _jsx(EllipsisVertical, {}) }) }) }), _jsx(PopoverContent, { className: 'p-0 w-35', align: 'end', children: _jsx("div", { className: "py-2 px-1.5 flex justify-center w-full", children: _jsxs(Button, { variant: "ghost", onClick: onDelete, className: 'w-full', children: [_jsx(Trash2, { className: 'size-4' }), " Delete"] }) }) })] }));
157
- }
158
- //# sourceMappingURL=ContentObjectTypeView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentObjectTypeView.js","sourceRoot":"","sources":["../../../../../src/features/store/types/ContentObjectTypeView.tsx"],"names":[],"mappings":"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"}