* dbeaver/pro#7023 feat: add SearchPanel component and related styles to UI-kit
add chevron Icon to UI-kit (used in Search Panel)
* dbeaver/pro#7023 feat: add SearchPanel story
* dbeaver/pro#7023 feat: update SearchPanel integration in CodeMirror
* dbeaver/pro#7023 feat: add onReplaceToggle prop to SearchPanel for toggle functionality
* dbeaver/pro#7023 fix: replace-input styles
* dbeaver/pro#7023 feat: implement search functionality in DataGrid v2
* dbeaver/pro#7023 fix: update react-data-grid workspace reference in yarn.lock
* dbeaver/pro#7023 feat: don't focus cell on replace
* dbeaver/pro#7023 feat: add searchReadOnly prop to DataGrid and GridSearchPanel components
* dbeaver/pro#7023 fix: update styles for search panel
* dbeaver/pro#7023 feat: add theme variables for improved styling in storybook
* dbeaver/pro#7023 feat: update search panel styles in datagrid
* dbeaver/pro#7023 feat: improve search functionality by resetting active match index and triggering search on find actions
* dbeaver/pro#7023 refactor: useGridSearch
* dbeaver/pro#7023 fix: search panel styles
* dbeaver/pro#7023 feat: implement grid search state management
* dbeaver/pro#7023 feat: add refresh functionality to search components
* dbeaver/pro#7023 feat: add history action to refresh search results on undo/redo
* dbeaver/pro#7023 feat: add batch cell update functionality to data grid
That functionality comes in handy when we want to use Undo and Replace All functions together:
Before that commit we used to perform N operations where N is a number of replaced cells. And history would record them as atomic operations, so pressing Undo would revert only the last replace.
setMany enables batch editing and batch reverting, so now we can Replace All and then revert it by using one Undo operation
* dbeaver/pro#7023 refactor: remove unnecessary eslint disable comment in useGridSearch
* dbeaver/pro#7023 feat: select affected cell on history change
* dbeaver/pro#7023 feat: add searchReadOnly prop to DataGridTable for conditional read-only state
* dbeaver/pro#7023 refactor: simplify isReadOnly logic in GridSearchPanel
* dbeaver/pro#7023 refactor: use constants for flags
* dbeaver/pro#7023 refactor: update focus and refresh methods in GridSearchPanel
* dbeaver/pro#7023 refactor: consolidate grid search state update logic
* dbeaver/pro#7023 refactor: update scrollToCell method signature and related usages
* dbeaver/pro#7023 refactor: update handleCellChangeBatch to use ICellChange type
* dbeaver/pro#7023 refactor: remove unwanted code
* dbeaver/pro#7023 feat: refactor search functionality to use standalone functions
* dbeaver/pro#7023 feat: implement useDataGridSearch hook to avoid bloating the DataGrid component with the search-related logic
* dbeaver/pro#7023 feat: update search functionality to use onReplace for cell value updates
* dbeaver/pro#7023 feat: use Activity component for search panel visibility in DataGrid
* dbeaver/pro#7023 refactor: use common value transformation fn in set and setMany methods
* dbeaver/pro#7023 refactor: rename methods for "unnkeyed" cache
* dbeaver/pro#7023 refactor: unify cell edit history handling and remove batch edit references
* dbeaver/pro#7023 fix: update searchReadOnly logic
* dbeaver/pro#7023 refactor: replace rowsCountRef with useState (Error: Cannot access refs during render)
* dbeaver/pro#7023 refactor: expose getCellClassName via useImperativeHandle
Replaced onCellClassNameChange prop + useEffect with useImperativeHandle as suggested in code review. Using useState setter directly as callback ref either caused infinite re-renders (without deps) or lost context synchronization entirely (with stable deps). Settled on useCallback ref that sets both useRef (for method access) and useState (for context propagation).
* dbeaver/pro#7023 fix: Cmd+F not re-focusing the search panel when already open
* dbeaver/pro#7023 refactor: cell edit history compression
* dbeaver/pro#7023 fix: refresh search state on revert
* dbeaver/pro#7023 refactor: move focus blocking during replace into grid component
Previously DataGridTable checked isReplacing() before syncing
focus/selection, leaking grid internals
Now the grid's selectCell blocks during replacing internally and
supports deferred mode (setTimeout + rAF) for post-render focus sync.
* dbeaver/pro#7023 refactor: restructure grid search logic with useReducer and improve state management
* dbeaver/pro#7023 refactor: improve grid search
moved ref synchronization out of render,
unified search+scroll into one shared path,
added a SET_MATCHES no-op guard to reduce unnecessary updates,
removed duplicate open=false persistence from useDataGridSearch (single owner now in useGridSearch).
* dbeaver/pro#7023 refactor: update search state types
* dbeaver/pro#7023 refactor: restructure grid search state interfaces for improved clarity
* dbeaver/pro#7023 refactor: optimize match retrieval logic after removal in grid search
* dbeaver/pro#7023 refactor: sync refs and computed props in one effect
* dbeaver/pro#7023 fix: Esc double handling between SearchPanel and CaptureView hotkeys
* dbeaver/pro#7023 refactor: fix review comments in useGridSearch
* dbeaver/pro#7023 refactor: unify hotkey stop propagation via shared EventContext/EventStopPropagationFlag
* dbeaver/pro#7023 refactor: pass reactive cellText to useGridSearch
* dbeaver/pro#7023 refactor: update grid search reducer actions and navigation logic
reuse SET_ACTIVE_MATCH and computeActiveMatchIdx for consistency
* dbeaver/pro#7023 refactor: improve equality check for cell matches
* dbeaver/pro#7023 feat: implement cell change tracking subscriptions and cleanup logic
* dbeaver/pro#7023 refactor: remove redundant clearTrackedCellSubscriptions
Cleanup implemented in useTrackedGridSearchCellSubscriptions hook
* dbeaver/pro#7023 fix: cancel stale deferred selectCell to prevent infinite focus loop
When multiple rows are deleted, competing deferred selectCell timeouts
cause focusSyncRef mismatch and endless focus-change cycle.
* dbeaver/pro#7023 fix: update keyboard shortcut for search to use 'KeyF'
* dbeaver/pro#7023 feat: make search disabled by default
* dbeaver/pro#7023 fix: layout
* dbeaver/pro#7023 fix: update scrollBox selection method in Table component
---------
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: Viktor Kirst <viktor.kirst@dbeaver.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* dbeaver/pro#7566 feat: add settings functionality to the new tree
Implemented settings as a part of Toolbar. The key reason was that the TreeToolbar sets different contexts for all other actions related to tree and easily extendible as a menu service. It might limit in some weird cases, but for now it looks like a valid decision
Settings are made as unknown intentionally to be polymorphic. We could use Record<string, unknown> instead, but I don't see it really improving anything.
* dbeaver/pro#7566 refactor: introduce ITreeSettings interface
add filter with settings connection via useTreeFilterState hook
* dbeaver/pro#7566 refactor: remove redundant hooks, update ITreeSettings
* dbeaver/pro#7566 refactor: move actions to cloudbeaver part
* dbeaver/pro#7566 feat: add universal hook that persists any tree settings via UserDataService as a flat key-value record
* dbeaver/pro#7566 refactor: remove unused childrenTransformers and stateTransformers from ITreeFilterState
* dbeaver/pro#7566 feat: enhance tree settings functionality with replace method and user data synchronization
* dbeaver/pro#7566 refactor: remove toolbarFilter from ITreeFilterState interface
* dbeaver/pro#7566 refactor: simplify useUserTreeSettings
* dbeaver/pro#7566 fix: lint rule and defaults inconsistency
* dbeaver/pro#7566 fix: defaults
* dbeaver/pro#7566 fix: update Russian translations for navigation tree settings
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* dbeaver/pro#8468 adds server is not available network error
* removes localization
* renames method for network state issues
* adds comment
* adds explanations for dev and prod mode errors
* supports multiple browser with network errors
* moves logic to a single method + reuses for events
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* 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>
* dbeaver/pro#8279 feat: rename CloudBeaver CE to CloudBeaver Community across multiple files
* dbeaver/pro#8279 ci: remove unused dependency
* dbeaver/pro#8279 feat: remove unnecessary description fields in plugin.xml and defaultServerConfig.ts
* dbeaver/pro#8279 feat: update copyright year and remove product description fields in multiple locale files
* dbeaver/pro#8279 feat: return product version back to Logo component
* dbeaver/pro#8279 fix: remove exclamation mark from easy config heading
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@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#8048 pass commit message validation
* fixes json + translations
* fixes gis generation
* uses format action to get text value for sql generators
* dbeaver/pro#4999 feat: add TableStatusIndicator component and update tooltips for key detection
* dbeaver/pro#4999 feat: update TableStatusIndicator to handle read-only connection state and improve tooltips
* dbeaver/pro#4999 feat: use new backend endpoint to provide info about identifier
* dbeaver/pro#4999 refactor: simplify TableStatusIndicator by removing props and using context directly
* dbeaver/pro#4999 refactor: move hasElementIdentifier to ResultSetDataSource
* pr fixes
* fixes indicator center position + removes duplicated translation
* fixes contrast for color-status (JSON edit row + keys indicator for tables)
---------
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#6306 api for original query
* uses original query from backend for sql data source
* adds description for popup
* removes message
* fixes creating dataset from grouping panel
* adds new full query abstraction
* pr fixes
---------
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@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#7614 adds first implementation of grid history action (has bugs)
* some pr fixes
* replace last instead of update method
* adds history compression to cell edit
* add add row history for undo/redo
* adds history for delete row
* adds duplicate row undo/redo
* adds history for revert action
* clears history inside edit clear action
* refactors the undo/redo history to have more clean structure
* cleanup
* adds limits to history
* uses data viewer undo/redo actions
* cleanup for undo/redo actions + adds to the top of table icons
* applies tooltips for the header table only
* removes createEditorDataAccess (refactor)
* removes getPrevCellValue (refactor)
* bug fix: add row, change something, delete row, undo/redo in this history
* adds more specific function naming
* Revert "bug fix: add row, change something, delete row, undo/redo in this history"
This reverts commit 5f1799fe26.
* adds batching history to the adding/deleting operations
* refactors GridHistoryHandlers & GridEditAction API + fixes the bug with deleting added row
* handling edge cases
* cleanup
* pr fixes
* refactor: removes extra interfaces, uses addRow for duplication rows action, handlers cleanup
* refactors the code to split editor changes to private and edits, history & action executions to public methods
* Revert "refactors the code to split editor changes to private and edits, history & action executions to public methods"
This reverts commit 374201179a.
* refactor: removes duplications of the code
* cleanup
* fixes menu bar item tooltip
* fixes labels
* removes get action info
* hides undo/redo for readonly table action
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@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#7555 adds autocomplete on tab + refactors shortcuts api
* adds unit tests for getCommonAndOSSpecificKeys
* uses prec.high to give some space to overriding shortcuts
* reverts keysWin + fixes the tests
* pr fixes
* adds escape editor shortcut to the shortcuts helper
* shows only 1 shortcut for autocomplete + shows os specific keys first in help doc
* fixes shortcuts so no repeats applied
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#7772 adds truncated tooltips for context menus
* dbeaver/pro#7772 adds " ... " for long labels
* adds unit tests
* Update webapp/packages/core-blocks/src/Menu/MenuItemElement.tsx
Co-authored-by: Alexey Potsetsuev <wrouds@gmail.com>
* adds binding for delete row
* removes tooltips
* fixes tree filters clipping
* clips only names, not whole labels
* clips only names, not whole labels [2]
* reverts getBindingLabels + fixes the os specific keys to show it first
* clips only names, not whole labels [3]
* dbeaver/pro#7772 simplifies keys helpers logic
---------
Co-authored-by: Alexey Potsetsuev <wrouds@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#7855 feat: Add setting to use the user's OS formatting for numbers and dates
* dbeaver/pro#7855 refactor: update OS formatting option value in DataGridSettingsService
* dbeaver/pro#7855 feat: implement OS formatting for date and time in DataGrid
* dbeaver/pro#7855 feat: implement user-specific formatting for numbers in DataGrid
* dbeaver/pro#7855 feat: add translations
* dbeaver/pro#7855 style: update date formatter
* dbeaver/pro#7855 feat: add locale-specific formatting options for DataGrid settings
* dbeaver/pro#7855 feat: add support for locale-specific formatting with regions
* dbeaver/pro#7855 refactor: move date type detection to the grid level
* dbeaver/pro#7855 refactor: simplify cell formatter selection logic
* dbeaver/pro#7855 refactor: move formatting to a separate context
* dbeaver/pro#7855 refactor: optimize extended date kind retrieval logic
* dbeaver/pro#7855 fix: tw class names
* dbeaver/pro#7855 refactor: change caching mechanism and other improvements
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#7025 moves shortcuts for data editor to plugin-data-viewer and reuses it in shortcuts helper plugin
* adds save binding to data editor
* adds cancel shortcut
* changes save shortcut
* dbeaver/pro#7025 change binding key
* uses mod+. shortcut for cancel action (data editor)
* Revert "uses mod+. shortcut for cancel action (data editor)"
This reverts commit c5b375c2cf.
* adds mod+. shortcut for cancel
* adds shortcut for mac for deleting row in table
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.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#7798 fix: remove unwanted wrapper and relevant CSS module
* dbeaver/pro#7798 feat: add refresh action to user administration tools menu
* dbeaver/pro#7798 fix: add loader to context menu rendering
The menu was failing to open on first click due to lazy-loaded custom items (ContextMenuSearchItem) suspending the entire top navigation bar on initial load, causing portal recreation and loss of open state. Wrapped menu items in a local Loader to ensure lazy components load within the popover without affecting the parent component.
* dbeaver/pro#7798 fix: use suspense for each renderMenuItem
* dbeaver/pro#7798 refactor: simplify orderItems method in CreateUserBootstrap
* dbeaver/pro#7798 fix: fix menuBarItem styles
* dbeaver/pro#7798 refactor: update CreateUserBootstrap to include AdministrationScreenService
---------
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#7564 feat: add selectChildren option to tree selection API
* dbeaver/pro#7564 feat: add node multi selection API to the new tree component
* dbeaver/pro#7564 feat: add new selection type
* dbeaver/pro#7564 refactor: remove getSelectedNodes method from tree selection interfaces
* dbeaver/pro#7564 fix: update selection clearing logic in useTreeClickSelection to avoid multiple callback calls
* dbeaver/pro#7564 refactor: optimize node collection in collectVisibleNodes function
* dbeaver/pro#7564 refactor: simplify selection handling logic in Node component
* dbeaver/pro#7564 refactor: streamline selection state handling in useTreeClickSelection
* dbeaver/pro#7564 refactor: replace inline default selection state with constant
* dbeaver/pro#7564 refactor: replace default node selection constant with a function
---------
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* dbeaver/pro#7667 feat: add tree toolbar functionality to new tree
* dbeaver/pro#7667 refactor: remove unused ITreeSelection import and selection property from ITreeToolbar
* dbeaver/pro#7667 refactor: remove autoFocus from Filter component
* dbeaver/pro#7667 refactor: move onClick handler from Icon to IconButton
* dbeaver/pro#7667 refactor: add className prop to TreeToolbarMenu component
* dbeaver/pro#7667 feat: implement new navigation tree toolbar using composition and data context
* dbeaver/pro#7667 feat: update toolbar menu localization files
* dbeaver/pro#7667 refactor: navigation tree components to use lazy loading and improve type definitions
* dbeaver/pro#7667 refactor: restructure Tree component removing extra wrapper
* dbeaver/pro#7667 refactor: update treeToolbarActionHandler to use async/await for refresh actions
* dbeaver/pro#7667 refactor: remove undefined type from data context creation
* dbeaver/pro#7667 fix: restructure Tree component to fix Toolbar with scroll
---------
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.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#7570 adds highlight for text spaces and new line
* refactors + changes colors
* allows to add props to extensions
* pointer events none for new line
* do not show enter symbol if line has no whitespaces below this line
* removes highlightTrailingWhitespace so the red background disappears
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@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#6962 refactor: replace complex loader with-simple solution
* refactor: simplify function declarations in createLazyLoader
* fix: ensure notify is called after loading state updates in createLazyLoader
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.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#6480 checks if nodes parents loaded to verify if some entities are missing
* fixes linter await issues
* uses offset pagination key to check if all parents were loaded
* adds isNodeLoadedInAnyPage logic
* reverts all changes
* adds hasMorePagesForRootNode logic
* linter fix
* checks if parent has more data for each closest parent (not just a root one) + renames helper
* renames helper to sound shorter
* build fix
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#7442 Add Long-Polling transport support for event manager
* dbeaver/pro#7442 Inline headless-session creation in LongPolling servlet
* dbeaver/pro#7442 Improve long-poll session resolution and add unit tests
* dbeaver/pro#7442 Expose resolveSession for testing and remove reflection in tests
* dbeaver/pro#7442 Add copyright
* dbeaver/pro#7442 Improve long-poll CORS and interrupt handling
* 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#6724 feat: add authentication model label to connection form
* dbeaver/pro#6724 refactor: change interface in StaticImage component to pass native props to provide a11y properties
* dbeaver/pro#6724 fix: add role attribute for icons in Driver selector
Those driver icons are not adding any meaning to the list items, so we can easily hide them from a11y tools.
* dbeaver/pro#6724 refactor: rename autofillToken to autocompleteSectionName and update related logic in forms
We used to have autocomplete parameters that do not meet specifications of HTML Input Autocomplete attribute.
We can't use any string there, there are list of tokens that browsers support: https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill plus two global states: "on" and "off".
Logic was refactored to use section token + username or current password tokens fo form where we provide auth details.
All other inputs use just general "on" state to let browsers decide how to fill this field, except cases where we disable password autocompletion.
also fixes a typo
* dbeaver/pro#6724 fix: don't turn on autocomplete if disabled
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.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#5085 sorts users alphabetically + shows new users on top
* reverts sorting for enabled and disabled users (required backend to sort properly)
* cleanup
* removes repetitive filters and sorting
* simplifies users logic + user.createdAt is number type
* refactor: sortUsersById -> compareUsers
* compare new users
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#7480 fix: preloads only connection info by key (not all) to prevent connectioInfoResource loading of all data and all following handlers actions
* adds console error and return empty array for origin info loader
* warning instead of error
* dbeaver/pro#5078 adds chart export
* adds ExportImageDialog and reuses it across the app
* uses canvas2html for downloading images
* Revert "uses canvas2html for downloading images"
This reverts commit b59374cf85.
* moves transformClassesToStyles to helpers
* transforms styling attributes to computed styles
* adds file name
* fixes translations
* fixes styles for png image so it do not exports in black&white mode with incorrect sizing
* fixes styles for svg export
* uses domToImage library to save chart with legend
* cleanup
* moves helpers back to d3js diagrams
* cleanup
* uses html-to-image instead of dom-to-image
* cleanup
* pr fixes
* replaces the lib
* fixes svg so it is not blur
* validation for image urls
* cleanup
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
The problem was that In ReactCodemirror, the updateListener calls onChange whenever the document changes and it's not marked as a remote transaction, but in value panel, when we switch changes, the new value coming to the panel was considered as the user change.
So, update listener were calling onChange from TextValuePresentation which calls editAction.set() and changes the real cell value.
In order to fix it, this commit mark programmatic updates by dispatching transaction annotations together with a change.
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6026 feat: merge value panel tabs in one group
move all text representations to the first tab level
specific representation is used if present (boolean, image)
auto type detection is used only for text
* dbeaver/pro#6026 refactor: remove unused CSS files for TextValuePresentation
* dbeaver/pro#6026 refactor: remove automatic state update in ValuePanel component
* dbeaver/pro#6026 refactor: update content type handling in ValuePanel
Move all the content type determination logic into the hook
Simplify the component
* dbeaver/pro#6026 refactor: consolidate content type handling in useAutoContentType hook
* dbeaver/pro#6026 fix: show scroll on tabs in value panel when overflow
* 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#6586 fix: combobox disclosure size
By default, this component has 1em height and width and thats why it looked different in different components. Pixels values will provide consistency across different environments.
* dbeaver/pro#6586 refactor: set parent's font size instead of svg dimensions
---------
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>
* dbeaver/pro#6639 fix: don't render table error component when no error
We used to render TableError component all the time no matter if we have an error or not, just hiding this component visually. This approach breaks accessibility because Table error component was still reachable from a keyboard or a screen reader. This fix completely removes the node from DOM if the error is not visible.
* dbeaver/pro#6639 fix: change tabindex of TableError component
previous fix rendered this component only if error is present. That fix was wrong because we want to always keep that component in DOM to animate it properly in case of an error. That why we decided to just change the tabindex to -1 when there is no error to exclude it from tab path.
This fix is also adds aria-hidden attribute to hide this component completely from the accessibility tree when it's not visible.
* dbeaver/pro#6639 style: indent
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#5471 fix: "Delete" data viewer action tooltip
* dbeaver/pro#5471 refactor: "merge" save and save as script actions
We used to have two buttons with different shortcuts for saving SQL as a script(first save) and saving already created script (updating). On UI they had the same icon and were more or less identical for the user. We decided to use the same shortcut and labels for both buttons (mod + S).
* dbeaver/pro#5471 feat: adds Find and Comment shortcuts to the shortcuts list
* dbeaver/pro#5471 refactor: use common l10n keys for save/undo/redo
* dbeaver/pro#5471 refactor: use key bindings API for Delete action in TableView
* dbeaver/pro#5471 refactor: use key bindings API for add, duplicate and revert actions
* dbeaver/pro#5471 fix: extra import
* dbeaver/pro#5471 refactor: don't use a symbol for delete shortcut
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
If folder node had not been loaded before the filter is used, we would get into situation that filtering manually expanding this node without children and we would loose the ability to load them by expanding by click(our main flow is to load on expand).
This fix removes the auto expanding on filtering. Now it works similarly to the main navigation tree with filters
* dbeaver/pro#4696 adds zod schema parsing for form parts
* adds validation error to context
* adds schema parsing for UserFormInfoPart & ConnectionFormOptionsPart
* spreads RecordKeySchema across zod validations
* fixes form editing for connection info part
* Revert "spreads RecordKeySchema across zod validations"
This reverts commit 0e6719b32f.
* removes connection form errors during saving when empty fields
* reverts connection form options part parsing
* removes trimming from teams & authRole
* build fix
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#4862 adds focus on switches
* fixes border radius
* less border-radius
* applies hack with borders and position to save border radius and offset
* removes variable
* fix: applies focus only for tab
* removes focus on ESC button
* removes onkeydown
* cleanup
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6462 error instead of redirect for gql requests
* feat: force redirect on supportedHosts change
* fix: replace redirect with warning message
* fix: prevent active host removal
* fix: error message and ignore when on IP address
---------
Co-authored-by: Alexey Potsetsuev <wrouds@gmail.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
* dbeaver/pro#6605 fix: reset filters on logout
This commit adds onLogout handler in DataViewerTabService which disposes opened tabs on logout.
Previously we didn't handle that at all and model was persisted in the memory after logout. On next login, if there was any filters, we would try to send them to backend and got an error, because backend doesn't support initial requests(without resultId) with filters.
The main logic of a handler repeats the already existed onDisconnect handler logic, which was extracted to handleTabsCleanup method. The difference between handlers is only in a set of tabs(onLogout we dispose all of them, onDisconnect - only tabs of a selected connection) and ability to interrupt the process.
* Revert "dbeaver/pro#6605 fix: reset filters on logout"
This reverts commit d124b444c7.
* dbeaver/pro#6605 fix: add onLoad Handler to ObjectViewerTabService
* Update webapp/packages/plugin-object-viewer/src/ObjectViewerTabService.ts
Co-authored-by: Alexey Potsetsuev <wrouds@gmail.com>
---------
Co-authored-by: Alexey Potsetsuev <wrouds@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
In previous ticket CB-5555 we fixed cursor position on undo/redo actions by adding a check that if selection was not set. In that case we put the cursor to the end of inserted text. Due to previous fixes in CB-4134 we don't set a selection if cursor don't change it's position and initially it's 0. So our check from 5555 is being fired on initially opened script and cursor goes to the end.
To avoid that situation, this solution introduces a new isInitialScriptOpening flag that is used to check the first insertion.
When initially opening a script, the cursor will stay at the position where we explicitly set it (e.g., position 0).
After the first actual content change, the flag isInitialScriptOpening gets set to false.
Subsequent changes will then follow the normal cursor behavior (moving to end when there are changes but no explicit cursor position).
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#6472 fix: restore focus after menu actions and on syncFocus
* dbeaver/pro#6472 refactor: revert changes with using restoreFocus function from context
* dbeaver/pro#6472 fix: delete row from a context menu works as with a hotkey
set to null and revert also keep focus in place
* Revert "dbeaver/pro#6472 fix: delete row from a context menu works as with a hotkey"
This reverts commit f54abf3956.
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6253 fix: set disable state for checkbox respecting readonly
There was a bug in UiKitCheckbox props which rewrites disabled state using only disabled prop.
* dbeaver/pro#6253 fix: remove redundant readonly property in Options
First of all, Radio doesn't support readonly attribute. Moreover, we don't render this RadioGroup when condition in readonly prop is true.
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#6557 refactor: remove redundant width: 100%
There are a few reasons why we don't need this property:
0. It's already present in base Select styles
1. Select component is flex container by default, i.e. takes all available place
2. No evidences that it is needed
* dbeaver/pro#6557 fix: user filters selects
Simplifies layout and set min width for selects
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#6189 feat: group extra tools
* fix: context menu size
* fix: make context menu more compact
* fix: context menu shortcuts
* fix: change color for shortcuts in context menu
* fix: codestyle
* fix: revert more tools
* fix: submenu arrow position
* fix: show output
* fix: upload / download tooltips
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6283 feat: add simple Combobox implementation
It has fuzzy search inside to filter items.
* dbeaver/pro#6283 feat: implement Combobox component with search functionality and update related files
* dbeaver/pro#6283 refactor: remove unused onChange prop
* dbeaver/pro#6283 style: update imports in Combobox component
* dbeaver/pro#6283 feat: update styles, add popoverClassName prop
* dbeaver/pro#6283 refactor: keep Combobox composable for better control
* dbeaver/pro#6283 refactor: SRP in Combobox, split provider and components
* dbeaver/pro#6283 feat: implement advanced search
see AdvancedSearch example in stories
* dbeaver/pro#6283 refactor: use strict comparison
* dbeaver/pro#6283 refactor: replace fuzzy search with standard string search
* dbeaver/pro#6283 refactor: simplify Combobox component
* dbeaver/pro#6283 feat: add value formatter for ComboboxInput
It might be useful for cases when value is not in user friendly format. Combobox doesn't support such transformations from the box
Updated examples, added valueFormatter to advanced search, added MultiSelect example
* dbeaver/pro#6283 feat: sync styles with select
* dbeaver/pro#6283 fix: formatter
* dbeaver/pro#6283 fix: respect the user's reduce motion preference
* dbeaver/pro#6283 refactor: simplify component
remove search context,
use some built-in features for input value manipulations and for auto selection of the first item
* dbeaver/pro#6283 refactor: use tailwind for Field styles
* dbeaver/pro#6283 fix: should open all options on first interaction with any value
* dbeaver/pro#6283 refactor: strip Combobox component
Due to difficulties with items and search value managing in Combobox using only native combobox store, it was decided to move all that logic to CloudBeaver combobox component.
This commit removes all the logic from UIKit Combobox and partially restores it in Cloudbeaver Combobox
* dbeaver/pro#6283 feat: show no results when no items
* dbeaver/pro#6283 feat: restore input to the last valid value
* dbeaver/pro#6283 refactor: simplify restore input logic
* dbeaver/pro#6283 refactor: reset input value on blur
* dbeaver/pro#6283 refactor: don't sent input value on item click
* dbeaver/pro#6283 refactor: remove getComputed for filteredItems
getComputed will not work as expected for not primitive values( for example, for arrays)
* dbeaver/pro#6283 refactor: remove getComputed for filteredItems
* dbeaver/pro#6283 style: update z-index for ComboboxPopover component
our backdrop component has 999 z-index(weird?), we need more to show popover in modals
* dbeaver/pro#6283 feat: put CB Combobox near the component, fix layers issue
* dbeaver/pro#6283 fix: radio title wrap
* dbeaver/pro#6283 fix: use the same letter spacing as in other inputs
* dbeaver/pro#6283 fix:combobox item styles
* dbeaver/pro#6283 fix: clear value on click
this fix is for situation when user started to type a word, found an option and clicked on it. Previously we didn't clear value and just setSelectedValue on click. This fix clears value as it happens onBlur and we use the value from selectedItem.
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#5968 refactor: update dark theme styles
introduces new theme variable link-color which with a color which is used for coloring anchor elements in our app
adjust this color in dark theme to have better contrast with a background, use this color in secondary button for the same reasons
* dbeaver/pro#5968 fix: adjust dark theme color values for improved contrast
* dbeaver/pro#5968 fix: update negative color in dark theme
* dbeaver/pro#5968 fix: update negative color in dark theme
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6061 fix: remove extra comma in ru l10n
* dbeaver/pro#6061 fix: make Cell component accessible
* dbeaver/pro#6061 fix: use proper product doc page
* dbeaver/pro#6061 fix: Cell component layout
* dbeaver/pro#6061 refactor: split Cell component interface for better dx
* Revert "dbeaver/pro#6061 refactor: split Cell component interface for better dx"
This reverts commit 812414f0f1.
* Revert "dbeaver/pro#6061 fix: make Cell component accessible"
This reverts commit 09aff9b08a.
* dbeaver/pro#6061 refactor: restrict using onClick on Cell component
force to use composition instead
* dbeaver/pro#6061 feat: generate a link to specific product version docs
* dbeaver/pro#6061 fix: use arg in all l10n files
* dbeaver/pro#6061 refactor: extract version handling logic for documentation URLs
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#6469 corrects enable https mode translation and switch position in server config form
* adds link for proxy configuration article
* fixes punctuation for ru locale
* updates description translations
* removes extra dot in ru locale
* adds advanced documentation link
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
removes RadioGroupContext(radio group/radio use their own provider)
removes all the logic of state changing from Radio component since it's creating a wrong understanding of how these components should be used together with RadioGroup. Radio still can be controllable, but it should be used in most scenarios only with RadioGroup which is controlling the state.
simplify styles by removing extra class
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#2951 Emit WSUserDisabledEvent after disabling a user
* dbeaver/pro#2951 Close user sessions on WSUserDisabledEvent
* dbeaver/pro#2951 Unify session termination logic for deleted and disabled users
* dbeaver/pro#6436 initializes unit tests for common-react
* installs common-react in the scripts
* adds @dbeaver/react-tests
* setups @dbeaver/react-test into tests-runner
* implements react-testing library into @dbeaver/react-tests
* removes unused deps
* adds test for frontend build github action
@@ -25,56 +25,55 @@ You can see a live demo of CloudBeaver here: https://demo.cloudbeaver.io
## Changelog
### 25.1.3 2025-07-21
- A password confirmation field has been added for administrators in the Easy Config section to help prevent accidental misconfigurations;
- Added column descriptions in the Data Editor to provide more metadata context. You can disable this in Preferences > Data Viewer;
- Added the option to display tabs across multiple rows, allowing you to see all tabs without scrolling. You can enable this in Preferences > Interface;
- Changed the default engine used for autocompletion in the SQL Editor. This Semantic engine offers improved suggestions for database objects, keywords, and functions. You can switch back to the Legacy engine in Preferences -> SQL Editor;
- Clickhouse: fixed the presentation of tuples and map data types in the data editor.
### 26.0.0 2026-03-02
### 25.1.2 2025-07-07
- The CloudBeaver default theme matches the device theme by default now. You can change this behavior in user preferences under the Theme section;
- Added a button “Clear” to the Output panel;
- Changed the data transfer mechanism to avoid intermediate file creation. The parameter dataExportFileSizeLimit was removed from the server configuration as deprecated;
- PostgresSQL: fixed misplaced comment for table DDL generation.
### Changes since 25.3.0:
### 25.1.1 2025-06-23
### Changes since 25.1.0:
- Added a search panel for SQL Editor and Value panel: press Ctrl+F to open a panel that allows searching and replacing by keyword or regular expression.
- Added a new welcome screen for a freshly opened application. This screen contains shortcuts to create a new connection, open SQL editor or documentation.
- Databend database support has been added.
### 25.1.0 2025-06-02
### Changes since 25.0.0:
- Important:
- Connection templates were removed from the application. You can use the Connection Editor to create new connections.
- Administration:
- Log records now capture create, update, and delete actions for users, teams, and connections for improved tracking and transparency.
- LDAP authorization:
- Added support for secure [LDAP authentication over SSL](https://github.com/dbeaver/cloudbeaver/wiki/LDAP-Authentication);
- Brute force protection is now supported for LDAP authentication. All authentication methods on the application level have this security mechanism.
- SQL Editor:
- A new setting to autosave scripts in the SQL editor appeared in global and users' preferences;
- Auto-completion has been improved for aliases and camelCase entities.
- Data Editor:
- Improved table rendering to scale column width depending on the content;
- Accessibility: improved keyboard navigation by sorting buttons in column headers.
- General:
- Added the ability to configure the default database or schema in the connection configuration;
- Enhanced initial configuration stage security: a server needs to be restarted if the initial setup time exceeds 1 hour;
- Improved Navigation tree performance: lost connection does not lead to the application freezing anymore;
- Data transfer: Improved export/import functionality performance by optimizing disk memory consumption;
- Vietnamese localization has been added (thanks to [0xhanh](https://github.com/0xhanh)).
- Databases and drivers:
- Clickhouse: driver has been updated to version 0.8.5;
- DuckDB: expanded the list of system objects that can be hidden in the Navigation tree;
- LibSQL: added the ability to connect using token authentication;
- Oracle: users' DDL in Oracle is displayed in the metadata editor on the corresponding tab for users with Oracle administration permissions;
- SQLite: added information about a table's Strict mode to the table metadata section (thanks to [eusebe-cda](https://github.com/eusebe-cda)).
## Contribution
As a community-driven open-source project, we warmly welcome contributions through GitHub pull requests.
- Security:
- Enforced complete logout and screen data clearance upon session expiration;
- Fixed the high vulnerability (CVE-2026-25639) in the axios library. The library was updated to version 1.13.5.
- Administration:
- Added support for mapping users to CloudBeaver teams based on LDAP memberOf group membership;
- Change the User list settings in the Administration part to show both active and inactive users by default.
- SQL Editor:
- Added support for parameters and variables in queries. This feature allows queries to be reused by changing parameters at execution time. Enabled by default and configurable in personal preferences;
- Added SQL preview to the Bind parameters/variables dialog to review queries with changed values on the fly;
- Enabled Tab key for autocompletion in the SQL Editor alongside the Enter key;
- Added a new setting in the SQL Editor to highlight spaces, tabs, and other whitespace characters to help users read, debug, and maintain their scripts. It is turned off by default and can be configured in personal preferences;
- Dangerous query confirmation is now shown for all DROP statements, not just for tables.
- Data Editor:
- Added ability to automatically generate INSERT, SELECT, DELETE, and UPDATE statements for the selected values;
-Added undo and redo functionality forcell edits, row operations, and other data modifications. Retains the last 50 actions across the Data Editor, result sets, and related panels;
- Added "Use local formatting" setting. Users can choose how to display numbers and dates: using the OS locale, a custom locale, or keeping values unformatted. This formatting applies only to displayed values. Data in the database remains unchanged;
- Added column pinning to keep key columns (e.g., IDs, names) visible while horizontal scrolling through wide tables;
- Added status indicator icon in the top-left corner with tooltips explaining table editability. Indicates presence of primary keys, read-only connection settings, or read-only columns;
- Added shortcut Ctrl/Cmd + . to cancel operations in Data Editor;
- Fixed application freeze in canceling fetch size requests for large tables.
-Navigator tree:
- Added the ability to duplicate connection configuration in the project navigation tree. The "Clone connection" feature is available in the context menu;
- Added the ability for users to configure the Simple or Advanced view in the Navigation tree for all connections or for each connection separately;
- Added the ability to show table objects, such as columns or keys, in the Navigation tree. The setting is disabled by default and can be turned on in the Navigator settings panel;
- Added the ability to rename connections via context menu in the Navigation Tree;
-Added Connection Info tab to display basic information about the current connection for all users.
-General:
- Added support for long polling as a fallback when WebSockets are unavailable or blocked. Ensures reliable communication for metadata updates and SQL execution;
- Extended browser support to versions up to three years old;
- Redesigned the connection configuration page. Reorganized form fields and sections to provide more input space and reduce visual clutter;
- Expanded pointer target areas for icons in the Navigator, editors, and tabs according to the accessibility standards;
- Fixed a keyboard navigation issue for panels to keep the focus inside;
- Renamed "Database Native" authentication type to "Username/password" in the connection dialog;
- Fixed issue where the missing pg_dump utility caused errors during initialization or deployment updates when PostgreSQL was selected as the inner database.
- Databases:
- ClickHouse:
- Updated driver to version 0.9.5
- Added spatial data support
- Fixed an issue with displaying arrays of UUID, IPv4/IPv6, and Map types
- Fixed JSON data type reading
- Resolved an issue with CTE expressions
- DuckDB:
- Updated driver to version 1.4.4.0;
- Added support for the dollar-quoted string syntax for the SQL Editor
- Oracle: Added a new "Set Username to OS_USER" option in the Misc section of Oracle connection settings. Automatically uses the current database username as the operating system user identifier in session metadata when enabled;
- PostgreSQL: Added DDL display support for PostgreSQL policies.
[We are happy to reward](https://dbeaver.com/help-dbeaver/) our most active contributors every major sprint.
The most significant contribution to our code for the major release 25.1.0 was made by:
1. [0xhanh](https://github.com/0xhanh) - for Vietnamese localization.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.