@ynput/ayon-frontend-shared 0.8.1 → 0.9.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 (42) hide show
  1. package/dist/DetailsPanel.es.js +2 -2
  2. package/dist/ListTable.es.js +1 -1
  3. package/dist/NewEntity.es.js +5 -3
  4. package/dist/ProjectTreeTable.es.js +4153 -4130
  5. package/dist/ProjectsTable.es.js +5 -4
  6. package/dist/Slicer.es.js +326 -293
  7. package/dist/Views.es.js +724 -714
  8. package/dist/chunks/ColumnDropIndicator.es.js +10 -10
  9. package/dist/chunks/DeleteEntitiesConfirmDialog.es.js +44 -38
  10. package/dist/chunks/EntityPickerDialog.es.js +1 -1
  11. package/dist/chunks/Feed.es.js +41 -39
  12. package/dist/chunks/FilmstripEntityCard.es.js +1 -1
  13. package/dist/chunks/GroupSettingsFallback.es.js +3 -2
  14. package/dist/chunks/MetaWidget.es.js +425 -411
  15. package/dist/chunks/NewEntityContextInstance.es.js +6 -5
  16. package/dist/chunks/ReviewablesSelector.es.js +76 -76
  17. package/dist/chunks/SimpleTable.es.js +151 -149
  18. package/dist/chunks/Slicer.es.js +637 -617
  19. package/dist/chunks/TableExportContextInstance.es.js +131 -126
  20. package/dist/chunks/ThumbnailSimple.es.js +11 -11
  21. package/dist/chunks/Watchers.es.js +46 -46
  22. package/dist/chunks/getUris.es.js +1 -1
  23. package/dist/chunks/searchTerms.es.js +617 -581
  24. package/dist/chunks/useCreateContextMenu.es.js +15 -13
  25. package/dist/components.es.js +900 -868
  26. package/dist/context.es.js +1 -1
  27. package/dist/hooks.es.js +2 -2
  28. package/dist/index.es.js +11 -10
  29. package/dist/types/ContextMenu.d.ts +1 -1
  30. package/dist/types/Feed.d.ts +1 -1
  31. package/dist/types/ListTable.d.ts +1 -1
  32. package/dist/types/NewEntity.d.ts +2 -0
  33. package/dist/types/ProjectTreeTable.d.ts +44 -3
  34. package/dist/types/ProjectsTable.d.ts +1 -1
  35. package/dist/types/SimpleTable.d.ts +1 -1
  36. package/dist/types/Slicer.d.ts +7 -1
  37. package/dist/types/Views.d.ts +5 -0
  38. package/dist/types/components.d.ts +46 -1
  39. package/dist/types/context.d.ts +2 -1
  40. package/dist/types/util.d.ts +21 -0
  41. package/dist/util.es.js +116 -113
  42. package/package.json +2 -2
@@ -4,7 +4,7 @@ import { registerRemotes as Ce, loadRemote as Ee } from "@module-federation/enha
4
4
  import { setManifestsLoading as fe, MANIFEST_MODULE as ae, registerManifest as ke } from "@ynput/ayon-addon/host";
5
5
  import { toast as U } from "react-toastify";
6
6
  import { c as me, v as xe, x as Le, y as De, R as Ie, A as je, z as Te, b as te, l as Ae, B as Oe, E as Re, G as Fe, H as Me, I as Ue, J as $e, K as Ne, L as Be, N as _e, O as Ge, Q as qe, U as Ve, V as Qe, a as We, W as He, X as Ye } from "./chunks/TableExportContextInstance.es.js";
7
- import { Y as rn, Z as an, _ as ln, M as dn, $ as cn, P as un, j as pn, a0 as fn, a1 as mn, T as gn, a2 as vn, a3 as hn, a4 as yn, a5 as Pn, a6 as bn, a7 as wn, a8 as Sn, a9 as Cn, aa as En, ab as kn, ac as xn, ad as Ln, ae as Dn, af as In, m as jn, u as Tn, k as An, t as On, ag as Rn, q as Fn, s as Mn, ah as Un, ai as $n, aj as Nn, ak as Bn, al as _n, am as Gn, an as qn } from "./chunks/TableExportContextInstance.es.js";
7
+ import { Y as rn, Z as an, _ as ln, M as dn, $ as cn, P as un, j as pn, a0 as fn, a1 as mn, T as gn, a2 as vn, a3 as hn, a4 as yn, a5 as Pn, a6 as bn, a7 as wn, a8 as Sn, a9 as Cn, aa as En, ab as kn, ac as xn, ad as Ln, ae as Dn, af as In, m as jn, u as Tn, k as An, t as On, ag as Rn, s as Fn, q as Mn, ah as Un, ai as $n, aj as Nn, ak as Bn, al as _n, am as Gn, an as qn } from "./chunks/TableExportContextInstance.es.js";
8
8
  import { aH as ze, bs as Ke } from "./chunks/searchTerms.es.js";
9
9
  import { c_ as Xe, cY as Ze, cZ as Je, cb as et, cp as tt, bv as nt, d0 as ot, cL as st, d6 as rt, dx as at, cS as it } from "./chunks/getUris.es.js";
10
10
  import "primereact/confirmdialog";
package/dist/hooks.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { c as G, b as R, a as V } from "./chunks/TableExportContextInstance.es.js";
2
- import { n as Ae, r as Ie, o as He, l as Pe, p as Ge, w as Re } from "./chunks/TableExportContextInstance.es.js";
2
+ import { r as Ae, n as Ie, o as He, l as Pe, w as Ge, p as Re } from "./chunks/TableExportContextInstance.es.js";
3
3
  import { u as k } from "./chunks/useLoadModule.es.js";
4
4
  import { loadRemote as x } from "@module-federation/enhanced/runtime";
5
5
  import { useRef as M, useState as v, useEffect as b, useCallback as H } from "react";
@@ -25,7 +25,7 @@ import { u as $e } from "./chunks/ProjectFoldersContext.es.js";
25
25
  import { u as Be } from "./chunks/useGroupedPagination.es.js";
26
26
  import { G as K } from "./chunks/GroupSettingsFallback.es.js";
27
27
  import { i as U } from "./chunks/isHTMLElement.es.js";
28
- import { f as Fe } from "./chunks/MetaWidget.es.js";
28
+ import { c as Fe } from "./chunks/MetaWidget.es.js";
29
29
  import { u as qe } from "./chunks/useAttributeEnums.es.js";
30
30
  import { a as _ } from "./chunks/afterStartup.es.js";
31
31
  const me = (e, o, t) => {
package/dist/index.es.js CHANGED
@@ -8,8 +8,8 @@ import "./chunks/SimpleForm.es.js";
8
8
  import "./chunks/MetaWidget.es.js";
9
9
  import "react-dom";
10
10
  import "date-fns";
11
- import { U as $ } from "./chunks/FilmstripEntityCard.es.js";
12
- import { u as or } from "./chunks/TableExportContextInstance.es.js";
11
+ import { U as rr } from "./chunks/FilmstripEntityCard.es.js";
12
+ import { u as mr } from "./chunks/TableExportContextInstance.es.js";
13
13
  import "lodash";
14
14
  import "primereact/confirmdialog";
15
15
  import "react-toastify";
@@ -32,9 +32,9 @@ import "@module-federation/enhanced/runtime";
32
32
  import "@ynput/ayon-addon/host";
33
33
  import "semver";
34
34
  import "./chunks/ContextMenuContextInstance.es.js";
35
- import { M as tr } from "./chunks/MenuContext.es.js";
35
+ import { M as pr } from "./chunks/MenuContext.es.js";
36
36
  import "react-router-dom";
37
- import { E as ir } from "./chunks/EmptyPlaceholder.es.js";
37
+ import { E as er } from "./chunks/EmptyPlaceholder.es.js";
38
38
  import "./chunks/EmptyPlaceholderFlex.styled.es.js";
39
39
  import "./chunks/InfoMessage.es.js";
40
40
  import "@dnd-kit/core";
@@ -53,11 +53,12 @@ import "primereact/splitter";
53
53
  import "./chunks/Slicer.es.js";
54
54
  import "./chunks/NewEntityContextInstance.es.js";
55
55
  import "./chunks/Menu.es.js";
56
- import { T as ar } from "./chunks/ThumbnailSimple.es.js";
56
+ import "primereact-context/contextmenu";
57
+ import { T as sr } from "./chunks/ThumbnailSimple.es.js";
57
58
  export {
58
- ir as EmptyPlaceholder,
59
- tr as MenuProvider,
60
- ar as ThumbnailSimple,
61
- $ as UserImage,
62
- or as useMenuContext
59
+ er as EmptyPlaceholder,
60
+ pr as MenuProvider,
61
+ sr as ThumbnailSimple,
62
+ rr as UserImage,
63
+ mr as useMenuContext
63
64
  };
@@ -114,7 +114,7 @@ declare type PowerpackDialogType = {
114
114
  icon?: string;
115
115
  };
116
116
 
117
- declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport';
117
+ declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport' | 'personalApiKeys';
118
118
 
119
119
  export declare function useContextMenu(): ContextMenuContextType;
120
120
 
@@ -234,7 +234,7 @@ export declare type MimeTypeDefinition = {
234
234
  callback?: (file: any) => void;
235
235
  };
236
236
 
237
- declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport';
237
+ declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport' | 'personalApiKeys';
238
238
 
239
239
  declare type ProductSuggestionItem = {
240
240
  /** The date and time when the suggested entity was created */
@@ -265,7 +265,7 @@ export declare interface ListTableWidgetRenderContext<TData extends RowData> {
265
265
 
266
266
  export declare type ListTableWidgetRenderer<TData extends RowData> = (context: ListTableWidgetRenderContext<TData>) => React.ReactNode;
267
267
 
268
- declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport';
268
+ declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport' | 'personalApiKeys';
269
269
 
270
270
  export declare const renderListTableFallbackValue: (value: unknown) => string;
271
271
 
@@ -187,6 +187,8 @@ declare type TaskType_2 = {
187
187
 
188
188
  export declare const useNewEntityContext: () => NewEntityContextType;
189
189
 
190
+ export declare const useOptionalNewEntityContext: () => NewEntityContextType | undefined;
191
+
190
192
  export { }
191
193
 
192
194
 
@@ -738,6 +738,7 @@ declare type ContextEvent = React.MouseEvent<HTMLTableSectionElement, MouseEvent
738
738
 
739
739
  export declare type ContextMenuItemConstructor = (e: ContextEvent, cell: TableCellContextData, selectedCells: TableCellContextData[], meta: {
740
740
  selectedCells: string[];
741
+ scopedCells: string[];
741
742
  selectedRows: string[];
742
743
  selectedColumns: string[];
743
744
  selectedFullRows: string[];
@@ -1623,6 +1624,8 @@ export declare const getCellId: (rowId: RowId, colId: ColId) => CellId;
1623
1624
 
1624
1625
  export declare const getCellValue: (obj: any, path: string) => any;
1625
1626
 
1627
+ declare type GetChildFolderIds = (folderIds: string[], includeSelf?: boolean) => string[];
1628
+
1626
1629
  export declare const getColumnIcon: (columnId: string) => string;
1627
1630
 
1628
1631
  export declare const getColumnLabel: (columnId: string, scopes?: string[]) => string;
@@ -2808,7 +2811,7 @@ declare type PowerpackDialogType = {
2808
2811
  icon?: string;
2809
2812
  };
2810
2813
 
2811
- declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport';
2814
+ declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport' | 'personalApiKeys';
2812
2815
 
2813
2816
  export declare const processFieldValue: (value: string, fieldValueType: "string" | "number" | "boolean" | "array") => any;
2814
2817
 
@@ -2868,6 +2871,24 @@ declare type ProductTypeListItem = {
2868
2871
  icon?: string | null;
2869
2872
  };
2870
2873
 
2874
+ /** Context of a profile section: nothing besides `user`, the signed-in user it is about. */
2875
+ declare type ProfileSectionContext = Record<never, never>
2876
+
2877
+ /** Description of a `profile.section` contribution. */
2878
+ declare interface ProfileSectionMeta {
2879
+ /** unique among the addon's sections */
2880
+ id: string
2881
+ /** the section's title, above its content */
2882
+ title: string
2883
+ /** order among addon sections, lowest first */
2884
+ order?: number
2885
+ /**
2886
+ * a Power Pack feature: shown only with a Power Pack licence. Without one, AYON shows its own
2887
+ * preview of the feature where it has one. `false` by default
2888
+ */
2889
+ powerFeature?: boolean
2890
+ }
2891
+
2871
2892
  declare interface ProjectContextValue extends ProjectModelWithProducts {
2872
2893
  projectName: string;
2873
2894
  isLoading: boolean;
@@ -3085,6 +3106,7 @@ export declare interface ProjectOverviewContextType {
3085
3106
  export declare interface ProjectOverviewProviderProps {
3086
3107
  children: ReactNode;
3087
3108
  modules: ProjectTableModulesType;
3109
+ page?: string;
3088
3110
  }
3089
3111
 
3090
3112
  /** Description of a `project.page` contribution: a page, and what the host adds around it. */
@@ -3134,6 +3156,8 @@ export declare interface ProjectTableContextType {
3134
3156
  onSyncData: ProjectTableProviderProps['onSyncData'];
3135
3157
  getEntityById: (id: string, field?: string) => EntityMap | undefined;
3136
3158
  isRowReadOnly: (rowId: string) => boolean;
3159
+ readOnly?: boolean;
3160
+ tableId: string;
3137
3161
  loadingLinksEntityIds?: Set<string>;
3138
3162
  groups: ProjectTableProviderProps['groups'];
3139
3163
  overrideGroupBy?: ProjectTableProviderProps['overrideGroupBy'];
@@ -3194,7 +3218,7 @@ declare type ProjectTableModulesType = {
3194
3218
  /** The project pages with a project table (ProjectTreeTable). */
3195
3219
  declare type ProjectTablePage = 'overview' | 'products' | 'lists'
3196
3220
 
3197
- export declare const ProjectTableProvider: ({ children, foldersMap, tableRows, tasksMap, entitiesMap, tasksByFolderMap, selectedFolders, expanded, showHierarchy, loadingTasks, isLoadingMore, isLoading, error, softError, softErrorAction, isInitialized, users, attribFields, scopes, groups, groupRowFunc, overrideGroupBy, groupCounts, groupCountsComplete, queryFilters, updateShowHierarchy, toggleExpanded, updateExpanded, fetchNextPage, onSyncData, setExpanded, contextMenuItems, powerpack, modules, loadingLinksEntityIds, groupByConfig, hierarchyOptions, hierarchyActive, isFlatFolderView, SubtasksManager, playerOpen, onOpenPlayer, onResetView, hiddenListIds, useParams, useNavigate, useLocation, useSearchParams, dispatch, }: ProjectTableProviderProps) => JSX_2.Element;
3221
+ export declare const ProjectTableProvider: ({ children, foldersMap, tableRows, tasksMap, entitiesMap, tasksByFolderMap, selectedFolders, expanded, showHierarchy, loadingTasks, isLoadingMore, isLoading, error, softError, softErrorAction, isInitialized, users, attribFields, scopes, groups, groupRowFunc, overrideGroupBy, groupCounts, groupCountsComplete, queryFilters, updateShowHierarchy, toggleExpanded, updateExpanded, fetchNextPage, onSyncData, setExpanded, contextMenuItems, powerpack, modules, loadingLinksEntityIds, groupByConfig, hierarchyOptions, hierarchyActive, isFlatFolderView, SubtasksManager, playerOpen, onOpenPlayer, onResetView, hiddenListIds, readOnly, useParams, useNavigate, useLocation, useSearchParams, dispatch, }: ProjectTableProviderProps) => JSX_2.Element;
3198
3222
 
3199
3223
  export declare interface ProjectTableProviderProps {
3200
3224
  children: ReactNode;
@@ -3260,6 +3284,7 @@ export declare interface ProjectTableProviderProps {
3260
3284
  }) => void;
3261
3285
  onResetView?: () => void;
3262
3286
  hiddenListIds?: string[];
3287
+ readOnly?: boolean;
3263
3288
  useParams?: typeof useParams;
3264
3289
  useNavigate?: typeof useNavigate;
3265
3290
  useLocation?: typeof useLocation;
@@ -3456,6 +3481,8 @@ export declare const resolveColumnVisibility: (columnVisibility: VisibilityState
3456
3481
  */
3457
3482
  export declare const resolveRelativeValue: (value: string) => string;
3458
3483
 
3484
+ export declare const resolveSlicerFolders: (slices: SliceRowSelection[], entityListFolderIds?: string[], getChildFolderIds?: GetChildFolderIds, searchFolderIds?: string[] | null) => SelectedFoldersResult;
3485
+
3459
3486
  export declare const RESTRICTED_ENTITY_ICON = "lock";
3460
3487
 
3461
3488
  export declare const RESTRICTED_ENTITY_LABEL = "Access Restricted - Insufficient Permissions";
@@ -3877,6 +3904,17 @@ declare interface SlotMap {
3877
3904
  context: UserDetailsContext
3878
3905
  pieces: { run: Loader<RunPiece<'userDetails.menuItem'>> }
3879
3906
  }
3907
+ /**
3908
+ * A section on the signed-in user's profile page (Account → Profile), below AYON's own forms.
3909
+ * The section shows from the description, titled like AYON's; `component` loads when it is first
3910
+ * shown. Saving is the section's own: AYON's "Save profile" button doesn't see it.
3911
+ */
3912
+ 'profile.section': {
3913
+ version: 1
3914
+ meta: ProfileSectionMeta
3915
+ context: ProfileSectionContext
3916
+ pieces: { component: Loader<ComponentType<SlotProps<'profile.section'>>> }
3917
+ }
3880
3918
  /**
3881
3919
  * Code with no UI that runs while AYON is open, whatever the page: keeping a state, listening to
3882
3920
  * websocket events, registering a store listener. `component` loads at startup and is mounted
@@ -4669,6 +4707,8 @@ declare interface UseHistoryReturn {
4669
4707
  /** Like useCellEditing, but returns undefined outside of a CellEditingProvider. */
4670
4708
  export declare const useOptionalCellEditing: () => CellEditingContextType | undefined;
4671
4709
 
4710
+ export declare const useOptionalProjectDataContext: () => ProjectDataContextProps | undefined;
4711
+
4672
4712
  export declare const useOptionalProjectTableContext: () => ProjectTableContextType | undefined;
4673
4713
 
4674
4714
  export declare const useOptionalSelectedRowsContext: () => SelectedRowsContextType | undefined;
@@ -4787,12 +4827,13 @@ declare interface UseScopedAttributeFieldsProps<T extends AttributeField> {
4787
4827
  allowedScopes?: string[];
4788
4828
  }
4789
4829
 
4790
- export declare const useSelectedFolders: ({ slices, entityListFolderIds, getChildFolderIds, }: UseSelectedFoldersProps) => SelectedFoldersResult;
4830
+ export declare const useSelectedFolders: ({ slices, entityListFolderIds, getChildFolderIds, searchFolderIds, }: UseSelectedFoldersProps) => SelectedFoldersResult;
4791
4831
 
4792
4832
  declare interface UseSelectedFoldersProps {
4793
4833
  slices: SliceRowSelection[];
4794
4834
  entityListFolderIds?: string[];
4795
4835
  getChildFolderIds?: (folderIds: string[], includeSelf?: boolean) => string[];
4836
+ searchFolderIds?: string[] | null;
4796
4837
  }
4797
4838
 
4798
4839
  export declare const useSelectedRowsContext: () => SelectedRowsContextType;
@@ -68,7 +68,7 @@ declare type ListProjectsItemModel = {
68
68
 
69
69
  export declare const parseProjectFolderRowId: (rowId: string) => string | null;
70
70
 
71
- declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport';
71
+ declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport' | 'personalApiKeys';
72
72
 
73
73
  export declare const PROJECT_FOLDER_ROW_ID_PREFIX = "folder";
74
74
 
@@ -78,7 +78,7 @@ export declare const HeaderButton: IStyledComponentBase<"web", FastOmit<Omit< Bu
78
78
  ref?: ((instance: HTMLButtonElement | null) => void | DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | RefObject<HTMLButtonElement> | null | undefined;
79
79
  }, never>>> & string & Omit< ForwardRefExoticComponent< ButtonProps & RefAttributes<HTMLButtonElement>>, keyof Component<any, {}, any>>;
80
80
 
81
- declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport';
81
+ declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport' | 'personalApiKeys';
82
82
 
83
83
  /** The project pages with a project table (ProjectTreeTable). */
84
84
  declare type ProjectTablePage = 'overview' | 'products' | 'lists'
@@ -286,7 +286,7 @@ export declare interface PinnedSlice {
286
286
  expanded: ExpandedState;
287
287
  }
288
288
 
289
- declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport';
289
+ declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport' | 'personalApiKeys';
290
290
 
291
291
  declare type ProductType = {
292
292
  __typename?: 'ProductType';
@@ -485,6 +485,10 @@ export declare interface SlicerContextValue {
485
485
  setPanelExpanded: (panelId: string, expanded: React.SetStateAction<ExpandedState>) => void;
486
486
  collapsedPanels: string[];
487
487
  togglePanelCollapsed: (panelId: string) => void;
488
+ searchByPanel: Record<string, string | undefined>;
489
+ setSearchByPanel: React.Dispatch<React.SetStateAction<Record<string, string | undefined>>>;
490
+ searchMatchesByPanel: Record<string, string[]>;
491
+ setSearchMatchesByPanel: React.Dispatch<React.SetStateAction<Record<string, string[]>>>;
488
492
  getSliceSort: (sliceType: SliceType) => SliceSort;
489
493
  setSliceSort: (sliceType: SliceType, sort: SliceSort) => void;
490
494
  isViewSyncPending: boolean;
@@ -534,6 +538,8 @@ declare type SlicerPanelLayout = {
534
538
  export declare interface SlicerPanelSelections {
535
539
  sliceSelections: SliceRowSelection[];
536
540
  sliceFilters: SliceFilter[];
541
+ searchFolderIds: string[] | null;
542
+ getCountsSearchFolderIds: (sliceType: string) => string[] | null;
537
543
  isLicensePending: boolean;
538
544
  }
539
545
 
@@ -623,6 +623,7 @@ export declare interface ViewsContextValue {
623
623
  onDeleteBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>;
624
624
  onLoadBaseView: (isStudioScope: boolean) => Promise<void>;
625
625
  resetWorkingView: () => Promise<void>;
626
+ updateControlledSettings?: (updated: ViewSettings) => void;
626
627
  api: typeof viewsQueries;
627
628
  dispatch: any;
628
629
  }
@@ -661,6 +662,10 @@ export declare interface ViewsProviderProps {
661
662
  debug?: {
662
663
  powerLicense?: boolean;
663
664
  };
665
+ controlled?: {
666
+ settings: ViewSettings | undefined;
667
+ onChange: (changed: ViewSettings) => void;
668
+ };
664
669
  }
665
670
 
666
671
  declare const viewsQueries: Api<BaseQueryFn<string | {
@@ -260,6 +260,12 @@ declare type AddonMenuItem =
260
260
 
261
261
  export declare const AddonMoreMenu: ({ items, icon, label, tooltip, variant, align, disabled, className, onError, "data-testid": testId, }: HostMoreMenuProps) => JSX_2.Element;
262
262
 
263
+ /**
264
+ * The addons' sections, each in a panel titled like AYON's own. A power feature's section shows
265
+ * only with a Power Pack licence; without one the page shows AYON's preview of it instead.
266
+ */
267
+ export declare const AddonProfileSections: () => JSX_2.Element;
268
+
263
269
  export declare const AddonServices: ({ projectName }: {
264
270
  projectName: string | null;
265
271
  }) => JSX_2.Element;
@@ -2196,6 +2202,13 @@ declare interface HostMoreMenuProps extends MoreMenuProps {
2196
2202
  onError: (error: unknown) => void
2197
2203
  }
2198
2204
 
2205
+ /** What the host's `useContextMenu` returns: the opener, with where to report a failing item. */
2206
+ declare type HostOpenContextMenu = (
2207
+ event: MouseEvent_2,
2208
+ items: AddonMenuItem[],
2209
+ onError: (error: unknown) => void,
2210
+ ) => void
2211
+
2199
2212
  declare type IconInputPt = Partial<React.ComponentProps<typeof Styled.IconSelect>>;
2200
2213
 
2201
2214
  declare type IconModel = {
@@ -2946,7 +2959,7 @@ declare type PowerpackDialogType = {
2946
2959
  icon?: string;
2947
2960
  };
2948
2961
 
2949
- declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport';
2962
+ declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport' | 'personalApiKeys';
2950
2963
 
2951
2964
  declare interface Processing extends ReviewableProcessingStatus {
2952
2965
  progress?: number;
@@ -2989,6 +3002,24 @@ declare type ProductTypeListItem = {
2989
3002
  icon?: string | null;
2990
3003
  };
2991
3004
 
3005
+ /** Context of a profile section: nothing besides `user`, the signed-in user it is about. */
3006
+ declare type ProfileSectionContext = Record<never, never>
3007
+
3008
+ /** Description of a `profile.section` contribution. */
3009
+ declare interface ProfileSectionMeta {
3010
+ /** unique among the addon's sections */
3011
+ id: string
3012
+ /** the section's title, above its content */
3013
+ title: string
3014
+ /** order among addon sections, lowest first */
3015
+ order?: number
3016
+ /**
3017
+ * a Power Pack feature: shown only with a Power Pack licence. Without one, AYON shows its own
3018
+ * preview of the feature where it has one. `false` by default
3019
+ */
3020
+ powerFeature?: boolean
3021
+ }
3022
+
2992
3023
  declare interface ProjectContextValue extends ProjectModelWithProducts {
2993
3024
  projectName: string;
2994
3025
  isLoading: boolean;
@@ -3988,6 +4019,17 @@ declare interface SlotMap {
3988
4019
  context: UserDetailsContext
3989
4020
  pieces: { run: Loader<RunPiece<'userDetails.menuItem'>> }
3990
4021
  }
4022
+ /**
4023
+ * A section on the signed-in user's profile page (Account → Profile), below AYON's own forms.
4024
+ * The section shows from the description, titled like AYON's; `component` loads when it is first
4025
+ * shown. Saving is the section's own: AYON's "Save profile" button doesn't see it.
4026
+ */
4027
+ 'profile.section': {
4028
+ version: 1
4029
+ meta: ProfileSectionMeta
4030
+ context: ProfileSectionContext
4031
+ pieces: { component: Loader<ComponentType<SlotProps<'profile.section'>>> }
4032
+ }
3991
4033
  /**
3992
4034
  * Code with no UI that runs while AYON is open, whatever the page: keeping a state, listening to
3993
4035
  * websocket events, registering a store listener. `component` loads at startup and is mounted
@@ -4573,6 +4615,8 @@ export declare const UploadVersionDialog: FC<UploadVersionDialogProps>;
4573
4615
  declare interface UploadVersionDialogProps {
4574
4616
  }
4575
4617
 
4618
+ export declare const useAddonContextMenu: () => HostOpenContextMenu;
4619
+
4576
4620
  /**
4577
4621
  * The sections addons contribute to this page's Customize panel (projectTable.customizeSection
4578
4622
  * slot, @ynput/ayon-addon), for ProjectTableSettings' `settings`. The entries show from the
@@ -5147,6 +5191,7 @@ declare interface ViewsContextValue {
5147
5191
  onDeleteBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>;
5148
5192
  onLoadBaseView: (isStudioScope: boolean) => Promise<void>;
5149
5193
  resetWorkingView: () => Promise<void>;
5194
+ updateControlledSettings?: (updated: ViewSettings) => void;
5150
5195
  api: typeof viewsQueries;
5151
5196
  dispatch: any;
5152
5197
  }
@@ -949,7 +949,7 @@ export declare type PowerpackDialogType = {
949
949
  icon?: string;
950
950
  };
951
951
 
952
- export declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport';
952
+ export declare type PowerpackFeature = 'slicer' | 'annotations' | 'releases' | 'advancedFilters' | 'listAttributes' | 'listFolders' | 'listAccess' | 'groupAttributes' | 'sharedViews' | 'commentCategories' | 'projectFolders' | 'columnSummaries' | 'listValues' | 'entityLinks' | 'tableExport' | 'personalApiKeys';
953
953
 
954
954
  export declare const powerpackFeatureOrder: PowerpackFeature[];
955
955
 
@@ -2173,6 +2173,7 @@ declare interface ViewsContextValue {
2173
2173
  onDeleteBaseView: (baseViewId: string, isStudioScope: boolean) => Promise<void>;
2174
2174
  onLoadBaseView: (isStudioScope: boolean) => Promise<void>;
2175
2175
  resetWorkingView: () => Promise<void>;
2176
+ updateControlledSettings?: (updated: ViewSettings) => void;
2176
2177
  api: typeof viewsQueries;
2177
2178
  dispatch: any;
2178
2179
  }
@@ -685,6 +685,10 @@ export declare const getProjectThumbnailUrl: (projectName: string, thumbnailHash
685
685
 
686
686
  export declare const getRequestErrorString: (error: unknown) => string;
687
687
 
688
+ export declare const getSearchMatchedFolderIds: (folders: SearchableFolder[], query: string) => string[] | null;
689
+
690
+ export declare const getSearchMatchedRowIds: (rows: SearchableRow[], query: string) => string[] | null;
691
+
688
692
  export declare const getSelectableAssignees: <T extends {
689
693
  name: string;
690
694
  hidden?: boolean;
@@ -1043,6 +1047,21 @@ export declare const sanitizeProductName: (name: string) => string;
1043
1047
 
1044
1048
  declare type ScopeEntityType = 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile' | 'project' | 'user';
1045
1049
 
1050
+ declare interface SearchableFolder {
1051
+ id: string;
1052
+ parentId?: string | null;
1053
+ name: string;
1054
+ label?: string | null;
1055
+ }
1056
+
1057
+ declare interface SearchableRow {
1058
+ id: string;
1059
+ name?: string | null;
1060
+ label?: string | null;
1061
+ parents?: string[];
1062
+ subRows?: SearchableRow[];
1063
+ }
1064
+
1046
1065
  export declare const searchQueryToFilter: <C>(query: string, toCondition: (term: string) => C) => {
1047
1066
  operator: "or";
1048
1067
  conditions: {
@@ -1204,6 +1223,8 @@ export declare type ThumbnailUpdater = (messages: ThumbnailUpdateMessage[]) => v
1204
1223
 
1205
1224
  export declare const toDropdownErrorText: (text?: string) => string | undefined;
1206
1225
 
1226
+ export declare const toSlicerSearchHaystack: (label: string | undefined, name: string | undefined, parents?: string[]) => string;
1227
+
1207
1228
  export declare const URL_PARAM_ID = "uri";
1208
1229
 
1209
1230
  export declare const useActiveEntities: () => ActiveEntity[];