@ynput/ayon-frontend-shared 0.7.6 → 0.8.1

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 (70) hide show
  1. package/dist/DetailsPanel.es.js +361 -355
  2. package/dist/Feed.es.js +1 -1
  3. package/dist/ListTable.es.js +18 -18
  4. package/dist/NewEntity.es.js +30 -30
  5. package/dist/ProjectTreeTable.es.js +984 -974
  6. package/dist/ProjectsTable.es.js +3 -3
  7. package/dist/Slicer.es.js +53 -50
  8. package/dist/Views.es.js +150 -151
  9. package/dist/api.es.js +166 -165
  10. package/dist/chunks/Actions.es.js +9 -10
  11. package/dist/chunks/ColumnDropIndicator.es.js +2 -2
  12. package/dist/chunks/ColumnHeaderMenuUI.es.js +3 -4
  13. package/dist/chunks/DeleteEntitiesConfirmDialog.es.js +2 -2
  14. package/dist/chunks/DetailsDialog.es.js +3 -3
  15. package/dist/chunks/EmptyPlaceholder.es.js +7 -7
  16. package/dist/chunks/EntityPath.es.js +38 -39
  17. package/dist/chunks/EntityPickerDialog.es.js +65 -66
  18. package/dist/chunks/EntityTooltip.es.js +18 -19
  19. package/dist/chunks/Feed.es.js +1381 -1355
  20. package/dist/chunks/FilmstripEntityCard.es.js +5201 -0
  21. package/dist/chunks/FilterErrorActions.es.js +2 -3
  22. package/dist/chunks/GroupSettingsFallback.es.js +2 -2
  23. package/dist/chunks/Menu.es.js +52 -53
  24. package/dist/chunks/MetaWidget.es.js +1948 -1875
  25. package/dist/chunks/ProjectFoldersContext.es.js +40 -40
  26. package/dist/chunks/RepresentationsList.es.js +1 -1
  27. package/dist/chunks/ReviewablesSelector.es.js +759 -742
  28. package/dist/chunks/SimpleTable.es.js +2 -1
  29. package/dist/chunks/Slicer.es.js +49 -50
  30. package/dist/chunks/TableExportContextInstance.es.js +600 -402
  31. package/dist/chunks/TableSettingsFallback.es.js +3 -4
  32. package/dist/chunks/ThumbnailSimple.es.js +114 -99
  33. package/dist/chunks/VideoPlayer.es.js +8 -9
  34. package/dist/chunks/Watchers.es.js +928 -871
  35. package/dist/chunks/expandRelativeDates.es.js +1 -1
  36. package/dist/chunks/getThumbnailUrl.es.js +33 -21
  37. package/dist/chunks/getUris.es.js +1580 -1610
  38. package/dist/chunks/queryFilterToClientFilter.es.js +1 -1
  39. package/dist/chunks/realtimeUpdatesUtils.es.js +15 -15
  40. package/dist/chunks/searchTerms.es.js +774 -696
  41. package/dist/chunks/useAttributeEnums.es.js +22 -22
  42. package/dist/chunks/useDateRangeFilter.es.js +1 -1
  43. package/dist/chunks/useHierarchySelection.es.js +3 -4
  44. package/dist/chunks/useLoadModule.es.js +3 -4
  45. package/dist/components.es.js +1261 -1206
  46. package/dist/context.es.js +615 -540
  47. package/dist/hooks.es.js +193 -171
  48. package/dist/index.es.js +2 -2
  49. package/dist/types/Actions.d.ts +10 -8
  50. package/dist/types/DetailsPanel.d.ts +54 -76
  51. package/dist/types/EntityPickerDialog.d.ts +12 -6
  52. package/dist/types/Feed.d.ts +24 -24
  53. package/dist/types/ListTable.d.ts +33 -27
  54. package/dist/types/NewEntity.d.ts +26 -39
  55. package/dist/types/ProjectTreeTable.d.ts +275 -194
  56. package/dist/types/ProjectsTable.d.ts +6 -6
  57. package/dist/types/RepresentationsList.d.ts +4 -0
  58. package/dist/types/Slicer.d.ts +63 -246
  59. package/dist/types/Views.d.ts +71 -298
  60. package/dist/types/api.d.ts +3165 -2363
  61. package/dist/types/components.d.ts +444 -473
  62. package/dist/types/context.d.ts +285 -572
  63. package/dist/types/hooks.d.ts +76 -47
  64. package/dist/types/index.d.ts +6 -0
  65. package/dist/types/util.d.ts +141 -120
  66. package/dist/util.es.js +71 -68
  67. package/package.json +6 -6
  68. package/dist/chunks/EntityUpdatesContext.es.js +0 -61
  69. package/dist/chunks/PlayableIcon.es.js +0 -5020
  70. package/dist/chunks/viewUpdateHelper.es.js +0 -153
@@ -197,7 +197,9 @@ declare type Anatomy = {
197
197
  /** Path templates configuration */
198
198
  templates?: Templates;
199
199
  /** Attributes configuration */
200
- attributes?: ProjectAttribModel;
200
+ attributes?: {
201
+ [key: string]: any;
202
+ };
201
203
  /** Folder types configuration */
202
204
  folder_types?: FolderType[];
203
205
  /** Task types configuration */
@@ -219,7 +221,9 @@ declare type Anatomy_2 = {
219
221
  /** Path templates configuration */
220
222
  templates?: Templates_2;
221
223
  /** Attributes configuration */
222
- attributes?: ProjectAttribModel_2;
224
+ attributes?: {
225
+ [key: string]: any;
226
+ };
223
227
  /** Folder types configuration */
224
228
  folder_types?: FolderType_4[];
225
229
  /** Task types configuration */
@@ -253,72 +257,80 @@ declare type AttributeData = {
253
257
  /** Type of attribute value */
254
258
  type?: 'string' | 'integer' | 'float' | 'boolean' | 'datetime' | 'list_of_strings' | 'list_of_integers' | 'list_of_any' | 'list_of_submodels' | 'dict';
255
259
  /** Nice, human readable title of the attribute */
256
- title?: string;
257
- description?: string;
260
+ title?: string | null;
261
+ description?: string | null;
258
262
  /** Example value of the field. */
259
263
  example?: any;
260
264
  /** Default value for the attribute. Do not set for list types. */
261
265
  default?: any;
262
- gt?: number | number;
263
- ge?: number | number;
264
- lt?: number | number;
265
- le?: number | number;
266
- minLength?: number;
267
- maxLength?: number;
266
+ gt?: number | number | null;
267
+ ge?: number | number | null;
268
+ lt?: number | number | null;
269
+ le?: number | number | null;
270
+ minLength?: number | null;
271
+ maxLength?: number | null;
268
272
  /** Minimum number of items in list type. */
269
- minItems?: number;
273
+ minItems?: number | null;
270
274
  /** Only for list types. Maximum number of items in the list. */
271
- maxItems?: number;
275
+ maxItems?: number | null;
272
276
  /** Only for string types. The value must match this regex. */
273
- regex?: string;
277
+ regex?: string | null;
274
278
  /** List of enum items used for displaying select widgets */
275
- enum?: EnumItem[];
279
+ enum?: EnumItem[] | null;
276
280
  /** Name of the function that provides enum values dynamically. */
277
- enumResolver?: string;
281
+ enumResolver?: string | null;
278
282
  /** Settings passed to the enum resolver function. */
279
- enumResolverSettings?: object;
283
+ enumResolverSettings?: {
284
+ [key: string]: any;
285
+ } | null;
280
286
  /** Inherit the attribute value from the parent entity. */
281
287
  inherit?: boolean;
282
288
  /** Specific widget style this field should use. */
283
- widget?: string;
289
+ widget?: string | null;
284
290
  /** Any additional config specific for the widget style.(Date formats, precision etc.) */
285
- widgetSettings?: object;
291
+ widgetSettings?: {
292
+ [key: string]: any;
293
+ } | null;
286
294
  };
287
295
 
288
296
  declare type AttributeData_2 = {
289
297
  /** Type of attribute value */
290
298
  type?: 'string' | 'integer' | 'float' | 'boolean' | 'datetime' | 'list_of_strings' | 'list_of_integers' | 'list_of_any' | 'list_of_submodels' | 'dict';
291
299
  /** Nice, human readable title of the attribute */
292
- title?: string;
293
- description?: string;
300
+ title?: string | null;
301
+ description?: string | null;
294
302
  /** Example value of the field. */
295
303
  example?: any;
296
304
  /** Default value for the attribute. Do not set for list types. */
297
305
  default?: any;
298
- gt?: number | number;
299
- ge?: number | number;
300
- lt?: number | number;
301
- le?: number | number;
302
- minLength?: number;
303
- maxLength?: number;
306
+ gt?: number | number | null;
307
+ ge?: number | number | null;
308
+ lt?: number | number | null;
309
+ le?: number | number | null;
310
+ minLength?: number | null;
311
+ maxLength?: number | null;
304
312
  /** Minimum number of items in list type. */
305
- minItems?: number;
313
+ minItems?: number | null;
306
314
  /** Only for list types. Maximum number of items in the list. */
307
- maxItems?: number;
315
+ maxItems?: number | null;
308
316
  /** Only for string types. The value must match this regex. */
309
- regex?: string;
317
+ regex?: string | null;
310
318
  /** List of enum items used for displaying select widgets */
311
- enum?: EnumItem_3[];
319
+ enum?: EnumItem_3[] | null;
312
320
  /** Name of the function that provides enum values dynamically. */
313
- enumResolver?: string;
321
+ enumResolver?: string | null;
314
322
  /** Settings passed to the enum resolver function. */
315
- enumResolverSettings?: object;
323
+ enumResolverSettings?: {
324
+ [key: string]: any;
325
+ } | null;
316
326
  /** Inherit the attribute value from the parent entity. */
317
327
  inherit?: boolean;
318
328
  /** Specific widget style this field should use. */
319
- widget?: string;
329
+ widget?: string | null;
320
330
  /** Any additional config specific for the widget style.(Date formats, precision etc.) */
321
- widgetSettings?: object;
331
+ widgetSettings?: {
332
+ [key: string]: any;
333
+ } | null;
322
334
  };
323
335
 
324
336
  declare interface AttributeField {
@@ -352,6 +364,8 @@ export declare interface BaseEntityData {
352
364
  tags?: string[];
353
365
  createdAt?: string;
354
366
  updatedAt?: string;
367
+ createdBy?: string | null;
368
+ updatedBy?: string | null;
355
369
  thumbnailHash?: string;
356
370
  attrib?: Record<string, any>;
357
371
  ownAttrib?: string[];
@@ -834,7 +848,7 @@ export declare const DEFAULT_ROW_SCOPE: RowScope;
834
848
 
835
849
  export declare const DEFAULT_SUMMARY_FORMAT: SummaryFormat;
836
850
 
837
- export declare type DefaultColumns = typeof ROW_SELECTION_COLUMN_ID | 'thumbnail' | 'name' | 'entityType' | typeof ENTITY_COLUMN_IDS.folder | 'status' | 'subType' | 'assignees' | 'tags' | 'createdAt' | 'updatedAt' | 'comments' | typeof LISTS_COLUMN_ID | typeof REVIEW_SESSIONS_COLUMN_ID;
851
+ export declare type DefaultColumns = typeof ROW_SELECTION_COLUMN_ID | 'thumbnail' | 'name' | 'entityType' | typeof ENTITY_COLUMN_IDS.folder | 'status' | 'subType' | 'assignees' | 'tags' | 'createdAt' | 'createdBy' | 'updatedAt' | 'updatedBy' | 'comments' | typeof LISTS_COLUMN_ID | typeof REVIEW_SESSIONS_COLUMN_ID;
838
852
 
839
853
  declare type DefaultMenuItem = 'copy-paste' | 'show-details' | 'rename' | 'expand-collapse' | 'inherit' | 'delete' | 'export' | 'create-folder' | 'create-task' | 'open-viewer';
840
854
 
@@ -971,6 +985,8 @@ declare interface EditorCellProps extends Omit<React.HTMLAttributes<HTMLDivEleme
971
985
  }
972
986
 
973
987
  export declare type EditorProductNode = {
988
+ createdBy?: string | null;
989
+ updatedBy?: string | null;
974
990
  id: string;
975
991
  entityId: string;
976
992
  entityType: 'product';
@@ -991,7 +1007,9 @@ export declare type EditorProductNode = {
991
1007
  hasVersions?: boolean;
992
1008
  };
993
1009
 
994
- export declare type EditorTaskNode = Omit<TaskNode, 'links' | 'data'> & {
1010
+ export declare type EditorTaskNode = Omit<TaskNode, 'links' | 'data' | 'createdBy' | 'updatedBy'> & {
1011
+ createdBy?: string | null;
1012
+ updatedBy?: string | null;
995
1013
  attrib: Record<string, any>;
996
1014
  entityId: string;
997
1015
  entityType: 'task';
@@ -1005,6 +1023,8 @@ export declare type EditorTaskNode = Omit<TaskNode, 'links' | 'data'> & {
1005
1023
  };
1006
1024
 
1007
1025
  export declare type EditorVersionNode = {
1026
+ createdBy?: string | null;
1027
+ updatedBy?: string | null;
1008
1028
  id: string;
1009
1029
  entityId: string;
1010
1030
  entityType: 'version';
@@ -1226,46 +1246,61 @@ export declare const EnumCellValue: ({ selectedOptions, placeholder, hasMultiple
1226
1246
  declare type EnumItem = {
1227
1247
  value: string | number | number | boolean;
1228
1248
  label: string;
1229
- description?: string;
1230
- fulltext?: string[];
1231
- group?: string;
1249
+ description?: string | null;
1250
+ fulltext?: string[] | null;
1251
+ group?: string | null;
1232
1252
  /** Icon name (material symbol) or IconModel object */
1233
- icon?: string | IconModel;
1234
- color?: string;
1235
- shortName?: string;
1253
+ icon?: string | IconModel | null;
1254
+ color?: string | null;
1255
+ shortName?: string | null;
1236
1256
  /** Enum item is visible, but not selectable */
1237
1257
  disabled?: boolean;
1238
1258
  /** Message to show when the option is disabled */
1239
- disabledMessage?: string;
1240
- /** Enum item is not offered for selection, but resolves when already used */
1259
+ disabledMessage?: string | null;
1260
+ /** Enum item is not visible in the dropdown */
1241
1261
  hidden?: boolean;
1262
+ /** Extra badge labels to display next to the item */
1263
+ badges?: string[] | null;
1242
1264
  };
1243
1265
 
1244
1266
  declare type EnumItem_2 = {
1245
1267
  value: string | number | number | boolean;
1246
1268
  label: string;
1247
- description?: string;
1248
- fulltext?: string[];
1249
- group?: string;
1269
+ description?: string | null;
1270
+ fulltext?: string[] | null;
1271
+ group?: string | null;
1250
1272
  /** Icon name (material symbol) or IconModel object */
1251
- icon?: string | IconModel_2;
1252
- color?: string;
1253
- shortName?: string;
1273
+ icon?: string | IconModel_2 | null;
1274
+ color?: string | null;
1275
+ shortName?: string | null;
1254
1276
  /** Enum item is visible, but not selectable */
1255
1277
  disabled?: boolean;
1256
1278
  /** Message to show when the option is disabled */
1257
- disabledMessage?: string;
1279
+ disabledMessage?: string | null;
1280
+ /** Enum item is not visible in the dropdown */
1281
+ hidden?: boolean;
1282
+ /** Extra badge labels to display next to the item */
1283
+ badges?: string[] | null;
1258
1284
  };
1259
1285
 
1260
1286
  declare type EnumItem_3 = {
1261
1287
  value: string | number | number | boolean;
1262
1288
  label: string;
1263
- description?: string;
1264
- fulltext?: string[];
1265
- group?: string;
1289
+ description?: string | null;
1290
+ fulltext?: string[] | null;
1291
+ group?: string | null;
1266
1292
  /** Icon name (material symbol) or IconModel object */
1267
- icon?: string | IconModel_3;
1268
- color?: string;
1293
+ icon?: string | IconModel_3 | null;
1294
+ color?: string | null;
1295
+ shortName?: string | null;
1296
+ /** Enum item is visible, but not selectable */
1297
+ disabled?: boolean;
1298
+ /** Message to show when the option is disabled */
1299
+ disabledMessage?: string | null;
1300
+ /** Enum item is not visible in the dropdown */
1301
+ hidden?: boolean;
1302
+ /** Extra badge labels to display next to the item */
1303
+ badges?: string[] | null;
1269
1304
  };
1270
1305
 
1271
1306
  declare interface EnumOption extends EnumItem {
@@ -1457,6 +1492,8 @@ export declare type FolderListItem = {
1457
1492
  ownAttrib?: string[];
1458
1493
  updatedAt: string;
1459
1494
  createdAt: string;
1495
+ createdBy?: string | null;
1496
+ updatedBy?: string | null;
1460
1497
  thumbnailHash?: string;
1461
1498
  hasReviewables?: boolean;
1462
1499
  hasVersions?: boolean;
@@ -1466,22 +1503,28 @@ export declare type FolderListItem = {
1466
1503
  declare type FolderListItem_2 = {
1467
1504
  id: string;
1468
1505
  path: string;
1469
- parentId?: string;
1506
+ parentId?: string | null;
1470
1507
  parents: string[];
1471
1508
  name: string;
1472
- label?: string;
1509
+ label?: string | null;
1473
1510
  folderType: string;
1474
1511
  hasTasks?: boolean;
1475
1512
  hasChildren?: boolean;
1476
1513
  hasReviewables?: boolean;
1477
1514
  thumbnailHash: string;
1478
- taskNames?: string[];
1479
- tags?: string[];
1515
+ taskNames?: string[] | null;
1516
+ tags?: string[] | null;
1480
1517
  status: string;
1481
- attrib?: object;
1482
- ownAttrib?: string[];
1518
+ attrib?: {
1519
+ [key: string]: any;
1520
+ } | null;
1521
+ active?: boolean;
1522
+ visible?: boolean;
1523
+ ownAttrib?: string[] | null;
1483
1524
  createdAt: string;
1484
1525
  updatedAt: string;
1526
+ createdBy?: string | null;
1527
+ updatedBy?: string | null;
1485
1528
  };
1486
1529
 
1487
1530
  declare type FolderListModel = {
@@ -1493,7 +1536,7 @@ export declare type FolderNodeMap = Map<string, MatchingFolder>;
1493
1536
 
1494
1537
  declare type FolderType = {
1495
1538
  name: string;
1496
- original_name?: string;
1539
+ original_name?: string | null;
1497
1540
  shortName?: string;
1498
1541
  color?: string;
1499
1542
  icon?: string;
@@ -1501,7 +1544,7 @@ declare type FolderType = {
1501
1544
 
1502
1545
  declare type FolderType_2 = {
1503
1546
  name: string;
1504
- original_name?: string;
1547
+ original_name?: string | null;
1505
1548
  shortName?: string;
1506
1549
  color?: string;
1507
1550
  icon?: string;
@@ -1517,7 +1560,7 @@ declare type FolderType_3 = {
1517
1560
 
1518
1561
  declare type FolderType_4 = {
1519
1562
  name: string;
1520
- original_name?: string;
1563
+ original_name?: string | null;
1521
1564
  shortName?: string;
1522
1565
  color?: string;
1523
1566
  icon?: string;
@@ -1525,7 +1568,7 @@ declare type FolderType_4 = {
1525
1568
 
1526
1569
  declare type FolderType_5 = {
1527
1570
  name: string;
1528
- original_name?: string;
1571
+ original_name?: string | null;
1529
1572
  shortName?: string;
1530
1573
  color?: string;
1531
1574
  icon?: string;
@@ -1825,6 +1868,8 @@ declare type GetTasksByParentQuery = {
1825
1868
  taskType: string;
1826
1869
  updatedAt: unknown;
1827
1870
  createdAt: unknown;
1871
+ createdBy: string | null;
1872
+ updatedBy: string | null;
1828
1873
  thumbnailHash: string;
1829
1874
  active: boolean;
1830
1875
  assignees: Array<string>;
@@ -2170,31 +2215,31 @@ declare type IconAnatomy = Pick<Anatomy_2, 'folder_types' | 'task_types' | 'prod
2170
2215
  declare type IconModel = {
2171
2216
  type?: 'material-symbols' | 'url';
2172
2217
  /** The name of the icon (for type material-symbols) */
2173
- name?: string;
2218
+ name?: string | null;
2174
2219
  /** The color of the icon (for type material-symbols) */
2175
- color?: string;
2220
+ color?: string | null;
2176
2221
  /** The URL of the icon (for type url) */
2177
- url?: string;
2222
+ url?: string | null;
2178
2223
  };
2179
2224
 
2180
2225
  declare type IconModel_2 = {
2181
2226
  type?: 'material-symbols' | 'url';
2182
2227
  /** The name of the icon (for type material-symbols) */
2183
- name?: string;
2228
+ name?: string | null;
2184
2229
  /** The color of the icon (for type material-symbols) */
2185
- color?: string;
2230
+ color?: string | null;
2186
2231
  /** The URL of the icon (for type url) */
2187
- url?: string;
2232
+ url?: string | null;
2188
2233
  };
2189
2234
 
2190
2235
  declare type IconModel_3 = {
2191
2236
  type?: 'material-symbols' | 'url';
2192
2237
  /** The name of the icon (for type material-symbols) */
2193
- name?: string;
2238
+ name?: string | null;
2194
2239
  /** The color of the icon (for type material-symbols) */
2195
- color?: string;
2240
+ color?: string | null;
2196
2241
  /** The URL of the icon (for type url) */
2197
- url?: string;
2242
+ url?: string | null;
2198
2243
  };
2199
2244
 
2200
2245
  declare interface InheritedDependent {
@@ -2305,7 +2350,7 @@ declare type LinkType = {
2305
2350
  link_type: string;
2306
2351
  input_type: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
2307
2352
  output_type: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
2308
- color?: string;
2353
+ color?: string | null;
2309
2354
  style?: 'solid' | 'dashed';
2310
2355
  };
2311
2356
 
@@ -2313,7 +2358,7 @@ declare type LinkType_2 = {
2313
2358
  link_type: string;
2314
2359
  input_type: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
2315
2360
  output_type: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
2316
- color?: string;
2361
+ color?: string | null;
2317
2362
  style?: 'solid' | 'dashed';
2318
2363
  };
2319
2364
 
@@ -2327,7 +2372,9 @@ declare type LinkTypeModel = {
2327
2372
  /** Output entity type */
2328
2373
  outputType: string;
2329
2374
  /** Additional link type data */
2330
- data?: Record<string, any>;
2375
+ data?: {
2376
+ [key: string]: any;
2377
+ };
2331
2378
  };
2332
2379
 
2333
2380
  declare type LinkTypeModel_2 = {
@@ -2340,7 +2387,9 @@ declare type LinkTypeModel_2 = {
2340
2387
  /** Output entity type */
2341
2388
  outputType: string;
2342
2389
  /** Additional link type data */
2343
- data?: object;
2390
+ data?: {
2391
+ [key: string]: any;
2392
+ };
2344
2393
  };
2345
2394
 
2346
2395
  export declare type LinkValue = LinkEntity[];
@@ -2435,6 +2484,8 @@ export declare interface MarkdownWidgetProps extends WidgetBaseProps {
2435
2484
  }
2436
2485
 
2437
2486
  export declare type MatchingFolder = FolderListItem & {
2487
+ createdBy?: string | null;
2488
+ updatedBy?: string | null;
2438
2489
  childOnlyMatch?: boolean;
2439
2490
  entityId: string;
2440
2491
  entityType: 'folder';
@@ -2525,10 +2576,12 @@ declare type OperationModel_2 = {
2525
2576
  id?: string;
2526
2577
  type: 'create' | 'update' | 'delete';
2527
2578
  entityType: 'folder' | 'product' | 'version' | 'representation' | 'task' | 'workfile';
2528
- entityId?: string;
2529
- data?: Record<string, any>;
2579
+ entityId?: string | null;
2580
+ data?: {
2581
+ [key: string]: any;
2582
+ } | null;
2530
2583
  force?: boolean;
2531
- asUser?: string;
2584
+ asUser?: string | null;
2532
2585
  };
2533
2586
 
2534
2587
  export declare type OperationResponseModel = {
@@ -2810,78 +2863,9 @@ declare type ProductType_2 = {
2810
2863
 
2811
2864
  declare type ProductTypeListItem = {
2812
2865
  name: string;
2813
- baseType?: string;
2814
- color?: string;
2815
- icon?: string;
2816
- };
2817
-
2818
- declare type ProjectAttribModel = {
2819
- priority?: 'urgent' | 'high' | 'normal' | 'low';
2820
- /** Frame rate */
2821
- fps?: number;
2822
- /** Horizontal resolution */
2823
- resolutionWidth?: number;
2824
- /** Vertical resolution */
2825
- resolutionHeight?: number;
2826
- pixelAspect?: number;
2827
- clipIn?: number;
2828
- clipOut?: number;
2829
- frameStart?: number;
2830
- frameEnd?: number;
2831
- handleStart?: number;
2832
- handleEnd?: number;
2833
- /** Date and time when the project or task or asset was started */
2834
- startDate?: string;
2835
- /** Deadline date and time */
2836
- endDate?: string;
2837
- /** Textual description of the entity */
2838
- description?: string;
2839
- };
2840
-
2841
- declare type ProjectAttribModel2 = {
2842
- priority?: 'urgent' | 'high' | 'normal' | 'low';
2843
- /** Frame rate */
2844
- fps?: number;
2845
- /** Horizontal resolution */
2846
- resolutionWidth?: number;
2847
- /** Vertical resolution */
2848
- resolutionHeight?: number;
2849
- pixelAspect?: number;
2850
- clipIn?: number;
2851
- clipOut?: number;
2852
- frameStart?: number;
2853
- frameEnd?: number;
2854
- handleStart?: number;
2855
- handleEnd?: number;
2856
- /** Date and time when the project or task or asset was started */
2857
- startDate?: string;
2858
- /** Deadline date and time */
2859
- endDate?: string;
2860
- /** Textual description of the entity */
2861
- description?: string;
2862
- };
2863
-
2864
- declare type ProjectAttribModel_2 = {
2865
- priority?: 'urgent' | 'high' | 'normal' | 'low';
2866
- /** Frame rate */
2867
- fps?: number;
2868
- /** Horizontal resolution */
2869
- resolutionWidth?: number;
2870
- /** Vertical resolution */
2871
- resolutionHeight?: number;
2872
- pixelAspect?: number;
2873
- clipIn?: number;
2874
- clipOut?: number;
2875
- frameStart?: number;
2876
- frameEnd?: number;
2877
- handleStart?: number;
2878
- handleEnd?: number;
2879
- /** Date and time when the project or task or asset was started */
2880
- startDate?: string;
2881
- /** Deadline date and time */
2882
- endDate?: string;
2883
- /** Textual description of the entity */
2884
- description?: string;
2866
+ baseType?: string | null;
2867
+ color?: string | null;
2868
+ icon?: string | null;
2885
2869
  };
2886
2870
 
2887
2871
  declare interface ProjectContextValue extends ProjectModelWithProducts {
@@ -2997,22 +2981,30 @@ declare interface ProjectListMenuItemContext {
2997
2981
  }
2998
2982
 
2999
2983
  declare type ProjectModel = {
3000
- /** Name is an unique id of the {entity_name} */
2984
+ /** Unique name of the project */
3001
2985
  name: string;
3002
2986
  code: string;
3003
- label?: string;
2987
+ label?: string | null;
3004
2988
  library?: boolean;
3005
2989
  folderTypes?: FolderType_2[];
3006
2990
  taskTypes?: TaskType_2[];
3007
2991
  linkTypes?: LinkTypeModel_2[];
3008
2992
  statuses?: Status_2[];
3009
2993
  tags?: Tag_2[];
3010
- config?: object;
3011
- skeleton?: boolean;
3012
- attrib?: ProjectAttribModel2;
3013
- data?: object;
3014
- /** Whether the project is active */
2994
+ config?: {
2995
+ [key: string]: any;
2996
+ };
2997
+ skeleton?: boolean | null;
2998
+ /** Attribute values of the entity */
2999
+ attrib?: {
3000
+ [key: string]: any;
3001
+ };
3002
+ data?: {
3003
+ [key: string]: any;
3004
+ };
3005
+ /** Whether the entity is active */
3015
3006
  active?: boolean;
3007
+ /** List of attributes explicitly set on the entity itself (not inherited) */
3016
3008
  ownAttrib?: string[];
3017
3009
  /** Time of creation */
3018
3010
  createdAt?: string;
@@ -3095,6 +3087,15 @@ export declare interface ProjectOverviewProviderProps {
3095
3087
  modules: ProjectTableModulesType;
3096
3088
  }
3097
3089
 
3090
+ /** Description of a `project.page` contribution: a page, and what the host adds around it. */
3091
+ declare interface ProjectPageMeta extends PageMeta {
3092
+ /**
3093
+ * Shows AYON's details panel next to the page, for the page to open with `openDetails`. The page
3094
+ * is in a splitter while the panel is there; it only shows when the page opens it.
3095
+ */
3096
+ detailsPanel?: boolean
3097
+ }
3098
+
3098
3099
  /** Slots that are about one project, with the project itself. */
3099
3100
  declare interface ProjectScope extends ProjectNameScope {
3100
3101
  /** the project; `undefined` while it loads */
@@ -3254,6 +3255,8 @@ export declare interface ProjectTableProviderProps {
3254
3255
  versionId?: string;
3255
3256
  }, config?: {
3256
3257
  quickView?: boolean;
3258
+ goToPosition?: number;
3259
+ reviewableId?: string;
3257
3260
  }) => void;
3258
3261
  onResetView?: () => void;
3259
3262
  hiddenListIds?: string[];
@@ -3384,9 +3387,9 @@ declare type QueryCondition_3 = {
3384
3387
  /** Path to the key separated by slashes */
3385
3388
  key: string;
3386
3389
  /** Value to compare against */
3387
- value?: string | number | number | boolean | string[] | number[] | number[];
3388
- /** Comparison operator */
3389
- operator?: 'eq' | 'like' | 'notlike' | 'lt' | 'gt' | 'lte' | 'gte' | 'ne' | 'isnull' | 'notnull' | 'in' | 'notin' | 'includes' | 'excludes' | 'includesall' | 'excludesall' | 'includesany' | 'excludesany';
3390
+ value?: string | number | number | boolean | string[] | number[] | number[] | null;
3391
+ /** Comparison operator. like and notlike perform case-insensitive substring matching. One surrounding pair of % is treated as a substring wrapper; %, _ and backslashes within it are literal. */
3392
+ operator?: 'eq' | 'like' | 'notlike' | 're' | 'lt' | 'gt' | 'lte' | 'gte' | 'ne' | 'isnull' | 'notnull' | 'in' | 'notin' | 'includes' | 'excludes' | 'includesall' | 'excludesall' | 'includesany' | 'excludesany';
3390
3393
  };
3391
3394
 
3392
3395
  export declare type QueryFilter = {
@@ -3723,7 +3726,7 @@ declare interface SlotMap {
3723
3726
  */
3724
3727
  'project.page': {
3725
3728
  version: 1
3726
- meta: PageMeta
3729
+ meta: ProjectPageMeta
3727
3730
  context: ProjectScope & SlicerScope & ProjectFoldersScope & ViewsScope
3728
3731
  pieces: { component: Loader<ComponentType<SlotProps<'project.page'>>> }
3729
3732
  }
@@ -3853,6 +3856,27 @@ declare interface SlotMap {
3853
3856
  context: TableShortcutContext
3854
3857
  pieces: TableShortcutPieces
3855
3858
  }
3859
+ /**
3860
+ * A section in the user details panel (Settings → Users), below AYON's own forms, for the
3861
+ * selected users. The section shows from the description, titled like AYON's; `component`
3862
+ * loads when it is first shown. Saving is the section's own: AYON's Save button doesn't see it.
3863
+ */
3864
+ 'userDetails.section': {
3865
+ version: 1
3866
+ meta: UserDetailsSectionMeta
3867
+ context: UserDetailsContext
3868
+ pieces: { component: Loader<ComponentType<SlotProps<'userDetails.section'>>> }
3869
+ }
3870
+ /**
3871
+ * An item in the user details panel's "more" menu (Settings → Users), for the selected users.
3872
+ * It shows from the description; `run` loads when the menu opens and is called on click.
3873
+ */
3874
+ 'userDetails.menuItem': {
3875
+ version: 1
3876
+ meta: UserDetailsMenuItemMeta
3877
+ context: UserDetailsContext
3878
+ pieces: { run: Loader<RunPiece<'userDetails.menuItem'>> }
3879
+ }
3856
3880
  /**
3857
3881
  * Code with no UI that runs while AYON is open, whatever the page: keeping a state, listening to
3858
3882
  * websocket events, registering a store listener. `component` loads at startup and is mounted
@@ -3906,24 +3930,24 @@ declare type StagingDirectory_2 = {
3906
3930
 
3907
3931
  declare type Status = {
3908
3932
  name: string;
3909
- original_name?: string;
3933
+ original_name?: string | null;
3910
3934
  shortName?: string;
3911
3935
  state?: 'not_started' | 'in_progress' | 'done' | 'blocked';
3912
3936
  icon?: string;
3913
3937
  color?: string;
3914
3938
  /** Limit the status to specific entity types. */
3915
- scope?: string[];
3939
+ scope?: string[] | null;
3916
3940
  };
3917
3941
 
3918
3942
  declare type Status_2 = {
3919
3943
  name: string;
3920
- original_name?: string;
3944
+ original_name?: string | null;
3921
3945
  shortName?: string;
3922
3946
  state?: 'not_started' | 'in_progress' | 'done' | 'blocked';
3923
3947
  icon?: string;
3924
3948
  color?: string;
3925
3949
  /** Limit the status to specific entity types. */
3926
- scope?: string[];
3950
+ scope?: string[] | null;
3927
3951
  };
3928
3952
 
3929
3953
  declare type Status_3 = {
@@ -3939,24 +3963,24 @@ declare type Status_3 = {
3939
3963
 
3940
3964
  declare type Status_4 = {
3941
3965
  name: string;
3942
- original_name?: string;
3966
+ original_name?: string | null;
3943
3967
  shortName?: string;
3944
3968
  state?: 'not_started' | 'in_progress' | 'done' | 'blocked';
3945
3969
  icon?: string;
3946
3970
  color?: string;
3947
3971
  /** Limit the status to specific entity types. */
3948
- scope?: string[];
3972
+ scope?: string[] | null;
3949
3973
  };
3950
3974
 
3951
3975
  declare type Status_5 = {
3952
3976
  name: string;
3953
- original_name?: string;
3977
+ original_name?: string | null;
3954
3978
  shortName?: string;
3955
3979
  state?: 'not_started' | 'in_progress' | 'done' | 'blocked';
3956
3980
  icon?: string;
3957
3981
  color?: string;
3958
3982
  /** Limit the status to specific entity types. */
3959
- scope?: string[];
3983
+ scope?: string[] | null;
3960
3984
  };
3961
3985
 
3962
3986
  /** Context of a studio page. */
@@ -4053,6 +4077,8 @@ export declare type SummaryFormat = 'count' | 'percent' | 'both' | 'none';
4053
4077
 
4054
4078
  export declare type SummaryKind = 'main' | 'number' | 'boolean' | 'text' | 'enum' | 'assignee' | 'blank';
4055
4079
 
4080
+ export declare const SYSTEM_READ_ONLY_COLUMNS: string[];
4081
+
4056
4082
  export declare const TABLE_CONTAINER_ATTR = "data-column-dnd-container";
4057
4083
 
4058
4084
  export declare const TableCellContext: Context<TableCellContextValue>;
@@ -4245,13 +4271,13 @@ export declare type TableUser = {
4245
4271
 
4246
4272
  declare type Tag = {
4247
4273
  name: string;
4248
- original_name?: string;
4274
+ original_name?: string | null;
4249
4275
  color?: string;
4250
4276
  };
4251
4277
 
4252
4278
  declare type Tag_2 = {
4253
4279
  name: string;
4254
- original_name?: string;
4280
+ original_name?: string | null;
4255
4281
  color?: string;
4256
4282
  };
4257
4283
 
@@ -4263,13 +4289,13 @@ declare type Tag_3 = {
4263
4289
 
4264
4290
  declare type Tag_4 = {
4265
4291
  name: string;
4266
- original_name?: string;
4292
+ original_name?: string | null;
4267
4293
  color?: string;
4268
4294
  };
4269
4295
 
4270
4296
  declare type Tag_5 = {
4271
4297
  name: string;
4272
- original_name?: string;
4298
+ original_name?: string | null;
4273
4299
  color?: string;
4274
4300
  };
4275
4301
 
@@ -4305,9 +4331,9 @@ export declare type TasksByFolderMap = Map<string, string[]>;
4305
4331
 
4306
4332
  declare type TasksFoldersQuery = {
4307
4333
  /** Filter object used to resolve the tasks */
4308
- filter?: QueryFilter_3;
4334
+ filter?: QueryFilter_3 | null;
4309
4335
  /** 'fulltext' search used to resolve the tasks */
4310
- search?: string;
4336
+ search?: string | null;
4311
4337
  };
4312
4338
 
4313
4339
  export declare type TaskStatsArgs = {
@@ -4321,7 +4347,7 @@ export declare type TaskStatsArgs = {
4321
4347
 
4322
4348
  declare type TaskType = {
4323
4349
  name: string;
4324
- original_name?: string;
4350
+ original_name?: string | null;
4325
4351
  shortName?: string;
4326
4352
  color?: string;
4327
4353
  icon?: string;
@@ -4329,7 +4355,7 @@ declare type TaskType = {
4329
4355
 
4330
4356
  declare type TaskType_2 = {
4331
4357
  name: string;
4332
- original_name?: string;
4358
+ original_name?: string | null;
4333
4359
  shortName?: string;
4334
4360
  color?: string;
4335
4361
  icon?: string;
@@ -4345,7 +4371,7 @@ declare type TaskType_3 = {
4345
4371
 
4346
4372
  declare type TaskType_4 = {
4347
4373
  name: string;
4348
- original_name?: string;
4374
+ original_name?: string | null;
4349
4375
  shortName?: string;
4350
4376
  color?: string;
4351
4377
  icon?: string;
@@ -4353,7 +4379,7 @@ declare type TaskType_4 = {
4353
4379
 
4354
4380
  declare type TaskType_5 = {
4355
4381
  name: string;
4356
- original_name?: string;
4382
+ original_name?: string | null;
4357
4383
  shortName?: string;
4358
4384
  color?: string;
4359
4385
  icon?: string;
@@ -4672,21 +4698,49 @@ declare type User = {
4672
4698
  hidden?: boolean;
4673
4699
  };
4674
4700
 
4675
- declare type UserAttribModel = {
4676
- fullName?: string;
4677
- email?: string;
4678
- avatarUrl?: string;
4679
- developerMode?: boolean;
4680
- };
4701
+ /** Context of a user details section or menu item. */
4702
+ declare interface UserDetailsContext extends UsersScope {
4703
+ /**
4704
+ * the signed-in user can't change these users (a manager and an admin among them): show,
4705
+ * don't edit
4706
+ */
4707
+ readOnly: boolean
4708
+ }
4709
+
4710
+ /** Description of a `userDetails.menuItem` contribution. */
4711
+ declare interface UserDetailsMenuItemMeta extends MenuItemMeta {
4712
+ /** `single`: only when one user is selected; `multi` (default): for one or more */
4713
+ selection?: UserSelection
4714
+ }
4715
+
4716
+ /** Description of a `userDetails.section` contribution. */
4717
+ declare interface UserDetailsSectionMeta {
4718
+ /** unique among the addon's sections */
4719
+ id: string
4720
+ /** the section's title, above its content */
4721
+ title: string
4722
+ /** order among addon sections, lowest first */
4723
+ order?: number
4724
+ /** `single`: only when one user is selected; `multi` (default): for one or more */
4725
+ selection?: UserSelection
4726
+ /** also shown for service users, whose panel has no forms; `false` by default */
4727
+ serviceUsers?: boolean
4728
+ }
4681
4729
 
4682
4730
  declare type UserModel = {
4683
- /** Name is an unique id of the {entity_name} */
4731
+ /** Unique name of the user */
4684
4732
  name: string;
4685
- uiExposureLevel?: number;
4686
- attrib?: UserAttribModel;
4687
- data?: Record<string, any>;
4688
- /** Whether the user is active */
4733
+ uiExposureLevel?: number | null;
4734
+ /** Attribute values of the entity */
4735
+ attrib?: {
4736
+ [key: string]: any;
4737
+ };
4738
+ data?: {
4739
+ [key: string]: any;
4740
+ };
4741
+ /** Whether the entity is active */
4689
4742
  active?: boolean;
4743
+ /** List of attributes explicitly set on the entity itself (not inherited) */
4690
4744
  ownAttrib?: string[];
4691
4745
  /** Time of creation */
4692
4746
  createdAt?: string;
@@ -4694,11 +4748,38 @@ declare type UserModel = {
4694
4748
  updatedAt?: string;
4695
4749
  };
4696
4750
 
4751
+ /**
4752
+ * A user a slot is about, e.g. one selected in Settings → Users. Not the signed-in user: that is
4753
+ * `user` in every slot.
4754
+ */
4755
+ declare interface UserRef {
4756
+ name: string
4757
+ fullName?: string
4758
+ email?: string
4759
+ /** the account is active (not disabled) */
4760
+ active: boolean
4761
+ isAdmin: boolean
4762
+ /** managers and admins */
4763
+ isManager: boolean
4764
+ isGuest: boolean
4765
+ /** a service user (API key) */
4766
+ isService: boolean
4767
+ }
4768
+
4697
4769
  /** Every slot: the signed-in user. The host adds it; AYON renders addons only once signed in. */
4698
4770
  declare interface UserScope {
4699
4771
  user: AddonUser
4700
4772
  }
4701
4773
 
4774
+ /** Which selections a user details contribution shows for. */
4775
+ declare type UserSelection = 'single' | 'multi'
4776
+
4777
+ /** Slots about one or more users. */
4778
+ declare interface UsersScope {
4779
+ /** the users the slot is about, e.g. the ones selected in Settings → Users */
4780
+ users: UserRef[]
4781
+ }
4782
+
4702
4783
  export declare const useScopedAttributeFields: <T extends AttributeField>({ attribFields, allowedScopes, }: UseScopedAttributeFieldsProps<T>) => T[];
4703
4784
 
4704
4785
  declare interface UseScopedAttributeFieldsProps<T extends AttributeField> {