blob: 633bfbd02dcee73a1dbf7d5f1d29b1cfc24e1596 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
export type ParamValues = Record<string, number | string | boolean>;
export type ParamGroup = "stroke";
interface BaseParamDefinition<TKey extends string = string> {
key: TKey;
label: string;
group?: ParamGroup;
}
export interface NumberParamDefinition<TKey extends string = string>
extends BaseParamDefinition<TKey> {
type: "number";
default: number;
min: number;
max?: number;
step: number;
/** When set, min/max/step are in display space. display = stored * displayMultiplier. */
displayMultiplier?: number;
/** Show as percentage of max. min/max/step/default stay in stored space. */
unit?: "percent";
/** Short label shown as the scrub handle icon in the number field (e.g. "W", "R"). */
shortLabel?: string;
}
export interface BooleanParamDefinition<TKey extends string = string>
extends BaseParamDefinition<TKey> {
type: "boolean";
default: boolean;
}
export interface ColorParamDefinition<TKey extends string = string>
extends BaseParamDefinition<TKey> {
type: "color";
default: string;
}
export interface SelectParamDefinition<TKey extends string = string>
extends BaseParamDefinition<TKey> {
type: "select";
default: string;
options: Array<{ value: string; label: string }>;
}
export type ParamDefinition<TKey extends string = string> =
| NumberParamDefinition<TKey>
| BooleanParamDefinition<TKey>
| ColorParamDefinition<TKey>
| SelectParamDefinition<TKey>;
|