@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,10 +0,0 @@
|
|
|
1
|
-
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
-
import '../../../../assets/ButtonControl.css';const o = "_button_b8ouv_132", b = {
|
|
3
|
-
button: o
|
|
4
|
-
};
|
|
5
|
-
function u({ control: t }) {
|
|
6
|
-
return /* @__PURE__ */ n("button", { onClick: t.onClick, disabled: t.disabled, className: b.button, children: t.label });
|
|
7
|
-
}
|
|
8
|
-
export {
|
|
9
|
-
u as ButtonControl
|
|
10
|
-
};
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { ButtonGroupControlProps } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Component that renders a group of related buttons in a horizontal layout
|
|
4
|
-
*
|
|
5
|
-
* @param props - The component props
|
|
6
|
-
* @param props.control - The button group control configuration object
|
|
7
|
-
* @param props.control.type - The control type, must be 'buttonGroup'
|
|
8
|
-
* @param props.control.buttons - Array of button configurations to render
|
|
9
|
-
* @param props.control.buttons[].label - The text label displayed on the button
|
|
10
|
-
* @param props.control.buttons[].onClick - Callback function triggered when button is clicked
|
|
11
|
-
* @param props.control.buttons[].disabled - Optional flag to disable individual buttons
|
|
12
|
-
* @returns JSX element representing a group of buttons
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* <ButtonGroupControl control={{
|
|
17
|
-
* type: 'buttonGroup',
|
|
18
|
-
* buttons: [
|
|
19
|
-
* { label: 'Save', onClick: () => save() },
|
|
20
|
-
* { label: 'Cancel', onClick: () => cancel() },
|
|
21
|
-
* { label: 'Delete', onClick: () => delete(), disabled: true }
|
|
22
|
-
* ]
|
|
23
|
-
* }} />
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```typescript
|
|
28
|
-
* <ButtonGroupControl control={{
|
|
29
|
-
* type: 'buttonGroup',
|
|
30
|
-
* buttons: [
|
|
31
|
-
* { label: 'Previous', onClick: () => goToPrevious() },
|
|
32
|
-
* { label: 'Next', onClick: () => goToNext() }
|
|
33
|
-
* ]
|
|
34
|
-
* }} />
|
|
35
|
-
* ```
|
|
36
|
-
*/
|
|
37
|
-
export declare function ButtonGroupControl({ control }: ButtonGroupControlProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { ButtonControl as e } from "../ButtonControl/ButtonControl.js";
|
|
3
|
-
import '../../../../assets/ButtonGroupControl.css';const l = "_buttonGroupContainer_1642u_132", u = {
|
|
4
|
-
buttonGroupContainer: l
|
|
5
|
-
};
|
|
6
|
-
function p({ control: n }) {
|
|
7
|
-
return /* @__PURE__ */ t("div", { className: u.buttonGroupContainer, children: n.buttons.map((o, r) => /* @__PURE__ */ t(
|
|
8
|
-
e,
|
|
9
|
-
{
|
|
10
|
-
control: {
|
|
11
|
-
type: "button",
|
|
12
|
-
label: o.label,
|
|
13
|
-
onClick: o.onClick,
|
|
14
|
-
disabled: o.disabled
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
r
|
|
18
|
-
)) });
|
|
19
|
-
}
|
|
20
|
-
export {
|
|
21
|
-
p as ButtonGroupControl
|
|
22
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ColorControlProps } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Component that renders a color control with both visual color picker and text input
|
|
4
|
-
*
|
|
5
|
-
* @param props - The component props
|
|
6
|
-
* @param props.control - The color control configuration object
|
|
7
|
-
* @param props.control.type - The control type, must be 'color'
|
|
8
|
-
* @param props.control.value - The current color value (hex, rgb, hsl, or named color)
|
|
9
|
-
* @param props.control.onChange - Callback function triggered when color value changes
|
|
10
|
-
* @param props.control.disabled - Optional flag to disable the control
|
|
11
|
-
* @returns JSX element representing the color control with picker and text input
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```typescript
|
|
15
|
-
* <ColorControl control={{
|
|
16
|
-
* type: 'color',
|
|
17
|
-
* value: '#ff0000',
|
|
18
|
-
* onChange: (value) => setColor(value),
|
|
19
|
-
* disabled: false
|
|
20
|
-
* }}/>
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
export declare function ColorControl({ control }: ColorControlProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { jsxs as m, jsx as l } from "react/jsx-runtime";
|
|
2
|
-
import { useState as v, useEffect as C } from "react";
|
|
3
|
-
import { Input as p } from "../../../Input/Input.js";
|
|
4
|
-
import { useDebouncedCallback as b } from "../../../../hooks/useDebounceCallback/useDebounceCallback.js";
|
|
5
|
-
import '../../../../assets/ColorControl.css';const y = "_container_1oo6z_1", x = "_colorPreview_1oo6z_7", V = "_errorMessage_1oo6z_52", c = {
|
|
6
|
-
container: y,
|
|
7
|
-
colorPreview: x,
|
|
8
|
-
errorMessage: V
|
|
9
|
-
};
|
|
10
|
-
function P({ control: n }) {
|
|
11
|
-
const [r, o] = v(n.value), [s, i] = v(!0), u = b(n.onChange, 300);
|
|
12
|
-
function d(e) {
|
|
13
|
-
if (!e) return !1;
|
|
14
|
-
const t = document.createElement("div");
|
|
15
|
-
return t.style.color = e, t.style.color !== "";
|
|
16
|
-
}
|
|
17
|
-
function f(e) {
|
|
18
|
-
if (!e) return "#000000";
|
|
19
|
-
if (e.startsWith("#") && (e.length === 4 || e.length === 7))
|
|
20
|
-
return e.length === 4 ? `#${e[1]}${e[1]}${e[2]}${e[2]}${e[3]}${e[3]}` : e;
|
|
21
|
-
try {
|
|
22
|
-
const a = document.createElement("canvas").getContext("2d");
|
|
23
|
-
return a ? (a.fillStyle = e, a.fillStyle) : "#000000";
|
|
24
|
-
} catch {
|
|
25
|
-
return "#000000";
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function g(e) {
|
|
29
|
-
const t = e.target.value;
|
|
30
|
-
o(t), i(!0), u(t);
|
|
31
|
-
}
|
|
32
|
-
function h(e) {
|
|
33
|
-
const t = e.target.value;
|
|
34
|
-
o(t);
|
|
35
|
-
const a = d(t);
|
|
36
|
-
i(a), (a || t === "") && u(t);
|
|
37
|
-
}
|
|
38
|
-
return C(() => {
|
|
39
|
-
o(n.value), i(d(n.value));
|
|
40
|
-
}, [n.value]), /* @__PURE__ */ m("div", { className: c.container, children: [
|
|
41
|
-
/* @__PURE__ */ l("div", { className: c.colorPreview, style: { backgroundColor: s ? r : "transparent" }, children: /* @__PURE__ */ l(
|
|
42
|
-
"input",
|
|
43
|
-
{
|
|
44
|
-
type: "color",
|
|
45
|
-
value: f(r),
|
|
46
|
-
disabled: n.disabled,
|
|
47
|
-
onChange: g,
|
|
48
|
-
title: "Open color picker"
|
|
49
|
-
}
|
|
50
|
-
) }),
|
|
51
|
-
/* @__PURE__ */ l(
|
|
52
|
-
p,
|
|
53
|
-
{
|
|
54
|
-
type: "text",
|
|
55
|
-
value: r || "",
|
|
56
|
-
disabled: n.disabled,
|
|
57
|
-
onChange: h,
|
|
58
|
-
placeholder: "Enter color value (hex, rgb, hsl, named)",
|
|
59
|
-
style: {
|
|
60
|
-
borderColor: !s && r ? "var(--dev-panel-danger-color)" : void 0
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
),
|
|
64
|
-
!s && r && /* @__PURE__ */ l("div", { className: c.errorMessage, children: "Invalid color format" })
|
|
65
|
-
] });
|
|
66
|
-
}
|
|
67
|
-
export {
|
|
68
|
-
P as ColorControl
|
|
69
|
-
};
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { DateControlProps } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Component that renders a date control with configurable event handling
|
|
4
|
-
*
|
|
5
|
-
* @param props - The component props
|
|
6
|
-
* @param props.control - The date control configuration object
|
|
7
|
-
* @param props.control.type - The control type, must be 'date'
|
|
8
|
-
* @param props.control.value - The current date value in ISO format (YYYY-MM-DD)
|
|
9
|
-
* @param props.control.min - Optional minimum allowed date in ISO format
|
|
10
|
-
* @param props.control.max - Optional maximum allowed date in ISO format
|
|
11
|
-
* @param props.control.event - When to trigger onChange: "onChange" (real-time) or "onBlur" (on focus loss). Defaults to "onBlur"
|
|
12
|
-
* @param props.control.onChange - Callback function triggered when date value changes
|
|
13
|
-
* @param props.control.disabled - Optional flag to disable the control
|
|
14
|
-
* @returns JSX element representing the date input control
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```typescript
|
|
18
|
-
* // Real-time updates
|
|
19
|
-
* <DateControl control={{
|
|
20
|
-
* type: 'date',
|
|
21
|
-
* value: '2025-07-26',
|
|
22
|
-
* min: '2025-01-01',
|
|
23
|
-
* max: '2025-12-31',
|
|
24
|
-
* event: 'onChange',
|
|
25
|
-
* onChange: (value) => setSelectedDate(value),
|
|
26
|
-
* disabled: false
|
|
27
|
-
* }} />
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```typescript
|
|
32
|
-
* // Updates only when losing focus (default)
|
|
33
|
-
* <DateControl control={{
|
|
34
|
-
* type: 'date',
|
|
35
|
-
* value: '2025-07-26',
|
|
36
|
-
* event: 'onBlur',
|
|
37
|
-
* onChange: (value) => console.log('Date changed:', value)
|
|
38
|
-
* }} />
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
export declare function DateControl({ control }: DateControlProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { jsx as m } from "react/jsx-runtime";
|
|
2
|
-
import { useState as o, useEffect as s } from "react";
|
|
3
|
-
import { Input as r } from "../../../Input/Input.js";
|
|
4
|
-
function h({ control: e }) {
|
|
5
|
-
const n = e.event || "onBlur", [l, t] = o(e.value);
|
|
6
|
-
function i(u) {
|
|
7
|
-
const a = u.target.value;
|
|
8
|
-
t(a), n === "onChange" && e.onChange(a);
|
|
9
|
-
}
|
|
10
|
-
function f(u) {
|
|
11
|
-
const a = u.target.value;
|
|
12
|
-
n === "onBlur" && e.onChange(a);
|
|
13
|
-
}
|
|
14
|
-
return s(() => {
|
|
15
|
-
t(e.value);
|
|
16
|
-
}, [e.value]), /* @__PURE__ */ m(
|
|
17
|
-
r,
|
|
18
|
-
{
|
|
19
|
-
type: "date",
|
|
20
|
-
value: l,
|
|
21
|
-
min: e.min,
|
|
22
|
-
max: e.max,
|
|
23
|
-
disabled: e.disabled,
|
|
24
|
-
onChange: i,
|
|
25
|
-
...n === "onBlur" && { onBlur: f }
|
|
26
|
-
}
|
|
27
|
-
);
|
|
28
|
-
}
|
|
29
|
-
export {
|
|
30
|
-
h as DateControl
|
|
31
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { MultiSelectControlProps } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Component that renders a multi-select control with checkbox options
|
|
4
|
-
*
|
|
5
|
-
* @param props - The component props
|
|
6
|
-
* @param props.control - The multi-select control configuration object
|
|
7
|
-
* @param props.control.type - The control type, must be 'multiselect'
|
|
8
|
-
* @param props.control.value - Array of currently selected option values
|
|
9
|
-
* @param props.control.options - Array of available options (strings or objects with label/value)
|
|
10
|
-
* @param props.control.onChange - Callback function triggered when selection changes
|
|
11
|
-
* @param props.control.disabled - Optional flag to disable the control
|
|
12
|
-
* @returns JSX element representing the multi-select control
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* <MultiSelectControl control={{
|
|
17
|
-
* type: 'multiselect',
|
|
18
|
-
* value: ['red', 'blue'],
|
|
19
|
-
* options: [
|
|
20
|
-
* { label: 'Red Color', value: 'red' },
|
|
21
|
-
* { label: 'Blue Color', value: 'blue' },
|
|
22
|
-
* { label: 'Green Color', value: 'green' }
|
|
23
|
-
* ],
|
|
24
|
-
* onChange: (values) => setSelectedColors(values)
|
|
25
|
-
* }} />
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export declare function MultiSelectControl({ control }: MultiSelectControlProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import { jsxs as f, Fragment as O, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import { useState as y, useRef as _, useCallback as R, useEffect as v } from "react";
|
|
3
|
-
import { createPortal as S } from "react-dom";
|
|
4
|
-
import { Icon as N } from "../../../Icon/index.js";
|
|
5
|
-
import "../../../../store/SectionsStore.js";
|
|
6
|
-
import "../../../../store/ThemeStore.js";
|
|
7
|
-
import { useDevPanelPosition as z } from "../../../../store/UIStore.js";
|
|
8
|
-
import { className as B } from "../../../../utils/className/className.js";
|
|
9
|
-
import '../../../../assets/MultiSelectControl.css';const I = "_multiselect_1agkw_1", $ = "_trigger_1agkw_6", j = "_open_1agkw_36", A = "_value_1agkw_40", T = "_arrow_1agkw_53", V = "_dropdownPortal_1agkw_68", W = "_dropdown_1agkw_68", q = "_option_1agkw_115", F = "_disabled_1agkw_127", U = "_checkbox_1agkw_134", G = "_checkmark_1agkw_139", J = "_label_1agkw_170", n = {
|
|
10
|
-
multiselect: I,
|
|
11
|
-
trigger: $,
|
|
12
|
-
open: j,
|
|
13
|
-
value: A,
|
|
14
|
-
arrow: T,
|
|
15
|
-
dropdownPortal: V,
|
|
16
|
-
dropdown: W,
|
|
17
|
-
option: q,
|
|
18
|
-
disabled: F,
|
|
19
|
-
checkbox: U,
|
|
20
|
-
checkmark: G,
|
|
21
|
-
label: J
|
|
22
|
-
};
|
|
23
|
-
function oe({ control: t }) {
|
|
24
|
-
const c = z(), [a, u] = y(!1), [d, b] = y({
|
|
25
|
-
top: 0,
|
|
26
|
-
left: 0,
|
|
27
|
-
width: 0,
|
|
28
|
-
maxHeight: 200
|
|
29
|
-
}), p = _(null), w = _(null), k = _(null), s = R(() => {
|
|
30
|
-
a && b(x());
|
|
31
|
-
}, [a]);
|
|
32
|
-
function x() {
|
|
33
|
-
if (!w.current)
|
|
34
|
-
return { top: 0, left: 0, width: 0, maxHeight: 200 };
|
|
35
|
-
const e = w.current.getBoundingClientRect(), i = window.innerHeight, o = window.innerWidth, l = 200, m = 4, g = i - e.bottom - m, h = e.top - m, P = g < l && h > g, H = P ? e.top - Math.min(l, h) : e.bottom + m, D = Math.max(8, Math.min(e.left, o - e.width - 8)), M = P ? Math.min(l, h) : Math.min(l, g);
|
|
36
|
-
return {
|
|
37
|
-
top: H,
|
|
38
|
-
left: D,
|
|
39
|
-
width: e.width,
|
|
40
|
-
maxHeight: M
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
function L(e) {
|
|
44
|
-
const i = t.value.includes(e) ? t.value.filter((o) => o !== e) : [...t.value, e];
|
|
45
|
-
t.onChange(i);
|
|
46
|
-
}
|
|
47
|
-
function C() {
|
|
48
|
-
if (t.value.length === 0)
|
|
49
|
-
return "Select options...";
|
|
50
|
-
if (t.value.length === 1) {
|
|
51
|
-
const e = t.options.find((o) => (typeof o == "string" ? o : o.value) === t.value[0]);
|
|
52
|
-
return (typeof e == "string" ? e : e?.label) || t.value[0];
|
|
53
|
-
}
|
|
54
|
-
return `${t.value.length} selected`;
|
|
55
|
-
}
|
|
56
|
-
function E() {
|
|
57
|
-
t.disabled || (a ? u(!1) : (b(x()), u(!0)));
|
|
58
|
-
}
|
|
59
|
-
return v(() => {
|
|
60
|
-
if (a)
|
|
61
|
-
return s(), window.addEventListener("resize", s), window.addEventListener("scroll", s, !0), () => {
|
|
62
|
-
window.removeEventListener("resize", s), window.removeEventListener("scroll", s, !0);
|
|
63
|
-
};
|
|
64
|
-
}, [a, s]), v(() => {
|
|
65
|
-
const e = k.current;
|
|
66
|
-
(!e || e.x !== c.x || e.y !== c.y) && (k.current = c, s());
|
|
67
|
-
}, [c, s]), v(() => {
|
|
68
|
-
function e(i) {
|
|
69
|
-
if (p.current && !p.current.contains(i.target)) {
|
|
70
|
-
const o = document.querySelector(`.${n.dropdownPortal}`);
|
|
71
|
-
if (o && o.contains(i.target))
|
|
72
|
-
return;
|
|
73
|
-
u(!1);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return document.addEventListener("mousedown", e), () => {
|
|
77
|
-
document.removeEventListener("mousedown", e);
|
|
78
|
-
};
|
|
79
|
-
}, []), /* @__PURE__ */ f(O, { children: [
|
|
80
|
-
/* @__PURE__ */ r(
|
|
81
|
-
"div",
|
|
82
|
-
{
|
|
83
|
-
ref: p,
|
|
84
|
-
...B(n.multiselect, {
|
|
85
|
-
[n.disabled]: !!t.disabled,
|
|
86
|
-
[n.open]: a
|
|
87
|
-
}),
|
|
88
|
-
children: /* @__PURE__ */ f("button", { ref: w, type: "button", className: n.trigger, onClick: E, disabled: t.disabled, children: [
|
|
89
|
-
/* @__PURE__ */ r("span", { className: n.value, children: C() }),
|
|
90
|
-
/* @__PURE__ */ r(N, { name: "ArrowDown", className: n.arrow })
|
|
91
|
-
] })
|
|
92
|
-
}
|
|
93
|
-
),
|
|
94
|
-
typeof window < "u" && S(
|
|
95
|
-
a && !t.disabled && /* @__PURE__ */ r(
|
|
96
|
-
"div",
|
|
97
|
-
{
|
|
98
|
-
className: `${n.dropdownPortal}`,
|
|
99
|
-
style: {
|
|
100
|
-
position: "fixed",
|
|
101
|
-
top: d.top,
|
|
102
|
-
left: d.left,
|
|
103
|
-
width: d.width,
|
|
104
|
-
maxHeight: d.maxHeight,
|
|
105
|
-
zIndex: 9999
|
|
106
|
-
},
|
|
107
|
-
children: /* @__PURE__ */ r("div", { className: n.dropdown, children: t.options.map((e) => {
|
|
108
|
-
const i = typeof e == "string" ? e : e.value, o = typeof e == "string" ? e : e.label, l = t.value.includes(i);
|
|
109
|
-
return /* @__PURE__ */ f("label", { className: n.option, children: [
|
|
110
|
-
/* @__PURE__ */ r(
|
|
111
|
-
"input",
|
|
112
|
-
{
|
|
113
|
-
type: "checkbox",
|
|
114
|
-
checked: l,
|
|
115
|
-
onChange: () => L(i),
|
|
116
|
-
className: n.checkbox
|
|
117
|
-
}
|
|
118
|
-
),
|
|
119
|
-
/* @__PURE__ */ r(N, { name: "Check", className: n.checkmark }),
|
|
120
|
-
/* @__PURE__ */ r("span", { className: n.label, children: o })
|
|
121
|
-
] }, i);
|
|
122
|
-
}) })
|
|
123
|
-
}
|
|
124
|
-
),
|
|
125
|
-
document.body
|
|
126
|
-
)
|
|
127
|
-
] });
|
|
128
|
-
}
|
|
129
|
-
export {
|
|
130
|
-
oe as MultiSelectControl
|
|
131
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { NumberControlProps } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Component that renders a number control with configurable event handling
|
|
4
|
-
*
|
|
5
|
-
* @param props - The component props
|
|
6
|
-
* @param props.control - The number control configuration object
|
|
7
|
-
* @param props.control.type - The control type, must be 'number'
|
|
8
|
-
* @param props.control.value - The current numeric value
|
|
9
|
-
* @param props.control.min - Optional minimum allowed value
|
|
10
|
-
* @param props.control.max - Optional maximum allowed value
|
|
11
|
-
* @param props.control.step - Optional step increment for the number input (defaults to 1)
|
|
12
|
-
* @param props.control.event - When to trigger onChange: "onChange" (real-time) or "onBlur" (on focus loss). Defaults to "onChange"
|
|
13
|
-
* @param props.control.onChange - Callback function triggered when numeric value changes
|
|
14
|
-
* @param props.control.disabled - Optional flag to disable the control
|
|
15
|
-
* @returns JSX element representing the number input control
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* // Real-time updates with constraints
|
|
20
|
-
* <NumberControl control={{
|
|
21
|
-
* type: 'number',
|
|
22
|
-
* value: 50,
|
|
23
|
-
* min: 0,
|
|
24
|
-
* max: 100,
|
|
25
|
-
* step: 5,
|
|
26
|
-
* event: 'onChange',
|
|
27
|
-
* onChange: (value) => setProgress(value),
|
|
28
|
-
* disabled: false
|
|
29
|
-
* }} />
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* ```typescript
|
|
34
|
-
* // Updates only when losing focus
|
|
35
|
-
* <NumberControl control={{
|
|
36
|
-
* type: 'number',
|
|
37
|
-
* value: 42,
|
|
38
|
-
* min: 1,
|
|
39
|
-
* step: 0.1,
|
|
40
|
-
* event: 'onBlur',
|
|
41
|
-
* onChange: (value) => console.log('Value changed:', value)
|
|
42
|
-
* }} />
|
|
43
|
-
* ```
|
|
44
|
-
*/
|
|
45
|
-
export declare function NumberControl({ control }: NumberControlProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { jsx as s } from "react/jsx-runtime";
|
|
2
|
-
import { useState as r, useEffect as f } from "react";
|
|
3
|
-
import { Input as p } from "../../../Input/Input.js";
|
|
4
|
-
function v({ control: e }) {
|
|
5
|
-
const n = e.event || "onChange", [m, t] = r(e.value);
|
|
6
|
-
function l(u) {
|
|
7
|
-
const a = Number(u.target.value);
|
|
8
|
-
t(a), n === "onChange" && e.onChange(a);
|
|
9
|
-
}
|
|
10
|
-
function i(u) {
|
|
11
|
-
const a = Number(u.target.value);
|
|
12
|
-
n === "onBlur" && e.onChange(a);
|
|
13
|
-
}
|
|
14
|
-
return f(() => {
|
|
15
|
-
t(e.value);
|
|
16
|
-
}, [e.value]), /* @__PURE__ */ s(
|
|
17
|
-
p,
|
|
18
|
-
{
|
|
19
|
-
type: "number",
|
|
20
|
-
value: m,
|
|
21
|
-
min: e.min,
|
|
22
|
-
max: e.max,
|
|
23
|
-
step: e.step,
|
|
24
|
-
disabled: e.disabled,
|
|
25
|
-
onChange: l,
|
|
26
|
-
...n === "onBlur" && { onBlur: i }
|
|
27
|
-
}
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
export {
|
|
31
|
-
v as NumberControl
|
|
32
|
-
};
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { RangeControlProps } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Component that renders a range/slider control with configurable event handling and visual value display
|
|
4
|
-
*
|
|
5
|
-
* @param props - The component props
|
|
6
|
-
* @param props.control - The range control configuration object
|
|
7
|
-
* @param props.control.type - The control type, must be 'range'
|
|
8
|
-
* @param props.control.value - The current numeric value of the slider
|
|
9
|
-
* @param props.control.min - Optional minimum allowed value (defaults to 0)
|
|
10
|
-
* @param props.control.max - Optional maximum allowed value (defaults to 100)
|
|
11
|
-
* @param props.control.step - Optional step increment for the slider (defaults to 1)
|
|
12
|
-
* @param props.control.event - When to trigger onChange: "onChange" (real-time) or "onBlur" (on focus loss). Defaults to "onChange"
|
|
13
|
-
* @param props.control.onChange - Callback function triggered when slider value changes
|
|
14
|
-
* @param props.control.disabled - Optional flag to disable the control
|
|
15
|
-
* @returns JSX element representing the range slider control with value display
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```typescript
|
|
19
|
-
* // Real-time updates with custom range (default behavior)
|
|
20
|
-
* <RangeControl control={{
|
|
21
|
-
* type: 'range',
|
|
22
|
-
* value: 75,
|
|
23
|
-
* min: 0,
|
|
24
|
-
* max: 100,
|
|
25
|
-
* step: 5,
|
|
26
|
-
* event: 'onChange',
|
|
27
|
-
* onChange: (value) => setVolume(value),
|
|
28
|
-
* disabled: false
|
|
29
|
-
* }} />
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* ```typescript
|
|
34
|
-
* // Updates only when losing focus with decimal steps
|
|
35
|
-
* <RangeControl control={{
|
|
36
|
-
* type: 'range',
|
|
37
|
-
* value: 2.5,
|
|
38
|
-
* min: 0,
|
|
39
|
-
* max: 5,
|
|
40
|
-
* step: 0.1,
|
|
41
|
-
* event: 'onBlur',
|
|
42
|
-
* onChange: (value) => console.log('Rating changed:', value)
|
|
43
|
-
* }} />
|
|
44
|
-
* ```
|
|
45
|
-
*/
|
|
46
|
-
export declare function RangeControl({ control }: RangeControlProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { jsxs as c, jsx as i } from "react/jsx-runtime";
|
|
2
|
-
import { useState as o, useEffect as m } from "react";
|
|
3
|
-
import '../../../../assets/RangeControl.css';const v = "_container_lg827_1", h = "_range_lg827_9", d = "_value_lg827_115", u = {
|
|
4
|
-
container: v,
|
|
5
|
-
range: h,
|
|
6
|
-
value: d
|
|
7
|
-
};
|
|
8
|
-
function _({ control: e }) {
|
|
9
|
-
const n = e.event || "onChange", [l, t] = o(e.value);
|
|
10
|
-
function r(s) {
|
|
11
|
-
const a = Number(s.target.value);
|
|
12
|
-
t(a), n === "onChange" && e.onChange(a);
|
|
13
|
-
}
|
|
14
|
-
function g(s) {
|
|
15
|
-
const a = Number(s.target.value);
|
|
16
|
-
n === "onBlur" && e.onChange(a);
|
|
17
|
-
}
|
|
18
|
-
return m(() => {
|
|
19
|
-
t(e.value);
|
|
20
|
-
}, [e.value]), /* @__PURE__ */ c("div", { className: u.container, children: [
|
|
21
|
-
/* @__PURE__ */ i(
|
|
22
|
-
"input",
|
|
23
|
-
{
|
|
24
|
-
type: "range",
|
|
25
|
-
value: l,
|
|
26
|
-
min: e.min,
|
|
27
|
-
max: e.max,
|
|
28
|
-
step: e.step,
|
|
29
|
-
disabled: e.disabled,
|
|
30
|
-
onChange: r,
|
|
31
|
-
...n === "onBlur" && { onBlur: g },
|
|
32
|
-
className: u.range
|
|
33
|
-
}
|
|
34
|
-
),
|
|
35
|
-
/* @__PURE__ */ i("span", { className: u.value, children: l })
|
|
36
|
-
] });
|
|
37
|
-
}
|
|
38
|
-
export {
|
|
39
|
-
_ as RangeControl
|
|
40
|
-
};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { SelectControlProps } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Component that renders a dropdown select control with single selection
|
|
4
|
-
*
|
|
5
|
-
* @param props - The component props
|
|
6
|
-
* @param props.control - The select control configuration object
|
|
7
|
-
* @param props.control.type - The control type, must be 'select'
|
|
8
|
-
* @param props.control.value - The currently selected option value
|
|
9
|
-
* @param props.control.options - Array of available options (strings or objects with label/value)
|
|
10
|
-
* @param props.control.onChange - Callback function triggered when selection changes
|
|
11
|
-
* @param props.control.disabled - Optional flag to disable the control
|
|
12
|
-
* @returns JSX element representing a dropdown select control
|
|
13
|
-
*
|
|
14
|
-
* @example
|
|
15
|
-
* ```typescript
|
|
16
|
-
* <SelectControl control={{
|
|
17
|
-
* type: 'select',
|
|
18
|
-
* value: 'medium',
|
|
19
|
-
* options: ['small', 'medium', 'large'],
|
|
20
|
-
* onChange: (value) => setSize(value),
|
|
21
|
-
* disabled: false
|
|
22
|
-
* }} />
|
|
23
|
-
* ```
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```typescript
|
|
27
|
-
* <SelectControl control={{
|
|
28
|
-
* type: 'select',
|
|
29
|
-
* value: 'red',
|
|
30
|
-
* options: [
|
|
31
|
-
* { label: 'Red Color', value: 'red' },
|
|
32
|
-
* { label: 'Blue Color', value: 'blue' },
|
|
33
|
-
* { label: 'Green Color', value: 'green' }
|
|
34
|
-
* ],
|
|
35
|
-
* onChange: (value) => console.log('Selected:', value)
|
|
36
|
-
* }} />
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
export declare function SelectControl({ control }: SelectControlProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { Select as n } from "../../../Select/Select.js";
|
|
3
|
-
function s({ control: a }) {
|
|
4
|
-
return /* @__PURE__ */ t(n, { value: a.value, disabled: a.disabled, onChange: (e) => a.onChange(e.target.value), children: a.options.map((e) => {
|
|
5
|
-
const l = typeof e == "string" ? e : e.value, r = typeof e == "string" ? e : e.label;
|
|
6
|
-
return /* @__PURE__ */ t("option", { value: l, children: r }, l);
|
|
7
|
-
}) });
|
|
8
|
-
}
|
|
9
|
-
export {
|
|
10
|
-
s as SelectControl
|
|
11
|
-
};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { SeparatorControlProps } from './types';
|
|
2
|
-
/**
|
|
3
|
-
* Component that renders a visual separator to organize control groups
|
|
4
|
-
*
|
|
5
|
-
* @param props - The component props
|
|
6
|
-
* @param props.control - The separator control configuration object
|
|
7
|
-
* @param props.control.type - The control type, must be 'separator'
|
|
8
|
-
* @param props.control.style - The style of separator: "line" (default), "space", or "label"
|
|
9
|
-
* @param props.control.label - Optional label text (only displayed when style is "label")
|
|
10
|
-
* @returns JSX element representing a visual separator
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* // Simple line separator (default)
|
|
15
|
-
* <SeparatorControl control={{
|
|
16
|
-
* type: 'separator'
|
|
17
|
-
* }} />
|
|
18
|
-
* ```
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```typescript
|
|
22
|
-
* // Separator with label text
|
|
23
|
-
* <SeparatorControl control={{
|
|
24
|
-
* type: 'separator',
|
|
25
|
-
* style: 'label',
|
|
26
|
-
* label: 'Advanced Settings'
|
|
27
|
-
* }} />
|
|
28
|
-
* ```
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* ```typescript
|
|
32
|
-
* // Space separator for extra spacing
|
|
33
|
-
* <SeparatorControl control={{
|
|
34
|
-
* type: 'separator',
|
|
35
|
-
* style: 'space'
|
|
36
|
-
* }} />
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
export declare function SeparatorControl({ control }: SeparatorControlProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import '../../../../assets/SeparatorControl.css';const s = "_line_174q4_1", t = "_space_174q4_9", i = "_labelContainer_174q4_14", c = "_label_174q4_14", l = {
|
|
3
|
-
line: s,
|
|
4
|
-
space: t,
|
|
5
|
-
labelContainer: i,
|
|
6
|
-
label: c
|
|
7
|
-
};
|
|
8
|
-
function o({ control: a }) {
|
|
9
|
-
const n = a.style || "line";
|
|
10
|
-
return n === "space" ? /* @__PURE__ */ e("div", { className: l.space }) : n === "label" && a.label ? /* @__PURE__ */ e("div", { className: l.labelContainer, children: /* @__PURE__ */ e("span", { className: l.label, children: a.label }) }) : /* @__PURE__ */ e("div", { className: l.line });
|
|
11
|
-
}
|
|
12
|
-
export {
|
|
13
|
-
o as SeparatorControl
|
|
14
|
-
};
|