* dbeaver/pro#9638 fix: update project filtering logic to use project IDs for active projects
Changed all four spots from reference equality to id comparison, matching the rest of the codebase, see https://github.com/dbeaver/cloudbeaver/issues/4430
* dbeaver/pro#9638 refactor(connectionUpdateHandler): move node to a new parent on change
* dbeaver/pro#9638 revert commit eb2ba7871e
* dbeaver/pro#9638 fix: update node parents on move in other session
Server events don't carry the actual data, so besides outdating (which lets the handlers invalidate the previous state, e.g. the old location in the navigation tree) we explicitly load the connection to guarantee that the handlers receive the actual state
* dbeaver/pro#9638 fix: sync connection folder move from another session
* dbeaver/pro#9638 fix: revert back connectionUpdateHandler
* dbeaver/pro#9638 fix: remove try catch
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Added changelog for version 26.1.3, including updates on data editor, general improvements, data transfer enhancements, accessibility features, security fixes, and database driver updates.
* dbeaver/pro#9704 fix: adjust combobox and select control outline properties
* dbeaver/pro#9704 fix: add control outline color and width for checkbox and radio components
* dbeaver/pro#9704 fix: set outline color and width for disclosure component
* dbeaver/pro#9704 refactor: add text overflow handling for combobox item values
remove tw:truncate because it adds hidden text-sm font-size
* dbeaver/pro#9704 fix: update combobox popover and item classes
* dbeaver/pro#9704 fix: correct portal handling in SelectPopover component
* dbeaver/pro#9704 fix: ensure correct portal handling in ComboboxPopover component
* dbeaver/pro#9704 refactor: rename ComboboxType to IComboboxType for consistency
* dbeaver/pro#9704 fix: line-height for combobox items
* dbeaver/pro#9704 style: remove unnecessary letter-spacing from combobox item
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#9502 feat: allow importing css files from core-blocks package
Plugins that build UI directly on ui-kit components need the CloudBeaver theme css for these components without importing the components themselves. Expose css files through package exports so a plugin can load them as a side effect.
* dbeaver/pro#9502 fix: update focus-visible styles for select component
* dbeaver/pro#9502 feat: add tokens for combobox items
* dbeaver/pro#9502 feat: load Select/Combobox base styles from core-blocks
ui-kit controls reuse these styles, but the CE wrapper components are lazy, so the CSS only shipped in the lazy chunk, we need those styles for widgets that use UI-kit controls
* dbeaver/pro#9502 feat: enhance Select component with value display styling
---------
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#8796 refactor: extract Execution Plan into separate plugin
Move all Execution Plan logic out of plugin-sql-editor into a new plugin-sql-editor-execution-plan. plugin-sql-editor no longer knows about execution plan and instead exposes generic extension points
Execution plan tab data now lives in-memory in SqlExecutionPlanService instead of the persisted editor state schema (these tabs are session-only).
* dbeaver/pro#8796 feat: add naming convention rule for exported interfaces
* dbeaver/pro#8796 fix: update js-helpers dependency version in yarn.lock
* dbeaver/pro#8796 refactor: reorder register method for better readability
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
in 6.7.0 they have broken the replaceNext functionality and until they fix it we lock on the working version
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#9436 feat: add isNumber and replaceMiddle utility functions
* dbeaver/pro#9436 refactor: move uuid helper into @dbeaver/js-helpers
Move uuid() from @cloudbeaver/core-utils into the portable @dbeaver/js-helpers so chart widget code can depend on it without pulling in CloudBeaver. core-utils re-exports uuid/V4Options/V1Options from js-helpers, so existing importers are unaffected; the uuid npm dependency moves to js-helpers.
* dbeaver/pro#9436 style: update copyright year in uuid_ file
* dbeaver/pro#9436 refactor: reexport isNumber and replaceMiddle functions from @dbeaver/js-helpers
* dbeaver/pro#9436 refactor: rename uuid file to uuid_ and update exports
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#8780 moves switch to ui-kit component + adds story
* redesigns switch
* fixes dense example
* fixes animations
* removes outline for whole area of switch
* adds tied to the input label
* adds innerChecked
* adds composition to the Switch component
* refactors switch API to make it more composable
* adds specifity to win css race with font weight for label
* fixes dense font weight
---------
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#9308 moves context menu from the cell level to table level
* cleanup
* adds DataGridMenuContextProvider
* uses context menu position from the hook useContextMenuPosition
* closes menu if cell is not visible
* adds useViewLeave hook to close menu if it is out of the view
* changes approach for re-opening menus + removes isMenuVisible logic
* removes redundant event prevent default and stopPropogation
* fixes focus stealing issue
* hides menu on scroll
* cleanup
* pr fixes
* cleanup
* uses cell key to open table
* pr fixes
* simplifies the menu api
* adds openMenuAt to reduce casting to mouse event while opening menu via shortcut
* cleanup
* removes isMenuOpened guard
* moves menu to the center of icon when opens from keyboard
* removes onClose handling and focus cell in sync workaround
* adds keyboard event handling for the context menu api
* compares cells with keys utils helper
* removes open menu at
* removes setContext
* cleanup
* simplifies interfaces
* fixes bug with menu not being able to rerender
* restores focus on close
* dbeaver/pro#9308 simplify logic
* adds closing menu on scroll
* pr fixes
* dbeaver/pro#9308 adds context menu sr-only for accessibility
* adds arialabel for icon button
* Revert "adds arialabel for icon button"
This reverts commit a830301f7a.
* adds span to make scrolling work
---------
Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#9525 register project-info plugin
* adds project info to the context menu
* adds project info form
* adds project options part info tab content
* separates logic with bootstraps
* removes unused locales
* pr fixes
* removes global and shared checkboxes
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#8684 feat: unlock autoscroll when dragging in data grid
* dbeaver/pro#8684 fix: don't select value panel and rows input in the toolbar on drag
as a bonus enhance data grid context menu accessibility to improve user selection behavior when we start dragging from the menu button
return selection only when the cell is edited
* dbeaver/pro#8684 refactor: add selection background color for input in editing cell
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#8782 migrates form controls from scss to css
* migrates all scss to css
* removes all scss mentions
* fixes input colors
* fixes thumb and link colors
* fixes padding & border errors (search panel & where filter)
* fixes disabled state for switches (input type="checkbox")
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
we mimic here the old input's behaviour, when we can't see the scroll but can navigate through the 1-line value with keyboard or mouse drag/selection
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#8486 feat: add DataReadonlyReason API for data sources
Previously TableStatusIndicator relied on model.isReadonly() which lost reasons. This caused the "Read-only connection" tooltip to show in grouping panel even on
editable connections — the connection wasn't read-only, the
presentation was.
Each data source now declares its specific reason via getReadonlyReason(). UI maps the typed reason to an accurate
message
* dbeaver/pro#8486 refactor: remove DataReadonlyReason references and use hasFeature flag
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#8424 adds shortcut top open/close context menu for the data editor
* moves helper into parseHotkeys + simplifies it
* adds unit tests
* adds autoFocusOnShow prop to support backward compatibility
* dbeaver/pro#8424 use current state
* adds few test cases for the extra buttons pressed
---------
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/cloudbeaver#4138 feat: support inline editing of multi-line values in data grid cells
- TextEditor: switch <input> to <textarea rows=1> so newlines are preserved when editing. Suppress the trailing insertLineBreak from the Enter that opens the editor (would otherwise wipe the auto-selected value).
- ResultSetFormatAction.truncateText: substitute \n, \r, \r\n, \t with
visible glyphs (↵, ␍, →) and collapse other control chars to a space
in a single pass.
Perf note: the new replace should be faster than the prior
split('') + map + join. No intermediate array allocations, and the
callback runs only on matched chars (which are sparse in display text). \p{Cc} also expands coverage from charCode < 32 to include DEL and C1 controls (U+007F, U+0080–U+009F). (closer to Dbeaver behavior)
* dbeaver/pro#4138 feat: show raw text in title for text cells
* dbeaver/pro#4138 treat one cell differently
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
Added changelog for version 26.0.5, detailing new features, fixes, and updates across various components including authorization, data editor, SQL editor, database drivers, and security improvements.
* dbeaver/pro#8294 allows to refresh only connection root nodes for non-established connections
* renames variable
* checks if connection is connected to refresh it properly
* adds node check instead of connection directly
* dbeaver/pro#9046 adds vertical tabs for execution plan to add more space for new button or panel with buttons
* adds ask AI feature for execution plan
* removes editor id and uses context state
* makes ai feature spotlighted in the ui
* rotates the icon also
* removes bold label
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#8810 adds cancel action for auth via link
* lint fix + handles edge case when no popup appeared
* reverts eslint fix
* adds synchronization to connection init with oauth cancelling to remove stuck loading state
* reverts abort logic
* removes onAuthCancelled
* dbeaver/pro#8416 adds masks for connection fields with password
* adds placeholder for password with mask
* Revert "dbeaver/pro#8416 adds masks for connection fields with password"
This reverts commit 4f89c46207.
* keeps old translation for file
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#8943 updates yarn locks
* updates vite
* updates vite-plugin-svgr
* removes CVEs
* reverts vite to update it later
* updates yarn lock
* updates yarn lock
* updates uuid
* removes axios CVE
* reverts @codemirror/search in order to fix the issue with replace 1 symbol (broken focus next)
* locks versions of other codemirror packages in order to keep versions consistent
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
This PR implements dynamic generation of the manifest.webmanifest file to respect the CLOUDBEAVER_ROOT_URI environment variable configuration. Previously, the manifest was a static file with hardcoded values that didn't adapt to custom ro
ot URI configurations.
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#7562 feat: persist data editor filter state after reconnect
* dbeaver/pro#7562 feat: update data viewer to persist filter state
* dbeaver/pro#7562 feat: enhance constraint resolution in WebSQLDataFilter
allow using attrName without attrPosition
* dbeaver/pro#7562 refactor: don't use options
replaced private restorePendingState() with public restoreViewState(pinnedColumnNames, columnOrderNames?) that takes data directly as arguments
* dbeaver/pro#7562 fix: stale constraints in UI
bug with skipping constraints if any without a position.
if (!prevColumn) {
return;
}
* dbeaver/pro#7562 refactor: add method to retrieve pinned column names in GridViewAction
* dbeaver/pro#7562 refactor: simplify state validation using schema
* dbeaver/pro#7562 refactor: simplify state management in useDataViewerPanel
* dbeaver/pro#7562 refactor: move persisted state to IDataViewerPageState
* dbeaver/pro#7562 fix: initial pageState
* dbeaver/pro#7562 refactor: simplify getPinnedColumnNames method in GridViewAction
* dbeaver/pro#7562 refactor: shadowed column renamed to c for clarity
* dbeaver/pro#7562 refactor: change type of value in IPersistedConstraint to unknown
* dbeaver/pro#7562 refactor: remove manual state operations
* dbeaver/pro#7562 refactor: introduce DatabasePersistedStateAction for centralized state persistence
* dbeaver/pro#7562 fix
* dbeaver/pro#7562 refactor: replace reaction with when
* Revert "dbeaver/pro#7562 feat: enhance constraint resolution in WebSQLDataFilter"
This reverts commit 3e0e86f4b2.
Last test showed that we don't need any additional logic on BE. It handles all constraints properly.
* dbeaver/pro#7562 fix: make pinColumns optional
* dbeaver/pro#7562 refactor: simplify pinned column handling
* dbeaver/pro#7562 refactor: initialize store in DatabasePersistedStateAction constructor as observable
* dbeaver/pro#7562 refactor: rename getColumnNameByPosition to getColumnNameAt for clarity
* dbeaver/pro#7562 refactor: move DatabasePersistedStateAction to source level, simplify persisted state sync
- Make DatabasePersistedStateAction a standalone class on DatabaseDataSource instead of per-result action
- Convert options to getter
- Auto-sync constraints to persisted state via autorun + action batching
- Restore view state (pinned columns, column order) in GridViewAction constructor
* dbeaver/pro#7562 refactor: replace DatabasePersistedStateAction with DatabasePersistedStateStore and update related references
* dbeaver/pro#7562 refactor: simplify view-state persistence
- DatabasePersistedStateStore: pure KV (observable.ref + actions)
- DatabaseDataSource: add loadPersistedState() + onPersistedStateLoaded() hook
- DatabaseDataConstraintAction: own the constraint persist
- ResultSetDataSource: thin dispatcher
- GridViewAction: columnsOrder/pinnedColumns become computed getters
* dbeaver/pro#7562 refactor: create universal ColumnReference
* dbeaver/pro#7562 refactor: simplify persistence flow, remove extra guards, simplify persisted data filter state handling
* dbeaver/pro#7562 refactor: simplify GridViewAction column-ref handling and layout resolution
* dbeaver/pro#7562 refactor: per-key reactive persisted state store, drop constraint persistence hacks
* dbeaver/pro#7562 refactor: simplify setOptions method to use superclass implementation
* dbeaver/pro#7562 add missing fields
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
* dbeaver/pro#7880 adds MVP for saving script to cloud storage
* removes registerScriptExportController
* finalizes the ui
* adds missing locales
* introduces footer slot to use CommonDialog api
* adds locales
* moves success message to the tab components itself
* pr small fixes
* saves file with timestamp
* send notification with correct filename
* fixes locales
* uses different approach for handling dialog save
* cleanup
* self review fixes
* adds lazy import for export dialog
* uses form API to save the dialog
* fixes imports (tab -> panel)
* uses react state for filename
* build fix
* handles form validation
* sanitizes file name
* removes redundant form layout
* fixes bug: allows to load tree root with useTreeData
* uses context api to resolve export script dialog instead of throwing errors approach
* dbeaver/pro#7880 do not show notification on local export
* dbeaver/pro#7880 remove notification from local export
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
- Use Math.log10 instead of toString().length to count integer digits — toString() on a float
like 4036.29 has length 7, which incorrectly bucketed thousands-range values into millions
- Fix exponent formula for 3n-digit numbers (e.g. 100000 gave exponent=6→M instead of 3→k)
- Apply precision param d below 1000 (was hardcoded 2); default to 2
- Add formatNumber.test.ts
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#8236 adds submenus for the connection tree
* adds disabled state for submenu with no items
* removes variable
* loads first menus then draws it
* reverts submenu fix
* splits manage handlers from root handlers
* removes loader for manage menu to prevent bug
* cleanup
* removes action leaks for tables
* removes leak of the action delete
---------
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#7251 feat: add skip navigation feature for improved accessibility
* dbeaver/pro#7251 refactor: replace direct import with lazy loading for SkipNavLinks and SkipNavShortcutsLink
* dbeaver/pro#7251 refactor: use css modules for skip nav styles
* dbeaver/pro#7251 refactor: remove SkipNavBootstrap
* dbeaver/pro#8572 fixes password validity on blur
* Revert "dbeaver/pro#8572 fixes password validity on blur"
This reverts commit cefd174254.
* adds context to the form for correct validation + handles validation on change also to keep the actual validity state
* adds context check to prevent validation inconsistent behavior
* adds revalidate to handle depended validations cases
* adds useFormCustomInputValidation
* cleanup
* uses useFormCustomInputValidation to avoid regression after refactor
* dbeaver/pro#8518 adds message for string parameters
* aligned message with dbeaver: "string values must be quoted"
* reverts branding and uses it optionally for bind parameters popup
* renames prop
* makes few versions of alert
* Revert "makes few versions of alert"
This reverts commit 5b9f09009e.
* adds gray message
* adds icon
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* 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
* dbeaver/pro#5241 fix: input doesn't create label wrapper if label is not provided
* dbeaver/pro#5241 fix: link label to input inside InputFieldBase
* dbeaver/pro#5241 fix: make required field asterisk invisible for assistive technologies
* dbeaver/pro#5241 fix: link FieldLabel to textarea with generated id and add aria-label for accessibility
even with linked label, voiceOver doesn't pronounce label when focusing textarea, that's why aria-label is used there
* dbeaver/pro#5241 refactor: force aria-label for input field
* dbeaver/pro#5241 refactor: change role for snackbar
aria-live polite works with aria regions which initially empty and then dynamically populated with some data. If we want assistive technologies read initial content, we need to use alert role.
also hide icon from assistive technologies (no additional information from that)
* dbeaver/pro#5241 refactor: remove aria-label from input
use native htmlFor
* dbeaver/pro#5241 refactor: remove aria-label from Textarea component
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Removed active state from Options component resources because it unload resources when we switch to other tabs which leads to broken connection form state and entails data inconsistency.
For example, the check driver?.useCustomPage fails because driver resource has been unloaded and the component renders standard Parameters from instead of custom taking state from the wrong destination.
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#5998 fix: selectAll index header cell
* dbeaver/pro#5998 fix: removed OrderButton from tabbing order, add sorting on space/enter when header column cell is in focus
* dbeaver/pro#5998 feat: add onHeaderKeyDown handler to DataGrid and HeaderCellContentRenderer
we lost ability to copy data grid cells' data when one of the header cells is focused, because the header cell renderer was not handling keydown events. This commit utilizing gridSelectedCellCopy.onKeydownHandler inside HeaderCellContentRenderer keydown event handler
* dbeaver/pro#5998 style: change onKeyDown to a named function
* dbeaver/pro#5998 refactor: simplify OrderButton and update sorting logic in HeaderCellContentRenderer
* dbeaver/pro#5998 refactor: rename container class to clickAreaOverlay in TableIndexColumnHeader, remove z-index
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#6038 fix: can't click on checkbox in OutputLogMenu
* dbeaver/pro#6038 refactor: update menu item and tree node styles
replace theme-ripple classname with in-place styles for hover and active states
* dbeaver/pro#6038 refactor: move pointer events none in MenuItemIcon class
* Revert "dbeaver/pro#6038 refactor: update menu item and tree node styles"
This reverts commit 2c2fdc2e8d.
* dbeaver/pro#6038 revert changes made in this branch and #5997, #5989
previous manipulations with theme-ripple class has broken our UI in several places. this PR returns to the state before #5989 when only CloudExplorerTree was broken
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* dbeaver/pro#5242 refactor: update TableItemExpand component
replace a div with IconButton and clean up CSS
* dbeaver/pro#5242 refactor: adjust outline offset for icon button
Usually icon buttons are used inside other components or in small places, so they tend to overflow over their container with a standard button outline offset. I believe that offset 0 is the better default for the IconButton.
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6017 adds new ui spinner to loader
* removes unused code
* pr fixes
* changes loader animation
* dbeaver/pro#6017 fix: remove class names that don't exist
* dbeaver/pro#6017 fix: remove cloudbeaver spinner animation adjustments
* dbeaver/pro#6017 feat: introduce animation delay variable for spinner
Make the initial appearance of the spinner better by starting from semi-filled circle, not the tine dot which is crucial on fast loads.
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Sychev Andrey <nukemoore@gmail.com>
* dbeaver/pro#4745 fix: useTreeFilter UX bug
When a user searched for a term (e.g., 're') and found a matching node in the middle of the tree, the user expected to expand that node and see all its children.
But the filter was also being applied to the children, hiding non-matching children. This created a confusing experience where expanding a found node might show empty or partially empty results
In new implementation Tree shows ALL children without filtering if parent node matches filter.
* dbeaver/pro#4745 refactor: update children prop type and usage in AuthenticationProvider
* dbeaver/pro#4745 refactor: replace Loader with Spinner in TreeNodeExpand
* dbeaver/pro#4745 refactor: update typography styles with global typography styles
* dbeaver/pro#4745 feat: add naive tree selection functionality with useTreeSelection hook
* dbeaver/pro#4745 feat: enhance tree selection with loading state management
* dbeaver/pro#4745 feat: add indeterminate selection state management in tree component
* dbeaver/pro#4745 feat: add multiple selection prop in tree component
* dbeaver/pro#4745 refactor: improve indeterminate state management in tree selection
* dbeaver/pro#4745 feat: add expandOnSelect prop to tree and selection hooks
* dbeaver/pro#4745 refactor: adjust padding in CommonDialogHeader styles and fix formatting
* dbeaver/pro#4745 refactor: implement tree selection context for improved node selection management
* dbeaver/pro#4745 style: update padding-left to use CSS variable for treeNodeNested
* dbeaver/pro#4745 refactor: remove redundant state update for empty child nodes in expandNode
It make no sense to close just expanded node if there is no children. User will lost the information about that and could try to open it again later. It's better to keep expanded state to show that this node is empty.
* dbeaver/pro#4745 style: fix lint
* dbeaver/pro#4545 fix: remove useLayoutEffect with focus in TreeNodeControl
This auto focus behavior entailed several bugs like stealing focus from filter input or breaking custom node elements like menu on hover. Decided to remove.
* dbeaver/pro#4745 refactor: make useTreeSelection hook public
* dbeaver/pro#4745 refactor: update tree selection logic and remove unused properties
* dbeaver/pro#4745 refactor: remove async
* dbeaver/pro#4745 refactor: remove duplicated typography styles
* dbeaver/pro#4745 refactor: update selection
* dbeaver/pro#4745 refactor: simplify selection state management in useTreeSelection
* dbeaver/pro#4745 refactor: optimize selection logic in useTreeSelection
* dbeaver/pro#4745 fix: revert children type
* dbeaver/pro#4745 style: lint
* dbeaver/pro#4745 refactor: expose process action from tree node context
* dbeaver/pro#4745 refactor: remove optional showInFilter property from INodeState interface
* dbeaver/pro#4745 refactor: simplify indeterminate state updates and optimize child selection handling
* dbeaver/pro#4745 fix: bug with bad selection state when select with filters
* dbeaver/pro#4745 refactor: update selection context and method names in tree selection
* dbeaver/pro#4745 feat: add disabled prop to Node component
* dbeaver/pro#4745 refactor: remove disabled prop from Node interface
clean unused TreeNodeSelect code
* dbeaver/pro#4745 add action.bound for processAction
* dbeaver/pro#4745 fix: close/deselect node if loading failed
* dbeaver/pro#4745 feat: enhance tree filter functionality with expanded state management
parent nodes are expanded if node matches with filters. When filters are cleared, the tree restores it's unfiltered expand state
* dbeaver/pro#4545 feat: integrate notification service to show errors on load
* dbeaver/pro#4745 fix: don't select empty folders
* Revert "dbeaver/pro#4545 feat: integrate notification service to show errors on load"
This reverts commit c1fd855a94.
* dbeaver/pro#4745 feat: add state transformer to tree filter for expanded state management
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#6018 fix: context menu disappears on cells with an interactive formatter
add menu visibility handling to cell formatters
* dbeaver/pro#6018 refactor: rename handleStateSwitch to handleCellMenuStateSwitch for clarity
* dbeaver/pro#6018 refactor: rename menu visibility properties for clarity
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* dbeaver/pro#5800 refactor: InputFieldBase
update InputField by swapping native input by Input from ui-kit, replace inner action icons to IconButton components, and replace Loader with Spinner component
* dbeaver/pro#5800 fix: enforce border and min-height styles in InlineEditor
* dbeaver/pro#5800 feat: add size prop to Filter component for responsive input sizing
* dbeaver/pro#5800 feat: add UiInput tokens for input component
removes hover effect on inputs by using the same token as for default border
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* dbeaver/pro#5789 refactor: add ButtonIcon component instead of Button.Icon
* dbeaver/pro#5789 refactor: button components across whole application to use UIKit button and UIKit variables
- Rewrite Button.css(former button.module.css) file to define button styles for better maintainability and scalability
- Added props to the Button component for Icons: 'size' and 'placement', currently used only in PropertiesTable (Add property)
- Changed button modifiers to 'variant' swapping unelevated mod to primary(default one, so mod just deleted) and outlined mod to variant secondary.
- In one case changed raised mod to danger variant (deleting a license)
* dbeaver/pro#5789 refactor: fix Button component styling and removed redundant css file
* dbeaver/pro#5789 style: clean up button formatting across multiple components
* dbeaver/pro#5789 refactor: update Tailwind CSS import to use layer directive
* dbeaver/pro#5789 refactor[kit]: add disabled state styles for buttons
* dbeaver/pro#5789 refactor: enhance button styles for disabled state
* dbeaver/pro#5789 fix button problems
* dbeaver/pro#5789 fix: change layer name from theme to base in color styles
* dbeaver/pro#5789 refactor: update button padding from 16px to 15px
* dbeaver/pro#5789 refactor: adjust button gap and update InputFiles button props
* dbeaver/pro#5789 style: center align button in SSHKeyUploader component
* dbeaver/pro#5789 fix: update button classes to use inline-flex for better alignment
* dbeaver/pro#5789 fix: remove initial background from tab styles
* dbeaver/pro#5789 fix: move cursor pointer rule to button container
* dbeaver/pro#5789 fix: update checkbox SVG fill property for proper rendering
* dbeaver/pro#5789 fix: add variant prop to Button component for styling options
* dbeaver/pro#5789 fix: add InlineEditor to CSS layer to compete with theme Important! border-color
* dbeaver/pro#5789 fix: add min-width to button styles for consistency
* dbeaver/pro#5789 refactor: adjust margin for trigger element in context menu
first of all it's done to fix autotests and the second reason is to visually balance the cell with menu
* dbeaver/pro#5789 fix: make boolean great again
---------
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: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
* dbeaver/pro#5553 feat: add column sorting functionality to DataGrid
* dbeaver/pro#5553 feat: enhance column sorting functionality to support multiple selection
* dbeaver/pro#5553 feat: add keyboard navigation to order button
* dbeaver/pro#5553 feat: add constraints handling logic for column sorting in DataGrid
* Revert "dbeaver/pro#5553 feat: add constraints handling logic for column sorting in DataGrid"
This reverts commit 6028a48b13.
* dbeaver/pro#5553 feat: add icon generation script to UIKit, add sample icons
* dbeaver/pro#5553 refactor: use inner react-data-grid API for column sorting
* dbeaver/pro#5553 feat: add IconCross component and update icon-related files
* dbeaver/pro#5553 feat: replace Button with IconButton in OrderButton component
* dbeaver/pro#5553 style: update foreground color variables for IconButton component
* dbeaver/pro#5553 refactor: add normalization rules to layers, use IconButton in Common DialogHeader
checked if new IconButton works well in light and dark mode by using in CommonDialogHeader
* dbeaver/pro#5553 style: format code and update dependencies in CommonDialogHeader and DataGridTable components
* dbeaver/pro#5553 style: move onColumnSort prop to correct position in DataGridTable component
* dbeaver/pro#5553 refactor: remove icons component generation, use svg sprite
* dbeaver/pro#5553 refactor: update OrderButton component and inline icons sprite in Body
we decided to go with this solution for now just adding icons to a sprite and use them by id. Imports by ?url don't work in VSCode if try to use them in <use> href, so we need to find another solution or stick to that approach.
* dbeaver/pro#5553 refactor: update column sorting and sortable logic in DataGrid components
* dbeaver/pro#5553 style: format whitespace in Body component
* dbeaver/pro#5553 feat: add new sorting icons for ascending, descending, and unsorted states
* dbeaver/pro#5553 refactor:styling for header cell and order button components
* dbeaver/pro#5553 refactor: update sorting logic in DataGrid and OrderButton components
* dbeaver/pro#5553 refactor: value deps
* dbeaver/pro#5553 feat: update sorting icons for ascending, descending, and unsorted states
* dbeaver/pro#5553 style: update aria-label and title for OrderButton component
* dbeaver/pro#5553 fix: double focus
* dbeaver/pro#5553 fix: after merge
* dbeaver/pro#5553 refactor: removed outline offset for sort button
* dbeaver/pro#5553 refactor: update Tailwind CSS import to use layer directive
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Alexey <wrouds@gmail.com>
* dbeaver/pro#5745 updates frontend deps
* updates graphql-request
* updates yarn locks for common-typescript, common-react
* updates engines node version
* react-hotkeys-hook + fixes hotkeys so it continues to work
* code cleanup for parseHotKey
* uses fixed version of tailwindcss
* adds 4.0.6 versions for tailwindcss with resolutions
* reverts tailwind 4.0.6 version for yarn.lock
* removes redundant resolutions for tailwindcss
* Update readme.md with new NodeJS version
* Update README.md with correct nodejs version according to our documentation
* updates talewindcss version 4.0.7
* fix: hotkeys types
---------
Co-authored-by: Wroud <wrouds@gmail.com>
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#5554 feat: first iteration of IconButton
* dbeaver/pro#5554 refactor: css var changes
* dbeaver/pro#5554 feat: add loading state to IconButton component
* dbeaver/pro#5554 style: update background color for loading state in IconButton
* dbeaver/pro#5554 feat: separate icon button styles and loader variables
* dbeaver/pro#5554 refactor: extract ButtonRoot component to use as a base for Button and IconButton components
That approach lets us use common logic (loading) but don't mixup styles and tokens and have better control
* dbeaver/pro#5554 refactor: update loading state styles for IconButton component
* dbeaver/pro#5554 refactor: ButtonRootProps
* dbeaver/pro#5554 refactor: remove opacity from loading state in Button and IconButton components
* dbeaver/pro#5554 refactor: create content wrapper, move general styles there, add loader wrapper
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* Revert "dbeaver/pro#5214 get timestamp with calendar fix (#3423)"
This reverts commit 7b0c6ebe66.
* Revert "dbeaver/pro#5214 set timestamp with utc calendar fix (#3404)"
This reverts commit 0095cc8d37.
* #5490 feat: create basic spin component
* #5490 refactor: use new Spin component in button loading state
* #5490 refactor: add tokens to Spin component
add SpecialLoader story to show how to change Spin appearance for special use cases
* #5490 fix: reverts f4d9b6b101
Element should not get focus visible after mouse interactions
* 5490 fix: lost dash
* #5490 refactor: rename Spin to Spinner
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* #5362 refactor: move blob formatter to shared codebase
* #5362 refactor: remove value prop from BlobFormatter
* #5362 refactor: move some of result set value checkers to common
* #5362 feat: update some result set api methods
make value type for safe using unknown instead of any,
added string fallback representation for complex values
* fix: getStringFallbackForComplexValue
* #5362 fix: getStringFallbackForComplexValue always cast to string
* #5362 fix: format
* #5362 chore: update deps
* #5362 fix: double imports
* #5362 fix: yarn lock
* chore: update yarn
* fix: reset yarn lock to devel state
* #5362 ci: change chunking
Previous implementation couldn't handle cyclic dependencies correctly. We noticed it in that ticket because we started to move some logic to common packages and changed existing packages connections. I tried many options to organize chunks from very simple(just putting everything to one bundle) to very complex(by adding helper to find circular deps between modules and putting them to one chunk) but none of them looked ideal. Complex solution is prone to errors, especially with vendor packages. I find this solution at least bearable until Vite ships Rolldown, then we can rethink it one more time.
* #5362 fix: arrow-body-style
* fix: improve chunk splitting
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Wroud <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* CB-5774 add connection brute force protection
* CB-5774 api for additional info of disabled user
* CB-5774 fix deserialization
* CB-5574 adds disabled user info in editing user form
* CB-5774 save all connect errors to db
* CB-5774 resolve conflicts
* CB-5774 resolve conflicts
* CB-5574 fixes userId
* CB-5774 fix fetch user and test
* CB-5774 resolve conflicts
* CB-5774 handle brute force on desktop
* CB-5774 fix send event for killing user sessions
* CB-5774 build fix
---------
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Wroud <wrouds@gmail.com>
* CB-4067 adds connection form state, service and options part
* CB-4067 adds connection origin info tab to new form
* CB-4067 adds SSH part
* CB-4067 adds driver properties part
* CB-4067 changes driverId and submitType location for connection form
* CB-4067 adds SSL part
* CB-4067 adds connection form access part
* CB-4067 uses new form parts for connection form
* CB-4067 resets form on open
* CB-4067 fixes configure case for connection form
* CB-4067 adds selected driver on edit mode form
* CB-4067 reloads form when it is needed
* CB-4067 adds button actions for the form
* CB-4067 adds notifications on form save/error
* CB-4067 fixes form ssl saving and driver properties
* CB-4067 refactors some parts
* CB-4067 refactors form options part so it works fine
* CB-4067 fixes driver properties part
* CB-4067 fixes SSH part
* CB-4067 fixes SSL part
* CB-4067 fixes Access part
* CB-4067 refactors origin tab
* CB-4067 refactors shared credentials part
* CB-4067 fixes: secret providers, SSH, SSL, test - features
* CB-4067 removes refactor postfix for new state, service and types
* CB-4067 fixes connection test
* CB-4067 cleanup
* CB-4067 gets back ask credentials window and removes connectionCredentialsStateContext
* CB-4067 adds translation to test connection success message
* CB-4067 fixes ssh and ssl adding to networkHandlers. also fixes extra request for driver properties
* CB-4067 fixes host and port for switching connections
* CB-4067 removes redundant code
* CB-4067 fixes exception error on retest connection + fixes SSH field key saved incorrect prop
* CB-4067 cleanup testContext info
* CB-4076 fixes SSH and SSL ask credentials and parameters saving for both: test and submit connection create/edit action
* CB-4067 fixes access tab reminder
* CB-4067 fixes handling of info message for cloud connection origin tabs
* CB-4067 fixes checkboxes behavior for TE shared credentials feature
* CB-4067 fixes create connection template popup SSH form
* CB-4067 fixes notification for closing ask credentials popup if before we had an error of test submit
* CB-6115 adds dispose API for forms
* CB-6115 adds git workspace helper extension for repo recommendations
* CB-4067 cleanup
* CB-6115 pr fixes
* CB-4067 gets back behavior with dispose connection form state
* CB-4067 cleanup
* СB-4067 splits states to ui and form part in access form part
* СB-4067 pr fixes
* CB-4067 removes config from form state
* CB-4067 removes console warnings + clean up
* CB-4067 moves synchronization mechanisms from ConnectionFormState to ConnectionOptionsFormPart
* CB-4067 fixes bug with incorrect host or port during search or changing driverId during connection creation
* CB-4067 fixes opening connection forms from different entry points so it shows consistent initial data
* СB-4067 brings back saving the form
* CB-4067 fixes logic of showing popup askCredentials
* CB-4067 fixes origin tab name so it shows correctly + fixes unneeded loaders of resources
* CB-4067 reverts isOutdated
* CB-4067 fixes loading of driver properties
* CB-4067 cleanup for connection access part
* Revert "CB-4067 reverts isOutdated"
This reverts commit ecb195ee2a.
* CB-4067 adds isOutdated to the parts
* CB-4067 fixes origin tab info message
* CB-4067 fixes driver properties state + origin info status message shows on load
* CB-4067 fixes password autofill during form save
* CB-4067 fixes linter
* CB-4067 fixes linter
* CB-4067 cleanup + fixes bug with search database host,name fields
* CB-4067 linter fix
* CB-4067 pr fixes
* CB-4067 removes unused post handler for formstate loaded task
* CB-4067 small pr fixes
* CB-4067 adds setDriver + handles name autocomplete
* chore: review
* CB-4067 connection part correct loading
* CB-4067 adds formState.state.connectionId default value
* refactor: pr review
* CB-4067 fixes bug with infinite loading of the origin info details
* CB-4067 fix: allows askCredentials to edit fields + does not affects part state
* CB-4067 resets driver properties if changed driverId
* CB-4067 updates yarn lock for common-react
* CB-4067 lint fix
* CB-6265 fix: do not include index files for import/export eslint rules
* CB-4067 fixes behavior for aksCredentials so it acts correctly during testing/saving/editing inputs for the form
* CB-4067 cleanup
* CB-4067 fixes connection templates initial loaded state
* CB-4067 pr fixes: dialog credentials; adds todo to the ssh tab; eslint revert; cleanup
* CB-4067 makes askCredentials to be part state independent
* CB-4067 qa fixes: test translation + removes db name form connection name
* CB-4067 adds readonly state for connection form
* CB-4067 fixes application freezes on disconnect
* CB-4067 fixes empty properties when switching cloud connections
* CB-4067 connection is created -> connection was created
* CB-4067 connection is updated -> connection was updated
* CB-4067 fixes outdated logic for parts
* CB-4067 build fix
* CB-4067 fix: do not show askCredential popup for drivers with only anonymous access
* CB-4067 removes includeCredentialsSaved
* CB-4067 removes includeAuthProperties
* CB-4067 removes customIncludeOptions
* CB-4067 removes includeProperties
* CB-4067 removes includeProviderProperties
* CB-4067 removes includeNetworkHandlers
* CB-4067 refactors isOutdated for originInfoPart and AccessPart
* CB-4067 removes savedCredentials resource + updates CustomOptionsResource + reuses new include resources in connection form components
* CB-4067 reverts spreading of new connectionInfoResources
* CB-4067 fixes sharedCreds checkbox default value on form switch
* CB-4067 closes connection form when layout closes
* CB-4067 disposes connection form on change
* CB-4067 handles closing of the connection form correctly
* Revert "CB-4067 handles closing of the connection form correctly"
This reverts commit 3a6f1a6a0a.
* CB-4067 handles closing of the connection form correctly [2]
* CB-4067 fits info messages in one line
* CB-4067 presaves isChanged state for form part before applying initialState to prevent bugs
* CB-4067 fixes length of the error message for connection form top bar
---------
Co-authored-by: Alexey <wrouds@gmail.com>
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#5440 feat: display boolean as checkbox in grid
* #5440 refactor: make checkboxes disabled inside grid
It's a very strange UX when checkbox is inside a cell of a table and behaves like a real one. It's much more expected when only cell takes focus and checkbox only represents the value in a way we want without acting like a real input. Moreover, using Focusable component enables smooth toggling between all 3 states of a boolean cell from a keyboard.
* #5440 fix: remove inline padding
* #5440 feat: add hover effect for boolean formatter
* #5440 refactor: revert full width
* #5440 refactor: split onClick and onKeyDown interfaces
* #5440 fix: return onClick
---------
Co-authored-by: Andrey Sychev <nukemoore@gmail.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* СB-6265 sets up vitest instead of jest
* CB-6265 gets back core-utils tests
* СB-6265 gets back react-testing-library tests
* СB-6265 gets back some tests from another plugins
* CB-6265 renames dist -> lib in each plugin + removes all jest from the repo
* CB-6265 disables watch mode so build can go on
* CB-6265 extends tests types for react-testing-library
* CB-6265 reverts dist->lib rename cause it contains other assets also
* CB-6265 moves setupFiles to the vitest.config.ts
* CB-6265 pr fixes
* CB-6265 fixes tests run for Windows
* CB-6265 removes global: true in config + uses jest-dom/vitest lib to have extended expect types
* CB-6565 removes unused deps
* СB-6265 improves performance of the test x10 times
* CB-6265 gets back renderInApp, fixes vitest setup reset config for mocks, cleans up
* CB-6265 reset -> restore all mocks
* CB-6265 fixes unit tests
* CB-6265 vitest.setup.ts cleanup
* CB-6265 timestamp to date shows military time both: on unix and windows (win tests fix)
* CB-6265 improves tests running (sequential run instead of parallel)
* CB-6265 cleanup
* CB-6265 eslint fix
* CB-6265 eslint fix 2
* CB-6265 reverts useCombined handler
* CB-6265 reverts some tests
* CB-6265 removes all redundant timer configs
* Merge branch 'devel' into CB-6265-return-front-unit-tests-after-migration
* CB-6265 pr fixes
* CB-6265 fixes time for windows
* CB-6265 removes default fake timers before each test
* #5140 fix: duplicate hotkeys should work in tables without primary key
* #5140 fix: force update table data on save if model doesn't have element identifier
* #5140 refactor: move refresh model logic to datasource saveData method
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-6296 fix: delete keystroke marks selected row for deletion
* CB-6296 fix: focus first element on load, remove extra handler
It was noticed that just after the open, onKeyDown event doesn't reach DataGrid, because focus was not in sync with lib.
Also fixes CB-6229 since they have the same root problem with encountered bag
* CB-6286 refactor: change onCellKeyDown handler interface inside DataGridProps
* CB-6296 refactor: set initial focus differently
* CB-6296 refactor: remove manual scroll control
We use grid inner scrollToCell method and don't need additional native scrolling
* refactor: don't expose inner data-grid type
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Alexey <wrouds@gmail.com>
* chore: add clsx dependency to ui-kit
* chore: import clsx from ui-kit
* refactor: use clsx for class management in Button
* refactor: use clsx in Checkbox
* refactor: use clsx in Input component
* feat: use clsx in radio and radiogroup
* feat: use clsx in Select component
* feat: reexport VisuallyHidden and Focus trap components from ariakit
* refactor: rename css variable in order to be more descriptive and stick to the naming convention
* refactor: unify controls, add new global control css variables
* feat: add radio component
* docs: add radio stories
* docs: add input docs story
* docs: add simple form story
* refactor: change default radio dot size
* refactor: change class name for radio children wrapper
* refactor: don't reexport inner radio elements
* refactor: simplify RadioGroup interface by removing items props, make label(any) required
The radiogroup must have an accessible name either by a visible label referenced by aria-labelledby or has a label specified with aria-label.
https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Reference/Roles/radiogroup_role
* refactor: use label wrapper for input component to simplify structure
* refactor: add classname for radio group container
* CB-6271 add timeout of inaction in configuration mode
* CB-6271 add timeout of inaction in configuration mode
* CB-6271 add timeout of inaction in configuration mode
* CB-6271 add timeout of inaction in configuration mode
* CB-6271 fix insecure default configuration set timeout to 2 mins
* CB-6271 fix insecure default configuration set timeout to one min
* CB-6271 handle configuration error properly
* CB-6271 catch unhandled error on validation step
* CB-6271 add return type
* CB-6271 fix insecure default configuration set timeout to one min
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: naumov <iamemptyhuh@gmail.com>
* CB-6207 add order to setting group
* CB-6207 use method instead of const value
* CB-6207 remove const
* CB-6207 sort on tree level
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* feat: add simple select
* feat: add items states vars and popover animation
* feat: add SelectField component
* feat: select field uses getters to get value/label/selected value, update stories to demonstrate
* docs: update select stories
* refactor: remove margin top because we use gutter in SelectField and for reexported aria popover we don't want to setup such default
* fix: select field - set not the very first value by default, but the first not disabled value
* refactor: add popover height variable, remove padding to look more like select in cloudbeaver by default
* feat: add styles for Select Field description
* refactor: rename properties
* refactor: remove redundant docs for props, remove placeholder props because it's not how aria select is supposed to work, you need to use extra select item to create a placeholder
* refactor: remove support for property path, keep only support for property name or custom getter in sake of simplicity and ease of maintenance
* fix: story for key getters
* fix: return type
* fix: don't set disabled value if all items are disabled
* fix: controlled mode, respect value prop over selectedValue
* refactor: remove width property
* refactor: typesafe key getter
The type iterates through every property key in ItemType.
For each property key, it evaluates whether the property's type is assignable to ValueType and creates a union type of all keys that passed the type check
* refactor: fixes after merge and item hover variable
* fix: input
* feat: add custom arrow icon prop
* refactor: remove ability to use object keys as getters, rename options to items in all places
* fix: rename token
* feat: add ui-kit package to common-react
* feat: add tailwind and ladle to ui-kit, use ui-kit in ce
* feat: create custom properties for button and checkbox using tailwind values as default
* feat: create simple button with 2 variants
* feat: create simple checkbox
* refactor: update after rebase
* feat: experiments with button and checkbox
* feat: add buttons sizes, adjust btn loader, add interactive story instead of many stories
* fix: add license
* fix: a11y issues with color contrast
* fix: mdx stories support
* feat: experiments with icons
* feat: try custom rendering
* docs: add small kinda docs for button
* refactor: css layers
* chore: deps
* chore: remove buildinfo from git
* chore: remove tsbuildinfo from git
* fix: vertical tab overflow
* feat: use UIKit button as base for Cloudbeaver button
* fix: box-sizing problems
* refactor: button styles use BEM model
* refactor: separate base tokens from aliases
* refactor: add some defaults, write all properties in snake case
* refactor: rename button classes, add ui-kit prefix
* refactor: remove redundant story, omit a couple of props, add example to ladle
* refactor: add general sizes tokens, update license
* feat: add scaffold for input component
* refactor: update deps
* refactor: remove links
* refactor: change props naming, add prefixes in checkbox, removes validation nodes in input
* refactor: partially revert "feat: use UIKit button as base for Cloudbeaver button" to keep the old Button interface without changes
Original commit SHA: 62bb1fe9a0.
* Revert "refactor: update deps"
This reverts commit f7d6533967.
* refactor: update deps once again
* refactor: rename ui-kit prefix
* chore: update deps
* refactor: Button Icon Interface
* refactor: use JSDoc for placement comment
* refactor css custom props for Button
* refactor: introduce opacity custom property, fix icon margin property
* fix: button text should not wrap;
* fix: tailwindcss version
* fix: tailwindcss version
* refactor: remove checkbox styles, keep only wireframe
* refactor: move input-related css variables to the dedicated folder
* refactor: remove unused input props
* refactor: btn loader animation
* refactor: use nesting for states, refactor classnames using BEM delimiters
* refactor: introduce btn-border-width prop, removed redundant btn-padding-block since we use fixed heights
* refactor: input and button
* fix: input
* chore: deps
* chore: deps
* chore: add vite as dev dep
* refactor: button variants
* chore: yarn install
* fix: loading button should not react on hover
* docs: add stories about tokens
* chore: remove lint command
* refactor: add prefix to css variables
* refactor: add base border-radius and border-width for controls
* fix: don't import tailwind in style files
* fix: add tailwindcss import for ladle
* fix: base radius variable
* refactor: rename css var
* refactor: add tw prefix for tailwind classes and vars
* fix: styles in easy-config
* fix: after tailwind reset paddings don't in width anymore, compensate
* fix: don't show outline on mouse click
* refactor: change btn state classes, remove not loading for hover because it's strange that button reacts on click when in loading state, but not on hover.
* fix: icons
* fix: add letter-spacing to normalize to prevent tailwind reset it with inherit value
* fix: welcome page selector
* fix: button outline uses a variable for width, proper loading state in aria, icon class name
* feat: add global styles for UI-kit ladle
* docs: refactored stories composition, added stories
* refactor: simplify loader, enable custom loaders, introduced token for btn loader, fix class names, updated stories
* docs: add global styles for ladle
* feat: use custom loader in cloudbeaver
* refactor: use oklch color space for color mixing in loaders
* docs: add readme
* fix: tsconfig, format ladle config
* docs: add short command for ladle, update readme
* fix: module export
* build: add vite plugin
* fix: remove aria-label for loading
* fix: yarn
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* CB-6249 fixes adding assets to the build for windows machines
* СB-6249 fixes the path for windows
* CB-6249 normalizes paths for build assets
* CB-6249 adds comment for assets
* CB-6249 normalizes paths to posix format
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-6264 adds ability to where filter to consider only typed text for suggestions
* CB-6264 adds case with tab
* CB-6224 cleanup
* CB-6264 add fix with focus check
* Revert "CB-6264 add fix with focus check"
This reverts commit 152f38a5c4.
* CB-6264 adds fix via isFocused
* CB-6264 cleanup
* CB-6264 resets state on proposal submission/cancelling
* CB-6264 adds resetState on any replacement case
* CB-6264 adds reset state on menu being invisible
* CB-6264 reverts outside click
* CB-6264 adds resetState on press Tab button
* CB-6264 cleanup
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-3771 loads host form searchDatabases for connections
* CB-3771 fixes overlap for connection host and port values
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-6041 add system information plugin
* CB-6041 api for system information
* CB-6041 api for system information
* CB-6041 api for system information
* CB-6041 simplify system info ui
* CB-6041 remove extra props
* CB-6041 api for internal database information
* CB-6041 remove hint
* CB-6041 add missing field
* CB-6041 use categories for database info
* CB-6041 add categories
* CB-6041 add category to copy info
* CB-6041 code style fix
* CB-6041 fix get property ids
* CB-6041 updates react version to 19
---------
Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
Co-authored-by: Alexander Skoblikov <aleksandr.skoblikov@dbeaver.com>
Co-authored-by: Serge Rider <serge@jkiss.org>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* CB-6200 disconnect data source on changing
* CB-6200 correctly checks if connection is connected on updated connection resource event
* Revert "CB-6200 correctly checks if connection is connected on updated connection resource event"
This reverts commit 45485a02d6.
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* CB-6181 fix: show save/cancel buttons in json docs
* CB-6181 refactor: change condition for SAVE/CANCEL buttons
The problem is that for select 1 in TE we get different result from other product, because in CE/EE we use ResultSetFooterMenuService, while for TE we use regular TableFooterMenuService. model.source.isReadOnly flag doesn't return true anymore since we extracted hasRowIdentifier flag from it, so we get redundant buttons in tables like that in TE.
Since the only difference is products where we are executing this script, it's quite hard to detect it inside a component. I decided to check editor's features, they are empty in this case (select 1) in all products, so we can be 100% sure that if there are no features, we don't need any buttons.
The other problem that for Document type of data format we also don't have features (and we use the same footer menu service). If it's not read-only, we need to have those buttons to save/cancel edits. The first solution is to check data format is Document (or check the editor type or to try get action with needed type). The other solution that I used is to check hasRowIdentifier flag(hasElementIdentifier) because editable documents will have it true, while datasets like select 1 don't have them. It looks more generic for me and should work in more cases in future
* СB-6181 refactor: update isReadonly flag for resultset
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-6132 feat: add read-only setting to connection's expert block
* CB-6132 refactor: add readonly property for the new field
* CB-6132 set read only param for data source container
* CB-6132 refactor: add locales
* CB-6132 refactor: change eng message
* CB-6132 fix read only for creating connection
---------
Co-authored-by: Ainur <ainur.iagudin@dbeaver.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
* CB-4066 refactors team structure
* CB-4066 refactors Team form to use new API
* CB-4066 adds TeamProjects form part to the TeamsForm
* CB-4066 cleanup
* CB-4066 cleanup
* CB-4066 pr fixes
* CB-4066 pr fixes
* CB-4066 fixes title and error key for team creation
* CB-4066 qa fixes
* CB-4066 qa fixes
* CB-4066 fixes bug with team editing
* CB-3753 pr fixes
* CB-4066 fixes validation error with wrong teamId
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-6063 feat: add ability to import data without PK
* CB-6063 feat: add ability to insert rows to tables w/o PK using actions
removes isImportAllowed flag, adds hasRowIdentifier, uses it in place of forbidden actions
* CB-6063 refactor: use only false value for hasRowIdentifier flag
* CB-6063 fix: revert logic in hasRowIdentifier
* CB-6063 refactor: rename property
* CB-6063 fix: return lock icon back for tables w/o identifier
* CB-6063 fix: hasRowIdentifier in getResult
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Ainur <59531286+yagudin10@users.noreply.github.com>
* CB-5832 feat: add shortcut for save as script action
* CB-5832 feat: add info about a shortcut to Shortcuts modal
* CB-5832 fix: ru localization
* CB-5832 refactor: use SqlEditorView for action registration
* CB-5832 refactor: use SqlEditorView for action registration
* CB-5832 refactor: check action in handler
* CB-5832 refactor: bind function in constructor
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-5978 hides API Token provider during configuration wizzard
* CB-5978 hides API token only for config mode (fix)
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-3508 create events for session async tasks
* CB-3508 remove redundant events
* CB-3508 update async web task event logic
* CB-6000 refactor: migrate AsyncTask code to core-root package
* CB-6000: fix
* CB-3508 use only update async task event
* CB-3508 add result info to async task event
* CB-6000 feat: change the way of updating task state
* CB-6000 refactor: rename type and property
* CB-6000 fix: use id from server
* CB-3508 do not have results in task info event
* CB-6000 changes after BE update
* CB-6000 fix: set only status on status update
* CB-3508 fixes after review
* CB-6000 refactor: task id
return back task id generation and saving on creation. Added second map filled on running and linking backend Id and frontend Id. Added helper method to get task
* CB-6000 refactor: handle race condition
add pending events map to save last status if it's came earlier than we saved the task
* CB-6000 refactor: AsyncTask creation
* CB-3508 fixes build
* CB-6000 fix: retry update task info later if locked
* CB-6000 refactor: add a comment about delayed update
---------
Co-authored-by: Andrey Sychev <nukemoore@gmail.com>
Co-authored-by: Sychev Andrey <44414066+SychevAndrey@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
Co-authored-by: sergeyteleshev <iamsergeyteleshev@gmail.com>
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-5807. Implemented logic to get localized text by locale, translated global prefer and part of identity provider on en/ru
* CB-5807. Refactor after review
* CB-5807. Refactor after review, move logic to base class
* CB-5807. Refactor after review, move logic to base class
* CB-5807. Added new translation for IP
* CB-5807. Refactor after review
* CB-5807. Refactor after review
* CB-5807. Refactor after review
* CB-5807. Fixed typo in ru locale
* CB-5807. Refactor after review
* CB-5807. Revert
* CB-5807. Remove comment
---------
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: Ainur <59531286+yagudin10@users.noreply.github.com>
* CB-5955 adds create menu (connection, folder)
* CB-5955 hides folder creation for non authorized users
* CB-5955 fixes label
* CB-5955 disable new connection
* CB-5955 shows create actions only for folders and connections nodes
* CB-5955 cleanup
* CB-5955 Add handler to hide create menu when no items are available
* CB-5955 Refactor handler to directly bind elementsTreeActionHandler for folder creation
* CB-5955 pr fixes
* CB-5955 creates connection according to the selected in tree project + tree selection refactor
* CB-5955 reverts old behavior with Generate SQL submenu for connections
* CB-5955 cleanup
* CB-5955 adds connection via menu into any folder
* CB-5955 updates TS references
* CB-5955 cleanup
* CB-5955 pr fixes
* CB-5955 pr fixes
* CB-5955 pr fixes
* CB-5955 cleanup
* CB-5955 fixes bug with dissapeared create connection button at top bar
* CB-5955 pr fixes
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-5831 migrate data grid context menu
* CB-5831 use switch instead of return
* CB-5831 migrate save actions
* CB-5831 apply primary color
* CB-4071 simplify logic
* CB-4071 simplify logic
* CB-4071 change naming
* CB-4071 review fixes
* CB-4071 add items based on condition
* CB-4071 remove old context menu
* CB-4071 pass handlers to panel
* CB-4071 add gap to the menu
* CB-4071 check data source
* CB-4071 support prev behaviour
* CB-4071 make context more strict
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-3332 refactor: data-viewer shortcuts
move them to the plugin folder, make them IKeyBinding shape to use in transformKeys
* CB-3332 refactor: change ctrl hotkey to mod
* CB-3332 refactor: use new DATA_VIEWER_SHORTCUTS, don't replace backspace
* CB-3332 refactor: remove redundant shortcuts, update naming
* CB-3332 feat: introduce new shortcuts for rows managing
In order to let mac users use shortcuts, Insert key was changed to KeyR
* CB-3332 feat: move shift key to the beginning of all shortcuts
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-5918 add holidays plugin
* CB-5918 add plugin-holidays as a reference to product default
* CB-5918 fix holidays plugin, add icons
* CB-5918 fix: don't run many renders simultaneously
* CB-5918 fix: flakes respawn
previously flakes kept x position that looked weird especially when user resize the window making it bigger
* CB-5918 refactor: adjust flakes size and speed
make flakes bigger and a little bit slower, reduce amount of flakes
* CB-5918 refactor: make flakes look like flakes
add shape prop to create different shapes of snowflakes
add drawSnowflake to render snowflakes
* CB-5918 Extract Logo registration to separate plugin
In order to customize Logo for different occasions without creating circular dependencies with other plugins
* CB-5918 refactor: update exports in holiday plugin
* CB-5918 feat: make logo src a prop
use holidays service to set custom logo
* CB-5918 refactor: update logos
* CB-5918 refactor: snowflakes removing faster if more flakes
* CB-5918 refactor: reduce action icon rotation on click
* CB-5918 fix: deps
* CB-5918 fix: ts-config reference
* CB-5918 refactor: use debounce for resizing
* CB-5918 refactor: add throttle to handleMouseMove
* CB-5918 refactor: update logo
* CB-5918 fix: start date
* CB-5918 feat: add rotation to snowflakes
* CB-5918 fix: dep version
* CB-5918: refactor: split up app logo plugin to public and admin parts
* CB-5918 refactor: split holidays plugin up to two parts: admin and public
* CB-5918 refactor: avoid using anonymous functions in Christmas class
* CB-5918 refactor: HolidayActionButton
* CB-5918 refactor: IHoliday interface naming
* CB-5918 fix: update TS refs
* CB-5918 fix: legacy color notation and lost this
* CB-5918 refactor: remove redundant plugin bootstrap export
* CB-5918 refactor: rename private property
* CB-5918 refactor: use IconButton core block inside HolidayActionButton
* CB-5918 refactor: add check in addHoliday method
* CB-5918 refactor: simplify logoSrc condition
* CB-5918 refactor: remove redundant styles
* CB-5918 refactor: use descriptive names for plugins bootstrap
* CB-5918 refactor: specify dep version
* CB-5918 refactor: improve Christmas class readability
* CB-5918 refactor: use lazy import for logo
* CB-5918 refactor: export lazy components properly
* CB-5918 fix: holiday end date
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* CB-5125 do not trigger logo in configuration stage
* CB-5125 use publicDisabled field instead
* CB-5125 bind method
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-5584. Added more logs for gql and rest in RM. Added new parameter in global preferences for showing additional logs
* CB-5584. Added more logs for gql and rest in RM. Added new parameter in global preferences for showing additional logs
* CB-5584. Rename parameter
* CB-5584. Rename parameter
* CB-5584. Refactor after review
* CB-5584. Refactor after review
* CB-5584. Renamed parameter
* CB-5584. Added check variable for contains restricted variable
* CB-5584. Fixed showing wrong sessionId.
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
handleScroll in DataGrid entails small performance degradation due to el.scrollTop, el.clientHeight, el.scrollHeight calls and hence reflow of layout, more on that here: https://gist.github.com/paulirish/5d52fb081b3570c81e3a/565c05680b27c9cfd9f5e971d295cd558c3e1843
What is done:
1. throttle added to not fire handleScroll on every render, because the main goal of that function is to detect when a user approaches the end of a page = reduce number of calls
2. Inside the handler the code was refactored in a way that we get scrollTop only once to calculate toBottom and inverse the clause logic and replace early return (!A || !B) with a clause with (A && B) logic to not check B on every call which is also triggering reflow.
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-5775 refactor: make default group text aligned with other tabs
* CB-5775: return accidentally removed gap prop
* CB-5775 refactor: return TextPlaceholder back
* CB-5775 refactor: make style important
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-5891 on disable user changes form state according to its real state
* CB-5891 pr fixes
* CB-5891 cleanup
* CB-5891 pr fixes
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
This commit handles the situations and sets fallback when there are text changes but selection has not been set (for example, its position outside of the doc). It that case we set the cursor in the end of the result string. It helps us to keep the cursor position more consistent.
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* CB-5691 adds ctrl+enter submit for textarea in form
* CB-5691 removes unneeded prop: disableCtrlEnterSubmit
---------
Co-authored-by: alex <48489896+devnaumov@users.noreply.github.com>
* CB-5757 adds unit tests for getDomainFromUrl helper
* CB-5757 adds unit tests for getTextFileReadingProcess helper
* CB-5757 adds unit tests for TextTools helper
* CB-5757 adds unit tests for downloadFromURL helper
* CB-5757 adds unit tests for Deferred and PromiseExecutor
* CB-5757 adds unit tests for core-blocks hooks
* CB-5757 fixes the tests
* CB-5753 add localization service test, fix grammar
* CB-5753 add test for the getDomainFromUrl
* CB-5753 add test for the client activity service
* CB-5753 add NodeManagerUtils tests
* CB-5753 add more cases
* CB-5753 pass args correctly
* CB-5563 adds saveCredentials to config when loading DriverInfo during driver authorization
* CB-5640 fixes save creds checkbox state for SSL
* Revert "CB-5640 fixes save creds checkbox state for SSL"
This reverts commit e25fc3b5d4.
---------
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
* CB-5640 adds colors to inputs according to design (disabled, readonly)
* CB-5640 merges disable logic into readonly
* CB-5640 adds aria-disabled prop and styles to input
* CB-5640 adds more styles for input
* CB-5640 pr fixes
* CB-5640 reverts logic
* CB-5640 fixes styles
* CB-5640 fixes styles
* CB-5640 merges disable logic into readonly for all of the inputs all over the app
* CB-5640 reverts form-controls styles
* CB-5640 reverts form-controls styles
* CB-5640 makes disabled design according to the figma
* CB-5640 makes checkbox dissapear
* CB-5640 cleanup
---------
Co-authored-by: Evgenia <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-5767 makes config wizzard go next item when confirming serverConfig form
* CB-5767 removes extra handleEnter for button click enter
---------
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-5570 do not load data sources in web session init
* CB-5570 extract methods about web connection info from web session
* CB-5570 remove accessible connections from web session
* CB-5570 add javadoc
* CB-5570 Merge conflicts resolve
* CB-5570 return emply list for template connections in te
* chore: reorganize localization for connections
---------
Co-authored-by: serge-rider <serge@dbeaver.com>
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* CB-5709 hotfix: user create button in settings preloads required resources
* CB-5709 inverts logic
* CB-5709 fixes tab for TE
* CB-5709 fix for origin info form
* CB-5625 makes create auth providers list include only enabled auth providers in checkbox
* Revert "CB-5625 makes create auth providers list include only enabled auth providers in checkbox"
This reverts commit 4b2ac9935f.
* CB-5625 adds disabled providers logic to identity providers
* CB-5625 refactors form loaded task
* CB-5625 adds link for redirect to the server configuration settings
* СB-5625 cleanup
* CB-5625 moves message to the top of the auth providers page
* CB-5625 pr fixes
* CB-5625 cleanup
* CB-5578 pr fixes
* CB-5625 adds tip for create identity provider table
* CB-5625 reverts tip message
---------
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
* CB-5478 adds useAdministrationUserFormState with flexible id field
* CB-5478 simplifies logic fork form state hooks
* CB-5562 refactors form state and form parts
* CB-5562 fixes disabled param for formState
* CB-5562 comments cleanup
* CB-5562 fixes getting of exceptions
* CB-5562 baseform bad set state fix
* CB-5562 removes load and configure method for forms
* CB-5562 reverts some state.exception changes
* CB-5562 removes bad set state from user form
* CB-5562 cleanup
* CB-5562 cleanup
* CB-5562 removes bad set state from user form
* CB-5562 fixes bad set state for user profile
* CB-5562 pr fixes
* CB-5562 pr fixes
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
* CB-5478 adds useAdministrationUserFormState with flexible id field
* CB-5478 simplifies logic fork form state hooks
---------
Co-authored-by: mr-anton-t <42037741+mr-anton-t@users.noreply.github.com>
* Add or improve Chinese translations
* Add or improve Chinese translations
* chore: Update Chinese translations
* chore: correct some translation
* fix: add mapping for all new zh files
---------
Co-authored-by: 李飞 <lif@tongfun.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-5587 override default jetty session handler to add ability to use dynamic setSecure flag
* CB-5587 handle null server url
---------
Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com>
* CB-5503 fix: Prevent form submission from erasing password input value
* feat: Add form submission handling to AuthDialog
* Revert "feat: Add form submission handling to AuthDialog"
This reverts commit de19e67c8d.
* Revert "CB-5503 fix: Prevent form submission from erasing password input value"
This reverts commit a5a74ae558.
* CB-5503 adds useValidationStyles for the form inputs
* Revert "CB-5503 adds useValidationStyles for the form inputs"
This reverts commit 7702fdc280.
* CB-5503 removes resets for useForm submit event
* fix: form submitting process
---------
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Inclusion of the ability to configure the server property "rootURI" with an environment variable called "CLOUDBEAVER_ROOT_URI" to simplify changing its value in dockenized environments.
The QuotasService has been refactored to use optional chaining when accessing the serverResourceQuotasResource data. This improves the code readability and reduces the need for null checks.
* CB-5123. Added backend part, added new parameter licenseStatus to server config gql
* CB-5123 feat: display license status information
* CB-5123 fix: after review
* CB-5123. Added version
---------
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-5375 auto migration to postgres DB for default CB EE configuration
* CB-5375 fix test
* CB-5375 move legacy db
* CB-5474 async qm data migration
* CB-5375 comment unused field
---------
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
* CB-5340 adds unit tests for basic hooks
* CB-5340 test: trigger github actions
* CB-5340 fixes unit tests
* CB-5340 fixes unit tests
* CB-5340 fixes unit tests
* CB-5340 adds jest moduled imports for unit tests
* CB-5340 adds jest moduled imports for unit tests
* CB-5340 revert some changes
* CB-5340 cleanup
* CB-5340 replaces global jest to moduled
* CB-5340 uncomment tests and skip it
* CB-5340 cleanup
* chore: enable jest globals
* CB-5340 fix unit tests
---------
Co-authored-by: Aleksei Potsetsuev <wrouds@gmail.com>
* CB-5437 use flex component instead of container
* CB-5437 use data attributes to apply styles
* CB-5437 simplify logic
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
* CB-4618 removes red border after form submission
* Revert "CB-4618 removes red border after form submission"
This reverts commit 703da4eea9.
* CB-4618 removes red border after form submission in useForm hook
---------
Co-authored-by: Evgenia Bezborodova <139753579+EvgeniaBzzz@users.noreply.github.com>
* feat: adds correct cancellation message to DataImportService
* Update Russian translation for the data import process fail cancel message
* CB-5414 do not set message on cancelled task during import into table
---------
Co-authored-by: Daria Marutkina <125263541+dariamarutkina@users.noreply.github.com>
about:Provide a description of your feature request for CloudBeaver. Include the problem you are trying to solve, why it is important, and any specific functionality you believe would improve the platform.
title:''
labels:feature request, wait for review
labels:wait for review
type:Feature
assignees:''
---
@@ -12,3 +13,9 @@ A clear and concise description of what the problem is. Ex. I'm always frustrate
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
CloudBeaver is a web server which provides rich web interface. Server itself is a Java application, web part is written on TypeScript and React.
CloudBeaver is a web server that provides a rich web interface. The server itself is a Java application, and the web part is written in TypeScript and React.
It is free to use and open-source (licensed under [Apache 2](https://github.com/dbeaver/cloudbeaver/blob/devel/LICENSE) license).
See out [WIKI](https://github.com/dbeaver/cloudbeaver/wiki) for more details.
- Enhanced IPv6 and DateTime32 data representation for Clickhouse;
- Data editing was fixed for DuckDB;
- SQL Editor:
- We changed the save script icon to a floppy disk for better recognition;
- The 'Use long objects names' preference behavior was enhanced for auto-completion actions;
- DDL generation for Oracle Tablespaces was added (thanks to @pandya09);
- Many minor bug fixes, enhancements, and improvements have been made.
### 24.1.2. 2024-07-08
- Added the ability to change the default commit mode for each connection separately;
- Added additional notifications about restricted operations;
- Improved application behavior when closing a connection - open editors won't be closed on disconnect;
- Added the "Keep alive" setting for Db2 LUW and IMB i, Apache Kyuubi, Clickhouse, Firebird and Trino;
- Fixed the dollar-quoted string parsing in the SQL editor for PostgreSQL;
- Many minor bug fixes, enhancements, and improvements have been made.
### 24.1.1. 2024-06-24
- Unauthorized access vulnerability was fixed;
- French language support was added (thanks to @matthieukhl);
- Updated Firebird driver to version 5.0.4;
- Many minor bug fixes, enhancements, and improvements have been made.
### 24.1.0. 2024-06-03
### Changes since 24.0.0:
-Fixed copying of large JSON values in the Data Editor - now the full value can be copied and transferred.
-Updated the Reference panel to show only relevant rows when a foreign key is null.
- General:
- Added the ability to back up the internal database before schema migration (for H2 and PostgreSQL)
- The process of application update has improved - you can track the application update process now;
- Added the ability for users to configure personal settings for the interface, SQL editor, and data viewer through the settings panel
- All popup dialogs became available for screen readers, including JAWS, to improve the experience for users with disabilities;
-User authorization:
- Security for unauthorized access enhanced;
- Added LDAP authentication;
- Data viewer and SQL editor:
- Added support for manual and automatic modes for committing changes to the database
- Large text values (more than 100 Kb) are now automatically opened in the Value panel;
- Row count calculation in the grid can be canceled for Data Editor and SQL Editor;
- Added the ability to set null values for BLOB and GIS data via the cell's context menu in the table;
- Added spatial data visualization for DuckDB;
- Aliases autocompletion fixed for DuckDB;
- Procedure creation query recognition fixed for DB2i.
- Connection settings:
- Implemented support for utilizing environment variables within connection configurations;
- Data transfer:
- Added the ability to import data to the database from CSV file;
- Added the ability to select a case for column names for export to CSV;
- Databases:
- Added a new Apache Kyuubi driver (thanks to @pan3793);
- Enhanced security for connection through H2 driver;
- DuckDB driver updated to version 0.10.2;
- Oracle driver updated to version 23.2.0.0;
- SQLite driver updated to version 3.44.1.0;
- Clickhouse driver updated to version 0.6.0-patch2;
- Trino driver updated to version 438 (thanks to @alaturqua).
- Added connection types to visually distinguish database environments using background colors across the Database Navigator and application UI. Users with edit permissions can assign built-in environment types color-coded configurations.
- Data Transfer:
- Improved memory usage when importing large CSV files.
- Fixed CSV export with multi-character quotes and improved quote/delimiter validation
-Accessibility:
- Enabled the use of the Enter or space keys to toggle checkboxes in the administration tabs and the metadata viewer.
- Added the ability to expand and collapse code block elements, including JSON, using the keyboard.
- Fixed shortcuts behavior for AZERTY keyboards. Now shortcuts like Ctrl/Cmd + Z work correctly.
- Security:
- Resolved an authorization vulnerability when testing connections by enforcing strict permission checks. This mitigation prevented unauthenticated users from exploiting JDBC requests to read arbitrary server files.
- Resolved an LDAP injection vulnerability by properly escaping user input in the authentication username field, preventing attackers from manipulating search filters, bypassing access restrictions, and enumerating directory users.
- Fixed the high vulnerability (GHSA-gv7w-rqvm-qjhr) in the esbuild library. The library was updated to version 0.28.1.
- Fixed the high vulnerability (CVE-2026-12143) in the form-data library. The library was updated to version 4.0.6.
- Databases and drivers:
- The Databend driver was updated to version 0.4.8.
- Fixed an issue related to the display of metadata in the navigation tree for DB2, Firebird, and MySQL.
### 26.1.2 2026-07-06
- Data Editor:
- Added the References panel showing related records from other tables connected by foreign keys. It helps to explore table relationships directly in the Data editor.
- Resolved an issue where the Data Editor ignored the text preview's maximum length quota. Increasing this quota now enables the ability to edit large values.
- General:
- Added the Last Login time to the user form and the user table in the administration part.
- Fixed the bug with the inability to select entered text in the Find and Replace panel in editors.
- Accessibility:
- Added the ability to use the Enter or Space key to turn checkboxes on/off in the connection properties tab.
- Security:
- Fixed CVE-2026-55449. Resolved a local file disclosure vulnerability by enforcing strict validation of file identifiers and path containment during data updates.
- Updated session handling to prevent session fixation vulnerabilities. The application generates new session identifiers upon login.
- Fixed the high vulnerability (CVE-2026-12151) in the undici library. The library was updated to version 6.27.0.
### 26.1.1 2026-06-22
- General: Added a "Project Info" tab containing the project description to the project context menu.
- Security:
- Fixed a cross-site scripting vulnerability caused by unsanitized user input in the web interface.
- Resolved a security flaw related to user-controlled file paths by adding strict validation to prevent unauthorized resource access.
- Fixed the critical vulnerability (CVE-2026-9277) in the shell-quote library (updated to version 1.8.4).
### 26.1.0 2026-06-01
### Changes since 26.0.0:
- Administration:
- Added support for custom startup arguments when running CloudBeaver in a container. Administrators can specify configuration file locations to adapt the application to their environment. (thanks to @MalteHei)
- Updated the manifest.webmanifest file to generate dynamically based on the CLOUDBEAVER_ROOT_URI environment variable. (thanks to @houssemexo26)
- Authorization:
- Added HTTP header authentication support for GraphQL queries. Users can provide API tokens via Authorization or X-Api-Key headers, allowing external data tools to authenticate without modifying request bodies.
- Fixed a bug in the authentication form: the existing password is now required for password changes.
- SQL Editor:
- Updated the SQL Editor to use real tab characters for indentation. The application displayed tabs as four-space gaps with a distinct visual marker.
- Added an ability to view and edit scripts without connecting to the database.
- Added the ability to open generated queries right from the Generate SQL window.
- Added fuzzy search to SQL Editor auto-completion for object names. The feature allows users to find tables and containers even with typos or incorrect letter ordering.
- Added the tooltip about quoting rules for the Bind variables parameters dialog.
- Fixed keyword autocompletion for partially typed keywords to avoid redundant letters.
- Data Editor:
- Added the ability to copy-paste multiple cells at once. Pasted values will be distributed across selected cells.
- Added an ability to add, duplicate, delete, or set values to NULL in multiple highlighted rows via the Data Editor context menu.
- Added the Find and Replace functionality for the Data Editor with the ability to find data by matching case, whole word, or using regular expressions.
- Data Editor started to keep the state of column configurations, such as filters, sorting, and ordering, after the reconnect, page refresh, and re-login.
- Added key column mark for tables with unique keys in the data grid.
- Added more settings to the Generated SQL window, including the ability to select fully qualified names for query or use compact SQL formatting.
- Added a DDL generation option to the Data Editor and Result Set context menu.
- Fixed copy and paste behavior for multiline and special characters in the Data Editor. Added visual glyphs to indicate line breaks and tabs in the data grid.
- Fixed the ability to copy Boolean values in the clipboard in the Data Editor.
- Fixed the ability to calculate row count for non-standard SELECT statements. (thanks to @fdcastel)
- Navigator tree:
- Reorganized the context menu on the connection level to make it more compact.
- Added support for special symbols (pipe, comma, and asterisk) for the search field.
- Removed the "Folders" setting from the settings list for the Navigator Tree.
- Accessibility:
- Added the Skip to content option for quick keyboard access to the Navigator Tree, editors, and shortcuts list tab to improve application accessibility.
- Improved keyboard navigation for context menu and buttons for Data Editor, SQL Editor, and Navigator tree.
- Added the Ctrl + / keyboard shortcut to open the context menu for selected cells in the Data Editor.
- Fixed the ability to switch tabs in the Data Editor using the keyboard.
- Fixed contrast for elements across different application parts in the light and dark themes to meet WCAG requirements.
- General:
- Marked icons for non-saved (temporary) scripts with the hourglass symbol to add visual distinction from the saved ones.
- Added the ability to set to NULL any value in the Driver Properties.
- Fixed custom driver properties display for the connection page.
- Fixed data export in SQL format for values containing single quotes.
- Databases and drivers:
- ClickHouse:
- Fixed the display of Array(JSON) types in the data grid.
- Updated driver version to 0.9.7.
- Fixed IP address display in the Data Editor by removing the leading slash.
- Added support for the "prompt=false" connection property for DB2 for IBM i to turn off interactive prompts and prevent related errors.
- DuckDB:
- Fixed map rendering for GEOMETRY types with CRS parameters.
- Fixed geometry type display for database versions > 1.5.
- H2 database:
- Added new embedded driver version 2.4.2.
- Updated server driver to version 2.4.2.
- Firebird: Expanded database-specific SQL dialect coverage for the SQL Editor. Added more keywords, built-in functions, and SQL generators.
- MySQL: Fixed query boundaries recognition in the SQL Editor for scripts with the DELIMITER keyword.
- PostgreSQL:
- Updated driver to version 42.7.11
- Fixed missing INOUT parameters in CHECK generation for procedures and functions.
- Fixed handling of 24:xx values in time columns.
- Fixed an error when connecting via URL if the database name contains a hyphen.
- SQL Server:
- Fixed DDL generation for external tables.
- Fixed the database connectivity issue after the Java update.
- Security:
- Added an administrative setting to restrict SSH tunneling capabilities. Administrators can now limit tunnel configuration to authorized users, reducing the risk of unauthorized network access.
- Fixed the critical vulnerability (CVE-2025-62718) in the axios library. The library was updated to version 1.15.0.
- Fixed the high vulnerability (CVE-2026-4800) in the lodash library. The library was updated to version 4.18.0.
- Fixed the high vulnerability (CVE-2026-39363) in the vite library. The library was updated to version 7.3.2.
- Fixed the high vulnerability (CVE-2026-42035) in the axios library. The library was updated to version 1.15.1.
- Fixed the high vulnerability (CVE-2026-3505) in the bcpg-jdk18on library. The library was updated to version 1.84.0.
- Fixed the high vulnerability (CVE-2026-33671) in the picomatch library. The library was updated to version 2.3.2.
- Fixed the high vulnerability (CVE-2026-33943) in the happy-dom library. The library was updated to version 20.8.8.
- Fixed the high vulnerability (CVE-2025-45141) in the tar library. The library was updated to version 7.5.11.
- Fixed the high vulnerability (CVE-2026-27148) in the storybook library. The library was updated to version 10.2.10.
- Fixed the high vulnerability (CVE-2026-27606) in the rollup library. The library was updated to version 4.59.0.
- Fixed the high vulnerability (CVE-2026-27904) in the minimatch library. The library was updated to version 3.1.3.
- Fixed the high vulnerability (CVE-2026-27959) in the koa library. The library was updated to version 2.16.4.
- Fixed the high vulnerability (CVE-2026-32141) in the flatted library. The library was updated to version 4.4.0.
- Fixed the medium vulnerability (CVE-2026-41305) in the postcss library. The library was updated to version 8.5.14.
<featureid="ssh"label="SSH tunnels for databases"description="Enables SSH tunnels for secure database connections, allowing access to remote databases through encrypted channels"enabledByDefault="true"/>
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.