@gorilla-engine-sdk/ge-labeled-components 0.7.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/LICENSE.md +64 -0
- package/README.md +236 -0
- package/dist/components/LabeledComboBox.d.ts +36 -0
- package/dist/components/LabeledComboBox.js +70 -0
- package/dist/components/LabeledKnob.d.ts +40 -0
- package/dist/components/LabeledKnob.js +75 -0
- package/dist/components/LabeledMeterSlider.d.ts +53 -0
- package/dist/components/LabeledMeterSlider.js +76 -0
- package/dist/components/LabeledRTToggle.d.ts +36 -0
- package/dist/components/LabeledRTToggle.js +82 -0
- package/dist/components/LabeledSlider.d.ts +38 -0
- package/dist/components/LabeledSlider.js +75 -0
- package/dist/components/LabeledToggle.d.ts +35 -0
- package/dist/components/LabeledToggle.js +70 -0
- package/dist/core/LabeledComponent.d.ts +129 -0
- package/dist/core/LabeledComponent.js +90 -0
- package/dist/core/useLabelValue.d.ts +79 -0
- package/dist/core/useLabelValue.js +172 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.js +29 -0
- package/package.json +43 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { LabeledComponentProps } from './LabeledComponent';
|
|
2
|
+
/**
|
|
3
|
+
* Props accepted by the useLabelValue hook.
|
|
4
|
+
* @see LabeledComponentProps
|
|
5
|
+
*/
|
|
6
|
+
export type UseLabelValueProps = LabeledComponentProps;
|
|
7
|
+
/**
|
|
8
|
+
* Return value from the useLabelValue hook.
|
|
9
|
+
*/
|
|
10
|
+
export type UseLabelValueReturnProps = {
|
|
11
|
+
/** Current text for the name/text label. */
|
|
12
|
+
labelText: string;
|
|
13
|
+
/** Whether the text label should be visible. */
|
|
14
|
+
labelVisible: boolean;
|
|
15
|
+
/** Current text for the value label. */
|
|
16
|
+
valueText: string;
|
|
17
|
+
/** Whether the value label should be visible. */
|
|
18
|
+
valueVisible: boolean;
|
|
19
|
+
/** Update the text label content. */
|
|
20
|
+
setLabelText(t: string): void;
|
|
21
|
+
/** Update the value label content. */
|
|
22
|
+
setValueText(t: string): void;
|
|
23
|
+
/** Call when mouse enters the control. */
|
|
24
|
+
onMouseEnter(): void;
|
|
25
|
+
/** Call when mouse exits the control. */
|
|
26
|
+
onMouseExit(): void;
|
|
27
|
+
/** Call when mouse button is pressed on the control. */
|
|
28
|
+
onMouseDown(): void;
|
|
29
|
+
/** Call when mouse button is released. */
|
|
30
|
+
onMouseUp(): void;
|
|
31
|
+
/** Call when the parameter value changes. */
|
|
32
|
+
onValueChange(): void;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Hook for managing label and value display state in labeled components.
|
|
36
|
+
*
|
|
37
|
+
* @remarks
|
|
38
|
+
* This hook handles:
|
|
39
|
+
* - Subscribing to instrument parameter changes
|
|
40
|
+
* - Managing label/value visibility based on interaction
|
|
41
|
+
* - Formatting values using custom ranges
|
|
42
|
+
* - Providing event handlers for mouse interaction
|
|
43
|
+
*
|
|
44
|
+
* Use this hook when building custom labeled components that need the same
|
|
45
|
+
* label/value behavior as the built-in components.
|
|
46
|
+
*
|
|
47
|
+
* @param props - Configuration including instrument, property binding, and visibility settings
|
|
48
|
+
* @returns Object containing label state, setters, and event handlers
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```tsx
|
|
52
|
+
* function CustomLabeledControl(props: LabeledComponentProps) {
|
|
53
|
+
* const {
|
|
54
|
+
* labelText,
|
|
55
|
+
* labelVisible,
|
|
56
|
+
* valueText,
|
|
57
|
+
* valueVisible,
|
|
58
|
+
* onMouseEnter,
|
|
59
|
+
* onMouseExit,
|
|
60
|
+
* } = useLabelValue(props);
|
|
61
|
+
*
|
|
62
|
+
* return (
|
|
63
|
+
* <LabeledComponent
|
|
64
|
+
* {...props}
|
|
65
|
+
* labelText={labelText}
|
|
66
|
+
* labelVisible={labelVisible}
|
|
67
|
+
* valueText={valueText}
|
|
68
|
+
* valueVisible={valueVisible}
|
|
69
|
+
* >
|
|
70
|
+
* <MyCustomControl
|
|
71
|
+
* onMouseEnter={onMouseEnter}
|
|
72
|
+
* onMouseExit={onMouseExit}
|
|
73
|
+
* />
|
|
74
|
+
* </LabeledComponent>
|
|
75
|
+
* );
|
|
76
|
+
* }
|
|
77
|
+
* ```
|
|
78
|
+
*/
|
|
79
|
+
export declare function useLabelValue(props: UseLabelValueProps): UseLabelValueReturnProps;
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLabelValue = useLabelValue;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const LabeledComponent_1 = require("./LabeledComponent");
|
|
6
|
+
/**
|
|
7
|
+
* Hook for managing label and value display state in labeled components.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* This hook handles:
|
|
11
|
+
* - Subscribing to instrument parameter changes
|
|
12
|
+
* - Managing label/value visibility based on interaction
|
|
13
|
+
* - Formatting values using custom ranges
|
|
14
|
+
* - Providing event handlers for mouse interaction
|
|
15
|
+
*
|
|
16
|
+
* Use this hook when building custom labeled components that need the same
|
|
17
|
+
* label/value behavior as the built-in components.
|
|
18
|
+
*
|
|
19
|
+
* @param props - Configuration including instrument, property binding, and visibility settings
|
|
20
|
+
* @returns Object containing label state, setters, and event handlers
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* function CustomLabeledControl(props: LabeledComponentProps) {
|
|
25
|
+
* const {
|
|
26
|
+
* labelText,
|
|
27
|
+
* labelVisible,
|
|
28
|
+
* valueText,
|
|
29
|
+
* valueVisible,
|
|
30
|
+
* onMouseEnter,
|
|
31
|
+
* onMouseExit,
|
|
32
|
+
* } = useLabelValue(props);
|
|
33
|
+
*
|
|
34
|
+
* return (
|
|
35
|
+
* <LabeledComponent
|
|
36
|
+
* {...props}
|
|
37
|
+
* labelText={labelText}
|
|
38
|
+
* labelVisible={labelVisible}
|
|
39
|
+
* valueText={valueText}
|
|
40
|
+
* valueVisible={valueVisible}
|
|
41
|
+
* >
|
|
42
|
+
* <MyCustomControl
|
|
43
|
+
* onMouseEnter={onMouseEnter}
|
|
44
|
+
* onMouseExit={onMouseExit}
|
|
45
|
+
* />
|
|
46
|
+
* </LabeledComponent>
|
|
47
|
+
* );
|
|
48
|
+
* }
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
function useLabelValue(props) {
|
|
52
|
+
const propsRef = (0, react_1.useRef)(props);
|
|
53
|
+
propsRef.current = props;
|
|
54
|
+
const [labelText, setLabelText] = (0, react_1.useState)('');
|
|
55
|
+
const [labelVisible, setLabelVisible] = (0, react_1.useState)(true);
|
|
56
|
+
const [valueText, setValueText] = (0, react_1.useState)('');
|
|
57
|
+
const [valueVisible, setValueVisible] = (0, react_1.useState)(props.hideValueLabel ? false : true);
|
|
58
|
+
(0, react_1.useEffect)(() => {
|
|
59
|
+
const property = (0, LabeledComponent_1.resolveInstrumentProperty)(props.instrument, props.instrumentProp);
|
|
60
|
+
const propertyKey = (0, LabeledComponent_1.getInstrumentPropertyKey)(props.instrumentProp);
|
|
61
|
+
if (!property)
|
|
62
|
+
return;
|
|
63
|
+
setLabelText(String(props.textLabel?.text || property.name));
|
|
64
|
+
setValueText(property.text);
|
|
65
|
+
if (!propertyKey || !props.instrument)
|
|
66
|
+
return;
|
|
67
|
+
const instrumentPropertyChangeHandler = () => {
|
|
68
|
+
const currentProperty = (0, LabeledComponent_1.resolveInstrumentProperty)(propsRef.current.instrument, propsRef.current.instrumentProp);
|
|
69
|
+
if (currentProperty)
|
|
70
|
+
setValueText(currentProperty.text);
|
|
71
|
+
};
|
|
72
|
+
props.instrument.on(propertyKey, instrumentPropertyChangeHandler);
|
|
73
|
+
return () => {
|
|
74
|
+
props.instrument.off(propertyKey, instrumentPropertyChangeHandler);
|
|
75
|
+
};
|
|
76
|
+
}, [props.instrument, props.instrumentProp, props.textLabel?.text]);
|
|
77
|
+
const toggleTextValueLabels = (0, react_1.useCallback)((showValue) => {
|
|
78
|
+
if (propsRef.current.hideTextValue)
|
|
79
|
+
setLabelVisible(!showValue);
|
|
80
|
+
if (propsRef.current.hideValueLabel)
|
|
81
|
+
setValueVisible(showValue);
|
|
82
|
+
}, []);
|
|
83
|
+
const onMouseEnter = (0, react_1.useCallback)(() => {
|
|
84
|
+
if (propsRef.current.toggleVisibilityOnHover) {
|
|
85
|
+
toggleTextValueLabels(true);
|
|
86
|
+
const property = (0, LabeledComponent_1.resolveInstrumentProperty)(propsRef.current.instrument, propsRef.current.instrumentProp);
|
|
87
|
+
if (property)
|
|
88
|
+
setValueText(property.text);
|
|
89
|
+
}
|
|
90
|
+
}, []);
|
|
91
|
+
const onMouseExit = (0, react_1.useCallback)(() => {
|
|
92
|
+
if (propsRef.current.toggleVisibilityOnHover) {
|
|
93
|
+
toggleTextValueLabels(false);
|
|
94
|
+
}
|
|
95
|
+
}, []);
|
|
96
|
+
const onMouseDown = (0, react_1.useCallback)(() => {
|
|
97
|
+
if (!propsRef.current.toggleVisibilityOnHover) {
|
|
98
|
+
toggleTextValueLabels(true);
|
|
99
|
+
const property = (0, LabeledComponent_1.resolveInstrumentProperty)(propsRef.current.instrument, propsRef.current.instrumentProp);
|
|
100
|
+
if (property)
|
|
101
|
+
setValueText(property.text);
|
|
102
|
+
}
|
|
103
|
+
}, []);
|
|
104
|
+
const onMouseUp = (0, react_1.useCallback)(() => {
|
|
105
|
+
if (!propsRef.current.toggleVisibilityOnHover) {
|
|
106
|
+
toggleTextValueLabels(false);
|
|
107
|
+
}
|
|
108
|
+
}, []);
|
|
109
|
+
const onValueChange = (0, react_1.useCallback)(() => {
|
|
110
|
+
const property = (0, LabeledComponent_1.resolveInstrumentProperty)(propsRef.current.instrument, propsRef.current.instrumentProp);
|
|
111
|
+
if (!property)
|
|
112
|
+
return;
|
|
113
|
+
if (propsRef.current.ranges)
|
|
114
|
+
setValueText(formatValueRange(propsRef.current.ranges, property.value));
|
|
115
|
+
else
|
|
116
|
+
setValueText(property.text);
|
|
117
|
+
}, []);
|
|
118
|
+
function formatValueRange(ranges, value) {
|
|
119
|
+
let isRange = false;
|
|
120
|
+
for (let range of ranges) {
|
|
121
|
+
if (range.from !== undefined &&
|
|
122
|
+
range.to !== undefined &&
|
|
123
|
+
value >= range.from &&
|
|
124
|
+
value <= range.to) {
|
|
125
|
+
isRange = true;
|
|
126
|
+
return formatText(range.text, value);
|
|
127
|
+
}
|
|
128
|
+
else if (range.from !== undefined && range.to === undefined && value >= range.from) {
|
|
129
|
+
isRange = true;
|
|
130
|
+
return formatText(range.text, value);
|
|
131
|
+
}
|
|
132
|
+
else if (range.from === undefined && range.to && value <= range.to) {
|
|
133
|
+
isRange = true;
|
|
134
|
+
return formatText(range.text, value);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function formatText(text, value) {
|
|
139
|
+
text = text.replace(/\$value(\((\d+)\))?/g, (match, _, decimalPlaces) => {
|
|
140
|
+
let number = value;
|
|
141
|
+
if (isNaN(number)) {
|
|
142
|
+
return 'Invalid number';
|
|
143
|
+
}
|
|
144
|
+
let formatted;
|
|
145
|
+
if (decimalPlaces !== undefined) {
|
|
146
|
+
formatted = number.toFixed(decimalPlaces);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
formatted = number.toFixed(0);
|
|
150
|
+
}
|
|
151
|
+
return formatted ?? number.toString();
|
|
152
|
+
});
|
|
153
|
+
return text.replace(/\$text_value(\((\d+)\))?/g, (match, _, decimalPlaces) => {
|
|
154
|
+
return ((0, LabeledComponent_1.resolveInstrumentProperty)(propsRef.current.instrument, propsRef.current.instrumentProp)
|
|
155
|
+
?.text ?? '');
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
labelText,
|
|
160
|
+
labelVisible,
|
|
161
|
+
valueText,
|
|
162
|
+
valueVisible,
|
|
163
|
+
setLabelText,
|
|
164
|
+
setValueText,
|
|
165
|
+
onMouseEnter,
|
|
166
|
+
onMouseExit,
|
|
167
|
+
onMouseDown,
|
|
168
|
+
onMouseUp,
|
|
169
|
+
onValueChange,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlTGFiZWxWYWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlL3VzZUxhYmVsVmFsdWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF1RkEsc0NBK0lDO0FBdE9ELGlDQUFpRTtBQUNqRSx5REFLNEI7QUFvQzVCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRDRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxLQUF5QjtJQUNyRCxNQUFNLFFBQVEsR0FBRyxJQUFBLGNBQU0sRUFBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixRQUFRLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUV6QixNQUFNLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUN2RCxNQUFNLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxHQUFHLElBQUEsZ0JBQVEsRUFBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXRGLElBQUEsaUJBQVMsRUFBQyxHQUFHLEVBQUU7UUFDYixNQUFNLFFBQVEsR0FBRyxJQUFBLDRDQUF5QixFQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sV0FBVyxHQUFHLElBQUEsMkNBQXdCLEVBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUV0QixZQUFZLENBQUMsTUFB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
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @gorilla-engine-sdk/ge-labeled-components
|
|
3
|
+
*
|
|
4
|
+
* A library of labeled UI components for Gorilla Engine React audio plugins.
|
|
5
|
+
* Each component combines a control (knob, slider, toggle, etc.) with
|
|
6
|
+
* configurable text and value labels that can show/hide on interaction.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
import { LabeledComboBox, LabeledComboBoxProps } from './components/LabeledComboBox';
|
|
11
|
+
import { LabeledKnob, LabeledKnobProps } from './components/LabeledKnob';
|
|
12
|
+
import { LabeledMeterSlider, LabeledMeterSlidertProps } from './components/LabeledMeterSlider';
|
|
13
|
+
import { LabeledRTToggle, LabeledRTToggleProps } from './components/LabeledRTToggle';
|
|
14
|
+
import { LabeledSlider, LabeledSliderProps } from './components/LabeledSlider';
|
|
15
|
+
import { LabeledToggle, LabeleddToggleProps } from './components/LabeledToggle';
|
|
16
|
+
import { LabeledComponent, LabeledComponentContainerProps, LabeledComponentProps } from './core/LabeledComponent';
|
|
17
|
+
import { useLabelValue } from './core/useLabelValue';
|
|
18
|
+
export { useLabelValue, LabeledComponent, LabeledComponentContainerProps, LabeledComponentProps, LabeledComboBox, LabeledComboBoxProps, LabeledKnob, LabeledKnobProps, LabeledMeterSlider, LabeledMeterSlidertProps, LabeledSlider, LabeledSliderProps, LabeledToggle, LabeleddToggleProps, LabeledRTToggle, LabeledRTToggleProps, };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @gorilla-engine-sdk/ge-labeled-components
|
|
4
|
+
*
|
|
5
|
+
* A library of labeled UI components for Gorilla Engine React audio plugins.
|
|
6
|
+
* Each component combines a control (knob, slider, toggle, etc.) with
|
|
7
|
+
* configurable text and value labels that can show/hide on interaction.
|
|
8
|
+
*
|
|
9
|
+
* @packageDocumentation
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.LabeledRTToggle = exports.LabeledToggle = exports.LabeledSlider = exports.LabeledMeterSlider = exports.LabeledKnob = exports.LabeledComboBox = exports.LabeledComponent = exports.useLabelValue = void 0;
|
|
13
|
+
const LabeledComboBox_1 = require("./components/LabeledComboBox");
|
|
14
|
+
Object.defineProperty(exports, "LabeledComboBox", { enumerable: true, get: function () { return LabeledComboBox_1.LabeledComboBox; } });
|
|
15
|
+
const LabeledKnob_1 = require("./components/LabeledKnob");
|
|
16
|
+
Object.defineProperty(exports, "LabeledKnob", { enumerable: true, get: function () { return LabeledKnob_1.LabeledKnob; } });
|
|
17
|
+
const LabeledMeterSlider_1 = require("./components/LabeledMeterSlider");
|
|
18
|
+
Object.defineProperty(exports, "LabeledMeterSlider", { enumerable: true, get: function () { return LabeledMeterSlider_1.LabeledMeterSlider; } });
|
|
19
|
+
const LabeledRTToggle_1 = require("./components/LabeledRTToggle");
|
|
20
|
+
Object.defineProperty(exports, "LabeledRTToggle", { enumerable: true, get: function () { return LabeledRTToggle_1.LabeledRTToggle; } });
|
|
21
|
+
const LabeledSlider_1 = require("./components/LabeledSlider");
|
|
22
|
+
Object.defineProperty(exports, "LabeledSlider", { enumerable: true, get: function () { return LabeledSlider_1.LabeledSlider; } });
|
|
23
|
+
const LabeledToggle_1 = require("./components/LabeledToggle");
|
|
24
|
+
Object.defineProperty(exports, "LabeledToggle", { enumerable: true, get: function () { return LabeledToggle_1.LabeledToggle; } });
|
|
25
|
+
const LabeledComponent_1 = require("./core/LabeledComponent");
|
|
26
|
+
Object.defineProperty(exports, "LabeledComponent", { enumerable: true, get: function () { return LabeledComponent_1.LabeledComponent; } });
|
|
27
|
+
const useLabelValue_1 = require("./core/useLabelValue");
|
|
28
|
+
Object.defineProperty(exports, "useLabelValue", { enumerable: true, get: function () { return useLabelValue_1.useLabelValue; } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUFFSCxrRUFBcUY7QUFrQm5GLGdHQWxCTyxpQ0FBZSxPQWtCUDtBQWpCakIsMERBQXlFO0FBbUJ2RSw0RkFuQk8seUJBQVcsT0FtQlA7QUFsQmIsd0VBQStGO0FBb0I3RixtR0FwQk8sdUNBQWtCLE9Bb0JQO0FBbkJwQixrRUFBcUY7QUF5Qm5GLGdHQXpCTyxpQ0FBZSxPQXlCUDtBQXhCakIsOERBQStFO0FBb0I3RSw4RkFwQk8sNkJBQWEsT0FvQlA7QUFuQmYsOERBQWdGO0FBcUI5RSw4RkFyQk8sNkJBQWEsT0FxQlA7QUFwQmYsOERBSWlDO0FBSy9CLGlHQVJBLG1DQUFnQixPQVFBO0FBSmxCLHdEQUFxRDtBQUduRCw4RkFITyw2QkFBYSxPQUdQIn0=
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@gorilla-engine-sdk/ge-labeled-components",
|
|
3
|
+
"version": "0.7.0",
|
|
4
|
+
"description": "This package provides components that can be used to create labeled UI elements in Gorilla Engine plugins.",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"README.md",
|
|
10
|
+
"LICENSE.md"
|
|
11
|
+
],
|
|
12
|
+
"scripts": {
|
|
13
|
+
"test": "echo \"No tests specified for ge-labeled-components\"",
|
|
14
|
+
"prepack": "npm run build",
|
|
15
|
+
"start": "tsc -w",
|
|
16
|
+
"build": "npx tsc --declaration",
|
|
17
|
+
"ci:publish": "node ../../scripts/ci-publish.js"
|
|
18
|
+
},
|
|
19
|
+
"author": "UJAM Inc.",
|
|
20
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"@gorilla-engine-sdk/gorilla-engine-react": "^1.6.1",
|
|
23
|
+
"react": "^19.0.0"
|
|
24
|
+
},
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"@gorilla-engine-sdk/gorilla-engine-react": "^1.6.1",
|
|
27
|
+
"@types/gorilla-engine": "^1.1.11",
|
|
28
|
+
"@types/node": "^18.11.9",
|
|
29
|
+
"@types/react": "^19.2.16",
|
|
30
|
+
"@types/react-reconciler": "^0.33.0",
|
|
31
|
+
"react": "^19.0.0",
|
|
32
|
+
"typescript": "^6.0.3"
|
|
33
|
+
},
|
|
34
|
+
"homepage": "https://www.gorilla-engine.com/",
|
|
35
|
+
"keywords": [
|
|
36
|
+
"gorilla-engine",
|
|
37
|
+
"UJAM"
|
|
38
|
+
],
|
|
39
|
+
"publishConfig": {
|
|
40
|
+
"access": "public",
|
|
41
|
+
"registry": "https://registry.npmjs.org/"
|
|
42
|
+
}
|
|
43
|
+
}
|