@berenjena/react-dev-panel 2.1.0 → 2.3.0
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/README.md +26 -5
- package/dist/assets/index10.css +1 -1
- package/dist/assets/index11.css +1 -1
- package/dist/assets/index12.css +1 -1
- package/dist/assets/index13.css +1 -1
- package/dist/assets/index14.css +1 -0
- package/dist/assets/index15.css +1 -0
- package/dist/assets/index2.css +1 -1
- package/dist/assets/index5.css +1 -1
- package/dist/assets/index6.css +1 -1
- package/dist/assets/index7.css +1 -1
- package/dist/assets/index8.css +1 -1
- package/dist/assets/index9.css +1 -1
- package/dist/components/ControlRenderer/controls/BooleanControl/index.js +1 -1
- package/dist/components/ControlRenderer/controls/ButtonControl/index.js +1 -1
- package/dist/components/ControlRenderer/controls/ButtonGroupControl/index.js +1 -1
- package/dist/components/ControlRenderer/controls/ColorControl/index.js +1 -1
- package/dist/components/ControlRenderer/controls/DragAndDropControl/index.d.ts +2 -0
- package/dist/components/ControlRenderer/controls/DragAndDropControl/index.js +117 -0
- package/dist/components/ControlRenderer/controls/DragAndDropControl/types.d.ts +20 -0
- package/dist/components/ControlRenderer/controls/RangeControl/index.js +1 -1
- package/dist/components/ControlRenderer/controls/SeparatorControl/index.js +1 -1
- package/dist/components/ControlRenderer/controls/TextControl/index.js +16 -16
- package/dist/components/ControlRenderer/controls/TextControl/types.d.ts +1 -0
- package/dist/components/ControlRenderer/controls/index.d.ts +1 -0
- package/dist/components/ControlRenderer/controls/index.js +2 -1
- package/dist/components/ControlRenderer/controls/types.d.ts +3 -0
- package/dist/components/ControlRenderer/index.js +26 -26
- package/dist/components/DevPanel/index.js +33 -35
- package/dist/components/Input/index.js +1 -1
- package/dist/components/Select/index.js +53 -53
- package/dist/components/Textarea/index.d.ts +5 -0
- package/dist/components/Textarea/index.js +18 -0
- package/dist/hooks/useDevPanel/index.js +45 -17
- package/dist/store/ControlPersistenceService.d.ts +33 -0
- package/dist/store/ControlPersistenceService.js +61 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as t } from "react/jsx-runtime";
|
|
2
2
|
import { ButtonControl as e } from "../ButtonControl/index.js";
|
|
3
|
-
import '../../../../assets/
|
|
3
|
+
import '../../../../assets/index13.css';const i = "_buttonGroupContainer_1irhu_217", l = {
|
|
4
4
|
buttonGroupContainer: i
|
|
5
5
|
};
|
|
6
6
|
function p({ control: n }) {
|
|
@@ -2,7 +2,7 @@ import { jsxs as m, jsx as l } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState as v, useEffect as C } from "react";
|
|
3
3
|
import { Input as p } from "../../../Input/index.js";
|
|
4
4
|
import { useDebouncedCallback as b } from "../../../../hooks/useDebounceCallback/index.js";
|
|
5
|
-
import '../../../../assets/
|
|
5
|
+
import '../../../../assets/index12.css';const y = "_container_1oo6z_1", x = "_colorPreview_1oo6z_7", V = "_errorMessage_1oo6z_52", c = {
|
|
6
6
|
container: y,
|
|
7
7
|
colorPreview: x,
|
|
8
8
|
errorMessage: V
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { jsxs as u, Fragment as k, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { useState as n, useRef as R, useCallback as t } from "react";
|
|
3
|
+
import { className as M } from "../../../../utils/className/className.js";
|
|
4
|
+
import '../../../../assets/index11.css';const I = "_dropZone_p0d3i_9", Z = "_disabled_p0d3i_26", j = "_active_p0d3i_45", A = "_supportedFormats_p0d3i_60", P = "_dropText_p0d3i_66", N = "_droppedFile_p0d3i_71", E = "_droppedText_p0d3i_79", L = "_errorMessage_p0d3i_86", d = {
|
|
5
|
+
dropZone: I,
|
|
6
|
+
disabled: Z,
|
|
7
|
+
active: j,
|
|
8
|
+
supportedFormats: A,
|
|
9
|
+
dropText: P,
|
|
10
|
+
droppedFile: N,
|
|
11
|
+
droppedText: E,
|
|
12
|
+
errorMessage: L
|
|
13
|
+
};
|
|
14
|
+
function V({ control: s }) {
|
|
15
|
+
const [D, i] = n(!1), [o, f] = n(null), [v, b] = n(!0), [g, l] = n(""), c = R(null), _ = t(
|
|
16
|
+
(e) => {
|
|
17
|
+
if (!s.allowedFileTypes)
|
|
18
|
+
return !0;
|
|
19
|
+
const a = e.toLowerCase().substring(e.lastIndexOf("."));
|
|
20
|
+
return s.allowedFileTypes.some((m) => m.toLowerCase() === a);
|
|
21
|
+
},
|
|
22
|
+
[s.allowedFileTypes]
|
|
23
|
+
), p = t(
|
|
24
|
+
(e) => {
|
|
25
|
+
if (s.allowedFileTypes && !_(e.name)) {
|
|
26
|
+
l(`File type not allowed.
|
|
27
|
+
Supported formats: ${s.allowedFileTypes.join(", ")}`), i(!1);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
l("");
|
|
31
|
+
const a = new FileReader();
|
|
32
|
+
a.onload = () => {
|
|
33
|
+
i(!1);
|
|
34
|
+
const F = {
|
|
35
|
+
base64: a.result,
|
|
36
|
+
file: e,
|
|
37
|
+
name: e.name,
|
|
38
|
+
size: e.size,
|
|
39
|
+
type: e.type,
|
|
40
|
+
lastModified: e.lastModified,
|
|
41
|
+
webkitRelativePath: e.webkitRelativePath
|
|
42
|
+
};
|
|
43
|
+
f(F), b(!1), s.onDrop(F);
|
|
44
|
+
}, a.readAsDataURL(e);
|
|
45
|
+
},
|
|
46
|
+
[s, _, l, f, b, i]
|
|
47
|
+
), h = t(() => {
|
|
48
|
+
!o && c.current && !s.disabled && c.current.click();
|
|
49
|
+
}, [o, s.disabled]), T = t(
|
|
50
|
+
(e) => {
|
|
51
|
+
const a = e.target.files;
|
|
52
|
+
a && a.length > 0 && p(a[0]), e.target.value = "";
|
|
53
|
+
},
|
|
54
|
+
[p]
|
|
55
|
+
), w = t(
|
|
56
|
+
(e) => {
|
|
57
|
+
s.disabled || (e.preventDefault(), e.stopPropagation(), i(!0), l(""));
|
|
58
|
+
},
|
|
59
|
+
[s.disabled]
|
|
60
|
+
), y = t(
|
|
61
|
+
(e) => {
|
|
62
|
+
if (s.disabled) return;
|
|
63
|
+
e.preventDefault(), e.stopPropagation();
|
|
64
|
+
const a = e.dataTransfer.files;
|
|
65
|
+
a.length > 0 && p(a[0]);
|
|
66
|
+
},
|
|
67
|
+
[p, s.disabled]
|
|
68
|
+
), x = t(
|
|
69
|
+
(e) => {
|
|
70
|
+
s.disabled || (e.preventDefault(), e.stopPropagation(), i(!0), l(""));
|
|
71
|
+
},
|
|
72
|
+
[s.disabled]
|
|
73
|
+
), C = t(
|
|
74
|
+
(e) => {
|
|
75
|
+
s.disabled || (e.preventDefault(), e.stopPropagation(), i(!1));
|
|
76
|
+
},
|
|
77
|
+
[s.disabled]
|
|
78
|
+
);
|
|
79
|
+
return /* @__PURE__ */ u(k, { children: [
|
|
80
|
+
/* @__PURE__ */ r(
|
|
81
|
+
"input",
|
|
82
|
+
{
|
|
83
|
+
ref: c,
|
|
84
|
+
type: "file",
|
|
85
|
+
style: { display: "none" },
|
|
86
|
+
accept: s.allowedFileTypes?.join(","),
|
|
87
|
+
onChange: T,
|
|
88
|
+
disabled: s.disabled
|
|
89
|
+
}
|
|
90
|
+
),
|
|
91
|
+
/* @__PURE__ */ r(
|
|
92
|
+
"div",
|
|
93
|
+
{
|
|
94
|
+
...M(d.dropZone, {
|
|
95
|
+
[d.active]: D,
|
|
96
|
+
[d.disabled]: !!s.disabled
|
|
97
|
+
}),
|
|
98
|
+
onDragEnter: w,
|
|
99
|
+
onDragOver: x,
|
|
100
|
+
onDragLeave: C,
|
|
101
|
+
onDrop: y,
|
|
102
|
+
onClick: h,
|
|
103
|
+
children: g ? /* @__PURE__ */ r("div", { className: d.errorMessage, children: /* @__PURE__ */ r("p", { children: g }) }) : o ? /* @__PURE__ */ r("div", { className: d.droppedFile, children: /* @__PURE__ */ u("p", { className: d.droppedText, children: [
|
|
104
|
+
"Dropped '",
|
|
105
|
+
o.name,
|
|
106
|
+
"'"
|
|
107
|
+
] }) }) : v ? /* @__PURE__ */ u("div", { children: [
|
|
108
|
+
/* @__PURE__ */ r("p", { className: d.dropText, children: "Drag & Drop a file here or click to browse" }),
|
|
109
|
+
/* @__PURE__ */ r("p", { className: d.supportedFormats, children: s.allowedFileTypes ? `Supported formats: ${s.allowedFileTypes.join(", ")}` : "All file types are supported" })
|
|
110
|
+
] }) : null
|
|
111
|
+
}
|
|
112
|
+
)
|
|
113
|
+
] });
|
|
114
|
+
}
|
|
115
|
+
export {
|
|
116
|
+
V as DragAndDropControl
|
|
117
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { BaseControl } from '../types';
|
|
2
|
+
export type FileInfo = {
|
|
3
|
+
name: string;
|
|
4
|
+
size: number;
|
|
5
|
+
type: string;
|
|
6
|
+
file: File;
|
|
7
|
+
base64: string;
|
|
8
|
+
lastModified: number;
|
|
9
|
+
webkitRelativePath: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export interface DragAndDropControl extends BaseControl {
|
|
13
|
+
type: "dragAndDrop";
|
|
14
|
+
onDrop: (value: FileInfo) => void;
|
|
15
|
+
allowedFileTypes?: string[];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export interface DragAndDropControlProps {
|
|
19
|
+
control: DragAndDropControl;
|
|
20
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as g, jsx as i } from "react/jsx-runtime";
|
|
2
2
|
import { useState as o, useEffect as m } from "react";
|
|
3
|
-
import '../../../../assets/
|
|
3
|
+
import '../../../../assets/index10.css';const v = "_container_1a1cs_1", h = "_range_1a1cs_9", d = "_value_1a1cs_115", u = {
|
|
4
4
|
container: v,
|
|
5
5
|
range: h,
|
|
6
6
|
value: d
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import '../../../../assets/
|
|
2
|
+
import '../../../../assets/index9.css';const s = "_line_174q4_1", t = "_space_174q4_9", i = "_labelContainer_174q4_14", c = "_label_174q4_14", l = {
|
|
3
3
|
line: s,
|
|
4
4
|
space: t,
|
|
5
5
|
labelContainer: i,
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useState as
|
|
3
|
-
import {
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { useState as s, useEffect as r } from "react";
|
|
3
|
+
import { Textarea as f } from "../../../Textarea/index.js";
|
|
4
4
|
function v({ control: e }) {
|
|
5
|
-
const n = e.event || "onChange", [
|
|
6
|
-
function o(
|
|
7
|
-
const a =
|
|
8
|
-
|
|
5
|
+
const n = e.event || "onChange", [t, l] = s(e.value);
|
|
6
|
+
function o(u) {
|
|
7
|
+
const a = u.target.value;
|
|
8
|
+
l(a), n === "onChange" && e.onChange(a);
|
|
9
9
|
}
|
|
10
|
-
function
|
|
11
|
-
const a =
|
|
10
|
+
function d(u) {
|
|
11
|
+
const a = u.target.value;
|
|
12
12
|
n === "onBlur" && e.onChange(a);
|
|
13
13
|
}
|
|
14
|
-
return
|
|
15
|
-
|
|
16
|
-
}, [e.value]), /* @__PURE__ */
|
|
17
|
-
|
|
14
|
+
return r(() => {
|
|
15
|
+
l(e.value);
|
|
16
|
+
}, [e.value]), /* @__PURE__ */ i(
|
|
17
|
+
f,
|
|
18
18
|
{
|
|
19
|
-
|
|
20
|
-
value: l,
|
|
19
|
+
value: t,
|
|
21
20
|
placeholder: e.placeholder,
|
|
22
21
|
disabled: e.disabled,
|
|
23
22
|
onChange: o,
|
|
24
|
-
|
|
23
|
+
disableAutoExpand: e.disableAutoExpand,
|
|
24
|
+
...n === "onBlur" && { onBlur: d }
|
|
25
25
|
}
|
|
26
26
|
);
|
|
27
27
|
}
|
|
@@ -15,4 +15,5 @@ export declare const controls: Readonly<{
|
|
|
15
15
|
separator: import('react').LazyExoticComponent<typeof import('./SeparatorControl').SeparatorControl>;
|
|
16
16
|
text: import('react').LazyExoticComponent<typeof import('./TextControl').TextControl>;
|
|
17
17
|
buttonGroup: import('react').LazyExoticComponent<typeof import('./ButtonGroupControl').ButtonGroupControl>;
|
|
18
|
+
dragAndDrop: import('react').LazyExoticComponent<typeof import('./DragAndDropControl').DragAndDropControl>;
|
|
18
19
|
}>;
|
|
@@ -10,7 +10,8 @@ const r = Object.freeze({
|
|
|
10
10
|
multiselect: o(() => import("./MultiSelectControl/index.js").then((t) => ({ default: t.MultiSelectControl }))),
|
|
11
11
|
separator: o(() => import("./SeparatorControl/index.js").then((t) => ({ default: t.SeparatorControl }))),
|
|
12
12
|
text: o(() => import("./TextControl/index.js").then((t) => ({ default: t.TextControl }))),
|
|
13
|
-
buttonGroup: o(() => import("./ButtonGroupControl/index.js").then((t) => ({ default: t.ButtonGroupControl })))
|
|
13
|
+
buttonGroup: o(() => import("./ButtonGroupControl/index.js").then((t) => ({ default: t.ButtonGroupControl }))),
|
|
14
|
+
dragAndDrop: o(() => import("./DragAndDropControl/index.js").then((t) => ({ default: t.DragAndDropControl })))
|
|
14
15
|
});
|
|
15
16
|
export {
|
|
16
17
|
r as controls
|
|
@@ -3,6 +3,7 @@ import { ButtonControl } from './ButtonControl/types';
|
|
|
3
3
|
import { ButtonGroupControl } from './ButtonGroupControl/types';
|
|
4
4
|
import { ColorControl } from './ColorControl/types';
|
|
5
5
|
import { DateControl } from './DateControl/types';
|
|
6
|
+
import { DragAndDropControl } from './DragAndDropControl/types';
|
|
6
7
|
import { MultiSelectControl } from './MultiSelectControl/types';
|
|
7
8
|
import { NumberControl } from './NumberControl/types';
|
|
8
9
|
import { RangeControl } from './RangeControl/types';
|
|
@@ -13,6 +14,7 @@ export interface BaseControl {
|
|
|
13
14
|
label?: string;
|
|
14
15
|
description?: string;
|
|
15
16
|
disabled?: boolean;
|
|
17
|
+
persist?: boolean;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
export interface BaseInputControl extends BaseControl {
|
|
@@ -32,6 +34,7 @@ export type Controls = {
|
|
|
32
34
|
date: DateControl;
|
|
33
35
|
separator: SeparatorControl;
|
|
34
36
|
buttonGroup: ButtonGroupControl;
|
|
37
|
+
dragAndDrop: DragAndDropControl;
|
|
35
38
|
};
|
|
36
39
|
|
|
37
40
|
export type ControlsNames = keyof Controls;
|
|
@@ -1,52 +1,52 @@
|
|
|
1
1
|
import { jsxs as t, jsx as n } from "react/jsx-runtime";
|
|
2
2
|
import { Suspense as c } from "react";
|
|
3
|
-
import { className as
|
|
3
|
+
import { className as l } from "../../utils/className/className.js";
|
|
4
4
|
import { controls as d } from "./controls/index.js";
|
|
5
|
-
import '../../assets/index5.css';const p = "
|
|
5
|
+
import '../../assets/index5.css';const p = "_controlRendererContainer_jru2l_1", u = "_controlContainer_jru2l_5", _ = "_hoverable_jru2l_15", f = "_fullWidth_jru2l_18", h = "_label_jru2l_21", b = "_controlWrapper_jru2l_24", j = "_justifyStart_jru2l_30", C = "_description_jru2l_46", m = "_loading_jru2l_55", y = "_error_jru2l_74", e = {
|
|
6
6
|
controlRendererContainer: p,
|
|
7
|
-
controlContainer:
|
|
8
|
-
hoverable:
|
|
9
|
-
fullWidth:
|
|
10
|
-
label:
|
|
11
|
-
controlWrapper:
|
|
12
|
-
justifyStart:
|
|
7
|
+
controlContainer: u,
|
|
8
|
+
hoverable: _,
|
|
9
|
+
fullWidth: f,
|
|
10
|
+
label: h,
|
|
11
|
+
controlWrapper: b,
|
|
12
|
+
justifyStart: j,
|
|
13
13
|
description: C,
|
|
14
14
|
loading: m,
|
|
15
15
|
error: y
|
|
16
|
-
},
|
|
17
|
-
function
|
|
18
|
-
const
|
|
19
|
-
function
|
|
20
|
-
if (!
|
|
21
|
-
return /* @__PURE__ */ n("div", { className:
|
|
22
|
-
const o = d[
|
|
23
|
-
return o ? /* @__PURE__ */ n(c, { fallback: /* @__PURE__ */ n("div", { className:
|
|
16
|
+
}, v = ["button", "buttonGroup", "separator", "dragAndDrop"], g = ["separator", "dragAndDrop"], W = ["button", "separator", "dragAndDrop"];
|
|
17
|
+
function A({ name: i, control: r }) {
|
|
18
|
+
const a = r?.label || i;
|
|
19
|
+
function s() {
|
|
20
|
+
if (!r || !r.type)
|
|
21
|
+
return /* @__PURE__ */ n("div", { className: e.error, children: "Control type is not defined" });
|
|
22
|
+
const o = d[r.type];
|
|
23
|
+
return o ? /* @__PURE__ */ n(c, { fallback: /* @__PURE__ */ n("div", { className: e.loading, children: "Loading control..." }), children: /* @__PURE__ */ n(o, { control: r }) }) : /* @__PURE__ */ n("div", { children: "Unknown control type" });
|
|
24
24
|
}
|
|
25
|
-
return /* @__PURE__ */ t("div", { className:
|
|
25
|
+
return /* @__PURE__ */ t("div", { className: e.controlRendererContainer, children: [
|
|
26
26
|
/* @__PURE__ */ t(
|
|
27
27
|
"div",
|
|
28
28
|
{
|
|
29
|
-
...
|
|
30
|
-
[
|
|
31
|
-
[
|
|
29
|
+
...l(e.controlContainer, {
|
|
30
|
+
[e.fullWidth]: v.includes(r.type),
|
|
31
|
+
[e.hoverable]: !g.includes(r.type)
|
|
32
32
|
}),
|
|
33
33
|
children: [
|
|
34
|
-
!
|
|
34
|
+
!W.includes(r.type) && /* @__PURE__ */ n("label", { className: e.label, children: a }),
|
|
35
35
|
/* @__PURE__ */ n(
|
|
36
36
|
"div",
|
|
37
37
|
{
|
|
38
|
-
...
|
|
39
|
-
[
|
|
38
|
+
...l(e.controlWrapper, {
|
|
39
|
+
[e.justifyStart]: r.type === "separator"
|
|
40
40
|
}),
|
|
41
|
-
children:
|
|
41
|
+
children: s()
|
|
42
42
|
}
|
|
43
43
|
)
|
|
44
44
|
]
|
|
45
45
|
}
|
|
46
46
|
),
|
|
47
|
-
|
|
47
|
+
r?.description && /* @__PURE__ */ n("span", { className: e.description, children: r.description })
|
|
48
48
|
] });
|
|
49
49
|
}
|
|
50
50
|
export {
|
|
51
|
-
|
|
51
|
+
A as ControlRenderer
|
|
52
52
|
};
|
|
@@ -1,71 +1,69 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useCallback as
|
|
1
|
+
import { jsxs as m, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback as y, useEffect as D } from "react";
|
|
3
3
|
import { useDragAndDrop as b } from "../../hooks/useDragAndDrop/index.js";
|
|
4
|
-
import { useHotkey as
|
|
5
|
-
import { useDevPanelSections as
|
|
6
|
-
import { useDevPanelUI as
|
|
7
|
-
import { className as
|
|
8
|
-
import { EmptyContent as
|
|
4
|
+
import { useHotkey as g } from "../../hooks/useHotKey/index.js";
|
|
5
|
+
import { useDevPanelSections as w } from "../../store/SectionsStore.js";
|
|
6
|
+
import { useDevPanelUI as K, useDevPanelThemeActions as N } from "../../store/UIStore.js";
|
|
7
|
+
import { className as k } from "../../utils/className/className.js";
|
|
8
|
+
import { EmptyContent as x } from "../EmptyContent/index.js";
|
|
9
9
|
import { Icon as f } from "../Icon/index.js";
|
|
10
|
-
import { Section as
|
|
11
|
-
import '../../assets/index2.css';const
|
|
12
|
-
devPanelContainer:
|
|
13
|
-
header:
|
|
14
|
-
title:
|
|
15
|
-
button:
|
|
16
|
-
collapsed:
|
|
17
|
-
content:
|
|
18
|
-
},
|
|
10
|
+
import { Section as E } from "../Section/index.js";
|
|
11
|
+
import '../../assets/index2.css';const j = "_devPanelContainer_11dce_217", A = "_header_11dce_256", S = "_title_11dce_271", H = "_button_11dce_283", I = "_collapsed_11dce_319", T = "_content_11dce_326", t = {
|
|
12
|
+
devPanelContainer: j,
|
|
13
|
+
header: A,
|
|
14
|
+
title: S,
|
|
15
|
+
button: H,
|
|
16
|
+
collapsed: I,
|
|
17
|
+
content: T
|
|
18
|
+
}, V = {
|
|
19
19
|
ctrlKey: !0,
|
|
20
20
|
shiftKey: !0,
|
|
21
21
|
key: "a",
|
|
22
22
|
altKey: !1,
|
|
23
23
|
metaKey: !1
|
|
24
24
|
};
|
|
25
|
-
function
|
|
26
|
-
const { isVisible: i, isCollapsed: n, position: l, setVisible: a, setCollapsed: u, setPosition:
|
|
25
|
+
function L({ panelTitle: h = "Dev panel", ...o }) {
|
|
26
|
+
const { isVisible: i, isCollapsed: n, position: l, setVisible: a, setCollapsed: u, setPosition: c } = K(), { setTheme: r } = N(), p = w(), _ = y(
|
|
27
27
|
(s) => {
|
|
28
|
-
|
|
28
|
+
c(s);
|
|
29
29
|
},
|
|
30
|
-
[
|
|
31
|
-
), {
|
|
30
|
+
[c]
|
|
31
|
+
), { elementRef: v, handlePointerDown: C } = b({
|
|
32
32
|
onPositionChange: _
|
|
33
33
|
});
|
|
34
|
-
if (
|
|
34
|
+
if (g({
|
|
35
35
|
description: "Show Dev Panel",
|
|
36
36
|
preventDefault: !0,
|
|
37
37
|
action: () => a(!i),
|
|
38
|
-
...
|
|
38
|
+
...V,
|
|
39
39
|
...o.hotKeyConfig,
|
|
40
40
|
target: window
|
|
41
|
-
}),
|
|
42
|
-
o.theme &&
|
|
43
|
-
}, [o.theme,
|
|
41
|
+
}), D(() => {
|
|
42
|
+
o.theme && r(o.theme);
|
|
43
|
+
}, [o.theme, r]), !i)
|
|
44
44
|
return null;
|
|
45
|
-
const
|
|
46
|
-
return /* @__PURE__ */
|
|
45
|
+
const d = Object.entries(p);
|
|
46
|
+
return /* @__PURE__ */ m(
|
|
47
47
|
"div",
|
|
48
48
|
{
|
|
49
|
-
ref:
|
|
50
|
-
...
|
|
51
|
-
[t.dragging]: v
|
|
52
|
-
}),
|
|
49
|
+
ref: v,
|
|
50
|
+
...k(t.devPanelContainer),
|
|
53
51
|
style: {
|
|
54
52
|
left: l.x,
|
|
55
53
|
top: l.y,
|
|
56
54
|
height: n ? "auto" : void 0
|
|
57
55
|
},
|
|
58
56
|
children: [
|
|
59
|
-
/* @__PURE__ */
|
|
57
|
+
/* @__PURE__ */ m("div", { className: t.header, onPointerDown: C, children: [
|
|
60
58
|
/* @__PURE__ */ e("button", { className: t.button, onClick: () => u(!n), title: n ? "Expand" : "Collapse", children: /* @__PURE__ */ e(f, { name: "ArrowDown", className: n ? t.collapsed : void 0 }) }),
|
|
61
59
|
/* @__PURE__ */ e("div", { className: t.title, children: h }),
|
|
62
60
|
/* @__PURE__ */ e("button", { className: t.button, onClick: () => a(!1), title: "Close", children: /* @__PURE__ */ e(f, { name: "Close" }) })
|
|
63
61
|
] }),
|
|
64
|
-
!n && /* @__PURE__ */ e("div", { className: t.content, children:
|
|
62
|
+
!n && /* @__PURE__ */ e("div", { className: t.content, children: d.length ? d.map(([s, P]) => /* @__PURE__ */ e(E, { sectionName: s, section: P }, `section-${s}`)) : /* @__PURE__ */ e(x, {}) })
|
|
65
63
|
]
|
|
66
64
|
}
|
|
67
65
|
);
|
|
68
66
|
}
|
|
69
67
|
export {
|
|
70
|
-
|
|
68
|
+
L as DevPanel
|
|
71
69
|
};
|