@berenjena/react-dev-panel 2.0.0 → 2.2.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 +75 -52
- package/dist/assets/index.css +1 -1
- package/dist/assets/{RangeControl.css → index10.css} +1 -1
- package/dist/assets/index11.css +1 -0
- package/dist/assets/index13.css +1 -0
- package/dist/assets/index14.css +1 -0
- package/dist/assets/index15.css +1 -0
- package/dist/assets/index2.css +1 -0
- package/dist/assets/index6.css +1 -0
- package/dist/assets/index7.css +1 -0
- package/dist/assets/index8.css +1 -0
- package/dist/components/ControlRenderer/controls/BooleanControl/index.d.ts +32 -1
- package/dist/components/ControlRenderer/controls/BooleanControl/index.js +24 -2
- package/dist/components/ControlRenderer/controls/ButtonControl/index.d.ts +33 -1
- package/dist/components/ControlRenderer/controls/ButtonControl/index.js +8 -2
- package/dist/components/ControlRenderer/controls/ButtonGroupControl/index.d.ts +37 -1
- package/dist/components/ControlRenderer/controls/ButtonGroupControl/index.js +20 -2
- package/dist/components/ControlRenderer/controls/ColorControl/index.d.ts +23 -1
- package/dist/components/ControlRenderer/controls/ColorControl/index.js +67 -2
- package/dist/components/ControlRenderer/controls/DateControl/index.d.ts +41 -1
- package/dist/components/ControlRenderer/controls/DateControl/index.js +29 -2
- 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/MultiSelectControl/index.d.ts +28 -1
- package/dist/components/ControlRenderer/controls/MultiSelectControl/index.js +16 -2
- package/dist/components/ControlRenderer/controls/NumberControl/index.d.ts +45 -1
- package/dist/components/ControlRenderer/controls/NumberControl/index.js +30 -2
- package/dist/components/ControlRenderer/controls/RangeControl/index.d.ts +46 -1
- package/dist/components/ControlRenderer/controls/RangeControl/index.js +38 -2
- package/dist/components/ControlRenderer/controls/SelectControl/index.d.ts +39 -1
- package/dist/components/ControlRenderer/controls/SelectControl/index.js +6 -2
- package/dist/components/ControlRenderer/controls/SeparatorControl/index.d.ts +39 -1
- package/dist/components/ControlRenderer/controls/SeparatorControl/index.js +12 -2
- package/dist/components/ControlRenderer/controls/TextControl/index.d.ts +40 -1
- package/dist/components/ControlRenderer/controls/TextControl/index.js +28 -2
- 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 +2 -0
- package/dist/components/ControlRenderer/index.d.ts +6 -1
- package/dist/components/ControlRenderer/index.js +50 -2
- package/dist/components/DevPanel/index.d.ts +11 -1
- package/dist/components/DevPanel/index.js +67 -2
- package/dist/components/DevPanel/types.d.ts +13 -6
- package/dist/components/DevPanelPortal/index.d.ts +9 -1
- package/dist/components/DevPanelPortal/index.js +15 -2
- package/dist/components/EmptyContent/index.d.ts +1 -1
- package/dist/components/EmptyContent/index.js +17 -2
- package/dist/components/Icon/index.d.ts +3 -3
- package/dist/components/Input/index.d.ts +1 -1
- package/dist/components/Input/index.js +8 -2
- package/dist/components/Section/index.d.ts +7 -1
- package/dist/components/Section/index.js +23 -2
- package/dist/components/Select/index.d.ts +15 -1
- package/dist/components/Select/index.js +176 -2
- package/dist/components/Textarea/index.d.ts +5 -0
- package/dist/components/Textarea/index.js +18 -0
- package/dist/components/index.js +3 -3
- package/dist/hooks/useDebounceCallback/index.d.ts +8 -1
- package/dist/hooks/useDebounceCallback/index.js +15 -2
- package/dist/hooks/useDevPanel/index.d.ts +29 -1
- package/dist/hooks/useDevPanel/index.js +22 -2
- package/dist/hooks/useDragAndDrop/index.d.ts +20 -1
- package/dist/hooks/useDragAndDrop/index.js +53 -2
- package/dist/hooks/{useHotkeys/useHotkey.d.ts → useHotKey/index.d.ts} +1 -1
- package/dist/hooks/{useHotkeys/useHotkey.js → useHotKey/index.js} +1 -1
- package/dist/hooks/useHotkeys/index.d.ts +37 -2
- package/dist/hooks/useHotkeys/index.js +29 -4
- package/dist/index.js +1 -1
- package/dist/store/UIStore.d.ts +78 -2
- package/dist/store/UIStore.js +95 -34
- package/dist/utils/getPositionAdjustment/getPositionAdjustment.d.ts +3 -2
- package/dist/utils/getPositionAdjustment/getPositionAdjustment.js +1 -4
- package/package.json +43 -29
- package/dist/assets/BooleanControl.css +0 -1
- package/dist/assets/ButtonControl.css +0 -1
- package/dist/assets/ButtonGroupControl.css +0 -1
- package/dist/assets/DevPanel.css +0 -1
- package/dist/assets/Input.css +0 -1
- package/dist/assets/MultiSelectControl.css +0 -1
- package/dist/assets/Select.css +0 -1
- package/dist/components/ControlRenderer/ControlRenderer.d.ts +0 -6
- package/dist/components/ControlRenderer/ControlRenderer.js +0 -52
- package/dist/components/ControlRenderer/controls/BooleanControl/BooleanControl.d.ts +0 -32
- package/dist/components/ControlRenderer/controls/BooleanControl/BooleanControl.js +0 -26
- package/dist/components/ControlRenderer/controls/ButtonControl/ButtonControl.d.ts +0 -33
- package/dist/components/ControlRenderer/controls/ButtonControl/ButtonControl.js +0 -10
- package/dist/components/ControlRenderer/controls/ButtonGroupControl/ButtonGroupControl.d.ts +0 -37
- package/dist/components/ControlRenderer/controls/ButtonGroupControl/ButtonGroupControl.js +0 -22
- package/dist/components/ControlRenderer/controls/ColorControl/ColorControl.d.ts +0 -23
- package/dist/components/ControlRenderer/controls/ColorControl/ColorControl.js +0 -69
- package/dist/components/ControlRenderer/controls/DateControl/DateControl.d.ts +0 -41
- package/dist/components/ControlRenderer/controls/DateControl/DateControl.js +0 -31
- package/dist/components/ControlRenderer/controls/MultiSelectControl/MultiSelectControl.d.ts +0 -28
- package/dist/components/ControlRenderer/controls/MultiSelectControl/MultiSelectControl.js +0 -131
- package/dist/components/ControlRenderer/controls/NumberControl/NumberControl.d.ts +0 -45
- package/dist/components/ControlRenderer/controls/NumberControl/NumberControl.js +0 -32
- package/dist/components/ControlRenderer/controls/RangeControl/RangeControl.d.ts +0 -46
- package/dist/components/ControlRenderer/controls/RangeControl/RangeControl.js +0 -40
- package/dist/components/ControlRenderer/controls/SelectControl/SelectControl.d.ts +0 -39
- package/dist/components/ControlRenderer/controls/SelectControl/SelectControl.js +0 -11
- package/dist/components/ControlRenderer/controls/SeparatorControl/SeparatorControl.d.ts +0 -39
- package/dist/components/ControlRenderer/controls/SeparatorControl/SeparatorControl.js +0 -14
- package/dist/components/ControlRenderer/controls/TextControl/TextControl.d.ts +0 -40
- package/dist/components/ControlRenderer/controls/TextControl/TextControl.js +0 -30
- package/dist/components/DevPanel/DevPanel.d.ts +0 -11
- package/dist/components/DevPanel/DevPanel.js +0 -72
- package/dist/components/DevPanelPortal/DevPanelPortal.d.ts +0 -8
- package/dist/components/DevPanelPortal/DevPanelPortal.js +0 -17
- package/dist/components/EmptyContent/EmptyContent.d.ts +0 -1
- package/dist/components/EmptyContent/EmptyContent.js +0 -18
- package/dist/components/Input/Input.d.ts +0 -1
- package/dist/components/Input/Input.js +0 -10
- package/dist/components/Section/Section.d.ts +0 -7
- package/dist/components/Section/Section.js +0 -25
- package/dist/components/Select/Select.d.ts +0 -1
- package/dist/components/Select/Select.js +0 -10
- package/dist/hooks/useDebounceCallback/useDebounceCallback.d.ts +0 -8
- package/dist/hooks/useDebounceCallback/useDebounceCallback.js +0 -17
- package/dist/hooks/useDevPanel/useDevPanel.d.ts +0 -29
- package/dist/hooks/useDevPanel/useDevPanel.js +0 -25218
- package/dist/hooks/useDragAndDrop/useDragAndDrop.d.ts +0 -20
- package/dist/hooks/useDragAndDrop/useDragAndDrop.js +0 -55
- package/dist/hooks/useHotkeys/useHotkeys.d.ts +0 -37
- package/dist/hooks/useHotkeys/useHotkeys.js +0 -31
- package/dist/managers/index.d.ts +0 -1
- package/dist/managers/index.js +0 -4
- package/dist/store/ThemeStore.d.ts +0 -68
- package/dist/store/ThemeStore.js +0 -102
- package/dist/store/index.d.ts +0 -4
- package/dist/store/index.js +0 -18
- package/dist/utils/index.d.ts +0 -9
- package/dist/utils/index.js +0 -20
- /package/dist/assets/{ColorControl.css → index12.css} +0 -0
- /package/dist/assets/{EmptyContent.css → index3.css} +0 -0
- /package/dist/assets/{Section.css → index4.css} +0 -0
- /package/dist/assets/{ControlRenderer.css → index5.css} +0 -0
- /package/dist/assets/{SeparatorControl.css → index9.css} +0 -0
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { TextControlProps } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Component that renders a text input control with configurable event handling
|
|
4
|
-
*
|
|
5
|
-
* @param props - The component props
|
|
6
|
-
* @param props.control - The text control configuration object
|
|
7
|
-
* @param props.control.type - The control type, must be 'text'
|
|
8
|
-
* @param props.control.value - The current string value of the text input
|
|
9
|
-
* @param props.control.placeholder - Optional placeholder text displayed when input is empty
|
|
10
|
-
* @param props.control.event - When to trigger onChange: "onChange" (real-time) or "onBlur" (on focus loss). Defaults to "onChange"
|
|
11
|
-
* @param props.control.onChange - Callback function triggered when text value changes
|
|
12
|
-
* @param props.control.disabled - Optional flag to disable the control
|
|
13
|
-
* @returns JSX element representing the text input control
|
|
14
|
-
*
|
|
15
|
-
* @example
|
|
16
|
-
* ```typescript
|
|
17
|
-
* // Real-time updates (default behavior)
|
|
18
|
-
* <TextControl control={{
|
|
19
|
-
* type: 'text',
|
|
20
|
-
* value: 'John Doe',
|
|
21
|
-
* placeholder: 'Enter your full name',
|
|
22
|
-
* event: 'onChange',
|
|
23
|
-
* onChange: (value) => setUserName(value),
|
|
24
|
-
* disabled: false
|
|
25
|
-
* }} />
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* // Updates only when losing focus
|
|
31
|
-
* <TextControl control={{
|
|
32
|
-
* type: 'text',
|
|
33
|
-
* value: 'search query',
|
|
34
|
-
* placeholder: 'Type to search...',
|
|
35
|
-
* event: 'onBlur',
|
|
36
|
-
* onChange: (value) => console.log('Search term:', value)
|
|
37
|
-
* }} />
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
export declare function TextControl({ control }: TextControlProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { jsx as f } from "react/jsx-runtime";
|
|
2
|
-
import { useState as h, useEffect as i } from "react";
|
|
3
|
-
import { Input as s } from "../../../Input/Input.js";
|
|
4
|
-
function v({ control: e }) {
|
|
5
|
-
const n = e.event || "onChange", [l, u] = h(e.value);
|
|
6
|
-
function o(t) {
|
|
7
|
-
const a = t.target.value;
|
|
8
|
-
u(a), n === "onChange" && e.onChange(a);
|
|
9
|
-
}
|
|
10
|
-
function r(t) {
|
|
11
|
-
const a = t.target.value;
|
|
12
|
-
n === "onBlur" && e.onChange(a);
|
|
13
|
-
}
|
|
14
|
-
return i(() => {
|
|
15
|
-
u(e.value);
|
|
16
|
-
}, [e.value]), /* @__PURE__ */ f(
|
|
17
|
-
s,
|
|
18
|
-
{
|
|
19
|
-
type: "text",
|
|
20
|
-
value: l,
|
|
21
|
-
placeholder: e.placeholder,
|
|
22
|
-
disabled: e.disabled,
|
|
23
|
-
onChange: o,
|
|
24
|
-
...n === "onBlur" && { onBlur: r }
|
|
25
|
-
}
|
|
26
|
-
);
|
|
27
|
-
}
|
|
28
|
-
export {
|
|
29
|
-
v as TextControl
|
|
30
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DevPanelProps } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Development panel component
|
|
4
|
-
* @returns The development panel component, if the environment is not development, it will return null
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* <DevPanel />
|
|
9
|
-
* ```
|
|
10
|
-
*/
|
|
11
|
-
export declare function DevPanel({ panelTitle, ...props }: DevPanelProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { jsxs as d, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback as D, useEffect as y } from "react";
|
|
3
|
-
import { useDragAndDrop as b } from "../../hooks/useDragAndDrop/useDragAndDrop.js";
|
|
4
|
-
import { useHotkey as w } from "../../hooks/useHotkeys/useHotkey.js";
|
|
5
|
-
import { useDevPanelSections as K } from "../../store/SectionsStore.js";
|
|
6
|
-
import { useDevPanelThemeActions as N } from "../../store/ThemeStore.js";
|
|
7
|
-
import { useDevPanelUI as k } from "../../store/UIStore.js";
|
|
8
|
-
import { className as x } from "../../utils/className/className.js";
|
|
9
|
-
import { EmptyContent as E } from "../EmptyContent/EmptyContent.js";
|
|
10
|
-
import { Icon as f } from "../Icon/index.js";
|
|
11
|
-
import { Section as j } from "../Section/Section.js";
|
|
12
|
-
import '../../assets/DevPanel.css';const A = "_devPanelContainer_vacct_132", S = "_header_vacct_171", H = "_title_vacct_186", I = "_button_vacct_197", T = "_collapsed_vacct_233", V = "_content_vacct_240", t = {
|
|
13
|
-
devPanelContainer: A,
|
|
14
|
-
header: S,
|
|
15
|
-
title: H,
|
|
16
|
-
button: I,
|
|
17
|
-
collapsed: T,
|
|
18
|
-
content: V
|
|
19
|
-
}, O = {
|
|
20
|
-
ctrlKey: !0,
|
|
21
|
-
shiftKey: !0,
|
|
22
|
-
key: "a",
|
|
23
|
-
altKey: !1,
|
|
24
|
-
metaKey: !1
|
|
25
|
-
};
|
|
26
|
-
function Q({ panelTitle: h = "Dev panel", ...o }) {
|
|
27
|
-
const { isVisible: s, isCollapsed: n, position: a, setVisible: l, setCollapsed: u, setPosition: c } = k(), { setTheme: r } = N(), v = K(), p = D(
|
|
28
|
-
(i) => {
|
|
29
|
-
c(i);
|
|
30
|
-
},
|
|
31
|
-
[c]
|
|
32
|
-
), { isDragging: _, elementRef: C, handlePointerDown: g } = b({
|
|
33
|
-
onPositionChange: p
|
|
34
|
-
});
|
|
35
|
-
if (w({
|
|
36
|
-
description: "Show Dev Panel",
|
|
37
|
-
preventDefault: !0,
|
|
38
|
-
action: () => l(!s),
|
|
39
|
-
...O,
|
|
40
|
-
...o.hotKeyConfig,
|
|
41
|
-
target: window
|
|
42
|
-
}), y(() => {
|
|
43
|
-
o.theme && r(o.theme);
|
|
44
|
-
}, [o.theme, r]), !s)
|
|
45
|
-
return null;
|
|
46
|
-
const m = Object.entries(v);
|
|
47
|
-
return /* @__PURE__ */ d(
|
|
48
|
-
"div",
|
|
49
|
-
{
|
|
50
|
-
ref: C,
|
|
51
|
-
...x(t.devPanelContainer, {
|
|
52
|
-
[t.dragging]: _
|
|
53
|
-
}),
|
|
54
|
-
style: {
|
|
55
|
-
left: a.x,
|
|
56
|
-
top: a.y,
|
|
57
|
-
height: n ? "auto" : void 0
|
|
58
|
-
},
|
|
59
|
-
children: [
|
|
60
|
-
/* @__PURE__ */ d("div", { className: t.header, onPointerDown: g, children: [
|
|
61
|
-
/* @__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 }) }),
|
|
62
|
-
/* @__PURE__ */ e("div", { className: t.title, children: h }),
|
|
63
|
-
/* @__PURE__ */ e("button", { className: t.button, onClick: () => l(!1), title: "Close", children: /* @__PURE__ */ e(f, { name: "Close" }) })
|
|
64
|
-
] }),
|
|
65
|
-
!n && /* @__PURE__ */ e("div", { className: t.content, children: m.length ? m.map(([i, P]) => /* @__PURE__ */ e(j, { sectionName: i, section: P }, `section-${i}`)) : /* @__PURE__ */ e(E, {}) })
|
|
66
|
-
]
|
|
67
|
-
}
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
export {
|
|
71
|
-
Q as DevPanel
|
|
72
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Portal component that renders DevPanel using React's createPortal.
|
|
3
|
-
* Automatically subscribes to DevPanelManager prop changes and renders
|
|
4
|
-
* the DevPanel with merged props into document.body.
|
|
5
|
-
*
|
|
6
|
-
* @returns DevPanel rendered as a portal in document.body
|
|
7
|
-
*/
|
|
8
|
-
export declare const DevPanelPortal: () => import('react').ReactPortal;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { jsx as s } from "react/jsx-runtime";
|
|
2
|
-
import { useState as a, useEffect as m } from "react";
|
|
3
|
-
import { createPortal as c } from "react-dom";
|
|
4
|
-
import { DevPanelManager as r } from "../../managers/DevPanelManager.js";
|
|
5
|
-
import { DevPanel as p } from "../DevPanel/DevPanel.js";
|
|
6
|
-
const b = () => {
|
|
7
|
-
const [t, e] = a({});
|
|
8
|
-
return m(() => {
|
|
9
|
-
const o = r.getInstance().getAllProps();
|
|
10
|
-
return e(o), r.getInstance().onPropsChange((n) => {
|
|
11
|
-
e(n);
|
|
12
|
-
});
|
|
13
|
-
}, []), c(/* @__PURE__ */ s(p, { ...t }), document.body);
|
|
14
|
-
};
|
|
15
|
-
export {
|
|
16
|
-
b as DevPanelPortal
|
|
17
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function EmptyContent(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { jsxs as t, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import '../../assets/EmptyContent.css';const s = "_empty_1bkns_1", o = {
|
|
3
|
-
empty: s
|
|
4
|
-
};
|
|
5
|
-
function r() {
|
|
6
|
-
return /* @__PURE__ */ t("div", { className: o.empty, children: [
|
|
7
|
-
"No controls registered yet.",
|
|
8
|
-
/* @__PURE__ */ e("br", {}),
|
|
9
|
-
" ",
|
|
10
|
-
/* @__PURE__ */ e("br", {}),
|
|
11
|
-
"Use ",
|
|
12
|
-
/* @__PURE__ */ e("code", { children: "useDevPanel()" }),
|
|
13
|
-
" to add controls."
|
|
14
|
-
] });
|
|
15
|
-
}
|
|
16
|
-
export {
|
|
17
|
-
r as EmptyContent
|
|
18
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function Input(props: React.InputHTMLAttributes<HTMLInputElement>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { jsxs as n, jsx as o } from "react/jsx-runtime";
|
|
2
|
-
import { ControlRenderer as i } from "../ControlRenderer/ControlRenderer.js";
|
|
3
|
-
import { useDevPanelSectionActions as r } from "../../store/SectionsStore.js";
|
|
4
|
-
import { Icon as p } from "../Icon/index.js";
|
|
5
|
-
import '../../assets/Section.css';const d = "_section_plx7y_1", _ = "_header_plx7y_9", m = "_title_plx7y_28", g = "_toggle_plx7y_35", h = "_collapsed_plx7y_45", x = "_content_plx7y_54", e = {
|
|
6
|
-
section: d,
|
|
7
|
-
header: _,
|
|
8
|
-
title: m,
|
|
9
|
-
toggle: g,
|
|
10
|
-
collapsed: h,
|
|
11
|
-
content: x
|
|
12
|
-
};
|
|
13
|
-
function N({ sectionName: s, section: t }) {
|
|
14
|
-
const { toggleSectionCollapse: c } = r();
|
|
15
|
-
return /* @__PURE__ */ n("div", { className: e.section, children: [
|
|
16
|
-
/* @__PURE__ */ n("div", { className: e.header, onClick: () => c(s), children: [
|
|
17
|
-
/* @__PURE__ */ o("span", { className: e.title, children: t.name }),
|
|
18
|
-
/* @__PURE__ */ o("span", { className: e.toggle, children: /* @__PURE__ */ o(p, { name: "ArrowDown", className: t.isCollapsed ? e.collapsed : void 0 }) })
|
|
19
|
-
] }),
|
|
20
|
-
!t.isCollapsed && /* @__PURE__ */ o("div", { className: e.content, children: Object.entries(t.controls).map(([l, a]) => /* @__PURE__ */ o(i, { name: l, control: a }, l)) })
|
|
21
|
-
] });
|
|
22
|
-
}
|
|
23
|
-
export {
|
|
24
|
-
N as Section
|
|
25
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function Select(props: React.SelectHTMLAttributes<HTMLSelectElement>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Creates a debounced version of a callback.
|
|
3
|
-
*
|
|
4
|
-
* @param callback - Function to debounce
|
|
5
|
-
* @param delay - Delay in ms before calling the callback
|
|
6
|
-
* @returns A debounced version of the callback
|
|
7
|
-
*/
|
|
8
|
-
export declare function useDebouncedCallback<T extends (...args: Parameters<T>) => void>(callback: T, delay: number): (...args: Parameters<T>) => void;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { useRef as n, useEffect as c, useCallback as o } from "react";
|
|
2
|
-
function f(r, t) {
|
|
3
|
-
const e = n(null);
|
|
4
|
-
return c(() => () => {
|
|
5
|
-
e.current && clearTimeout(e.current);
|
|
6
|
-
}, []), o(
|
|
7
|
-
(...u) => {
|
|
8
|
-
e.current && clearTimeout(e.current), e.current = window.setTimeout(() => {
|
|
9
|
-
r(...u);
|
|
10
|
-
}, t);
|
|
11
|
-
},
|
|
12
|
-
[r, t]
|
|
13
|
-
);
|
|
14
|
-
}
|
|
15
|
-
export {
|
|
16
|
-
f as useDebouncedCallback
|
|
17
|
-
};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { ControlsGroup } from '../../components/ControlRenderer/controls/types';
|
|
2
|
-
import { DevPanelProps } from '../../components/DevPanel/types';
|
|
3
|
-
/**
|
|
4
|
-
* Hook to register controls in the dev panel with auto-mounting
|
|
5
|
-
* @param sectionName - Section name (e.g: 'Global', 'HomePage')
|
|
6
|
-
* @param controls - Controls configuration object
|
|
7
|
-
* @param devPanelProps - Optional DevPanel configuration (title, hotkey, theme)
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* useDevPanel('Global', {
|
|
12
|
-
* theme: {
|
|
13
|
-
* type: 'select',
|
|
14
|
-
* value: 'light',
|
|
15
|
-
* options: ['light', 'dark'],
|
|
16
|
-
* onChange: setTheme
|
|
17
|
-
* },
|
|
18
|
-
* debugMode: {
|
|
19
|
-
* type: 'boolean',
|
|
20
|
-
* value: false,
|
|
21
|
-
* onChange: setDebugMode
|
|
22
|
-
* }
|
|
23
|
-
* }, {
|
|
24
|
-
* panelTitle: 'My App Controls',
|
|
25
|
-
* theme: 'dark'
|
|
26
|
-
* });
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export declare function useDevPanel(sectionName: string, controls: ControlsGroup, devPanelProps?: DevPanelProps): void;
|