uiconfig-blueprint 0.1.0-dev.4 → 0.1.0-dev.6
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/dist/{allPaths-B8LX_D5a.js → allPaths-CxAGUqQA.js} +5 -5
- package/dist/{allPaths-B8LX_D5a.js.map → allPaths-CxAGUqQA.js.map} +1 -1
- package/dist/{allPathsLoader-ChwV6s_m.js → allPathsLoader-D9qLQ797.js} +4 -4
- package/dist/{allPathsLoader-ChwV6s_m.js.map → allPathsLoader-D9qLQ797.js.map} +1 -1
- package/dist/bpComponents/BPTreeComponent.d.ts +4 -5
- package/dist/{index-CPVHSDA_.js → index-CKe0TkQl.js} +1401 -1359
- package/dist/{index-CPVHSDA_.js.map → index-CKe0TkQl.js.map} +1 -1
- package/dist/{index-DzfuAEGU.js → index-CWeYtJnn.js} +2 -2
- package/dist/{index-DzfuAEGU.js.map → index-CWeYtJnn.js.map} +1 -1
- package/dist/{index-B3lLOxQd.js → index-Dv22bSeb.js} +2 -2
- package/dist/{index-B3lLOxQd.js.map → index-Dv22bSeb.js.map} +1 -1
- package/dist/index.js +15 -15
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/{splitPathsBySizeLoader-WipJWyYS.js → splitPathsBySizeLoader-DjI12iKG.js} +5 -5
- package/dist/{splitPathsBySizeLoader-WipJWyYS.js.map → splitPathsBySizeLoader-DjI12iKG.js.map} +1 -1
- package/docs/classes/UI.html +3 -3
- package/docs/classes/UiConfigRendererBlueprint.html +3 -3
- package/lib/css/renderer.css +3 -3
- package/lib/esm/bpComponents/BPFileComponent.js +1 -1
- package/lib/esm/bpComponents/BPFileComponent.js.map +1 -1
- package/lib/esm/bpComponents/BPTreeComponent.d.ts +4 -5
- package/lib/esm/bpComponents/BPTreeComponent.js +17 -4
- package/lib/esm/bpComponents/BPTreeComponent.js.map +1 -1
- package/lib/esm/components/ConfigurationPanelComponent.js +6 -1
- package/lib/esm/components/ConfigurationPanelComponent.js.map +1 -1
- package/package.json +5 -8
- package/src/bpComponents/BPFileComponent.tsx +2 -1
- package/src/bpComponents/BPTreeComponent.tsx +23 -8
- package/src/components/ConfigurationPanelComponent.tsx +14 -3
- package/src/renderer.scss +4 -4
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { BPComponent, BPComponentProps, BPComponentState, UiConfigRendererContextType } from "./BPComponent";
|
|
3
3
|
import { TreeNodeInfo } from "@blueprintjs/core";
|
|
4
|
-
import { PrimitiveVal } from "uiconfig.js";
|
|
5
4
|
export type BPTreeComponentState<T = {}> = BPComponentState & {
|
|
6
5
|
nodes: TreeNodeInfo<T>[];
|
|
7
6
|
};
|
|
8
|
-
type NodePath = number[];
|
|
9
|
-
export declare abstract class BPTreeComponent<T = {}, TConfigVal extends
|
|
7
|
+
type NodePath = (string | number)[];
|
|
8
|
+
export declare abstract class BPTreeComponent<T = {}, TConfigVal extends any = void> extends BPComponent<TConfigVal, BPTreeComponentState<T>> {
|
|
10
9
|
constructor(props: BPComponentProps<TConfigVal>, context: UiConfigRendererContextType);
|
|
11
10
|
protected _infoMap: Map<string | number, TreeNodeInfo<T>>;
|
|
12
11
|
protected _createNodeInfo(id: string, obj: T): {
|
|
@@ -23,14 +22,14 @@ export declare abstract class BPTreeComponent<T = {}, TConfigVal extends Primiti
|
|
|
23
22
|
protected _onNodeClick(_id: string | number): Promise<void>;
|
|
24
23
|
protected _onNodeDoubleClick(_id: string | number): Promise<void>;
|
|
25
24
|
protected _cloneNodes(callback?: (t: TreeNodeInfo<T>) => void, state?: TreeNodeInfo<T>[]): TreeNodeInfo<T>[];
|
|
25
|
+
protected _getNodePath(id: string, nodes?: TreeNodeInfo<T>[]): NodePath;
|
|
26
26
|
protected _forEachNode<T>(nodes: TreeNodeInfo<T>[] | undefined, callback: (node: TreeNodeInfo<T>, path: NodePath) => void, path?: NodePath): TreeNodeInfo<T>[] | undefined;
|
|
27
|
-
protected _forNodeAtPath<T>(nodes: TreeNodeInfo<T>[], path: NodePath, callback: (node: TreeNodeInfo<T>) => void): void;
|
|
28
27
|
protected _onNodeExpandCollapse(_id: string | number, expanded?: boolean): Promise<void>;
|
|
29
28
|
protected _onNodeContextMenu(_id: string | number): Promise<void>;
|
|
30
29
|
protected buildData(data: TreeNodeInfo<T>[], obj: T, _?: any, _2?: any): TreeNodeInfo<T>[];
|
|
31
30
|
getUpdatedState(_state: BPTreeComponentState<T>): BPTreeComponentState<T>;
|
|
32
31
|
deselectAll(): Promise<void>;
|
|
33
|
-
setSelected(id?: string): Promise<void>;
|
|
32
|
+
setSelected(id?: string, expand?: boolean): Promise<void>;
|
|
34
33
|
componentDidMount(): void;
|
|
35
34
|
componentWillUnmount(): void;
|
|
36
35
|
findSelectedNode(nodes?: TreeNodeInfo<T>[]): TreeNodeInfo<T> | undefined;
|
|
@@ -42,6 +42,14 @@ export class BPTreeComponent extends BPComponent {
|
|
|
42
42
|
return res;
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
+
_getNodePath(id, nodes) {
|
|
46
|
+
let path1 = null;
|
|
47
|
+
this._forEachNode(nodes !== null && nodes !== void 0 ? nodes : this.state.nodes, (node, path) => {
|
|
48
|
+
if (node.id === id)
|
|
49
|
+
path1 = path;
|
|
50
|
+
});
|
|
51
|
+
return path1 !== null && path1 !== void 0 ? path1 : [];
|
|
52
|
+
}
|
|
45
53
|
_forEachNode(nodes, callback, path = []) {
|
|
46
54
|
if (nodes === undefined) {
|
|
47
55
|
return nodes;
|
|
@@ -52,9 +60,6 @@ export class BPTreeComponent extends BPComponent {
|
|
|
52
60
|
}
|
|
53
61
|
return nodes;
|
|
54
62
|
}
|
|
55
|
-
_forNodeAtPath(nodes, path, callback) {
|
|
56
|
-
callback(Tree.nodeFromPath(path, nodes));
|
|
57
|
-
}
|
|
58
63
|
_onNodeExpandCollapse(_id, expanded) {
|
|
59
64
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
65
|
const nodes = this._cloneNodes();
|
|
@@ -97,9 +102,17 @@ export class BPTreeComponent extends BPComponent {
|
|
|
97
102
|
const nodes = this._cloneNodes(n => n.isSelected = false);
|
|
98
103
|
return this.setStatePromise(Object.assign(Object.assign({}, this.state), { nodes }));
|
|
99
104
|
}
|
|
100
|
-
setSelected(id) {
|
|
105
|
+
setSelected(id, expand = false) {
|
|
101
106
|
return __awaiter(this, void 0, void 0, function* () {
|
|
102
107
|
const nodes = this._cloneNodes(n => n.isSelected = n.id === id);
|
|
108
|
+
if (expand && id !== undefined) {
|
|
109
|
+
const parents = this._getNodePath(id, nodes);
|
|
110
|
+
for (let i = 0; i < parents.length; i++) {
|
|
111
|
+
const node = this._infoMap.get(parents[i]);
|
|
112
|
+
if (node)
|
|
113
|
+
node.isExpanded = true;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
103
116
|
return this.setStatePromise(Object.assign(Object.assign({}, this.state), { nodes }));
|
|
104
117
|
});
|
|
105
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BPTreeComponent.js","sourceRoot":"","sources":["../../../src/bpComponents/BPTreeComponent.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAC,WAAW,EAAkE,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAC,IAAI,EAAe,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"BPTreeComponent.js","sourceRoot":"","sources":["../../../src/bpComponents/BPTreeComponent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,15 @@ export function ConfigurationPanelComponent({ config }) {
|
|
|
17
17
|
};
|
|
18
18
|
}, [config]);
|
|
19
19
|
const [currentPanelStack, setCurrentPanelStack] = React.useState([stackItem()]);
|
|
20
|
+
const [isMinimized, setIsMinimized] = React.useState(false);
|
|
20
21
|
React.useEffect(() => {
|
|
21
22
|
setCurrentPanelStack([stackItem()]);
|
|
22
23
|
}, [stackItem, setCurrentPanelStack]);
|
|
23
24
|
const style = setupVisualStyle();
|
|
24
|
-
return (
|
|
25
|
+
return (_jsxs(VisualStyleContext.Provider, { value: Object.assign(Object.assign({}, defaultVisualStyle), style), children: [_jsxs(Card, { className: `bpInspectorCard ${style.darkMode ? Classes.DARK : ""}`, style: { display: isMinimized ? 'none' : 'block' }, children: [_jsx(PanelStack2, { className: "inspectorPanelStack", showPanelHeader: true, renderActivePanelOnly: true, onOpen: (p) => setCurrentPanelStack([...currentPanelStack, p]), onClose: () => setCurrentPanelStack(currentPanelStack.slice(0, -1)), stack: currentPanelStack }), _jsxs("div", { className: "bpPanelStackHeaderOverlay " + Classes.PANEL_STACK2_HEADER, children: [_jsx(Popover, { targetProps: { style: { position: "absolute", right: "30px" } }, minimal: true, targetTagName: "div", content: _jsx(ThemeSettingsMenuComponent, {}), placement: "bottom", children: _jsx(Button, { icon: "more", small: true, minimal: true, text: "" }) }), _jsx(Button, { icon: "minus", small: true, minimal: true, text: "", style: { position: "absolute", right: "5px" }, onClick: () => {
|
|
26
|
+
setIsMinimized(!isMinimized);
|
|
27
|
+
} })] })] }), isMinimized && _jsx(Button, { icon: "cog", small: true, text: "Configuration", style: { position: "absolute", right: "5px" }, onClick: () => {
|
|
28
|
+
setIsMinimized(!isMinimized);
|
|
29
|
+
} })] }));
|
|
25
30
|
}
|
|
26
31
|
//# sourceMappingURL=ConfigurationPanelComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigurationPanelComponent.js","sourceRoot":"","sources":["../../../src/components/ConfigurationPanelComponent.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,MAAM,EAAE,IAAI,EAAS,WAAW,EAAE,OAAO,EAAC,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAC,YAAY,EAAc,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAC,uBAAuB,EAAC,MAAM,6BAA6B,CAAA;AACnE,OAAO,EAAC,OAAO,EAAC,MAAM,8BAA8B,CAAA;AACpD,OAAO,EACH,kBAAkB,EAClB,gBAAgB,EAChB,0BAA0B,EAC1B,kBAAkB,EACrB,MAAM,sBAAsB,CAAA;AAI7B,MAAM,UAAU,2BAA2B,CAAC,EAAC,MAAM,EAA2C;IAC1F,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACrC,OAAO;YACH,KAAK,EAAE,EAAC,MAAM,EAAE,MAAM,EAAC;YACvB,WAAW,CAAC,KAAkB;gBAE1B,OAAO,CACH,aAAI,KAAK,EAAE,EAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAC,YAE5D,MAAM,IAAI,CAAC,KAAC,YAAY,oBAAK,KAAK,IAAE,OAAO,EAAE,IAAI,IAAG,CAAC,GACrD,CACR,CAAA;YACL,CAAC;YACD,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;SACN,CAAA;IAC1C,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACZ,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAA2C,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigurationPanelComponent.js","sourceRoot":"","sources":["../../../src/components/ConfigurationPanelComponent.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uiconfig-blueprint",
|
|
3
3
|
"name:umd": "bpui",
|
|
4
|
-
"version": "0.1.0-dev.
|
|
4
|
+
"version": "0.1.0-dev.6",
|
|
5
5
|
"description": "Blueprint.js wrapper and custom components for web controls UI. To be used with uiconfig.",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.mjs",
|
|
@@ -37,11 +37,12 @@
|
|
|
37
37
|
},
|
|
38
38
|
"homepage": "https://github.com/repalash/uiconfig-blueprint#readme",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"ts-browser-helpers": "^0.16.
|
|
40
|
+
"ts-browser-helpers": "^0.16.2",
|
|
41
41
|
"uiconfig.js": "^0.1.2",
|
|
42
42
|
"@blueprintjs/icons": "^5.11.0",
|
|
43
43
|
"@blueprintjs/select": "^5.2.2",
|
|
44
|
-
"blueprint-styler": "^5.0.2"
|
|
44
|
+
"blueprint-styler": "^5.0.2",
|
|
45
|
+
"react-colorful": "^5.6.1"
|
|
45
46
|
},
|
|
46
47
|
"peerDependencies": {
|
|
47
48
|
"@blueprintjs/core": "^5.11.0",
|
|
@@ -50,8 +51,7 @@
|
|
|
50
51
|
"@types/react": "^18.0.28",
|
|
51
52
|
"@types/react-dom": "^18.0.11",
|
|
52
53
|
"react": "^18.2.0",
|
|
53
|
-
"react-dom": "^18.2.0"
|
|
54
|
-
"react-colorful": "^5.6.1"
|
|
54
|
+
"react-dom": "^18.2.0"
|
|
55
55
|
},
|
|
56
56
|
"peerDependenciesMeta": {
|
|
57
57
|
"@blueprintjs/core": {
|
|
@@ -74,9 +74,6 @@
|
|
|
74
74
|
},
|
|
75
75
|
"react-dom": {
|
|
76
76
|
"optional": true
|
|
77
|
-
},
|
|
78
|
-
"react-colorful": {
|
|
79
|
-
"optional": true
|
|
80
77
|
}
|
|
81
78
|
},
|
|
82
79
|
"//": {
|
|
@@ -13,6 +13,7 @@ export type BPFileComponentState = BPValueComponentState<StateValue> & {
|
|
|
13
13
|
type BPFileComponentExtras = {fileLoader?: {load: (v: string|File|{path: string, file: File|Blob})=>Promise<FileImportType>}}
|
|
14
14
|
type BPFileComponentContextType = UiConfigRendererContextType & BPFileComponentExtras
|
|
15
15
|
|
|
16
|
+
// todo make this abstract?
|
|
16
17
|
// @ts-ignore
|
|
17
18
|
export class BPFileComponent<T extends FileImportType=FileImportType, TP = {}> extends BPValueComponent<T | null, BPFileComponentState, StateValue> {
|
|
18
19
|
declare context: BPFileComponentContextType
|
|
@@ -67,7 +68,7 @@ export class BPFileComponent<T extends FileImportType=FileImportType, TP = {}> e
|
|
|
67
68
|
// }
|
|
68
69
|
|
|
69
70
|
renderPreviewSlot() {
|
|
70
|
-
return <img src={"https://
|
|
71
|
+
return <img src={"https://threepipe.org/logo.svg"}
|
|
71
72
|
style={{width: "100%", maxHeight: "80px", objectFit: "contain"}}/>
|
|
72
73
|
}
|
|
73
74
|
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import {BPComponent, BPComponentProps, BPComponentState, UiConfigRendererContextType} from "./BPComponent";
|
|
2
2
|
import {Tree, TreeNodeInfo} from "@blueprintjs/core";
|
|
3
|
-
import {PrimitiveVal} from "uiconfig.js";
|
|
4
3
|
|
|
5
4
|
export type BPTreeComponentState<T = {}> = BPComponentState & {
|
|
6
5
|
nodes: TreeNodeInfo<T>[]
|
|
7
6
|
}
|
|
8
7
|
|
|
9
8
|
// https://github.com/palantir/blueprint/blob/develop/packages/docs-app/src/examples/core-examples/treeExample.tsx
|
|
10
|
-
type NodePath = number[];
|
|
9
|
+
type NodePath = (string|number)[];
|
|
11
10
|
|
|
12
|
-
export abstract class BPTreeComponent<T = {}, TConfigVal extends PrimitiveVal|void = void> extends BPComponent<TConfigVal, BPTreeComponentState<T>> {
|
|
11
|
+
export abstract class BPTreeComponent<T = {}, TConfigVal extends any /*|PrimitiveVal|void*/ = void> extends BPComponent<TConfigVal, BPTreeComponentState<T>> {
|
|
13
12
|
constructor(props: BPComponentProps<TConfigVal>, context: UiConfigRendererContextType) {
|
|
14
13
|
super(props, context, {nodes: []});
|
|
15
14
|
}
|
|
@@ -51,19 +50,28 @@ export abstract class BPTreeComponent<T = {}, TConfigVal extends PrimitiveVal|vo
|
|
|
51
50
|
})
|
|
52
51
|
}
|
|
53
52
|
|
|
53
|
+
protected _getNodePath(id: string, nodes?: TreeNodeInfo<T>[]): NodePath {
|
|
54
|
+
let path1: NodePath|null = null
|
|
55
|
+
this._forEachNode(nodes ?? this.state.nodes, (node, path) => {
|
|
56
|
+
if (node.id === id) path1 = path
|
|
57
|
+
})
|
|
58
|
+
return path1 ?? []
|
|
59
|
+
}
|
|
60
|
+
|
|
54
61
|
protected _forEachNode<T>(nodes: TreeNodeInfo<T>[] | undefined, callback: (node: TreeNodeInfo<T>, path: NodePath) => void, path: NodePath = []) {
|
|
55
62
|
if (nodes === undefined) {
|
|
56
63
|
return nodes;
|
|
57
64
|
}
|
|
58
65
|
for (const node of nodes) {
|
|
59
66
|
callback(node, path);
|
|
60
|
-
this._forEachNode(node.childNodes, callback, [...path, node.id]
|
|
67
|
+
this._forEachNode(node.childNodes, callback, [...path, node.id]);
|
|
61
68
|
}
|
|
62
69
|
return nodes
|
|
63
70
|
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
71
|
+
|
|
72
|
+
// protected _forNodeAtPath<T>(nodes: TreeNodeInfo<T>[], path: NodePath, callback: (node: TreeNodeInfo<T>) => void) {
|
|
73
|
+
// callback(Tree.nodeFromPath(path, nodes));
|
|
74
|
+
// }
|
|
67
75
|
|
|
68
76
|
protected async _onNodeExpandCollapse(_id: string | number, expanded?: boolean) {
|
|
69
77
|
const nodes = this._cloneNodes()
|
|
@@ -104,8 +112,15 @@ export abstract class BPTreeComponent<T = {}, TConfigVal extends PrimitiveVal|vo
|
|
|
104
112
|
return this.setStatePromise({...this.state, nodes})
|
|
105
113
|
}
|
|
106
114
|
|
|
107
|
-
async setSelected(id?: string) {
|
|
115
|
+
async setSelected(id?: string, expand = false) {
|
|
108
116
|
const nodes = this._cloneNodes(n => n.isSelected = n.id === id)
|
|
117
|
+
if(expand && id!==undefined){
|
|
118
|
+
const parents = this._getNodePath(id, nodes)
|
|
119
|
+
for (let i = 0; i < parents.length; i++) {
|
|
120
|
+
const node = this._infoMap.get(parents[i])
|
|
121
|
+
if(node) node.isExpanded = true
|
|
122
|
+
}
|
|
123
|
+
}
|
|
109
124
|
return this.setStatePromise({...this.state, nodes})
|
|
110
125
|
}
|
|
111
126
|
|
|
@@ -31,6 +31,7 @@ export function ConfigurationPanelComponent({config}: { config: UiObjectConfig<a
|
|
|
31
31
|
} as Panel<{ config: UiObjectConfig }>
|
|
32
32
|
}, [config])
|
|
33
33
|
const [currentPanelStack, setCurrentPanelStack] = React.useState<Array<Panel<{ config: UiObjectConfig }>>>([stackItem()]);
|
|
34
|
+
const [isMinimized, setIsMinimized] = React.useState(false);
|
|
34
35
|
|
|
35
36
|
React.useEffect(() => {
|
|
36
37
|
setCurrentPanelStack([stackItem()])
|
|
@@ -40,7 +41,7 @@ export function ConfigurationPanelComponent({config}: { config: UiObjectConfig<a
|
|
|
40
41
|
|
|
41
42
|
return (
|
|
42
43
|
<VisualStyleContext.Provider value={{...defaultVisualStyle, ...style}}>
|
|
43
|
-
<Card className={`bpInspectorCard ${style.darkMode?Classes.DARK:""}`}>
|
|
44
|
+
<Card className={`bpInspectorCard ${style.darkMode?Classes.DARK:""}`} style={{display: isMinimized ? 'none' : 'block'}}>
|
|
44
45
|
<PanelStack2 className="inspectorPanelStack"
|
|
45
46
|
showPanelHeader={true}
|
|
46
47
|
renderActivePanelOnly={true}
|
|
@@ -48,16 +49,26 @@ export function ConfigurationPanelComponent({config}: { config: UiObjectConfig<a
|
|
|
48
49
|
onClose={() => setCurrentPanelStack(currentPanelStack.slice(0, -1))}
|
|
49
50
|
stack={currentPanelStack}/>
|
|
50
51
|
<div className={"bpPanelStackHeaderOverlay " + Classes.PANEL_STACK2_HEADER}>
|
|
51
|
-
<Popover targetProps={{style: {position: "absolute", right: "
|
|
52
|
+
<Popover targetProps={{style: {position: "absolute", right: "30px"}}}
|
|
52
53
|
minimal={true}
|
|
53
54
|
targetTagName={"div"}
|
|
54
55
|
content={
|
|
55
56
|
<ThemeSettingsMenuComponent/>
|
|
56
57
|
} placement="bottom">
|
|
57
|
-
<Button icon="
|
|
58
|
+
<Button icon="more" small minimal text="" />
|
|
58
59
|
</Popover>
|
|
60
|
+
<Button icon="minus" small minimal text="" style={{position: "absolute", right: "5px"}}
|
|
61
|
+
onClick={() => {
|
|
62
|
+
setIsMinimized(!isMinimized);
|
|
63
|
+
}}
|
|
64
|
+
/>
|
|
59
65
|
</div>
|
|
60
66
|
</Card>
|
|
67
|
+
{isMinimized && <Button icon="cog" small text="Configuration" style={{position: "absolute", right: "5px"}}
|
|
68
|
+
onClick={() => {
|
|
69
|
+
setIsMinimized(!isMinimized);
|
|
70
|
+
}}
|
|
71
|
+
/>}
|
|
61
72
|
</VisualStyleContext.Provider>
|
|
62
73
|
)
|
|
63
74
|
}
|
package/src/renderer.scss
CHANGED
|
@@ -121,11 +121,11 @@
|
|
|
121
121
|
padding: 0 0 0 0;
|
|
122
122
|
|
|
123
123
|
position: fixed;
|
|
124
|
-
top:
|
|
125
|
-
right:
|
|
124
|
+
top: 20px;
|
|
125
|
+
right: 20px;
|
|
126
126
|
width: var(--blueprint-ui-container-width);
|
|
127
127
|
pointer-events: auto;
|
|
128
|
-
max-height: calc(100% -
|
|
128
|
+
max-height: calc(100% - 40px);
|
|
129
129
|
border-radius: 0.5rem;
|
|
130
130
|
font-family: Inter, ui-sans-serif, system-ui, -apple-system, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
131
131
|
}
|
|
@@ -209,4 +209,4 @@
|
|
|
209
209
|
|
|
210
210
|
.bp5-panel-stack2-view{
|
|
211
211
|
background: transparent;
|
|
212
|
-
}
|
|
212
|
+
}
|