@epam/ai-dial-ui-kit 0.10.0-dev.49 → 0.10.0-dev.50

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.
@@ -152,8 +152,6 @@ export interface DialFileManagerProps {
152
152
  onMoveToFiles?: (items: DialCopiedItem[], sourceFolder: string, destinationFolder: string) => void;
153
153
  onDeleteFiles?: (items: DialDeletedItem[], sourceFolder: string) => void;
154
154
  onDownloadFiles?: (items: DialFile[]) => void;
155
- onAddSibling?: (items: DialFile[]) => void;
156
- onAddChild?: (items: DialFile[]) => void;
157
155
  onRenameValidate?: (value: string, item: DialFile) => string | null;
158
156
  renameValidationMessages?: RenameValidationMessages;
159
157
  forbiddenSymbolsRegExp?: RegExp;
@@ -273,8 +271,6 @@ export interface DialFileManagerProps {
273
271
  * @param [onCopyFiles] - Callback fired when files copy-paste
274
272
  * @param [onMoveToFiles] - Callback fired when files cut-paste or rename
275
273
  * @param [onDeleteFiles] - Callback fired when files are deleted
276
- * @param [onAddSibling] - Callback fired when when a new folder is added as a sibling to the selected folder
277
- * @param [onAddChild] - Callback fired when when a new folder is added as a child to the selected folder
278
274
  *
279
275
  * @param [onRenameValidate] - Optional callback to validate a file or folder name during renaming. Should return an error message string if the name is invalid, or null if it's valid.
280
276
  * @param [renameValidationMessages] - Optional custom validation messages for renaming files and folders. Note that you need to add `${AlertVariant.Warning}__` prefix to the `hiddenItemWarning` message to display it as a warning with the warning icon.
@@ -71,10 +71,13 @@ export interface FileManagerContextValue {
71
71
  destinationFolderMode: DestinationFolderMode;
72
72
  handleSetCopiedFiles: (files: DialFile[]) => void;
73
73
  handleSetMovedFiles: (files: DialFile[]) => void;
74
- handleAddSibling?: (files: DialFile[]) => void;
75
- handleAddChild?: (files: DialFile[]) => void;
74
+ handleGridAddSibling?: (files: DialFile[]) => void;
75
+ handleGridAddChild?: (files: DialFile[]) => void;
76
+ handleTreeAddSibling?: (files: DialFile[]) => void;
77
+ handleTreeAddChild?: (files: DialFile[]) => void;
76
78
  renamedPath?: string;
77
79
  renamedItem?: DialFile;
80
+ createdFolderPath?: string | null;
78
81
  onRename: (file: string) => void;
79
82
  onRenameSave: (value: string) => void;
80
83
  onRenameCancel: () => void;
@@ -7,6 +7,7 @@ export interface DialFileManagerItemNameProps extends DialFileManagerItemNameInp
7
7
  elementId: string;
8
8
  editing?: boolean;
9
9
  loading?: boolean;
10
+ creating?: boolean;
10
11
  shared?: boolean;
11
12
  details?: ReactNode;
12
13
  sharedIndicatorTooltip?: ReactNode;
@@ -14,6 +15,8 @@ export interface DialFileManagerItemNameProps extends DialFileManagerItemNameInp
14
15
  validate?: (value: string) => string | null;
15
16
  onSave?: (value: string) => void;
16
17
  onCancel?: () => void;
18
+ onCreateFolderSave?: (value: string) => void;
19
+ onCreateFolderCancel?: () => void;
17
20
  hideTooltip?: boolean;
18
21
  forbiddenSymbolsRegExp?: RegExp;
19
22
  forbiddenSymbolsTooltip?: ReactNode;
@@ -9,6 +9,7 @@ export interface DialFoldersTreeProps {
9
9
  sharedByMePaths?: Set<string>;
10
10
  selectedPath?: string;
11
11
  renamedPath?: string;
12
+ createdFolderPath?: string | null;
12
13
  showFiles?: boolean;
13
14
  rootItemPath?: string;
14
15
  rootItemLabel?: string;
@@ -19,11 +20,14 @@ export interface DialFoldersTreeProps {
19
20
  onRenameSave?: (value: string) => void;
20
21
  onRenameCancel?: () => void;
21
22
  onRenameValidate?: (value: string, item: DialFile) => string | null;
23
+ onCreateFolderSave?: (value: string) => void;
24
+ onCreateFolderCancel?: () => void;
22
25
  getContextMenuItems?: (item: DialFile) => DropdownItem[];
23
26
  areHiddenFilesVisible?: boolean;
24
27
  onExpandedPathsChange?: (expandedPaths: Set<string>) => void;
25
28
  forbiddenSymbolsRegExp?: RegExp;
26
29
  forbiddenSymbolsTooltip?: ReactNode;
30
+ newFolderDefaultName?: string;
27
31
  }
28
32
  /**
29
33
  * DialFoldersTree — A hierarchical folder tree component with nested expand/collapse support, selection highlighting,
@@ -114,6 +118,10 @@ export interface DialFoldersTreeProps {
114
118
  * @param [rootItemLabel] - Label to display for the root node instead of its actual name.
115
119
  * @param [forbiddenSymbolsRegExp] - Optional RegExp used to validate folder and file names for forbidden characters.
116
120
  * @param [forbiddenSymbolsTooltip] - Optional tooltip content displayed when a name contains forbidden characters.
121
+ * @param [createdFolderPath] - Optional Path of the new created folder.
122
+ * @param [onCreateFolderSave] - Optional Callback fired when create new folder is confirmed
123
+ * @param [onCreateFolderCancel] - Optional Callback fired when create new folder is cancelled
124
+ * @param [newFolderDefaultName] - Optional new folder default name.
117
125
  * @remarks
118
126
  * - Folder and file data must follow the `DialFile` model.
119
127
  * - The `expandedPaths`, `loadingPaths`, `selectedPath`, and `renamedPath` props are externally controlled.
@@ -3,3 +3,4 @@ export declare const CARET_ICON_PROPS: {
3
3
  stroke: number;
4
4
  };
5
5
  export declare const FOLDER_LEVEL_PADDING = 26;
6
+ export declare const NEW_FOLDER_TEMP_NAME = "__new_folder";
@@ -22,6 +22,7 @@ export interface FileManagerGridContext {
22
22
  onRenameCancel: () => void;
23
23
  getDisplayName: (item: DialFile) => string;
24
24
  hideSearchPathItemName?: boolean;
25
+ filesLoading?: boolean;
25
26
  }
26
27
  export interface UseFileManagerColumnsArgs {
27
28
  userColumnDefs?: (ColDef<GridRow> | ((dateLocale: Intl.LocalesArgument, dateOptions: Intl.DateTimeFormatOptions | undefined, isCompactView: boolean) => ColDef<GridRow, unknown>))[];
@@ -10,14 +10,20 @@ export interface UseFolderCreationProps {
10
10
  onCreateFolder?: (file: DialUploadFileItem, folderPath: string, fileId: string) => void | Promise<void>;
11
11
  onValidateFolderName?: (name: string, parentFolder: DialFile) => string | null;
12
12
  validationMessages?: FolderCreationValidationMessages;
13
+ items: DialFile[];
13
14
  }
14
15
  export interface UseFolderCreationResult {
15
16
  isCreatingFolder: boolean;
16
17
  newFolderTempId: string | null;
17
18
  newFolderDefaultName: string;
19
+ createdFolderPath: string | null;
18
20
  startFolderCreation: () => void;
21
+ startGridSiblingFolderCreation: (targetFile: DialFile) => void;
22
+ startTreeSiblingFolderCreation: (targetFile: DialFile) => void;
23
+ startGridChildFolderCreation: (targetFile: DialFile) => void;
24
+ startTreeChildFolderCreation: (targetFile: DialFile) => void;
19
25
  cancelFolderCreation: () => void;
20
26
  saveFolderCreation: (name: string) => Promise<void>;
21
27
  validateFolderName: (name: string) => string | null;
22
28
  }
23
- export declare const useFolderCreation: ({ currentFolder, onCreateFolder, onValidateFolderName, validationMessages, }: UseFolderCreationProps) => UseFolderCreationResult;
29
+ export declare const useFolderCreation: ({ currentFolder, onCreateFolder, onValidateFolderName, validationMessages, items, }: UseFolderCreationProps) => UseFolderCreationResult;
@@ -30,8 +30,6 @@ export interface UseGridContextMenuProps {
30
30
  onRemoveAccess?: (file: DialFile) => void;
31
31
  sharedWithMeIds?: string[];
32
32
  sharedByMePaths?: Set<string>;
33
- onAddSibling?: (file: DialFile) => void;
34
- onAddChild?: (file: DialFile) => void;
35
33
  onManagePermissions?: (path?: string) => void;
36
34
  onPreview?: (path?: string) => void;
37
35
  onOpenInNewTab?: (file: DialFile) => void;
@@ -39,5 +37,7 @@ export interface UseGridContextMenuProps {
39
37
  isRenameFileAvailable?: boolean;
40
38
  isDuplicateFolderAvailable?: boolean;
41
39
  forbiddenSymbolsRegExp?: RegExp;
40
+ onGridCreateSiblingFolder: (files: DialFile[]) => void;
41
+ onGridCreateChildFolder: (files: DialFile[]) => void;
42
42
  }
43
- export declare const useGridContextMenu: ({ actionLabels, onDuplicate, onCopy, onMove, onDownload, onRename, onDelete, onInfo, onUnshare, onRemoveAccess, sharedWithMeIds, sharedByMePaths, onAddSibling, onAddChild, onManagePermissions, onPreview, onOpenInNewTab, previewExtensions, isRenameFileAvailable, isDuplicateFolderAvailable, forbiddenSymbolsRegExp, }: UseGridContextMenuProps) => (file: DialFile) => DropdownItem[];
43
+ export declare const useGridContextMenu: ({ actionLabels, onDuplicate, onCopy, onMove, onDownload, onRename, onDelete, onInfo, onUnshare, onRemoveAccess, sharedWithMeIds, sharedByMePaths, onManagePermissions, onPreview, onOpenInNewTab, previewExtensions, isRenameFileAvailable, isDuplicateFolderAvailable, forbiddenSymbolsRegExp, onGridCreateSiblingFolder, onGridCreateChildFolder, }: UseGridContextMenuProps) => (file: DialFile) => DropdownItem[];
@@ -0,0 +1,26 @@
1
+ import { DialFile } from '../../../models/file';
2
+ import { FileManagerCreateFolderTriggerView } from '../../../types/file-manager';
3
+ interface UseTriggerViewCreateFolderOptions {
4
+ onGridAddSibling?: (files: DialFile[]) => void;
5
+ onGridAddChild?: (files: DialFile[]) => void;
6
+ onTreeAddSibling?: (files: DialFile[]) => void;
7
+ onTreeAddChild?: (files: DialFile[]) => void;
8
+ }
9
+ /**
10
+ * Manages which view ("tree" or "grid") triggered a folder creation action.
11
+ *
12
+ * Useful when both TreeView and GridView can initiate folder creation,
13
+ * and the parent needs to know which source triggered it
14
+ * to apply view-specific logic or UI updates.
15
+ *
16
+ * Returns the last folder creation trigger source and four handlers
17
+ * (`onGridCreateSiblingFolder`, `onTreeCreateSiblingFolder`, `onGridCreateChildFolder`, `onTreeCreateChildFolder`) that wrap the provided `onGridAddSibling`, `onTreeAddSibling`, `onGridAddChild` and `onTreeAddChild` callbacks.
18
+ */
19
+ export declare const useTriggerViewCreateFolder: ({ onGridAddSibling, onGridAddChild, onTreeAddSibling, onTreeAddChild, }: UseTriggerViewCreateFolderOptions) => {
20
+ createFolderTriggerView: FileManagerCreateFolderTriggerView;
21
+ onGridCreateSiblingFolder: (files: DialFile[]) => void;
22
+ onTreeCreateSiblingFolder: (files: DialFile[]) => void;
23
+ onGridCreateChildFolder: (files: DialFile[]) => void;
24
+ onTreeCreateChildFolder: (files: DialFile[]) => void;
25
+ };
26
+ export {};
@@ -2,10 +2,14 @@ import { RefObject } from 'react';
2
2
  export interface UseEditableItemOptions {
3
3
  value: string;
4
4
  isEditing: boolean;
5
+ isCreating?: boolean;
6
+ isLoading?: boolean;
5
7
  onValidate?: (value: string) => string | null;
6
8
  onSave?: (value: string) => void;
7
9
  onCancel?: () => void;
8
10
  restoreOnCancel?: boolean;
11
+ onCreateFolderSave?: (value: string) => void;
12
+ onCreateFolderCancel?: () => void;
9
13
  }
10
14
  interface UseEditableItemResult {
11
15
  inputRef: RefObject<HTMLInputElement | null>;
@@ -61,5 +65,5 @@ interface UseEditableItemResult {
61
65
  * );
62
66
  * ```
63
67
  */
64
- export declare function useEditableItem({ value: initialValue, isEditing, restoreOnCancel, onValidate, onSave, onCancel, }: UseEditableItemOptions): UseEditableItemResult;
68
+ export declare function useEditableItem({ value: initialValue, isEditing, isCreating, isLoading, restoreOnCancel, onValidate, onSave, onCancel, onCreateFolderSave, onCreateFolderCancel, }: UseEditableItemOptions): UseEditableItemResult;
65
69
  export {};
@@ -38,6 +38,15 @@ export declare enum FileManagerRenameTriggerView {
38
38
  Tree = "tree",
39
39
  Grid = "grid"
40
40
  }
41
+ export declare enum FileManagerCreateFolderTriggerView {
42
+ Tree = "tree",
43
+ Grid = "grid"
44
+ }
45
+ export declare enum FileManagerCreateFolderType {
46
+ Folder = "folder",
47
+ Child = "child",
48
+ Sibling = "sibling"
49
+ }
41
50
  export declare enum FileManagerColumnKey {
42
51
  Name = "name",
43
52
  UpdatedAt = "updatedAt",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-ui-kit",
3
- "version": "0.10.0-dev.49",
3
+ "version": "0.10.0-dev.50",
4
4
  "type": "module",
5
5
  "license": "Apache-2.0",
6
6
  "description": "A modern UI kit for building AI DIAL interfaces with React",