* dbeaver/pro#8068 fix: FormPart reload after save: race condition between loaded=false and savingPromise
Problem:
FormPart.save() sets loaded=false after successful save, expecting
useAutoLoad to call load() and reload data from server. However,
load() is blocked by formState.savingPromise guard (added recently in dbeaver/pro#8151, 9c406a4e1e),
which is only cleared later in FormState.save() finally block.
By the time savingPromise is cleared, no observable changes trigger
a React re-render, so useAutoLoad never retries — loaded stays false
forever and isChanged always returns false, permanently disabling
the Save button.
Solution:
Make FormPart.save() self-contained by adding an inline post-save
reload. After saveChanges(), set loaded=false (so setInitialState
resets both initialState and state), call loader() directly, then
set loaded=true. This eliminates the dependency on the external
useAutoLoad mechanism for post-save reload, avoiding the race
condition with savingPromise entirely.
* dbeaver/pro#8068 fix(Combobox): preserve custom value on Enter key press
When allowCustomValue is enabled, pressing Enter was selecting
an auto-highlighted item from the dropdown instead of keeping
the user's typed value. Disable autoSelect and close the popover
via Ariakit store on Enter to match the blur behavior.
* dbeaver/pro#8068 fix: after saveChanges(), reset state synchronously via setInitialState
* dbeaver/pro#8068 fix: remove redundant state loading in FormPart class
* dbeaver/pro#8068 feat: improve loadable state handling in useAutoLoad and FormPart
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Initial translation of a menu led to a unwanted hover effect on a first item due to menu and trigger overlapping. Removing this property fixes the problem and the menu still has a nice animation effect, thanks to opacity and scale
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#8202 decreases border for radio buttons + matches border colors
* fixes checkboxes and radios space conflicts so it aligned on the left and has correct spacing with text also
* reverts margin top for checkboxes
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#7626 bumps yarn locks
* updates globals
* bumps subscript major version
* bumps react-data-grid
* fixes react-data-grid checksum
* bumps yarn.lock
* reverts 'true' & 'false' literals for ObjectPropertyInfo
* reverts subscript to ver v9 due to poor v10 library support (it is not working api)
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#5232 feat: add Dialog component to UI-kit
* dbeaver/pro#5232 feat: add slide variant for Dialog component
* dbeaver/pro#5232 refactor: dialog backdrop component
* dbeaver/pro#5232 feat: use dialog component for side panel to prevent focus escaping
* dbeaver/pro#5232 feat: add DialogHeader, DialogBody, and DialogFooter components for improved dialog layout
* dbeaver/pro#5232 feat: add Storysource addon to Storybook configuration
* dbeaver/pro#5232 refactor: use ui-kit dialog for CommonDialog implementation
* dbeaver/pro#5232 feat: add animated prop to Dialog component to control animations
* dbeaver/pro#5232 refactor: remove dialog animation for side panel
* dbeaver/pro#5232 refactor: remove unused backdrop and focus management logic from DialogsPortal
now handled by ariakit dialog component
* dbeaver/pro#5232 style: adjust dialog padding and size for large variant
* dbeaver/pro#5232 feat: add dialog to admin part implementation
* dbeaver/pro#5232 fix: remove autofocus prop from CommonDialogWrapper in AuthDialog and DriverSelectorDialog
* dbeaver/pro#5232 style: correct apostrophe in label text for NestedDialogs component
* dbeaver/pro#5232 fix: update dialog component styles for improved accessibility and layout
* dbeaver/pro#5232 refactor: add DialogElement component to get rid of code duplication
* dbeaver/pro#5232 fix: correct min-width for large fixedWidth dialog size
* dbeaver/pro#5232 refactor: update DialogElement properties for improved focus management
* dbeaver/pro#5232 fix: use l10n for DialogElement close buttons
* dbeaver/pro#5232 refactor: update DialogElement to be a modal to trap focus
* dbeaver/pro#5232 refactor: remove unmountOnHide prop from CommonDialogWrapper
* dbeaver/pro#5232 feat: return ESC hotkey handling in SlideBox
* dbeaver/pro#5232 feat: make background panel inert to make focus never reach hidden panel
* dbeaver/pro#5232 feat: add SlidePanel component to replace DialogElement by removing Dialog
* dbeaver/pro#5232 feat: add inert prop to SlideElement for focus trapping in visible part
* dbeaver/pro#5232 feat: pass onClose handler to SlideBox to activate hotkey
* dbeaver/pro#5232 style: return to initial state to avoid redundant diffs
* dbeaver/pro#5232 style: update copyright year in SlideElement.module.css
* dbeaver/pro#5232 chore: remove ui-kit dependency from package.json and tsconfig.json
* dbeaver/pro#5232 build: update @storybook/addon-storysource dependency version
* dbeaver/pro#5232 build: update @storybook/addon-storysource dependency version
* dbeaver/pro#5232 style: remove border styles from dialog header and footer
* dbeaver/pro#5232 fix: update hover background color for icon button
* dbeaver/pro#5232 feat: move focus from driver dialog to panel when applicable
* dbeaver/pro#6326 fix: large window size
* dbeaver/pro#5232 fix: update focus on hide logic
* dbeaver/pro#5232 fix: update hover and focus styles for icon button in SlidePanel
* dbeaver/pro#5232 feat: return back the common backdrop, replace common fallback to spinner
* dbeaver/pro#5232 fix: replace useFocus by dialog's initial focus in Rename dialog
* dbeaver/pro#5232 build: update deps after merge
* dbeaver/pro#5232 refactor: use constant for button id
* dbeaver/pro#5232 feat: add Loader component to DialogsPortal
* dbeaver/pro#5232 refactor: update Dialog component to use semantic HTML elements for header and footer
* dbeaver/pro#5232 fix: gap in footer of dialogs
* dbeaver/pro#5232 feat: focus input initially in New Folder dialog
* dbeaver/pro#5232 feat: add autoFocusOnShow prop to CommonDialogWrapper for improved focus management
* dbeaver/pro#5232 fix: padding for CommonDialogFooter
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6859 adds pin/unpin methods for data grid
* resets state when pins + makes pin icon stay when pinned
* adds TableHeaderCellIcon component with new Menu
* make actions alive
* cleanup
* moves pin logic into data-viewer
* cleanup
* restructures pin logic via contexts
* cleanup
* synchronizes column ids with view ids so pining works fine
* fixes actions visibility
* fix: correct layout on editing frozen cell
* fixes layout so frozen cell box-shadow can divide pinned and unpinned columns
* fixes border and box shadow interactions for frozen and editing cell
* makes pinned columns non transparent
* makes frozen border 3px and reverts previous style changes
* styles cleanup
* adds column true and visual indexes and reuses it across the data grid features
* cleanup
* reverts removed code
* reverts hacks with ids
* dbeaver/pro#7748 updates yarn.locks
* fixes incorrect types
* updates helper libs
* updates vitest + fixes test cases incorrect mocks
* runs tests sequentially with document and windows objects to prevent mock collisions
* Revert "runs tests sequentially with document and windows objects to prevent mock collisions"
This reverts commit f871837df3.
* skips download test
* removes export from resetDeprecatedSettings
* updates react-data-grid to beta-59 and react to 19.2
* updates storybook
* pr fixes
* updates yarn lock
* removes skip for download test
* cleanups download ts with empty body html
* updates vitest for core-connections
* updates yarn.lock
* linter fix + mocks once
* fixes hotkeys
* reverts version of react-hotkeys-hook library
* pr fixes
* code style fix
* dbeaver/pro#6859 adds selectCellByKey for opening editor
* reverts styles
* adds pin/unpin icons
* Revert "reverts styles"
This reverts commit 7857ef672d.
* on add actions sets correct focus
* removes incorrect positioning when editing pinned column
* tunes dark theme colors
* adds DnD to pin/unpin feature
* pr fixes
* fixes multiple selections for pinned & unpinned columns
* refactors multiple selections for pinned & unpinned columns so it uses data-grid api of getting sorted columns
* moves pin logic to usePinnedColumns hook
* moves color styles into data grid
* fixes letter
* adds styles for pinned border only for data editor
* adds unpin all columns action
* moves pinned logic to grid view action to save pinned state between tabs
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Sychev Andrey <44414066+SychevAndrey@users.noreply.github.com>
* dbeaver/pro#7465 refactor: migrate context menu to ariakit
* refactor: remove unused modal prop from ContextMenu and clean up schema name handling
* chore: add memoization to the base context menu components
* fix: menu issues
---------
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* dbeaver/pro#7554 adds translation for order button
* moves translate context to render app level + adds 2 translations for the sorting with the flag
* cleanup
* linter fix
* pr fixes
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#7041 replaces uikit input with core-blocks InputField for PropertyItem (connection driver properties)
* uses Input from ui-kit for react-data-grid from common-react
* separates Input and InputField logic so we can reuse Input somewhere else
* uses input from core-blocks in search panel
* uses input from core-blocks inside fetch size action
* removes hover styles if input is focused
* adds Input to inline editor
* removes style registries
* replaces module styles with css layers api
* cleanup
* calcs padding from spacing
* reverts input field base
* reverts input fields base 2
* fixes styles for inline editor and fetch size action
* fixes outline for inputs
* fixes hover styles for combobox so it matches input hover behavior
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#7413 feat: add Disclosure component to UI Kit
* dbeaver/pro#7413 feat: implement new disclosure component in CB with proper outline support and animations
* dbeaver/pro#7413 style: update disclosure gap to use tw spacing
* dbeaver/pro#7413 refactor: add Disclosure component story to Storybook (remove from ladle)
* dbeaver/pro#7413 refactor: update class names for disclosure components in Expandable
* dbeaver/pro#7413 feat: disable transitions for reduced motion preference
* dbeaver/pro#7413 refactor: convert arrow function to named function in Expandable component
* dbeaver/pro#7413 refactor: simplify media query for reduced motion transitions
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* dbeaver/pro#4583 feat: add tab reordering functionality in NavigationTabsService
* dbeaver/pro#4583 feat: update tab filtering to support tabs order
* dbeaver/pro#4583 feat: add tab drag-and-drop functionality and associated tests
* dbeaver/pro#4583 feat: implement tab drag-and-drop functionality
* dbeaver/pro#4583 fix: adjust tab reordering logic to handle dragged tab position correctly
since our reordering logic is duplicating in two components and, moreover, I found a bug in one of the implementations, I decided to put all the common logic to a dedicated helper with test coverage to be sure we use the right logic everywhere.
* dbeaver/pro#4583 test: remove redundant tests for onReorder in useTabDragAndDrop
* dbeaver/pro#4583 refactor: update reorderTab method to remove return value
* dbeaver/pro#4583 feat: add tab reordering functionality to SqlResultTabs component
* dbeaver/pro#4583 feat: add tabs order persistence via useUserData hook
* dbeaver/pro#4583 feat: integrate react-dnd for tab drag-and-drop functionality
* dbeaver/pro#4583 chore: update deps
* dbeaver/pro#4583 feat: integrate @dbeaver/js-helpers for array reordering in useHeaderDnD
* dbeaver/pro#4583 refactor: simplify reorderArray implementation by extracting some logic to helpers
* dbeaver/pro#4583 refactor: extracted tab reordering to a separate hook
- moved the tab order persistence logic into a new useTabOrderPersistence hook to make the flow is more obvious (we use this default persistence only with tabs container)
- introduced new reorderStateKey tab state to have an identifier for a tab panel, use it in canDrop check to prevent cross-panel DnD
-replaced reorderable prop with reorderStateKey, because without a key you can't use reordering
* dbeaver/pro#4583 refactor: add dropAllowed state to useTabDragAndDrop for improved drag-and-drop UI
* dbeaver/pro#4583 chore: add a comment about reorderStateKey
* dbeaver/pro#4583 refactor: add safe guard in SqlResultTabs.tsx
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* dbeaver/pro#4583 refactor: wrap onReorder function into useCallback for improved performance
* dbeaver/pro#4583 refactor: remove applyOrder method from ITabsContainer and update useTabOrderPersistence to not have dependencies on container
* dbeaver/pro#4583 refactor: use refactored hook in SideBarPanel and ToolsPanel
Since we are not mutating a container state anymore, we have to update sorting separately in TabList level because it reads directly from the container.
* dbeaver/pro#4583 refactor: remove fallback for stateKey
* dbeaver/pro#4583 refactor: replace hardcoded values with constants in useTabDragAndDrop
* dbeaver/pro#4583 refactor: add DragPosition type
* dbeaver/pro#4583 refactor: remove dependencies in TabsState effect
* dbeaver/pro#4583 refactor: remove stateKey from useTab hook
* dbeaver/pro#4583 feat: add panelId prop to SideBarPanel and use as persistence key
* dbeaver/pro#4583 refactor: persistence key in useTabOrderPersistence
* dbeaver/pro#4583 feat: add reorderArrayWithOrder helper and update SqlResultTabs to use it
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#7549 refactor: adjust padding and color for disabled select state to unify view between disabled controls
unify icon view as well
* dbeaver/pro#7549 style: fix if clause
* dbeaver/pro#6756 adds Menu to ui-kit, core-blocks + uses it in connection properties form
* allows to render any items not only strings
* dbeaver/pro#6756 adds context menu (has freeze on click)
* cleanup
* reverts object menu cell usage of new menu (problems with portal - infinite rerender)
* ui fixes
* reverts context menu logic
* adds hover styles
* cleanup
* removes MenuField
* adds combobox instead of PropertyValueSelector
* adds ability to have custom value for comboboxes + uses inside driver properties
* allows to revert values in combobox
* adjusts combobox api with correctly working custom value
* cleanup
* adds documentation for the Menu
* fix: combobox and driver properties
* chore: remove unused component
* chore: cleanup styles
* chore: add value tooltip
* fix: remove default value from combobox
* fix: tooltips
* build fix
* reverts old behavior with default value for combobox
* removes button styles + adds max width for the items
* Revert "reverts old behavior with default value for combobox"
This reverts commit 2a92c00f32.
* removes double focus
* fixes placeholder so it is not undefined string
* fixes value placeholder + moves title to input
* build fix
* fixes border behavior
* adds default value for property items
* fix: improve combobox types
* fix: use default value
* adds layers to InputField and moves border-offset-layout
* fix: eslint
* Revert "adds layers to InputField and moves border-offset-layout"
This reverts commit 272baafab6.
* reverts styles fixes for double border
* cleanup
* adds medium size to ui kit
---------
Co-authored-by: Alexey Potsetsuev <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#6667 patches react-data-grid columns widths on cloudbeaver side
* fixes: auto resize columns should not be resized + column resize do not triggers resize of other oversized columns
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>