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
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.
@@ -25,50 +25,49 @@ You can see a live demo of CloudBeaver here: https://demo.cloudbeaver.io
## Changelog
### 24.2.2. 2024-10-07
-Schemas were added to the SQL autocompletion for PostgreSQL, H2, and SQL Server;
-CloudBeaver can now correctly display negative dates for MySQL database;
-A search option was added for preferences in the Administration part;
-Keyboard navigation has been enhanced. You can now use the arrow keys to move through navigator tree elements and the tab key to switch between editors tabs;
- Sample SQLite database was removed.
### 25.1.2 2025-07-07
-The CloudBeaver default theme matches the device theme by default now. You can change this behavior in user preferences under the Theme section;
-Added a button “Clear” to the Output panel;
-Changed the data transfer mechanism to avoid intermediate file creation. The parameter dataExportFileSizeLimit was removed from the server configuration as deprecated;
-PostgresSQL: fixed misplaced comment for table DDL generation.
### 24.2.1. 2024-09-23
- Chinese localization has been improved (thanks to [cashlifei](https://github.com/cashlifei));
-Environment variables configuration has been improved - now you can configure more variables on the initial stage of the Docker setup;
-SQL Server driver has been updated to version 12.8.0.
### 25.1.1 2025-06-23
### Changes since 25.1.0:
-Added a search panel for SQL Editor and Value panel: press Ctrl+F to open a panel that allows searching and replacing by keyword or regular expression.
-Added a new welcome screen for a freshly opened application. This screen contains shortcuts to create a new connection, open SQL editor or documentation.
- Databend database support has been added.
### 24.2.0. 2024-09-02
### Changes since 24.1.0:
-General:
-French language support was added (thanks to [matthieukhl](https://github.com/matthieukhl))
- Added the ability to close editor tabs with the middle mouse button
- Added right-click support to open the context menu in the Metadata Editor
- The list of forbidden characters for naming and renaming resource manager files has been updated, and now it includes the following characters: / : " \ ' <> | ? *
- Application cookies security was improved
- Authentication:
- Improved LDAP authentication: added the ability to filter users via service account parameters and ability to specify custom unique user identifiers
- Data Editor:
- Added additional notifications about the restricted operations
- Enhanced IPv6 and DateTime32 data representation for Clickhouse
- Data editing was fixed for DuckDB
- SQL Editor:
- SQL Editor auto-completion was enhanced to get column, table, and function names faster
- Fixed the dollar-quoted string parsing in the SQL Editor for PostgreSQL
- Improved display of the long error messages in the SQL Editor and Log viewer
- Changed the save script icon to a floppy disk for better recognition
- Improved application behavior when closing a connection - open editors won't be closed on disconnect
### 25.1.0 2025-06-02
### Changes since 25.0.0:
-Important:
-Connection templates were removed from the application. You can use the Connection Editor to create new connections.
- Administration:
-Redesigned administration navigation panel - now it is more compact and clear
- Added the ability to change the default commit mode for each connection separately
- Added the ability to configure the server property rootURI parameter (thanks to [arioko](https://github.com/arioko))
- Databases:
- Added the "Keep alive" setting for Db2 LUW and IMB i, Apache Kyuubi, Clickhouse, Firebird, and Trino
-Updated Firebird driver to version 5.0.4
-DDL generation for Oracle Tablespaces was added (thanks to [pandya09](https://github.com/pandya09))
-Log records now capture create, update, and delete actions for users, teams, and connections for improved tracking and transparency.
- LDAP authorization:
- Added support for secure [LDAP authentication over SSL](https://github.com/dbeaver/cloudbeaver/wiki/LDAP-Authentication);
- Brute force protection is now supported for LDAP authentication. All authentication methods on the application level have this security mechanism.
- SQL Editor:
-A new setting to autosave scripts in the SQL editor appeared in global and users' preferences;
-Auto-completion has been improved for aliases and camelCase entities.
- Data Editor:
- Improved table rendering to scale column width depending on the content;
- Accessibility: improved keyboard navigation by sorting buttons in column headers.
- General:
- Added the ability to configure the default database or schema in the connection configuration;
- Enhanced initial configuration stage security: a server needs to be restarted if the initial setup time exceeds 1 hour;
- Improved Navigation tree performance: lost connection does not lead to the application freezing anymore;
- Data transfer: Improved export/import functionality performance by optimizing disk memory consumption;
- Vietnamese localization has been added (thanks to [0xhanh](https://github.com/0xhanh)).
- Databases and drivers:
- Clickhouse: driver has been updated to version 0.8.5;
- DuckDB: expanded the list of system objects that can be hidden in the Navigation tree;
- LibSQL: added the ability to connect using token authentication;
- Oracle: users' DDL in Oracle is displayed in the metadata editor on the corresponding tab for users with Oracle administration permissions;
- SQLite: added information about a table's Strict mode to the table metadata section (thanks to [eusebe-cda](https://github.com/eusebe-cda)).
## Contribution
As a community-driven open-source project, we warmly welcome contributions through GitHub pull requests.
[We are happy to reward](https://dbeaver.com/help-dbeaver/) our most active contributors every major sprint.
The most significant contribution to our code for the major release 24.2.0 was made by:
1. [matthieukhl](https://github.com/matthieukhl)
The most significant contribution to our code for the major release 25.1.0 was made by:
1. [0xhanh](https://github.com/0xhanh) - for Vietnamese localization.
#### The DBeaver UI Kit is a collection of reusable React components designed to help developers build consistent and visually appealing user interfaces.
## Using Ladle for Component Development
[Ladle](https://ladle.dev/) is a tool that allows you to develop, test, and document your React components in isolation. We use it to create a sandbox environment where you can interact with your components and ensure they work as expected.
To get started with Ladle in the DBeaver UI Kit, write in terminal:
```bash
yarn docs
```
Then open the provided URL to see components.
## How to Customize
DBeaver UI Kit components have basic styles and use some defaults from Tailwind CSS. To change styling, you can use different approaches.
### Global CSS Tokens
The UI kit uses several global CSS tokens described on the Global Tokens page. These tokens help maintain consistency across the UI components. All DBeaver UI tokens are prefixed with `--dbv-kit-`. You can use these tokens to customize the UI kit to fit your application's design. For example, changing the `--dbv-kit-font-size-base` token will change the base font size for text in the UI kit. Changing the `--dbv-kit-control-height-base` token will change all control heights. If you don't want to change all controls, you can change `--dbv-kit-control-height-small`, `--dbv-kit-control-height-medium`, or other tokens separately. They will affect only specific components.
### Component CSS Tokens
Some components have their own tokens. For example, the Button component has tokens for button sizes, padding, and colors. You can change these tokens to customize the Button component. To see the list of tokens, go to sources or start Ladle.
### Component CSS Classes
Each component in the UI kit has a default CSS class name following the `dbv-kit-[component name(in lowercase)]` naming convention that you can use to customize the component. You can find the default class name in the component's documentation.
For button:
```css
.dbv-kit-button{
/* Your custom styles */
}
```
For input:
```css
.dbv-kit-input{
/* Your custom styles */
}
```
Some components have additional classes for different states or sizes. For example, the Button component has classes for different sizes: `.dbv-kit-button--small`, `.dbv-kit-button--large`. We use the BEM convention for class names. If a component has a modifier, it will be separated by two dashes. If a component has a child element, it will be separated by two underscores, for example:
-`.dbv-kit-button__icon` - icon is a child element of the button
-`.dbv-kit-button--large` - large is a size modifier
-`.dbv-kit-button__icon--start` - icon is a child element of the button and has a start placement
Each component accepts the standard `className` and `style` props which enable using vanilla CSS, utility classes (e.g., Tailwind), CSS-in-JS (e.g., Styled Components), etc. A custom `className` can be specified and will be appended to a class list of a component:
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.