* 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>
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,59 +25,52 @@ You can see a live demo of CloudBeaver here: https://demo.cloudbeaver.io
## Changelog
### 24.3.3. 2025-01-20
- Administration:
- Added an ability to match users from LDAP configuration with CloudBeaver users;
- New environment variables were introduced for theme styling, SQL editor, and log viewer settings. You can use them for quick setup during the initial Docker configuration stage.
- General:
- An ability to show metadata object comments was added in the Navigator tree. You can enable it in the database navigator settings panel;
- Added transaction log viewing for connections with manual commit mode. This allows users to see all modifying statements before committing;
- Added an ability to import data in tables without unique keys;
- Added an ability to insert data in tables without unique keys;
- Added Ctrl + Shift + S (Cmd + Shift + S on Mac) shortcut for "Save As Script" action.
### 25.2.3 2025-10-20
- Added visualization for column reordering in the Data Editor;
- Fixed the critical issue with duplicating the execution of queries executed by a shortcut in the SQL Editor;
- Fixed the critical vulnerability (CVE-2025-61927) in the Happy DOM library. The library was updated to version 20.0.2.
### 24.3.2. 2025-01-06
-Added an ability to specify a user login as an attribute parameter for LDAP providers;
-The collapse of the grouping panel doesn't lead to the full panel cleaning anymore.
### 24.3.1. 2024-12-23
- Added an ability to reconnect for all editors if a connection has been lost;
- Added an option to replace line break characters on any custom value when exporting to CSV;
- Added an ability to create connections in the Navigation tree not only on the initial level but in folders and sub-folders directly;
- Updated list of available shortcuts for MacOS.
### 25.2.2 2025-10-06
-Replaced true/false text with intuitive checkboxes for boolean values in the metadata editor, making editing easier and faster;
-Keyboard navigation was improved across the application. Additional shortcuts are available in the main info panel (top-right corner). To help you discover them faster, relevant keyboard shortcuts are also shown directly in the tooltips of Data Editor buttons;
- Fixed an issue in the Data Editor where resizing one column in a wide table would cause previously resized columns to revert to their original width. Users can resize multiple columns as intended.
### 24.3.0. 2024-12-02
### Changes since 24.2.0:
-General:
- The connections Templates feature is declared obsolete and will be removed in future releases;
- Data export: Added the ability to export JSON values as embedded JSON;
- Fixed a proxy issue that excluded the Content-Type header in responses;
- Data editor enhancements: Rows with focused cells are specially marked to make it easier to locate a position in large tables;
- 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;
- Chinese localization has been improved (thanks to @cashlifei);
- Brazilian Portuguese localization was enhanced (thanks to @brlarini).
### 25.2.1 2025-09-22
- Autocomplete values in SQL Editor are ordered alphabetically to simplify object search;
-"Show all databases" setting was added on the connection page for MySQL and MariaDB;
- Different bug fixes and enhancements have been made.
### 25.2.0 2025-09-01
### Changes since 25.1.0:
- Administration:
-Updated user storage mechanism: New user logins are now stored in lowercase to prevent duplicate entries (e.g., "ADMIN" and "admin"). Note: This update does not affect previously created user logins;
- Added an ability to change a user password even if the user is disabled in a system;
-Refreshed design for the User and Teams tab in the Administration panel;
- A new setting in Global Preferences was added to restrict data import for non-admin users;
- A search option was added for preferences in the Administration part;
-Added detailed logging of GraphQL queries in the server logs, including all provided variables, for improved debugging and monitoring;
-Environment variables configuration has been improved - now you can configure more variables on the initial stage of the Docker setup.
- Databases:
-PostgreSQL, Greenplum, CockroachDB: The URL mode now supports connecting to multiple databases;
-PostgreSQL, H2, and SQL Server: Schemas were added to the SQL autocompletion;
- MySQL: CloudBeaver can now correctly display negative dates;
-DuckDB: The issue with displaying BLOB data types has been resolved.
- Drivers:
-A new LibSQL/Turso driver was added;
-SQL Server driver has been updated to version 12.8.0;
-DB2i driver has been updated to version 20.0.7.
-Added support for multiple server URLs to accommodate different access policies for internal and external users, improving flexibility in network-restricted environments. To set it up, use the Allowed Server URLs field in the Server configuration within the Administration section;
- Added the Force HTTPS mode setting in Server Configuration to enforce redirecting from HTTP to HTTPS. This setting helps avoid a potential man-in-the-middle attack. This setting is turned off by default. Please remember to configure your proxy before enabling;
-Added the CLOUDBEAVER_BIND_SESSION_TO_IP option to improve session security by linking user sessions to their IP address. It is disabled by default. When enabled, this helps protect against certain types of session hijacking attacks, where an attacker could try to take over a user’s session. Note: Users will be logged out automatically on the IP address change (switching networks or using mobile data);
- A password confirmation field has been added for administrators in the Easy Config section to prevent accidental misconfigurations.
- SQL Editor:
-Changed the default engine used for autocompletion in the SQL Editor. This Semantic engine offers improved suggestions for database objects, keywords, and functions. You can switch back to the Legacy engine in Preferences > SQL Editor;
-A “Clear” button was added to the output panel.
- Data Editor:
-Column descriptions were added in the Data Editor under column names to provide more metadata context. You can disable this in Preferences > Data Viewer;
-Added an ability to review the script before execution when users edit tables without primary keys.
- General:
-Added a new welcome screen for a freshly opened application. This screen contains shortcuts to create a new connection, open SQL Editor, or documentation;
- Added a search panel for SQL Editor and Value panel: press Ctrl/Cmd + F to open a panel that allows searching and replacing by keyword or regular expression;
-Changed the data transfer mechanism to avoid intermediate file creation. The parameter dataExportFileSizeLimit was removed from the server configuration as deprecated;
-The CloudBeaver default theme matches the device theme by default now. You can change this behavior in user preferences under the Theme section;
-Added the option to display tabs across multiple rows, allowing you to see all tabs without scrolling. You can enable this in Preferences > Interface;
- Improved dark theme accessibility by enhancing color contrast across the app for better readability and compliance with accessibility standards;
- The database navigator now automatically hides empty folders in shared projects, reducing visual clutter and speeding up the process of finding active connections.
- Databases and drivers:
- Clickhouse: fixed the presentation of tuples and map data types in the Data Editor;
- Databend database support has been added (thanks to @hantmac);
- DuckDB: driver has been updated to version 1.3;
- MySQL: Improved performance when retrieving foreign keys metadata;
- PostgreSQL: fixed misplaced comment for table DDL generation.
## 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.3.0 was made by:
1. [cashlifei](https://github.com/cashlifei)
The most significant contribution to our code for the major release 25.2.0 was made by:
1. [hantmac](https://github.com/hantmac) - added support for Databend in CloudBeaver Community Edition.
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.