Repository navigation
Releases
Releases · epam/ai-dial-react-file-manager
0.4.1
0.4.0
Features
- [Breaking]
styles.cssis built with Tailwind CSS v4 and sits in the kit'sui.base/ui.utilitiescascade layers instead of being unlayered — a host's unlayered CSS and the kit'sdial-*classes now win over a file-manager utility that sets the same property (!-prefixed classes still win), andhover:applies only on hover-capable devices; class names, theme tokens and props are unchanged, so migrate by re-checking host overrides that relied on the old cascade order and following the kit's Tailwind v4 migration guide for the preflight differences (#71, #72) - [Breaking] Peer dependency
@epam/ai-dial-ui-kitraised from^0.15.0to^0.16.0— consumers must install the stable 0.16 kit and keep loading itsstyles.cssalongside this package's (hosts on a0.16.0-devbuild move to0.16.0); this release relies on its Tailwind v4 layers, theFileNameiconprop and itsDropdownaccessibility fixes (#71, #76, #87, #92, #95, 02c3684, 419ba31) DialFoldersTreefollows the 2.0 tree item — clicking the caret only expands or collapses a folder, clicking a row selects it and expands it when closed but never collapses it, and the caret gets its own 20px hover tint;selectOnCaretClicknow defaults tofalsein bothDialFoldersTreeandDialFileManager, so passtrueto keep the old caret-selects behaviour (#76)getItemActionRestrictionadded toDialFileManager—(file, action) => string | undefineddisables Move, Download, Rename or Delete for individual items (for example a folder that must keep its path) in the grid menu, tree menu and bulk actions bar, showing the returned reason beside the action (#88, #91)- Custom item icons —
DialFoldersTree.getItemIcon,treeOptions.getItemIconandgridOptions.getItemIconreplace a row's type icon in the tree, the grid and the compact list, for example to mark a special folder; returnundefinedto keep the default (#87, #88) toolbarOptions.additionalButtonsexposed — host controls render in the header toolbar before the Add button, and before the Sort menu in the compact view (#77)hideHiddenFilesLabeladded toDialDestinationFolderPopupanddestinationFolderPopupOptions— the Copy/Move popup's hidden-files toggle switches to it (default"Hide hidden files") while hidden files are shown, matching the main toolbar and making the label localizable (#84)
Fixes
- Upload rejections are no longer silent — an oversized or unsupported file, a dropped folder or a failed
onValidateUploadnow shows a dismissible error notification above the grid unless the host handles the newonUploadValidationErrorcallback (exported with theFileUploadValidation*types), and only the oversized files in a selection are rejected instead of the whole batch (#83) - Row "more" menu buttons in the grid and
DialFoldersTreenow have an accessible name — set through the newgridOptions.rowActionsLabelandcontextMenuButtonLabel(also viatreeOptions), both defaulting to"More actions"; tree rows with no menu items no longer announcearia-haspopup="menu"(#92) - Move can no longer nest a folder inside itself — the destination popup and the phone sheet disable Move when the target is a moved folder or one of its subfolders, with a tooltip set by the new
destinationFolderPopupOptions.movedIntoItselfTooltip(#74) - Cmd/Ctrl+A, C, V, X and Z in the inline rename and new-folder inputs act on the input text instead of reaching AG Grid, which selected every row (#73)
- Creating a folder with a dot-prefixed name runs the duplicate-name check and
onCreateFolderValidatebefore the hidden-item warning — reserved names such as.dial_foldercan no longer be confirmed, matching the rename fix from 0.3.1 (#90) treeOptions.headeris drawn above the compact navigation card — a host's title no longer vanishes when the manager collapses to one column;header: nullstill hides it (#78)DialFoldersTreefile rows keep a caret-width slot withshowFiles— file and folder icons on the same level now line up (#75)- Section chips are semibold in every state, and tree rows and the grid name cell's shared indicator use the same subtle hover and selected backgrounds as the grid rows (#76)
- Shadow tokens match the design and the kit —
shadow-sm/shadow-mdare two-layer,shadow-xsis a single centred glow andshadow-lgtakes the design's values; a theme that set--shadow-xs-2should note that it is no longer read (#76, d92237a)
Other
styles.cssshrinks from about 58 KB to 17 KB — it no longer re-emits the kit's utilities, so the kit'sstyles.cssmust still be loaded alongside it (#71, #72)- Security-relevant dev dependency upgrades:
vite-plugin-dtsto~5.1.2, droppingsprintf-js(GHSA-hp3w-g68c-fv3c); Storybook to 10.6.2 (GHSA-f2ph-cmg5-wxc8, GHSA-px85-f4q5-jh77);zodoverridden to^4.6.6(CVE-2023-54404);vitest/@vitest/coverage-v8to^4.1.12for@vitest/mocker(CVE-2026-112949, CVE-2026-112950);globto^14.0.2(CVE-2026-118773) andminimatchto^11.0.1(CVE-2026-118764) — all build/test-time only, none reach consumer runtime (#71, #79, #81, #95)
0.4.0-rc.0
Features
- (file-manager) 2.0 tree item behaviour, semibold section chips, subtle row states (#76)
- (file-manager) expose toolbarOptions.additionalButtons (#77)
- add an optional hidden files label for the DialDestinationFolderPopup (#84)
- added ability to disable export action (#91)
- added action items restrictions for folders (#88)
- added custom icon for folder tree (#87)
Fixes
- (a11y) name the row "more" menu buttons; bump ui-kit to 0.16.0-dev.72 (#92)
- (deps) bump vite-plugin-dts to ~5.1.2 to drop vulnerable sprintf-js (#71)
- (deps) resolve SCA findings in dev deps and bump ui-kit to 0.16.0 (#95)
- (destination-folder-popup) disable Move into the moved folder or its subfolders (#74)
- (file-manager) draw treeOptions.header in the compact view (#78)
- (file-manager) run blocking folder-name checks before the hidden-item warning (#90)
- (file-manager) show upload rejections and reject only oversized files (Issue #82) (#83)
- (folders-tree) keep the caret slot on file rows so icons line up (#75) [skip ci]
- (theme) shadow-xs and shadow-lg as the design's Shadow XS and LG
- keep text-editing hotkeys inside inline inputs (#73)
CI
- (deps) bump epam/ai-dial-ci from 4.12.0 to 4.13.1 in the github-actions group (#86)
- (deps) bump epam/ai-dial-ci from 4.13.1 to 4.13.2 in the github-actions group (#94) [skip ci]
- (deps) bump the ai-dial-ci group with 3 updates (#85)
- (deps) bump the ai-dial-ci group with 3 updates (#93) [skip ci]
- add daily SCA scan via epam/ai-dial-ci 4.13.2 (#89)
Other
0.3.5
Fixes
- (file-manager) use the trash-x icon for Unshare (release-0.3) (#70)
0.3.4
Features
- (file-manager) follow the mobile design for selection and copy/move (release-0.3) (#68)
0.3.3
Features
- (file-manager) follow the mobile design in the compact view (release-0.3) (#66)
0.3.2
Features
- (file-manager) add opt-in unshare confirmation (release-0.3) (#65)
0.3.1
Fixes
- (file-manager) block reserved leading-dot renames and honour the popup loading state (release-0.3) (#62)
0.3.0
Features
- [Breaking] Peer dependency
@epam/ai-dial-ui-kitraised from^0.14.0to^0.15.0— consumers must install the stable 0.15 kit (hosts on a0.15.0-devbuild move to0.15.0), which carries the 2.0FilterChips,Breadcrumbs,InlineSelectTrigger, andButtonDropdown.dropdownPropsthis release is built on (#42, #43, #47, #52, #60) - [Breaking] Storage tabs moved from the toolbar into the folders panel and are drawn as
FilterChips, a namedrole="group"ofaria-pressedtoggles instead of atablist— migratetoolbarOptions.tabs/activeTab/onTabChangetotreeOptions.tabs/activeTab/onTabChange, pass items as{ value, label }instead of{ id, label }(countanddisabledare gone), and typeactiveTabasDialFileManagerTabs;useDialFileManagerTabsreturns the new shape (#42) - [Breaking]
DialFileManagerTabs.Alladded as the first enum member for a combined My files / Shared / Organization view, anduseDialFileManagerTabslists it first —Record<DialFileManagerTabs, …>literals such as tab labels must add anallkey; filter it out oftabsif the host does not offer it (#51) - [Breaking] The folders panel is fixed at 360px and truncates long names — it no longer resizes or collapses, so
treeOptions.widthand the built-in "collapse all" button are removed; a host that wants collapse-all renders its own button intreeOptions.additionalButtonsand drives it fromtreeOptions.onExpandedPathsChange(#42, #56) - [Breaking] The bulk actions bar floats over the bottom of the grid instead of replacing the header, so the breadcrumbs and Add button stay reachable mid-selection —
bulkActionsToolbarOptions.getSelectionLabelmust now return only the wording ("items selected", not"4 items selected") because the bar draws the count as a badge, and the newclearSelectionLabelnames its close button; actions run Download, Move to, Copy to, Duplicate, Delete, with Delete in the danger colour (#42) - [Breaking] The breadcrumb trail is the 2.0
Breadcrumbs, drawn as the content column's heading and collapsing long paths behind an ellipsis menu instead of scrolling — innavigationPanelOptionsrenamelabelClassNametoitemClassNameand droponBeforeNavigate(the 2.0 trail has no navigation guard);size,maxVisibleItems(default 4), andoverflowAriaLabelare new (#43) - [Breaking] Props removed along with the old toolbar row and the collapsible compact search —
managerLabel(title the manager withtreeOptions.header, now shown while the panel is expanded),toolbarOptions.hiddenFilesSwitcherLabel(move the translation ontoshowHiddenFilesLabel/hideHiddenFilesLabel), andnavigationPanelOptions.isCompactView/backButtonLabel;navigationPanelOptionsalso accepts only the eight search props it actually forwards, soreadOnly,name, and focus handlers stop type-checking (#42) - [Breaking]
gridOptions.wrapperBorderremoved — the grid panel draws rounded corners and a small shadow instead of a border, and the drag-over outline follows its radius; restyle it through the newgridOptions.containerClassName(#55) - File Manager layout rebuilt to the 2.0 design — the hidden-files switch and Add button sit in the content header beside the breadcrumbs, the search field spans the head of the grid card with a new
placeholder, and the section chips stay reachable at the top of the content column in compact view (#42, #53, 4e5b5b2) DialFileManagerSortDropdownadded — a Sort menu (Name / Modified date / Size, then Ascending / Descending) at the trailing edge of the search row, configured through the newsortOptions(sort/defaultSort/onSortChangeplus localizable labels) and exported with theSortOptionsandFileManagerSort*types; rows now default to folders first, then name ascending — passsortOptions={{ sortable: false }}to keep source order and hide the menu (#47)DialFoldersTreeis now a keyboard-accessible ARIA tree —role="tree"/treeitemrows with roving focus, Arrow / Home / End navigation mirrored under RTL, and Enter/Space activation, plus newariaLabel(default"Folders"),autoFocus, andonEscapeprops for hosting the tree in a dismissible overlay; the oldaria-label="folders-tree"/"folder"attributes are gone, so update any test selectors that relied on them (#50)- Folders tree and empty states restyled to 2.0 — pill-shaped rows with a tighter per-level indent, names drawn by the kit's
FileName/FolderName, and an empty folder or no-results search showing only the empty state with the grid and bulk-actions bar hidden; the no-results title is set by the newsearchEmptyStateTitle(default"No data") (#47, 4b104a6, b2bb4c1) - The delete confirmation follows the DIAL delete design — ghost Cancel, a
DangerButtonDelete led by a trash icon, and a header close control named by the newdeleteConfirmationOptions.closeLabel(default"Close dialog");titleRenderer/contentRenderernow receive the items as a second argument so a host can title it "Delete folder" or "Delete file" bynodeType(#59) - Layout class hooks added —
contentClassNameandcontentHeaderClassNameonDialFileManagerplusgridOptions.containerClassNamemerge extra classes onto the content column, its header, and the grid panel, so a class likepb-0orshadow-noneoverrides the matching default (#55, #57) skipForbiddenSymbolsCheckForActionsadded toDialFileManager— keeps actions such as Duplicate, Copy, Move, and Download in the tree and grid menus of items whose names matchforbiddenSymbolsRegExp, which otherwise hides them (#49)gridOptions.additionalGridOptionscan now setrowHeightandheaderHeight— the File Manager's built-in 44px values previously overwrote them (#46)
Fixes
- A file found by search can now be selected — selection falls back to
searchResultswhen the hit lives in a folder the tree has not loaded, instead of pruning the row as stale on the same render (#42) - In compact view, several roots (such as the new
Alltab) open on a list of the roots instead of showing only the first root's contents — selecting one browses it, and a leading breadcrumb named after the active tab returns to the list (#58) - Delete is painted in the danger colour and moved to the end of the folders-tree and grid context menus, matching the bulk actions bar (#48, #54)
- The Add and Sort menus open at their design widths (108px / 240px) instead of the width of their trigger button (#52)
- The Copy/Move destination popup matches the design — its grid gets spacing, its tree sits in a 360px card like the main folders panel, and its tree header is always hidden rather than repeating the main tree's
header(#57)
Other
classnamesdropped fromdependencies— replaced by the UI Kit'smergeClasses, so one less package is installed alongside the File Manager (#43)- Security-relevant dev dependency upgrades:
postcss-selector-parseroverridden to^7.1.6(GHSA-rj75-hqrm-r3gf),vitest/@vitest/coverage-v8to^4.1.11(GHSA-82fw-gwwq-j7x9), and Storybook'sesbuildto^0.28.1(GHSA-g7r4-m6w7-qqqr) — all build/test-time only, none reach consumer runtime (#60)
0.3.0-rc.0
BREAKING CHANGES
- adopt the 2.0 Breadcrumbs and UI Kit 0.15.0-dev.11 (#43)
Features
- adopt the 2.0 Breadcrumbs and UI Kit 0.15.0-dev.11 (#43)
- (folders-tree) add tree semantics and keyboard navigation to DialFoldersTree (#50)
- (tabs) add DialFileManagerTabs.All for a combined storage view (#51)
- add contentHeaderClassName property and align Copy/Move destination popup styling with Figma (#57)
- add grid wrapepr styles prop and change grid border to shadow (#55)
- allow to set rowHeight in FileManager via additionalGridOptions (#46) [skip ci]
- rebuild the File Manager layout to the 2.0 design (#42)
- update tree view and grid empty states, add sorting (#47)
Fixes
- (file-manager) Added
skipForbiddenSymbolsCheckForActionsproperty (#49) - (file-manager) align the delete confirmation with the DIAL delete design (#59)
- (file-manager) keep section tabs reachable in compact view (#53)
- (file-manager) keep the folders panel at a fixed width (#56)
- (file-manager) list the roots in compact view when there are several (#58)
- (toolbar) give the Add and Sort menus their design widths (#52)
- change action order (#54)
- new folder input height [skip ci]
- paint the Delete context-menu item in the danger colour (#48)
- ship the icon set as a dependency, not a peer (Issue epam/ai-dial-chat#8719) (#38)
- tree padding
CI
- (deps) bump epam/ai-dial-ci from 4.11.0 to 4.12.0 in the github-actions group (#45) [skip ci]
- (deps) bump the ai-dial-ci group with 3 updates (#44) [skip ci]