@xh/hoist 79.0.0-SNAPSHOT.1767040663589 → 79.0.0-SNAPSHOT.1767046009354
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/admin/App.scss +1 -1
- package/appcontainer/ThemeModel.ts +1 -1
- package/build/types/desktop/cmp/input/DateInput.d.ts +1 -1
- package/build/types/desktop/hooks/UseContextMenu.d.ts +1 -1
- package/build/types/kit/blueprint/Wrappers.d.ts +2 -2
- package/build/types/kit/blueprint/index.d.ts +0 -1
- package/cmp/ag-grid/AgGrid.scss +1 -1
- package/cmp/chart/Chart.scss +1 -1
- package/desktop/appcontainer/ExceptionDialog.scss +1 -1
- package/desktop/appcontainer/LoginPanel.scss +1 -1
- package/desktop/appcontainer/Message.scss +1 -1
- package/desktop/appcontainer/Toast.scss +3 -3
- package/desktop/appcontainer/ToastSource.ts +2 -45
- package/desktop/cmp/appbar/AppBar.scss +10 -10
- package/desktop/cmp/button/Button.scss +11 -11
- package/desktop/cmp/dash/canvas/DashCanvas.scss +1 -1
- package/desktop/cmp/dash/canvas/DashCanvas.ts +1 -2
- package/desktop/cmp/dash/container/DashContainer.scss +1 -1
- package/desktop/cmp/dash/container/DashContainerModel.ts +1 -1
- package/desktop/cmp/dock/impl/Dock.scss +1 -1
- package/desktop/cmp/filter/FilterChooser.scss +1 -1
- package/desktop/cmp/filter/PopoverFilterChooser.scss +3 -3
- package/desktop/cmp/form/FormField.scss +4 -4
- package/desktop/cmp/grid/columns/Actions.ts +1 -1
- package/desktop/cmp/grid/editors/Editors.scss +4 -4
- package/desktop/cmp/grid/find/GridFindField.scss +1 -1
- package/desktop/cmp/grid/impl/filter/headerfilter/custom/CustomTab.scss +2 -2
- package/desktop/cmp/grid/impl/filter/headerfilter/values/ValuesTab.scss +2 -2
- package/desktop/cmp/grouping/GroupingChooser.scss +3 -3
- package/desktop/cmp/input/Checkbox.scss +1 -1
- package/desktop/cmp/input/DateInput.scss +3 -3
- package/desktop/cmp/input/DateInput.ts +1 -1
- package/desktop/cmp/input/RadioInput.scss +2 -2
- package/desktop/cmp/input/Select.ts +1 -1
- package/desktop/cmp/input/Slider.scss +1 -1
- package/desktop/cmp/input/Slider.ts +1 -1
- package/desktop/cmp/input/SwitchInput.scss +1 -1
- package/desktop/cmp/mask/impl/Mask.scss +1 -1
- package/desktop/cmp/panel/impl/PanelHeader.scss +1 -1
- package/desktop/cmp/tab/TabSwitcher.ts +1 -1
- package/desktop/cmp/tab/Tabs.scss +7 -7
- package/desktop/cmp/tab/dynamic/DynamicTabSwitcher.scss +1 -1
- package/desktop/cmp/tab/dynamic/DynamicTabSwitcher.ts +4 -4
- package/desktop/cmp/toolbar/Toolbar.scss +16 -16
- package/desktop/hooks/UseContextMenu.ts +1 -1
- package/kit/blueprint/ContextMenu.ts +1 -12
- package/kit/blueprint/Dialog.ts +3 -3
- package/kit/blueprint/Wrappers.ts +1 -1
- package/kit/blueprint/index.ts +2 -5
- package/kit/blueprint/styles.scss +79 -75
- package/package.json +3 -4
- package/styles/XH.scss +2 -2
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
|
|
18
18
|
### 💥 Breaking Changes
|
|
19
19
|
|
|
20
|
+
* Blueprint has been upgraded from version 5 to version 6. Most apps will not need to change,
|
|
21
|
+
but see https://github.com/palantir/blueprint/wiki/Blueprint-6.0 for more details. Also note that
|
|
22
|
+
any custom css overrides to blueprint will need to be updated to refer to `bp6` instead of `bp5`.
|
|
20
23
|
* Renamed `LoadSupport.loadModel` to `LoadSupport.loadObserver` for clarity. This property is a
|
|
21
24
|
`TaskObserver` instance, not a `HoistModel`. The getter methods `HoistModel.loadModel` and
|
|
22
25
|
`HoistService.loadModel` remain as aliases but are now deprecated and scheduled for removal in
|
|
@@ -37,6 +40,7 @@
|
|
|
37
40
|
* `DashCanvasModel.containerPadding` is now applied to the `react-grid-layout` div by RGL, not to the
|
|
38
41
|
hoist-react provided containing div. This may affect printing layouts.
|
|
39
42
|
|
|
43
|
+
|
|
40
44
|
### 🐞 Bug Fixes
|
|
41
45
|
|
|
42
46
|
* Fixed column chooser to display columns in the same order as they appear in the grid.
|
|
@@ -63,6 +67,8 @@
|
|
|
63
67
|
### 📚 Libraries
|
|
64
68
|
* react-grid-layout `1.5.0 → 2.1.1`
|
|
65
69
|
* hoist-core `35.0.0`
|
|
70
|
+
* @blueprintjs/core: 5.10.5 -> 6.3.2 ,
|
|
71
|
+
* @blueprintjs/datetime: 5.3.7 -> 6.0.6,
|
|
66
72
|
|
|
67
73
|
## 78.1.4 - 2025-12-05
|
|
68
74
|
|
package/admin/App.scss
CHANGED
|
@@ -30,7 +30,7 @@ export class ThemeModel extends HoistModel {
|
|
|
30
30
|
setDarkTheme(value: boolean) {
|
|
31
31
|
const classList = document.body.classList;
|
|
32
32
|
classList.toggle('xh-dark', value);
|
|
33
|
-
classList.toggle('
|
|
33
|
+
classList.toggle('bp6-dark', value);
|
|
34
34
|
this.darkTheme = value;
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PopperBoundary, PopperModifierOverrides } from '@blueprintjs/core';
|
|
2
2
|
import { TimePickerProps } from '@blueprintjs/datetime';
|
|
3
|
-
import { ReactDayPickerSingleProps } from '@blueprintjs/
|
|
3
|
+
import { ReactDayPickerSingleProps } from '@blueprintjs/datetime/src/common/reactDayPickerProps';
|
|
4
4
|
import { HoistInputProps } from '@xh/hoist/cmp/input';
|
|
5
5
|
import { HoistProps, LayoutProps, Some } from '@xh/hoist/core';
|
|
6
6
|
import '@xh/hoist/desktop/register';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Alert, Button, ButtonGroup, Callout, Card, Checkbox, ControlGroup, Dialog, Drawer, EditableText, FileInput, FormGroup, Hotkey, Hotkeys, InputGroup, Label, Menu, MenuDivider, MenuItem, Navbar, NavbarDivider, NavbarGroup, NavbarHeading, NumericInput, OverflowList, Overlay2 as Overlay, Popover, Radio, RadioGroup, RangeSlider, Slider, Switch, Tab, Tabs, Tag, TagInput, Text, TextArea, Tooltip, Tree } from '@blueprintjs/core';
|
|
2
|
-
import {
|
|
2
|
+
import { DatePicker } from '@blueprintjs/datetime';
|
|
3
3
|
export { Alert, Button, ButtonGroup, Callout, Card, Checkbox, ControlGroup, DatePicker, Dialog, Drawer, EditableText, FileInput, FormGroup, Hotkeys, Hotkey, InputGroup, Label, Menu, MenuItem, MenuDivider, Navbar, NavbarDivider, NavbarGroup, NavbarHeading, NumericInput, OverflowList, Overlay, Popover, Radio, RadioGroup, RangeSlider, Slider, Switch, Tab, Tabs, Tag, TagInput, TextArea, Text, Tooltip, Tree };
|
|
4
|
-
export declare const alert: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").AlertProps>, button: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").ButtonProps>, controlGroup: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").ControlGroupProps>, checkbox: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").CheckboxProps>, dialog: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").DialogProps>, datePicker: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/
|
|
4
|
+
export declare const alert: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").AlertProps>, button: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").ButtonProps>, controlGroup: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").ControlGroupProps>, checkbox: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").CheckboxProps>, dialog: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").DialogProps>, datePicker: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/datetime").DatePickerProps>, menuDivider: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").MenuDividerProps>, menuItem: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").MenuItemProps>, navbarDivider: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").NavbarDividerProps>, numericInput: import("@xh/hoist/core").ElementFactory<Omit<import("@blueprintjs/core").HTMLInputProps, "size"> & import("@blueprintjs/core").NumericInputProps>, overflowList: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").OverflowListProps<any>>, popover: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").PopoverProps<import("@blueprintjs/core").DefaultPopoverTargetHTMLProps>>, radio: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").ControlProps>, rangeSlider: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").RangeSliderProps>, slider: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").SliderProps>, switchControl: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").SwitchProps>, textArea: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").TextAreaProps>, tree: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").TreeProps<unknown>>, tagInput: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").TagInputProps>, fileInput: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").FileInputProps>, overlay: import("@xh/hoist/core").ElementFactory<Omit<import("@blueprintjs/core").Overlay2Props, "ref"> & import("react").RefAttributes<import("@blueprintjs/core").OverlayInstance>>, tooltip: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").TooltipProps<import("@blueprintjs/core").DefaultPopoverTargetHTMLProps>>;
|
|
5
5
|
export declare const buttonGroup: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").ButtonGroupProps>, callout: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").CalloutProps>, card: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").CardProps>, drawer: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").DrawerProps>, editableText: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").EditableTextProps>, formGroup: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").FormGroupProps>, hotkey: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").HotkeyProps>, hotkeys: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").HotkeysProps>, inputGroup: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").InputGroupProps>, label: import("@xh/hoist/core").ElementFactory<import("react").AllHTMLAttributes<HTMLLabelElement> & import("react").RefAttributes<HTMLLabelElement>>, menu: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").MenuProps>, navbar: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").NavbarProps>, navbarHeading: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").NavbarHeadingProps>, navbarGroup: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").NavbarGroupProps>, radioGroup: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").RadioGroupProps>, tabs: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").TabsProps>, tab: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").TabProps>, tag: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").TagProps>, text: import("@xh/hoist/core").ElementFactory<import("@blueprintjs/core").TextProps>;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Classes, type HotkeyConfig, OverlayToaster, PopoverInteractionKind, Position, type ToasterPosition, useHotkeys } from '@blueprintjs/core';
|
|
2
2
|
import '@blueprintjs/core/lib/css/blueprint.css';
|
|
3
3
|
import '@blueprintjs/datetime/lib/css/blueprint-datetime.css';
|
|
4
|
-
import '@blueprintjs/datetime2/lib/css/blueprint-datetime2.css';
|
|
5
4
|
import './styles.scss';
|
|
6
5
|
export { useHotkeys, HotkeyConfig, Classes, PopoverInteractionKind, Position, OverlayToaster, ToasterPosition };
|
|
7
6
|
export * from './Wrappers';
|
package/cmp/ag-grid/AgGrid.scss
CHANGED
package/cmp/chart/Chart.scss
CHANGED
|
@@ -29,16 +29,16 @@
|
|
|
29
29
|
margin: 0 0 0 var(--xh-pad-half-px);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
.
|
|
32
|
+
.bp6-toast-message {
|
|
33
33
|
overflow-wrap: break-word;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
36
|
// High level of specificity here required to override built-in BP styles
|
|
37
|
-
&.
|
|
37
|
+
&.bp6-toast .bp6-button {
|
|
38
38
|
background: none !important;
|
|
39
39
|
color: white !important;
|
|
40
40
|
|
|
41
|
-
.
|
|
41
|
+
.bp6-icon {
|
|
42
42
|
color: white !important;
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -4,26 +4,14 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
|
-
import {OverlayToasterProps} from '@blueprintjs/core';
|
|
8
7
|
import {ToastModel} from '@xh/hoist/appcontainer/ToastModel';
|
|
9
8
|
import {ToastSourceModel} from '@xh/hoist/appcontainer/ToastSourceModel';
|
|
10
9
|
import {div} from '@xh/hoist/cmp/layout';
|
|
11
|
-
import {
|
|
12
|
-
elementFactory,
|
|
13
|
-
hoistCmp,
|
|
14
|
-
HoistModel,
|
|
15
|
-
lookup,
|
|
16
|
-
PlainObject,
|
|
17
|
-
useLocalModel,
|
|
18
|
-
uses,
|
|
19
|
-
XH
|
|
20
|
-
} from '@xh/hoist/core';
|
|
10
|
+
import {hoistCmp, HoistModel, lookup, useLocalModel, uses} from '@xh/hoist/core';
|
|
21
11
|
import {OverlayToaster, ToasterPosition} from '@xh/hoist/kit/blueprint';
|
|
22
12
|
import {getOrCreate} from '@xh/hoist/utils/js';
|
|
23
13
|
import classNames from 'classnames';
|
|
24
14
|
import {isElement, map} from 'lodash';
|
|
25
|
-
import {RefAttributes} from 'react';
|
|
26
|
-
import {createRoot} from 'react-dom/client';
|
|
27
15
|
import {wait} from '../../promise';
|
|
28
16
|
import './Toast.scss';
|
|
29
17
|
|
|
@@ -108,39 +96,8 @@ class ToastSourceLocalModel extends HoistModel {
|
|
|
108
96
|
const toasterMap = this._toasterMap,
|
|
109
97
|
toasters = getOrCreate(toasterMap, container, () => ({}));
|
|
110
98
|
if (!toasters[position]) {
|
|
111
|
-
toasters[position] = await
|
|
99
|
+
toasters[position] = await OverlayToaster.create({position, className}, {container});
|
|
112
100
|
}
|
|
113
101
|
return toasters[position];
|
|
114
102
|
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Workaround to avoid calling OverlayToaster.create(). It uses ReactDOM.render
|
|
118
|
-
* that gives a warning because it is deprecated in React 18.
|
|
119
|
-
*
|
|
120
|
-
* The use of ReactDOM.render set to be removed from OverlayToaster.create() in Blueprint v6.0
|
|
121
|
-
* https://github.com/palantir/blueprint/issues/5212#issuecomment-1294958195
|
|
122
|
-
*/
|
|
123
|
-
private createToaster(props: PlainObject, container: HTMLElement): Promise<OverlayToaster> {
|
|
124
|
-
const containerElement = document.createElement('div');
|
|
125
|
-
container.appendChild(containerElement);
|
|
126
|
-
const root = createRoot(containerElement);
|
|
127
|
-
return new Promise((resolve, reject) => {
|
|
128
|
-
root.render(
|
|
129
|
-
overlayToaster({
|
|
130
|
-
...props,
|
|
131
|
-
usePortal: false,
|
|
132
|
-
ref: instance => {
|
|
133
|
-
instance
|
|
134
|
-
? resolve(instance)
|
|
135
|
-
: reject(XH.exception('Unable to create Blueprint toaster.'));
|
|
136
|
-
}
|
|
137
|
-
})
|
|
138
|
-
);
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
103
|
}
|
|
142
|
-
|
|
143
|
-
// `OverlayToasterProps` does not include `ref` prop, so we need to add it manually
|
|
144
|
-
const overlayToaster = elementFactory<OverlayToasterProps & RefAttributes<OverlayToaster>>(
|
|
145
|
-
OverlayToaster
|
|
146
|
-
);
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
//------------------------
|
|
26
26
|
// Blueprint overrides
|
|
27
27
|
//------------------------
|
|
28
|
-
.
|
|
29
|
-
.
|
|
28
|
+
.bp6-navbar,
|
|
29
|
+
.bp6-dark .bp6-navbar {
|
|
30
30
|
display: flex;
|
|
31
31
|
align-items: center;
|
|
32
32
|
flex-wrap: nowrap;
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
// Curiously, Admin Log Viewer would cause appbar to shrink without min-height
|
|
41
41
|
min-height: var(--xh-appbar-height-px);
|
|
42
42
|
|
|
43
|
-
.
|
|
43
|
+
.bp6-navbar-divider {
|
|
44
44
|
border-left-color: var(--xh-tbar-separator-color);
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -49,17 +49,17 @@
|
|
|
49
49
|
flex-shrink: 0;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
.
|
|
52
|
+
.bp6-navbar-heading {
|
|
53
53
|
color: var(--xh-appbar-title-color);
|
|
54
54
|
font-size: var(--xh-appbar-title-font-size-px);
|
|
55
55
|
margin-left: var(--xh-pad-px);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
.
|
|
58
|
+
.bp6-navbar-group {
|
|
59
59
|
overflow: hidden;
|
|
60
60
|
height: var(--xh-appbar-height-px);
|
|
61
61
|
|
|
62
|
-
.
|
|
62
|
+
.bp6-navbar-divider {
|
|
63
63
|
margin: 0 var(--xh-pad-px);
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
margin: 0 5px 0 0;
|
|
71
71
|
}
|
|
72
72
|
|
|
73
|
-
&.
|
|
73
|
+
&.bp6-align-left {
|
|
74
74
|
// Flex simulates left alignment
|
|
75
75
|
flex: 1;
|
|
76
76
|
|
|
@@ -80,13 +80,13 @@
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
&.
|
|
83
|
+
&.bp6-align-right {
|
|
84
84
|
// Apply standardized spacing to extra appBar items, excepting dividers and xh-no-pad elements.
|
|
85
|
-
> *:not(.
|
|
85
|
+
> *:not(.bp6-navbar-divider):not(.xh-no-pad) {
|
|
86
86
|
margin-left: var(--xh-pad-px);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
.
|
|
89
|
+
.bp6-navbar-divider {
|
|
90
90
|
margin-right: 0;
|
|
91
91
|
}
|
|
92
92
|
}
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
//-----------------------------------------------
|
|
12
12
|
.xh-app,
|
|
13
13
|
.xh-app.xh-dark,
|
|
14
|
-
.xh-app.xh-dark.
|
|
15
|
-
.xh-button.
|
|
14
|
+
.xh-app.xh-dark.bp6-dark {
|
|
15
|
+
.xh-button.bp6-button {
|
|
16
16
|
border-radius: var(--xh-button-border-radius-px);
|
|
17
17
|
font-family: var(--xh-button-font-family);
|
|
18
18
|
font-size: var(--xh-button-font-size-px);
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
// Button group (input)
|
|
49
49
|
//------------------------
|
|
50
50
|
.xh-button-group {
|
|
51
|
-
.xh-button.
|
|
51
|
+
.xh-button.bp6-button {
|
|
52
52
|
&.xh-button--minimal,
|
|
53
53
|
&.xh-button--outlined {
|
|
54
54
|
// Ensures outlined buttons in button-groups appear seamlessly adjacent to each other in dark mode.
|
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
// Horizontal mode only styles
|
|
77
|
-
&:not(.
|
|
78
|
-
.xh-button.
|
|
77
|
+
&:not(.bp6-vertical) {
|
|
78
|
+
.xh-button.bp6-button {
|
|
79
79
|
// Standard and outlined have borders - remove standard radius in between adjacent buttons so
|
|
80
80
|
// they seamlessly combine their inner borders.
|
|
81
81
|
border-radius: 0;
|
|
@@ -98,8 +98,8 @@
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
// Vertical mode only styles
|
|
101
|
-
&.
|
|
102
|
-
.xh-button.
|
|
101
|
+
&.bp6-vertical {
|
|
102
|
+
.xh-button.bp6-button {
|
|
103
103
|
// Standard and outlined have borders - remove standard radius in between adjacent buttons so
|
|
104
104
|
// they seamlessly combine their inner borders.
|
|
105
105
|
border-radius: 0;
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
// Default/light theme colors
|
|
128
128
|
//---------------------------
|
|
129
129
|
.xh-app {
|
|
130
|
-
.xh-button.
|
|
130
|
+
.xh-button.bp6-button {
|
|
131
131
|
// Shaded/filled-in (non-minimal) mode.
|
|
132
132
|
&.xh-button--standard {
|
|
133
133
|
&.xh-button--active {
|
|
@@ -320,8 +320,8 @@
|
|
|
320
320
|
// Dark theme colors
|
|
321
321
|
//---------------------------
|
|
322
322
|
.xh-app.xh-dark,
|
|
323
|
-
.xh-app.xh-dark.
|
|
324
|
-
.xh-button.
|
|
323
|
+
.xh-app.xh-dark.bp6-dark {
|
|
324
|
+
.xh-button.bp6-button {
|
|
325
325
|
// Dark - shaded/filled-in (non-minimal) mode.
|
|
326
326
|
&.xh-button--standard {
|
|
327
327
|
&.xh-button--intent-none {
|
|
@@ -507,7 +507,7 @@
|
|
|
507
507
|
.xh-panel-header__items,
|
|
508
508
|
.xh-panel-header--right,
|
|
509
509
|
.xh-panel-header--left {
|
|
510
|
-
.xh-button.
|
|
510
|
+
.xh-button.bp6-button.xh-button--minimal {
|
|
511
511
|
&.xh-button--intent-none {
|
|
512
512
|
&.xh-button--enabled {
|
|
513
513
|
&:hover:not(:active):not(.xh-button--active) {
|
|
@@ -11,7 +11,6 @@ import ReactGridLayout, {
|
|
|
11
11
|
getCompactor
|
|
12
12
|
} from 'react-grid-layout';
|
|
13
13
|
import {GridBackground, type GridBackgroundProps} from 'react-grid-layout/extras';
|
|
14
|
-
import {showContextMenu} from '@xh/hoist/kit/blueprint';
|
|
15
14
|
import composeRefs from '@seznam/compose-react-refs';
|
|
16
15
|
import {div, vbox, vspacer} from '@xh/hoist/cmp/layout';
|
|
17
16
|
import {
|
|
@@ -24,7 +23,7 @@ import {
|
|
|
24
23
|
} from '@xh/hoist/core';
|
|
25
24
|
import {dashCanvasAddViewButton} from '@xh/hoist/desktop/cmp/button/DashCanvasAddViewButton';
|
|
26
25
|
import '@xh/hoist/desktop/register';
|
|
27
|
-
import {Classes, overlay} from '@xh/hoist/kit/blueprint';
|
|
26
|
+
import {Classes, overlay, showContextMenu} from '@xh/hoist/kit/blueprint';
|
|
28
27
|
import {consumeEvent, mergeDeep, TEST_ID} from '@xh/hoist/utils/js';
|
|
29
28
|
import classNames from 'classnames';
|
|
30
29
|
import {DashCanvasModel} from './DashCanvasModel';
|
|
@@ -17,7 +17,6 @@ import {
|
|
|
17
17
|
XH
|
|
18
18
|
} from '@xh/hoist/core';
|
|
19
19
|
import {convertIconToHtml, deserializeIcon, ResolvedIconProps} from '@xh/hoist/icon';
|
|
20
|
-
import {showContextMenu} from '@xh/hoist/kit/blueprint';
|
|
21
20
|
import {GoldenLayout} from '@xh/hoist/kit/golden-layout';
|
|
22
21
|
import {action, bindable, makeObservable, observable, runInAction} from '@xh/hoist/mobx';
|
|
23
22
|
import {wait} from '@xh/hoist/promise';
|
|
@@ -48,6 +47,7 @@ import {
|
|
|
48
47
|
goldenLayoutConfig
|
|
49
48
|
} from './impl/DashContainerUtils';
|
|
50
49
|
import {dashContainerView} from './impl/DashContainerView';
|
|
50
|
+
import {showContextMenu} from '@xh/hoist/kit/blueprint';
|
|
51
51
|
|
|
52
52
|
export interface DashContainerConfig extends DashConfig<
|
|
53
53
|
DashContainerViewSpec,
|
|
@@ -5,17 +5,17 @@
|
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
7
|
.xh-popover-filter-chooser {
|
|
8
|
-
& > .
|
|
8
|
+
& > .bp6-popover-target {
|
|
9
9
|
display: flex;
|
|
10
10
|
flex: 1;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
// Extra class names required to override the default styles of the popover
|
|
14
|
-
&__popover.
|
|
14
|
+
&__popover.bp6-popover.bp6-minimal {
|
|
15
15
|
margin-top: -15px !important;
|
|
16
16
|
box-shadow: none;
|
|
17
17
|
|
|
18
|
-
.
|
|
18
|
+
.bp6-popover-content {
|
|
19
19
|
background: transparent;
|
|
20
20
|
}
|
|
21
21
|
|
|
@@ -29,18 +29,18 @@
|
|
|
29
29
|
align-items: stretch;
|
|
30
30
|
|
|
31
31
|
.xh-input {
|
|
32
|
-
.
|
|
32
|
+
.bp6-input-group {
|
|
33
33
|
width: 100%;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
&.
|
|
37
|
-
.
|
|
36
|
+
&.bp6-popover-target,
|
|
37
|
+
.bp6-popover-target {
|
|
38
38
|
display: flex;
|
|
39
39
|
flex: 1;
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
.
|
|
43
|
+
.bp6-popover-target > .bp6-control-group {
|
|
44
44
|
display: flex;
|
|
45
45
|
flex: 1;
|
|
46
46
|
}
|
|
@@ -69,7 +69,7 @@ export const actionCol: ColumnSpec = {
|
|
|
69
69
|
disabled,
|
|
70
70
|
tooltip,
|
|
71
71
|
intent,
|
|
72
|
-
className: classNames('
|
|
72
|
+
className: classNames('bp6-small', 'xh-record-action-button', className),
|
|
73
73
|
onClick: ev => {
|
|
74
74
|
ev.stopPropagation();
|
|
75
75
|
action.call({record, selectedRecords: [record], gridModel, column});
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
.xh-date-input__wrapper,
|
|
24
|
-
.
|
|
24
|
+
.bp6-popover-target > div {
|
|
25
25
|
display: flex;
|
|
26
26
|
flex: 1;
|
|
27
27
|
height: 100%;
|
|
@@ -32,13 +32,13 @@
|
|
|
32
32
|
width: 100%;
|
|
33
33
|
height: 100%;
|
|
34
34
|
|
|
35
|
-
.
|
|
35
|
+
.bp6-input-group {
|
|
36
36
|
display: flex;
|
|
37
37
|
flex: 1;
|
|
38
38
|
height: 100%;
|
|
39
39
|
width: 100%;
|
|
40
40
|
|
|
41
|
-
.
|
|
41
|
+
.bp6-input-action {
|
|
42
42
|
button {
|
|
43
43
|
min-height: 18px;
|
|
44
44
|
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
justify-content: center;
|
|
80
80
|
padding: 0;
|
|
81
81
|
|
|
82
|
-
.
|
|
82
|
+
.bp6-control-indicator {
|
|
83
83
|
margin: 0;
|
|
84
84
|
}
|
|
85
85
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
padding: 5px 7px;
|
|
5
5
|
row-gap: 5px;
|
|
6
6
|
|
|
7
|
-
.
|
|
7
|
+
.bp6-control-indicator {
|
|
8
8
|
font-size: 1em;
|
|
9
9
|
}
|
|
10
10
|
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
|
|
55
55
|
.ag-pinned-left-header,
|
|
56
56
|
.ag-cell.ag-cell-last-left-pinned {
|
|
57
|
-
.
|
|
57
|
+
.bp6-control.bp6-inline {
|
|
58
58
|
margin-right: -8px;
|
|
59
59
|
|
|
60
60
|
input {
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
// Outer box is sized via layoutSupport - all nested inner elements should stretch to fill.
|
|
28
|
-
.
|
|
28
|
+
.bp6-popover-target,
|
|
29
29
|
.xh-grouping-chooser-button {
|
|
30
30
|
width: 100%;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
.
|
|
33
|
+
.bp6-popover-target span {
|
|
34
34
|
position: relative;
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -148,7 +148,7 @@
|
|
|
148
148
|
|
|
149
149
|
--xh-menu-border: none;
|
|
150
150
|
|
|
151
|
-
.
|
|
151
|
+
.bp6-menu {
|
|
152
152
|
padding: 0;
|
|
153
153
|
}
|
|
154
154
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Copyright © 2025 Extremely Heavy Industries Inc.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
.xh-check-box.xh-input-disabled input:checked ~ .
|
|
8
|
+
.xh-check-box.xh-input-disabled input:checked ~ .bp6-control-indicator {
|
|
9
9
|
background-color: var(--xh-input-disabled-bg) !important;
|
|
10
10
|
&::before {
|
|
11
11
|
background-image: var(--xh-input-disabled-checkmark-svg) !important;
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
.xh-date-input__wrapper {
|
|
9
|
-
.
|
|
9
|
+
.bp6-input-action {
|
|
10
10
|
height: 100%;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
.
|
|
13
|
+
.bp6-input-group .xh-icon {
|
|
14
14
|
position: relative;
|
|
15
15
|
margin: 0 !important;
|
|
16
16
|
}
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
cursor: pointer !important;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
.
|
|
27
|
+
.bp6-input-group.bp6-disabled {
|
|
28
28
|
cursor: pointer !important;
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import {PopperBoundary, PopperModifierOverrides} from '@blueprintjs/core';
|
|
8
8
|
import {TimePickerProps} from '@blueprintjs/datetime';
|
|
9
|
-
import {ReactDayPickerSingleProps} from '@blueprintjs/
|
|
9
|
+
import {ReactDayPickerSingleProps} from '@blueprintjs/datetime/src/common/reactDayPickerProps';
|
|
10
10
|
import {HoistInputModel, HoistInputProps, useHoistInputModel} from '@xh/hoist/cmp/input';
|
|
11
11
|
import {div, hbox} from '@xh/hoist/cmp/layout';
|
|
12
12
|
import {hoistCmp, HoistProps, LayoutProps, Some} from '@xh/hoist/core';
|