@vertesia/ui 0.67.0 → 0.69.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.
- package/lib/esm/core/components/Badge.js +1 -1
- package/lib/esm/core/components/Badge.js.map +1 -1
- package/lib/esm/core/components/FormItem.js +2 -2
- package/lib/esm/core/components/FormItem.js.map +1 -1
- package/lib/esm/core/components/InputList.js +2 -2
- package/lib/esm/core/components/InputList.js.map +1 -1
- package/lib/esm/core/components/shadcn/checkbox.js +1 -1
- package/lib/esm/core/components/shadcn/checkbox.js.map +1 -1
- package/lib/esm/core/components/shadcn/command.js +1 -1
- package/lib/esm/core/components/shadcn/command.js.map +1 -1
- package/lib/esm/core/components/shadcn/dialog.js +6 -6
- package/lib/esm/core/components/shadcn/dialog.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/DynamicLabel.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js +129 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/DateCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js +46 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/SelectCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js +23 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/StringListCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/TextCombobox.js +28 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/TextCombobox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/comboBox.js +5 -0
- package/lib/esm/core/components/shadcn/filters/comboBox/comboBox.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filter/SelectFilter.js +101 -0
- package/lib/esm/core/components/shadcn/filters/filter/SelectFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/{stringListFilter.js → filter/StringListFilter.js} +3 -3
- package/lib/esm/core/components/shadcn/filters/filter/StringListFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/{textFilter.js → filter/TextFilter.js} +4 -4
- package/lib/esm/core/components/shadcn/filters/filter/TextFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js +161 -0
- package/lib/esm/core/components/shadcn/filters/filter/dateFilter.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filter-styles.js +88 -0
- package/lib/esm/core/components/shadcn/filters/filter-styles.js.map +1 -0
- package/lib/esm/core/components/shadcn/filters/filterBar.js +128 -87
- package/lib/esm/core/components/shadcn/filters/filterBar.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/filters.js +7 -6
- package/lib/esm/core/components/shadcn/filters/filters.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/index.js +1 -1
- package/lib/esm/core/components/shadcn/filters/index.js.map +1 -1
- package/lib/esm/core/components/shadcn/filters/types.js.map +1 -1
- package/lib/esm/core/components/toast/NotificationPanel.js +24 -18
- package/lib/esm/core/components/toast/NotificationPanel.js.map +1 -1
- package/lib/esm/features/agent/PayloadBuilder.js +47 -27
- package/lib/esm/features/agent/PayloadBuilder.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentConversation.js +9 -3
- package/lib/esm/features/agent/chat/ModernAgentConversation.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js +7 -6
- package/lib/esm/features/agent/chat/ModernAgentOutput/AllMessagesMixed.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js +12 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/MessageItem.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingMessages.js +2 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/SlidingMessages.js.map +1 -1
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js +10 -4
- package/lib/esm/features/agent/chat/ModernAgentOutput/utils.js.map +1 -1
- package/lib/esm/features/facets/DocumentsFacetsNav.js +133 -0
- package/lib/esm/features/facets/DocumentsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/RunsFacetsNav.js +125 -0
- package/lib/esm/features/facets/RunsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/VFacetsNav.js +4 -113
- package/lib/esm/features/facets/VFacetsNav.js.map +1 -1
- package/lib/esm/features/facets/VStringFacet.js +6 -4
- package/lib/esm/features/facets/VStringFacet.js.map +1 -1
- package/lib/esm/features/facets/VTypeFacet.js +4 -5
- package/lib/esm/features/facets/VTypeFacet.js.map +1 -1
- package/lib/esm/features/facets/VUserFacet.js +1 -1
- package/lib/esm/features/facets/VUserFacet.js.map +1 -1
- package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js +98 -0
- package/lib/esm/features/facets/WorkflowExecutionsFacetsNav.js.map +1 -0
- package/lib/esm/features/facets/index.js +3 -2
- package/lib/esm/features/facets/index.js.map +1 -1
- package/lib/esm/features/store/collections/CollectionsTable.js +1 -1
- package/lib/esm/features/store/collections/CollectionsTable.js.map +1 -1
- package/lib/esm/features/store/collections/CreateCollection.js +10 -9
- package/lib/esm/features/store/collections/CreateCollection.js.map +1 -1
- package/lib/esm/features/store/collections/EditCollectionView.js +10 -9
- package/lib/esm/features/store/collections/EditCollectionView.js.map +1 -1
- package/lib/esm/features/store/collections/SelectCollection.js +1 -1
- package/lib/esm/features/store/collections/SelectCollection.js.map +1 -1
- package/lib/esm/features/store/objects/DocumentPreviewPanel.js +0 -1
- package/lib/esm/features/store/objects/DocumentPreviewPanel.js.map +1 -1
- package/lib/esm/features/store/objects/DocumentSearchResults.js +37 -2
- package/lib/esm/features/store/objects/DocumentSearchResults.js.map +1 -1
- package/lib/esm/features/store/objects/components/ContentOverview.js +0 -2
- package/lib/esm/features/store/objects/components/ContentOverview.js.map +1 -1
- package/lib/esm/features/store/objects/components/SelectDocument.js +2 -2
- package/lib/esm/features/store/objects/components/SelectDocument.js.map +1 -1
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js +1 -1
- package/lib/esm/features/store/objects/components/VectorSearchWidget.js.map +1 -1
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js +16 -4
- package/lib/esm/features/store/objects/selection/actions/AddToCollectionAction.js.map +1 -1
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js +72 -37
- package/lib/esm/features/store/objects/upload/DocumentUploadModal.js.map +1 -1
- package/lib/esm/features/store/types/ObjectSchemaEditor.js +15 -0
- package/lib/esm/features/store/types/ObjectSchemaEditor.js.map +1 -1
- package/lib/esm/features/user/UserInfo.js +8 -8
- package/lib/esm/features/user/UserInfo.js.map +1 -1
- package/lib/esm/router/HistoryNavigator.js +2 -2
- package/lib/esm/router/HistoryNavigator.js.map +1 -1
- package/lib/esm/shell/SplashScreen.js +19 -0
- package/lib/esm/shell/SplashScreen.js.map +1 -0
- package/lib/esm/shell/VertesiaShell.js +10 -0
- package/lib/esm/shell/VertesiaShell.js.map +1 -0
- package/lib/esm/shell/index.js +7 -0
- package/lib/esm/shell/index.js.map +1 -0
- package/lib/esm/shell/login/EnterpriseSigninButton.js +81 -0
- package/lib/esm/shell/login/EnterpriseSigninButton.js.map +1 -0
- package/lib/esm/shell/login/GitHubSignInButton.js +24 -0
- package/lib/esm/shell/login/GitHubSignInButton.js.map +1 -0
- package/lib/esm/shell/login/GoogleSignInButton.js +25 -0
- package/lib/esm/shell/login/GoogleSignInButton.js.map +1 -0
- package/lib/esm/shell/login/InviteAcceptModal.js +45 -0
- package/lib/esm/shell/login/InviteAcceptModal.js.map +1 -0
- package/lib/esm/shell/login/MicrosoftSigninButton.js +19 -0
- package/lib/esm/shell/login/MicrosoftSigninButton.js.map +1 -0
- package/lib/esm/shell/login/PreviewIcon.js +23 -0
- package/lib/esm/shell/login/PreviewIcon.js.map +1 -0
- package/lib/esm/shell/login/SignInModal.js +9 -0
- package/lib/esm/shell/login/SignInModal.js.map +1 -0
- package/lib/esm/shell/login/SigninScreen.js +64 -0
- package/lib/esm/shell/login/SigninScreen.js.map +1 -0
- package/lib/esm/shell/login/SignupForm.js +91 -0
- package/lib/esm/shell/login/SignupForm.js.map +1 -0
- package/lib/esm/shell/login/TerminalLogin.js +179 -0
- package/lib/esm/shell/login/TerminalLogin.js.map +1 -0
- package/lib/esm/shell/login/UserInfo.js +40 -0
- package/lib/esm/shell/login/UserInfo.js.map +1 -0
- package/lib/esm/shell/login/UserSessionMenu.js +31 -0
- package/lib/esm/shell/login/UserSessionMenu.js.map +1 -0
- package/lib/esm/shell/utils.js +6 -0
- package/lib/esm/shell/utils.js.map +1 -0
- package/lib/esm/widgets/SvgIcon.js +36 -0
- package/lib/esm/widgets/SvgIcon.js.map +1 -0
- package/lib/esm/widgets/index.js +7 -6
- package/lib/esm/widgets/index.js.map +1 -1
- package/lib/esm/widgets/upload/UploadSummary.js +1 -1
- package/lib/esm/widgets/upload/UploadSummary.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/core/components/FormItem.d.ts +2 -1
- package/lib/types/core/components/shadcn/dialog.d.ts +2 -1
- package/lib/types/core/components/shadcn/filters/DynamicLabel.d.ts +1 -1
- package/lib/types/core/components/shadcn/filters/comboBox/DateCombobox.d.ts +5 -0
- package/lib/types/core/components/shadcn/filters/comboBox/SelectCombobox.d.ts +8 -0
- package/lib/types/core/components/shadcn/filters/comboBox/StringListCombobox.d.ts +5 -0
- package/lib/types/core/components/shadcn/filters/comboBox/TextCombobox.d.ts +5 -0
- package/lib/types/core/components/shadcn/filters/comboBox/comboBox.d.ts +4 -0
- package/lib/types/core/components/shadcn/filters/{selectFilter.d.ts → filter/SelectFilter.d.ts} +2 -2
- package/lib/types/core/components/shadcn/filters/{stringListFilter.d.ts → filter/StringListFilter.d.ts} +1 -1
- package/lib/types/core/components/shadcn/filters/{textFilter.d.ts → filter/TextFilter.d.ts} +1 -1
- package/lib/types/core/components/shadcn/filters/{dateFilter.d.ts → filter/dateFilter.d.ts} +1 -1
- package/lib/types/core/components/shadcn/filters/filter-styles.d.ts +1 -0
- package/lib/types/core/components/shadcn/filters/filterBar.d.ts +14 -4
- package/lib/types/core/components/shadcn/filters/index.d.ts +1 -1
- package/lib/types/core/components/shadcn/filters/types.d.ts +2 -0
- package/lib/types/features/agent/PayloadBuilder.d.ts +17 -8
- package/lib/types/features/agent/chat/ModernAgentOutput/utils.d.ts +2 -1
- package/lib/types/features/facets/DocumentsFacetsNav.d.ts +16 -0
- package/lib/types/features/facets/RunsFacetsNav.d.ts +18 -0
- package/lib/types/features/facets/VFacetsNav.d.ts +1 -1
- package/lib/types/features/facets/VStringFacet.d.ts +6 -2
- package/lib/types/features/facets/VTypeFacet.d.ts +3 -1
- package/lib/types/features/facets/WorkflowExecutionsFacetsNav.d.ts +13 -0
- package/lib/types/features/facets/index.d.ts +3 -2
- package/lib/types/shell/SplashScreen.d.ts +4 -0
- package/lib/types/shell/VertesiaShell.d.ts +7 -0
- package/lib/types/shell/index.d.ts +6 -0
- package/lib/types/shell/login/EnterpriseSigninButton.d.ts +5 -0
- package/lib/types/shell/login/GitHubSignInButton.d.ts +5 -0
- package/lib/types/shell/login/GoogleSignInButton.d.ts +5 -0
- package/lib/types/shell/login/InviteAcceptModal.d.ts +1 -0
- package/lib/types/shell/login/MicrosoftSigninButton.d.ts +5 -0
- package/lib/types/shell/login/PreviewIcon.d.ts +5 -0
- package/lib/types/shell/login/SignInModal.d.ts +6 -0
- package/lib/types/shell/login/SigninScreen.d.ts +8 -0
- package/lib/types/shell/login/SignupForm.d.ts +7 -0
- package/lib/types/shell/login/TerminalLogin.d.ts +1 -0
- package/lib/types/shell/login/UserInfo.d.ts +5 -0
- package/lib/types/shell/login/UserSessionMenu.d.ts +8 -0
- package/lib/types/shell/utils.d.ts +1 -0
- package/lib/types/widgets/SvgIcon.d.ts +6 -0
- package/lib/types/widgets/index.d.ts +7 -6
- package/lib/vertesia-ui-core.js +1 -1
- package/lib/vertesia-ui-core.js.map +1 -1
- package/lib/vertesia-ui-features.js +1 -1
- package/lib/vertesia-ui-features.js.map +1 -1
- package/lib/vertesia-ui-router.js +1 -1
- package/lib/vertesia-ui-router.js.map +1 -1
- package/lib/vertesia-ui-shell.js +2 -0
- package/lib/vertesia-ui-shell.js.map +1 -0
- package/lib/vertesia-ui-widgets.js +1 -1
- package/lib/vertesia-ui-widgets.js.map +1 -1
- package/package.json +14 -6
- package/src/core/components/Badge.tsx +12 -8
- package/src/core/components/FormItem.tsx +4 -3
- package/src/core/components/InputList.tsx +21 -17
- package/src/core/components/shadcn/checkbox.tsx +2 -2
- package/src/core/components/shadcn/command.tsx +1 -1
- package/src/core/components/shadcn/dialog.tsx +18 -9
- package/src/core/components/shadcn/filters/DynamicLabel.tsx +1 -2
- package/src/core/components/shadcn/filters/comboBox/DateCombobox.tsx +211 -0
- package/src/core/components/shadcn/filters/{comboBox.tsx → comboBox/SelectCombobox.tsx} +8 -192
- package/src/core/components/shadcn/filters/comboBox/StringListCombobox.tsx +76 -0
- package/src/core/components/shadcn/filters/comboBox/TextCombobox.tsx +81 -0
- package/src/core/components/shadcn/filters/comboBox/comboBox.tsx +4 -0
- package/src/core/components/shadcn/filters/filter/SelectFilter.tsx +161 -0
- package/src/core/components/shadcn/filters/{stringListFilter.tsx → filter/StringListFilter.tsx} +7 -7
- package/src/core/components/shadcn/filters/{textFilter.tsx → filter/TextFilter.tsx} +17 -11
- package/src/core/components/shadcn/filters/filter/dateFilter.tsx +256 -0
- package/src/core/components/shadcn/filters/filter-styles.ts +87 -0
- package/src/core/components/shadcn/filters/filterBar.tsx +208 -152
- package/src/core/components/shadcn/filters/filters.tsx +7 -5
- package/src/core/components/shadcn/filters/index.ts +1 -1
- package/src/core/components/shadcn/filters/types.ts +2 -0
- package/src/core/components/toast/NotificationPanel.tsx +38 -22
- package/src/features/agent/PayloadBuilder.tsx +56 -31
- package/src/features/agent/chat/ModernAgentConversation.tsx +10 -4
- package/src/features/agent/chat/ModernAgentOutput/AllMessagesMixed.tsx +7 -6
- package/src/features/agent/chat/ModernAgentOutput/MessageItem.tsx +12 -1
- package/src/features/agent/chat/ModernAgentOutput/SlidingMessages.tsx +2 -1
- package/src/features/agent/chat/ModernAgentOutput/utils.ts +12 -4
- package/src/features/facets/DocumentsFacetsNav.tsx +171 -0
- package/src/features/facets/RunsFacetsNav.tsx +166 -0
- package/src/features/facets/VFacetsNav.tsx +10 -126
- package/src/features/facets/VStringFacet.tsx +10 -4
- package/src/features/facets/VTypeFacet.tsx +6 -5
- package/src/features/facets/VUserFacet.tsx +5 -3
- package/src/features/facets/WorkflowExecutionsFacetsNav.tsx +132 -0
- package/src/features/facets/index.ts +5 -2
- package/src/features/store/collections/CollectionsTable.tsx +3 -2
- package/src/features/store/collections/CreateCollection.tsx +17 -15
- package/src/features/store/collections/EditCollectionView.tsx +19 -16
- package/src/features/store/collections/SelectCollection.tsx +1 -1
- package/src/features/store/objects/DocumentPreviewPanel.tsx +0 -1
- package/src/features/store/objects/DocumentSearchResults.tsx +80 -11
- package/src/features/store/objects/components/ContentOverview.tsx +0 -2
- package/src/features/store/objects/components/SelectDocument.tsx +2 -2
- package/src/features/store/objects/components/VectorSearchWidget.tsx +2 -2
- package/src/features/store/objects/selection/actions/AddToCollectionAction.tsx +40 -19
- package/src/features/store/objects/upload/DocumentUploadModal.tsx +160 -214
- package/src/features/store/types/ObjectSchemaEditor.tsx +15 -0
- package/src/features/user/UserInfo.tsx +17 -14
- package/src/router/HistoryNavigator.ts +2 -2
- package/src/shell/SplashScreen.tsx +41 -0
- package/src/shell/VertesiaShell.tsx +27 -0
- package/src/shell/index.tsx +6 -0
- package/src/shell/login/EnterpriseSigninButton.tsx +106 -0
- package/src/shell/login/GitHubSignInButton.tsx +40 -0
- package/src/shell/login/GoogleSignInButton.tsx +36 -0
- package/src/shell/login/InviteAcceptModal.tsx +78 -0
- package/src/shell/login/MicrosoftSigninButton.tsx +30 -0
- package/src/shell/login/PreviewIcon.tsx +29 -0
- package/src/shell/login/SignInModal.tsx +28 -0
- package/src/shell/login/SigninScreen.tsx +162 -0
- package/src/shell/login/SignupForm.tsx +178 -0
- package/src/shell/login/TerminalLogin.tsx +299 -0
- package/src/shell/login/UserInfo.tsx +76 -0
- package/src/shell/login/UserSessionMenu.tsx +81 -0
- package/src/shell/utils.tsx +7 -0
- package/src/widgets/SvgIcon.tsx +44 -0
- package/src/widgets/index.ts +7 -6
- package/src/widgets/upload/UploadSummary.tsx +3 -4
- package/lib/esm/core/components/shadcn/filters/comboBox.js +0 -101
- package/lib/esm/core/components/shadcn/filters/comboBox.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/dateFilter.js +0 -36
- package/lib/esm/core/components/shadcn/filters/dateFilter.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/selectFilter.js +0 -67
- package/lib/esm/core/components/shadcn/filters/selectFilter.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/stringListFilter.js.map +0 -1
- package/lib/esm/core/components/shadcn/filters/textFilter.js.map +0 -1
- package/lib/esm/features/facets/InteractionFacet.js +0 -39
- package/lib/esm/features/facets/InteractionFacet.js.map +0 -1
- package/lib/esm/features/facets/TypeOptions.js +0 -19
- package/lib/esm/features/facets/TypeOptions.js.map +0 -1
- package/lib/esm/features/facets/UserFacet.js +0 -33
- package/lib/esm/features/facets/UserFacet.js.map +0 -1
- package/lib/types/core/components/shadcn/filters/comboBox.d.ts +0 -22
- package/lib/types/features/facets/InteractionFacet.d.ts +0 -9
- package/lib/types/features/facets/TypeOptions.d.ts +0 -3
- package/lib/types/features/facets/UserFacet.d.ts +0 -11
- package/src/core/components/shadcn/filters/dateFilter.tsx +0 -82
- package/src/core/components/shadcn/filters/selectFilter.tsx +0 -110
- package/src/features/facets/InteractionFacet.tsx +0 -53
- package/src/features/facets/TypeOptions.tsx +0 -22
- package/src/features/facets/UserFacet.tsx +0 -61
|
@@ -128,8 +128,24 @@ export function EditCollectionView({ refetch, collection }: EditCollectionViewPr
|
|
|
128
128
|
onChange={(e) => setField("description", e.target.value)}
|
|
129
129
|
/>
|
|
130
130
|
</FormItem>
|
|
131
|
+
{
|
|
132
|
+
!collection.dynamic &&
|
|
133
|
+
<FormItem label="Allowed Content Types" description="Select which content types can be added to the collection. If not set, then all content types are allowed.">
|
|
134
|
+
<SelectContentType
|
|
135
|
+
defaultValue={metadata.allowed_types || null}
|
|
136
|
+
onChange={(v) => {
|
|
137
|
+
if (Array.isArray(v)) {
|
|
138
|
+
setField("allowed_types", v.map(type => type.id));
|
|
139
|
+
} else {
|
|
140
|
+
setField("allowed_types", v ? [v.id] : []);
|
|
141
|
+
}
|
|
142
|
+
}}
|
|
143
|
+
isClearable multiple
|
|
144
|
+
/>
|
|
145
|
+
</FormItem>
|
|
146
|
+
}
|
|
131
147
|
{collection.dynamic && (
|
|
132
|
-
<FormItem label="Query" description="Define the query to fetch
|
|
148
|
+
<FormItem label="Query" description="Define the query to dynamically fetch content for the collection.">
|
|
133
149
|
<textarea
|
|
134
150
|
className={Styles.INPUT}
|
|
135
151
|
value={metadata.query}
|
|
@@ -137,11 +153,11 @@ export function EditCollectionView({ refetch, collection }: EditCollectionViewPr
|
|
|
137
153
|
/>
|
|
138
154
|
</FormItem>
|
|
139
155
|
)}
|
|
140
|
-
<FormItem label="Table Layout" description="Define
|
|
156
|
+
<FormItem label="Table Layout" description="Define a custom layout for displaying the collection in tables.">
|
|
141
157
|
<CodeMirrorEditor className="border-1 rounded-md border-border"
|
|
142
158
|
value={tableLayoutValue} extensions={extensions} editorRef={tableLayoutRef} />
|
|
143
159
|
</FormItem>
|
|
144
|
-
<FormItem label="Type">
|
|
160
|
+
<FormItem label="Type" description="Select a content type to assign custom properties and data to the collection.">
|
|
145
161
|
<SelectContentType
|
|
146
162
|
defaultValue={metadata.type || null}
|
|
147
163
|
onChange={(v) => {
|
|
@@ -154,19 +170,6 @@ export function EditCollectionView({ refetch, collection }: EditCollectionViewPr
|
|
|
154
170
|
isClearable
|
|
155
171
|
/>
|
|
156
172
|
</FormItem>
|
|
157
|
-
<FormItem label="Allowed Content Types">
|
|
158
|
-
<SelectContentType
|
|
159
|
-
defaultValue={metadata.allowed_types || null}
|
|
160
|
-
onChange={(v) => {
|
|
161
|
-
if (Array.isArray(v)) {
|
|
162
|
-
setField("allowed_types", v.map(type => type.id));
|
|
163
|
-
} else {
|
|
164
|
-
setField("allowed_types", v ? [v.id] : []);
|
|
165
|
-
}
|
|
166
|
-
}}
|
|
167
|
-
isClearable multiple
|
|
168
|
-
/>
|
|
169
|
-
</FormItem>
|
|
170
173
|
<Button size="lg" className="w-min my-4" isDisabled={isUpdating} onClick={onSubmit}>
|
|
171
174
|
Save Metadata
|
|
172
175
|
</Button>
|
|
@@ -16,7 +16,7 @@ interface SelectCollectionProps {
|
|
|
16
16
|
*/
|
|
17
17
|
export function SelectCollection({ onChange, value, disabled = false, className }: SelectCollectionProps) {
|
|
18
18
|
const { client } = useUserSession();
|
|
19
|
-
const { data: collections, error } = useFetch(() => client.store.collections.
|
|
19
|
+
const { data: collections, error } = useFetch(() => client.store.collections.search({ dynamic: false }), []);
|
|
20
20
|
|
|
21
21
|
if (error) {
|
|
22
22
|
return <ErrorBox title='Collection fetch failed'>{error.message}</ErrorBox>
|
|
@@ -5,7 +5,8 @@ import { Button, Divider, ErrorBox, SidePanel, Spinner, useDebounce, useIntersec
|
|
|
5
5
|
import { useNavigate } from "@vertesia/ui/router";
|
|
6
6
|
import { TypeRegistry, useUserSession } from '@vertesia/ui/session';
|
|
7
7
|
import { Download, RefreshCw, Eye } from 'lucide-react';
|
|
8
|
-
import {
|
|
8
|
+
import { FilterProvider, FilterBtn, FilterBar, FilterClear, Filter as BaseFilter } from '@vertesia/ui/core';
|
|
9
|
+
import { useDocumentFilterGroups, useDocumentFilterHandler } from "../../facets/DocumentsFacetsNav";
|
|
9
10
|
import { VectorSearchWidget } from './components/VectorSearchWidget';
|
|
10
11
|
|
|
11
12
|
import { ContentDispositionButton } from './components/ContentDispositionButton';
|
|
@@ -97,6 +98,7 @@ export function DocumentSearchResults({ layout, onUpload, allowFilter = true, al
|
|
|
97
98
|
const [refreshTrigger, _setRefreshTrigger] = useState(0);
|
|
98
99
|
const [loaded, setLoaded] = useState(0);
|
|
99
100
|
const [isGridView, setIsGridView] = useState(localStorage.getItem(ContentDispositionButton.LAST_DISPLAYED_VIEW) === "grid");
|
|
101
|
+
const [filters, setFilters] = useState<BaseFilter[]>([]);
|
|
100
102
|
|
|
101
103
|
const loadMoreRef = useRef<HTMLDivElement>(null);
|
|
102
104
|
useIntersectionObserver(loadMoreRef, () => {
|
|
@@ -148,22 +150,89 @@ export function DocumentSearchResults({ layout, onUpload, allowFilter = true, al
|
|
|
148
150
|
search.search().then(() => setIsReady(true));
|
|
149
151
|
};
|
|
150
152
|
|
|
153
|
+
// Use DocumentsFacetsNav hooks for cleaner organization
|
|
154
|
+
const filterGroups = useDocumentFilterGroups(facets);
|
|
155
|
+
const handleFilterLogic = useDocumentFilterHandler(facetSearch);
|
|
156
|
+
|
|
157
|
+
const handleFilterChange: React.Dispatch<React.SetStateAction<BaseFilter[]>> = (value) => {
|
|
158
|
+
const newFilters = typeof value === 'function' ? value(filters) : value;
|
|
159
|
+
setFilters(newFilters);
|
|
160
|
+
handleFilterLogic(newFilters);
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
const url = new URL(window.location.href);
|
|
164
|
+
const filtersParam = url.searchParams.get('filters');
|
|
165
|
+
|
|
166
|
+
if (filtersParam) {
|
|
167
|
+
try {
|
|
168
|
+
const filterPairs = filtersParam.split(';');
|
|
169
|
+
const validFilterPairs = filterPairs.filter(pair => {
|
|
170
|
+
const [encodedName] = pair.split(':');
|
|
171
|
+
const name = decodeURIComponent(encodedName);
|
|
172
|
+
return name !== 'start' && name !== 'end';
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
if (validFilterPairs.length !== filterPairs.length) {
|
|
176
|
+
const newFiltersParam = validFilterPairs.length > 0 ? validFilterPairs.join(';') : '';
|
|
177
|
+
if (newFiltersParam) {
|
|
178
|
+
url.searchParams.set('filters', newFiltersParam);
|
|
179
|
+
} else {
|
|
180
|
+
url.searchParams.delete('filters');
|
|
181
|
+
}
|
|
182
|
+
window.history.replaceState({}, '', url.toString());
|
|
183
|
+
}
|
|
184
|
+
} catch (error) {
|
|
185
|
+
console.error("Failed to clean start/end filters from URL:", error);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
151
189
|
return (
|
|
152
190
|
<div className="flex flex-col gap-y-2">
|
|
153
191
|
<OverviewDrawer object={selectedObject} onClose={() => setSelectedObject(null)} />
|
|
154
192
|
{
|
|
155
193
|
error && <ErrorBox title="Error">{error.message}</ErrorBox>
|
|
156
194
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
195
|
+
{
|
|
196
|
+
allowFilter && (
|
|
197
|
+
<FilterProvider
|
|
198
|
+
filterGroups={filterGroups}
|
|
199
|
+
filters={filters}
|
|
200
|
+
setFilters={handleFilterChange}
|
|
201
|
+
>
|
|
202
|
+
<div className="flex flex-row gap-4 items-center justify-between w-full">
|
|
203
|
+
<div className="flex gap-2 items-center w-2/3">
|
|
204
|
+
{
|
|
205
|
+
allowSearch && <VectorSearchWidget onChange={setVQuery} isLoading={isLoading} refresh={refreshTrigger} className="w-wull" />
|
|
206
|
+
}
|
|
207
|
+
<FilterBtn />
|
|
208
|
+
</div>
|
|
209
|
+
<div className="flex gap-1 items-center">
|
|
210
|
+
<Button variant="outline" onClick={handleRefetch} alt="Refresh"><RefreshCw size={16} /></Button>
|
|
211
|
+
<ContentDispositionButton onUpdate={setIsGridView} />
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
<div className="flex gap-2 items-center">
|
|
215
|
+
<FilterBar />
|
|
216
|
+
<FilterClear />
|
|
217
|
+
</div>
|
|
218
|
+
</FilterProvider>
|
|
219
|
+
)
|
|
220
|
+
}
|
|
221
|
+
{
|
|
222
|
+
!allowFilter && (
|
|
223
|
+
<div className="flex flex-row gap-4 items-center justify-between w-full">
|
|
224
|
+
<div className="flex gap-2 items-center w-2/3">
|
|
225
|
+
{
|
|
226
|
+
allowSearch && <VectorSearchWidget onChange={setVQuery} isLoading={isLoading} refresh={refreshTrigger} />
|
|
227
|
+
}
|
|
228
|
+
</div>
|
|
229
|
+
<div className="flex gap-1 items-center">
|
|
230
|
+
<Button variant="outline" onClick={handleRefetch} alt="Refresh"><RefreshCw size={16} /></Button>
|
|
231
|
+
<ContentDispositionButton onUpdate={setIsGridView} />
|
|
232
|
+
</div>
|
|
233
|
+
</div>
|
|
234
|
+
)
|
|
235
|
+
}
|
|
167
236
|
<DocumentTable
|
|
168
237
|
objects={objects}
|
|
169
238
|
isLoading={!objects.length && isLoading}
|
|
@@ -83,7 +83,6 @@ export function ContentOverview({
|
|
|
83
83
|
// Request document rendition from the server
|
|
84
84
|
const response = await client.objects.getRendition(object.id, {
|
|
85
85
|
format: format as any, // We're extending the format type
|
|
86
|
-
max_hw: 1024, // Not used for document exports but required by API
|
|
87
86
|
generate_if_missing: true,
|
|
88
87
|
sign_url: true,
|
|
89
88
|
});
|
|
@@ -172,7 +171,6 @@ export function ContentOverview({
|
|
|
172
171
|
if (isImage) {
|
|
173
172
|
client.objects
|
|
174
173
|
.getRendition(object.id, {
|
|
175
|
-
max_hw: 1024,
|
|
176
174
|
format: ImageRenditionFormat.jpeg,
|
|
177
175
|
generate_if_missing: false,
|
|
178
176
|
sign_url: true,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ColumnLayout, ContentObjectItem } from "@vertesia/common";
|
|
2
2
|
import { Button, ErrorBox, Spinner, useIntersectionObserver } from "@vertesia/ui/core";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
|
-
import {
|
|
4
|
+
import { DocumentsFacetsNav } from "../../../facets";
|
|
5
5
|
import { DocumentTable } from "../DocumentTable";
|
|
6
6
|
import { useDocumentSearch, useWatchDocumentSearchFacets, useWatchDocumentSearchResult } from "../search/DocumentSearchContext";
|
|
7
7
|
import { DocumentSearchProvider } from "../search/DocumentSearchProvider";
|
|
@@ -66,7 +66,7 @@ function SelectDocumentImpl({ onRowClick }: SelectDocumentImplProps) {
|
|
|
66
66
|
return (
|
|
67
67
|
<div>
|
|
68
68
|
<div className="flex justify-between items-center mb-4">
|
|
69
|
-
<
|
|
69
|
+
<DocumentsFacetsNav facets={facets} search={facetSearch} />
|
|
70
70
|
<div className="flex items-center gap-2">
|
|
71
71
|
<Button variant="outline" onClick={handleRefetch} alt="Refresh">
|
|
72
72
|
<RefreshCw size={16} />
|
|
@@ -107,8 +107,8 @@ export function VectorSearchWidget({ onChange, isLoading, refresh }: VectorSearc
|
|
|
107
107
|
};
|
|
108
108
|
|
|
109
109
|
return (
|
|
110
|
-
<div className="flex gap-1 items-center w-
|
|
111
|
-
<Input placeholder="Type what you are looking for" value={searchText} onChange={setSearchText} onKeyDown={handleKeyPress} />
|
|
110
|
+
<div className="flex gap-1 items-center w-1/2">
|
|
111
|
+
<Input placeholder="Type what you are looking for, or select a filter" value={searchText} onChange={setSearchText} onKeyDown={handleKeyPress} />
|
|
112
112
|
<Button variant="secondary" isLoading={isLoading} onClick={() => fireSearch("text")} isDisabled={!isReady} alt="semantic search">Search</Button>
|
|
113
113
|
</div>
|
|
114
114
|
);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Button, Portal, useToast, VModal, VModalBody, VModalFooter, VModalTitle } from "@vertesia/ui/core";
|
|
1
|
+
import { Button, DialogDescription, Heading, Portal, useToast, VModal, VModalBody, VModalFooter, VModalTitle, VTabs, VTabsBar, VTabsPanel } from "@vertesia/ui/core";
|
|
2
2
|
import { useUserSession } from "@vertesia/ui/session";
|
|
3
3
|
import { useCallback, useState } from "react";
|
|
4
4
|
import { CreateCollectionForm, SelectCollection } from "../../../collections";
|
|
@@ -42,8 +42,13 @@ interface SelectCollectionModalProps {
|
|
|
42
42
|
function SelectCollectionModal({ isOpen, onClose, objectIds }: SelectCollectionModalProps) {
|
|
43
43
|
return (
|
|
44
44
|
<VModal isOpen={isOpen} onClose={onClose}>
|
|
45
|
-
<VModalTitle
|
|
46
|
-
|
|
45
|
+
<VModalTitle className="flex flex-col">
|
|
46
|
+
Add to a Collection
|
|
47
|
+
</VModalTitle>
|
|
48
|
+
<DialogDescription>
|
|
49
|
+
Add the selected objects to an existing collection or create a new one.
|
|
50
|
+
</DialogDescription>
|
|
51
|
+
<AddToCollectionForm onClose={onClose} objectIds={objectIds} />
|
|
47
52
|
</VModal>
|
|
48
53
|
)
|
|
49
54
|
}
|
|
@@ -82,22 +87,38 @@ function AddToCollectionForm({ onClose, objectIds }: AddToCollectionFormProps) {
|
|
|
82
87
|
setSelectedCollectionId(collectionId);
|
|
83
88
|
};
|
|
84
89
|
|
|
90
|
+
const tabs = [
|
|
91
|
+
{
|
|
92
|
+
name: 'select',
|
|
93
|
+
label: 'Select Collection',
|
|
94
|
+
content: (
|
|
95
|
+
<div className="p-4">
|
|
96
|
+
<Heading level={5}>Choose from existing collections</Heading>
|
|
97
|
+
<VModalBody>
|
|
98
|
+
<SelectCollection onChange={onCollectionChange} value={selectedCollectionId} className="mb-4" />
|
|
99
|
+
</VModalBody>
|
|
100
|
+
<VModalFooter>
|
|
101
|
+
<Button isDisabled={!selectedCollectionId} onClick={() => selectedCollectionId && onAddToCollection({ collectionId: selectedCollectionId })}>
|
|
102
|
+
Add to Collection
|
|
103
|
+
</Button>
|
|
104
|
+
</VModalFooter>
|
|
105
|
+
</div>
|
|
106
|
+
)
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: 'create',
|
|
110
|
+
label: 'Create new',
|
|
111
|
+
content:
|
|
112
|
+
<div className="p-4">
|
|
113
|
+
<CreateCollectionForm onClose={onClose} onAddToCollection={(id: string) => onAddToCollection({ collectionId: id })} redirect={false} />
|
|
114
|
+
</div>
|
|
115
|
+
}
|
|
116
|
+
];
|
|
117
|
+
|
|
85
118
|
return (
|
|
86
|
-
|
|
87
|
-
<
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
<VModalFooter>
|
|
91
|
-
<Button isDisabled={!selectedCollectionId} onClick={() => selectedCollectionId && onAddToCollection({ collectionId: selectedCollectionId })}>
|
|
92
|
-
Add to Collection
|
|
93
|
-
</Button>
|
|
94
|
-
</VModalFooter>
|
|
95
|
-
<div className="flex items-center flex-row w-full text-muted">
|
|
96
|
-
<hr className="w-full" />
|
|
97
|
-
<div className="px-2 text-xs">OR</div>
|
|
98
|
-
<hr className="w-full" />
|
|
99
|
-
</div>
|
|
100
|
-
<CreateCollectionForm onClose={onClose} onAddToCollection={(id: string) => onAddToCollection({ collectionId: id })} redirect={false} />
|
|
101
|
-
</>
|
|
119
|
+
<VTabs defaultValue="select" tabs={tabs} fullWidth>
|
|
120
|
+
<VTabsBar />
|
|
121
|
+
<VTabsPanel />
|
|
122
|
+
</VTabs>
|
|
102
123
|
)
|
|
103
124
|
}
|