@digitalmeadow/control-panel 1.0.0 → 1.0.2

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.
Files changed (46) hide show
  1. package/README.md +30 -24
  2. package/dist/ControlPanel.d.ts +56 -0
  3. package/dist/ControlPanel.d.ts.map +1 -0
  4. package/dist/controllers/ArrayController.d.ts +24 -0
  5. package/dist/controllers/ArrayController.d.ts.map +1 -0
  6. package/dist/controllers/BooleanController.d.ts +9 -0
  7. package/dist/controllers/BooleanController.d.ts.map +1 -0
  8. package/dist/controllers/ButtonController.d.ts +9 -0
  9. package/dist/controllers/ButtonController.d.ts.map +1 -0
  10. package/dist/controllers/ColorController.d.ts +9 -0
  11. package/dist/controllers/ColorController.d.ts.map +1 -0
  12. package/dist/controllers/Controller.d.ts +27 -0
  13. package/dist/controllers/Controller.d.ts.map +1 -0
  14. package/dist/controllers/GradientController.d.ts +37 -0
  15. package/dist/controllers/GradientController.d.ts.map +1 -0
  16. package/dist/controllers/NumberController.d.ts +42 -0
  17. package/dist/controllers/NumberController.d.ts.map +1 -0
  18. package/dist/controllers/RadioController.d.ts +12 -0
  19. package/dist/controllers/RadioController.d.ts.map +1 -0
  20. package/dist/controllers/SelectController.d.ts +12 -0
  21. package/dist/controllers/SelectController.d.ts.map +1 -0
  22. package/dist/index.d.ts +13 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/{control-panel.js → index.js} +123 -119
  25. package/dist/index.umd.cjs +1 -0
  26. package/dist/signals/AudioSignals.d.ts +35 -0
  27. package/dist/signals/AudioSignals.d.ts.map +1 -0
  28. package/dist/signals/MidiSignals.d.ts +18 -0
  29. package/dist/signals/MidiSignals.d.ts.map +1 -0
  30. package/dist/signals/SignalHandler.d.ts +41 -0
  31. package/dist/signals/SignalHandler.d.ts.map +1 -0
  32. package/dist/stats.d.ts +11 -0
  33. package/dist/stats.d.ts.map +1 -0
  34. package/dist/utils/color.d.ts +2 -0
  35. package/dist/utils/color.d.ts.map +1 -0
  36. package/dist/utils/dom.d.ts +3 -0
  37. package/dist/utils/dom.d.ts.map +1 -0
  38. package/dist/utils/easings.d.ts +3 -0
  39. package/dist/utils/easings.d.ts.map +1 -0
  40. package/dist/utils/math.d.ts +3 -0
  41. package/dist/utils/math.d.ts.map +1 -0
  42. package/dist/utils/strings.d.ts +2 -0
  43. package/dist/utils/strings.d.ts.map +1 -0
  44. package/package.json +8 -6
  45. package/dist/control-panel.umd.cjs +0 -1
  46. /package/dist/{control-panel.css → index.css} +0 -0
package/README.md CHANGED
@@ -1,6 +1,12 @@
1
- # Control Panel
1
+ # @digitalmeadow/control-panel
2
2
 
3
- GUI control panel for creative coding.
3
+ ControlPanel control panel for creative coding.
4
+
5
+ ## Features
6
+
7
+ - Dependency free
8
+ - Minimal API
9
+ - Audio and MIDI input signals
4
10
 
5
11
  ## Controllers
6
12
 
@@ -16,23 +22,23 @@ GUI control panel for creative coding.
16
22
  ## Usage
17
23
 
18
24
  ```typescript
19
- import { GUI } from "./src/gui";
25
+ import { ControlPanel } from "./src/controlPanel";
20
26
 
21
27
  const state = { number: 50, color: "#3498db", enabled: true };
22
- const gui = new GUI();
28
+ const controlPanel = new ControlPanel();
23
29
 
24
- gui.addNumber(state, "number", { min: 0, max: 100, step: 1 });
25
- gui.addColor(state, "color");
26
- gui.addBoolean(state, "enabled");
27
- gui.addButton("Reset", () => gui.reset());
30
+ controlPanel.addNumber(state, "number", { min: 0, max: 100, step: 1 });
31
+ controlPanel.addColor(state, "color");
32
+ controlPanel.addBoolean(state, "enabled");
33
+ controlPanel.addButton("Reset", () => controlPanel.reset());
28
34
 
29
- gui.saveDefaultPreset();
35
+ controlPanel.saveDefaultPreset();
30
36
  ```
31
37
 
32
38
  ## Folders
33
39
 
34
40
  ```typescript
35
- const folder = gui.addFolder("Settings");
41
+ const folder = controlPanel.addFolder("Settings");
36
42
  folder.addNumber(state, "value", { min: 0, max: 100 });
37
43
 
38
44
  const nested = folder.addFolder("Advanced");
@@ -49,20 +55,20 @@ pnpm build
49
55
  ## API
50
56
 
51
57
  ```typescript
52
- gui.addNumber(object, property, options?)
53
- gui.addSelect(object, property, options?)
54
- gui.addBoolean(object, property, options?)
55
- gui.addButton(label, fn, options?)
56
- gui.addRadio(object, property, options?)
57
- gui.addColor(object, property, options?)
58
- gui.addGradient(object, property, options?)
59
- gui.addArray(object, property, options?)
60
- gui.addFolder(title)
61
-
62
- gui.save()
63
- gui.load(state)
64
- gui.reset()
65
- gui.saveDefaultPreset()
58
+ controlPanel.addNumber(object, property, options?)
59
+ controlPanel.addSelect(object, property, options?)
60
+ controlPanel.addBoolean(object, property, options?)
61
+ controlPanel.addButton(label, fn, options?)
62
+ controlPanel.addRadio(object, property, options?)
63
+ controlPanel.addColor(object, property, options?)
64
+ controlPanel.addGradient(object, property, options?)
65
+ controlPanel.addArray(object, property, options?)
66
+ controlPanel.addFolder(title)
67
+
68
+ controlPanel.save()
69
+ controlPanel.load(state)
70
+ controlPanel.reset()
71
+ controlPanel.saveDefaultPreset()
66
72
  ```
67
73
 
68
74
  ## Options
@@ -0,0 +1,56 @@
1
+ import "./styles.css";
2
+ import { Controller } from "./controllers/Controller";
3
+ import { NumberController, type NumberControllerOptions } from "./controllers/NumberController";
4
+ import { SelectController, type SelectControllerOptions } from "./controllers/SelectController";
5
+ import { ButtonController, type ButtonControllerOptions } from "./controllers/ButtonController";
6
+ import { BooleanController, type BooleanControllerOptions } from "./controllers/BooleanController";
7
+ import { RadioController, type RadioControllerOptions } from "./controllers/RadioController";
8
+ import { ColorController, type ColorControllerOptions } from "./controllers/ColorController";
9
+ import { GradientController, type GradientControllerOptions } from "./controllers/GradientController";
10
+ import { ArrayController, type ArrayControllerOptions } from "./controllers/ArrayController";
11
+ import { Stats } from "./stats";
12
+ export interface ControlPanelOptions {
13
+ title?: string;
14
+ presetsPrefix?: string;
15
+ }
16
+ export interface ControlPanelSectionState {
17
+ controllers: Record<string, any>;
18
+ folders: Record<string, ControlPanelSectionState>;
19
+ }
20
+ export declare abstract class ControlPanelContainer {
21
+ abstract contentElement: HTMLElement;
22
+ controllers: Controller<any>[];
23
+ folders: Folder[];
24
+ addNumber(object: any, property: string, options?: NumberControllerOptions): NumberController;
25
+ addSelect<T>(object: any, property: string, options?: SelectControllerOptions<T>): SelectController<T>;
26
+ addBoolean(object: any, property: string, options?: BooleanControllerOptions): BooleanController;
27
+ addButton(label: string, fn: () => void, options?: ButtonControllerOptions): ButtonController;
28
+ addRadio<T>(object: any, property: string, options?: RadioControllerOptions<T>): RadioController<T>;
29
+ addColor(object: any, property: string, options?: ColorControllerOptions): ColorController;
30
+ addGradient(object: any, property: string, options?: GradientControllerOptions): GradientController;
31
+ addArray(object: any, property: string, options?: ArrayControllerOptions): ArrayController;
32
+ addFolder(title: string): Folder;
33
+ save(): ControlPanelSectionState;
34
+ load(state: ControlPanelSectionState): void;
35
+ reset(): void;
36
+ }
37
+ export declare class Folder extends ControlPanelContainer {
38
+ domElement: HTMLDetailsElement;
39
+ contentElement: HTMLElement;
40
+ summaryElement: HTMLElement;
41
+ title: string;
42
+ constructor(title: string);
43
+ }
44
+ export declare class ControlPanel extends ControlPanelContainer {
45
+ domElement: HTMLDetailsElement;
46
+ summaryElement: HTMLElement;
47
+ contentElement: HTMLElement;
48
+ stats: Stats;
49
+ private presetStoragePrefix;
50
+ constructor(container?: HTMLElement, options?: ControlPanelOptions);
51
+ saveToLocalStorage(key: string): void;
52
+ loadFromLocalStorage(key: string): void;
53
+ saveDefaultPreset(): void;
54
+ destroy(): void;
55
+ }
56
+ //# sourceMappingURL=ControlPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlPanel.d.ts","sourceRoot":"","sources":["../src/ControlPanel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { Controller, type ControllerOptions } from "./Controller";
2
+ export type ArrayItemType = "color" | "number" | "string";
3
+ export interface ArrayControllerOptions extends ControllerOptions {
4
+ itemType?: ArrayItemType;
5
+ }
6
+ export declare class ArrayController extends Controller<string> {
7
+ items: string[];
8
+ itemType: ArrayItemType;
9
+ itemsContainer: HTMLElement;
10
+ private initialOptions;
11
+ constructor(object: any, property: string, options?: ArrayControllerOptions);
12
+ private parseValue;
13
+ private serializeValue;
14
+ private getDefaultItemValue;
15
+ private addItem;
16
+ private updateValue;
17
+ private updateSummary;
18
+ renderItems(): void;
19
+ updateDisplay(): void;
20
+ save(): string[];
21
+ load(data: any): void;
22
+ reset(): void;
23
+ }
24
+ //# sourceMappingURL=ArrayController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrayController.d.ts","sourceRoot":"","sources":["../../src/controllers/ArrayController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,QAAQ,CAAC,EAAE,aAAa,CAAC;CAC1B;AAED,qBAAa,eAAgB,SAAQ,UAAU,CAAC,MAAM,CAAC;IACrD,KAAK,EAAE,MAAM,EAAE,CAAM;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,WAAW,CAAC;IAC5B,OAAO,CAAC,cAAc,CAAyB;gBAG7C,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,sBAA2B;IAyDtC,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAOrB,WAAW;IAgDX,aAAa;IAIb,IAAI,IAAI,MAAM,EAAE;IAIhB,IAAI,CAAC,IAAI,EAAE,GAAG;IAUd,KAAK;CAMN"}
@@ -0,0 +1,9 @@
1
+ import { Controller, type ControllerOptions } from "./Controller";
2
+ export interface BooleanControllerOptions extends ControllerOptions {
3
+ }
4
+ export declare class BooleanController extends Controller<boolean> {
5
+ input: HTMLInputElement;
6
+ constructor(object: any, property: string, options?: BooleanControllerOptions);
7
+ updateDisplay(): void;
8
+ }
9
+ //# sourceMappingURL=BooleanController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BooleanController.d.ts","sourceRoot":"","sources":["../../src/controllers/BooleanController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;CAAG;AAEtE,qBAAa,iBAAkB,SAAQ,UAAU,CAAC,OAAO,CAAC;IACxD,KAAK,EAAE,gBAAgB,CAAC;gBAGtB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,wBAA6B;IAkBxC,aAAa;CAGd"}
@@ -0,0 +1,9 @@
1
+ import { Controller, type ControllerOptions } from "./Controller";
2
+ export interface ButtonControllerOptions extends ControllerOptions {
3
+ }
4
+ export declare class ButtonController extends Controller<() => void> {
5
+ button: HTMLButtonElement;
6
+ constructor(label: string, fn: () => void, options?: ButtonControllerOptions);
7
+ updateDisplay(): void;
8
+ }
9
+ //# sourceMappingURL=ButtonController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonController.d.ts","sourceRoot":"","sources":["../../src/controllers/ButtonController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;CAAG;AAErE,qBAAa,gBAAiB,SAAQ,UAAU,CAAC,MAAM,IAAI,CAAC;IAC1D,MAAM,EAAE,iBAAiB,CAAC;gBAGxB,KAAK,EAAE,MAAM,EACb,EAAE,EAAE,MAAM,IAAI,EACd,OAAO,GAAE,uBAA4B;IAsBvC,aAAa;CACd"}
@@ -0,0 +1,9 @@
1
+ import { Controller, type ControllerOptions } from "./Controller";
2
+ export interface ColorControllerOptions extends ControllerOptions {
3
+ }
4
+ export declare class ColorController extends Controller<string> {
5
+ input: HTMLInputElement;
6
+ constructor(object: any, property: string, options?: ColorControllerOptions);
7
+ updateDisplay(): void;
8
+ }
9
+ //# sourceMappingURL=ColorController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorController.d.ts","sourceRoot":"","sources":["../../src/controllers/ColorController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;CAAG;AAEpE,qBAAa,eAAgB,SAAQ,UAAU,CAAC,MAAM,CAAC;IACrD,KAAK,EAAE,gBAAgB,CAAC;gBAGtB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,sBAA2B;IAoBtC,aAAa;CAGd"}
@@ -0,0 +1,27 @@
1
+ export type ChangeCallback<T> = (value: T) => void;
2
+ export interface ControllerOptions {
3
+ label?: string;
4
+ disabled?: boolean;
5
+ id?: string;
6
+ }
7
+ export declare abstract class Controller<T> {
8
+ static audio: import("..").AudioSignals;
9
+ static midi: import("..").MidiSignals;
10
+ readonly key: string;
11
+ readonly initialValue: T;
12
+ domElement: HTMLElement;
13
+ protected object: any;
14
+ protected property: string;
15
+ protected changeFns: Set<ChangeCallback<T>>;
16
+ constructor(object: any, property: string, options?: ControllerOptions);
17
+ get value(): T;
18
+ setValue(value: T, shouldEmit?: boolean): void;
19
+ save(): any;
20
+ load(data: any): void;
21
+ reset(): void;
22
+ abstract updateDisplay(): void;
23
+ onChange(fn: ChangeCallback<T>): this;
24
+ protected emitChange(value: T): void;
25
+ protected appendWidget(widget: HTMLElement): void;
26
+ }
27
+ //# sourceMappingURL=Controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Controller.d.ts","sourceRoot":"","sources":["../../src/controllers/Controller.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,8BAAsB,UAAU,CAAC,CAAC;IAChC,MAAM,CAAC,KAAK,4BAAgB;IAC5B,MAAM,CAAC,IAAI,2BAAe;IAE1B,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,YAAY,EAAE,CAAC,CAAC;IAChC,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC;IACtB,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAa;gBAE5C,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB;IAoB1E,IAAI,KAAK,IAAI,CAAC,CAEb;IAED,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,UAAU,UAAO;IAQpC,IAAI,IAAI,GAAG;IAIX,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI;IAIrB,KAAK,IAAI,IAAI;IAIb,QAAQ,CAAC,aAAa,IAAI,IAAI;IAE9B,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;IAK9B,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAM7B,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW;CAG3C"}
@@ -0,0 +1,37 @@
1
+ import { Controller, type ControllerOptions } from "./Controller";
2
+ import { type SignalHandlerState } from "../signals/SignalHandler";
3
+ export interface ColorStop {
4
+ color: string;
5
+ position: number;
6
+ }
7
+ export interface GradientControllerOptions extends ControllerOptions {
8
+ stops?: ColorStop[];
9
+ }
10
+ interface GradientControllerState {
11
+ stops: ColorStop[];
12
+ settings: {
13
+ signal: SignalHandlerState;
14
+ };
15
+ }
16
+ export declare class GradientController extends Controller<string> {
17
+ stops: ColorStop[];
18
+ private signalHandler?;
19
+ private pingPongDirection;
20
+ private animationT;
21
+ private manualPosition;
22
+ displayColor: HTMLElement;
23
+ displayText: HTMLElement;
24
+ stopsContainer: HTMLElement;
25
+ private initialOptions;
26
+ constructor(object: any, property: string, options?: GradientControllerOptions);
27
+ sortStops(): void;
28
+ renderStops(): void;
29
+ updateOutput(t?: number): void;
30
+ updateDisplay(): void;
31
+ private applySignal;
32
+ save(): GradientControllerState;
33
+ load(data: any): void;
34
+ reset(): void;
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=GradientController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GradientController.d.ts","sourceRoot":"","sources":["../../src/controllers/GradientController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGlE,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IAClE,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE;QACR,MAAM,EAAE,kBAAkB,CAAC;KAC5B,CAAC;CACH;AAED,qBAAa,kBAAmB,SAAQ,UAAU,CAAC,MAAM,CAAC;IAExD,KAAK,EAAE,SAAS,EAAE,CAAM;IAGxB,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAa;IAGnC,YAAY,EAAE,WAAW,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,EAAE,WAAW,CAAC;IAE5B,OAAO,CAAC,cAAc,CAA4B;gBAGhD,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,yBAA8B;IAiFzC,SAAS;IAIT,WAAW;IAkDX,YAAY,CAAC,CAAC,GAAE,MAA4B;IAoC5C,aAAa;IASb,OAAO,CAAC,WAAW;IAmCnB,IAAI,IAAI,uBAAuB;IAS/B,IAAI,CAAC,IAAI,EAAE,GAAG;IAWd,KAAK;CAUN"}
@@ -0,0 +1,42 @@
1
+ import { Controller, type ControllerOptions } from "./Controller";
2
+ import { type SignalHandlerState } from "../signals/SignalHandler";
3
+ export interface NumberControllerOptions extends ControllerOptions {
4
+ min?: number;
5
+ max?: number;
6
+ step?: number;
7
+ }
8
+ interface NumberControllerState {
9
+ value: number;
10
+ settings: {
11
+ min: number;
12
+ max: number;
13
+ step: string;
14
+ signal: SignalHandlerState;
15
+ };
16
+ }
17
+ export declare class NumberController extends Controller<number> {
18
+ input: HTMLInputElement;
19
+ display: HTMLElement;
20
+ private signalHandler?;
21
+ private pingPongDirection;
22
+ private min;
23
+ private max;
24
+ private initialOptions;
25
+ private minInput;
26
+ private maxInput;
27
+ private stepInput;
28
+ constructor(object: any, property: string, options?: NumberControllerOptions);
29
+ setMin(val: string | number): void;
30
+ setMax(val: string | number): void;
31
+ setStep(val: string | number | undefined): void;
32
+ private applySignal;
33
+ private roundToStep;
34
+ private createSetting;
35
+ updateDisplay(): void;
36
+ save(): NumberControllerState;
37
+ load(data: any): void;
38
+ reset(): void;
39
+ private resetSettings;
40
+ }
41
+ export {};
42
+ //# sourceMappingURL=NumberController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberController.d.ts","sourceRoot":"","sources":["../../src/controllers/NumberController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAElE,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,kBAAkB,CAAC;KAC5B,CAAC;CACH;AAED,qBAAa,gBAAiB,SAAQ,UAAU,CAAC,MAAM,CAAC;IACtD,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,GAAG,CAAe;IAE1B,OAAO,CAAC,cAAc,CAA0B;IAGhD,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,SAAS,CAAoB;gBAGnC,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,uBAA4B;IA6FvC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAa3B,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAa3B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAkBxC,OAAO,CAAC,WAAW;IA6CnB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,aAAa;IA0BrB,aAAa;IAOb,IAAI,IAAI,qBAAqB;IAY7B,IAAI,CAAC,IAAI,EAAE,GAAG;IA6Cd,KAAK;IAKL,OAAO,CAAC,aAAa;CAWtB"}
@@ -0,0 +1,12 @@
1
+ import { Controller, type ControllerOptions } from "./Controller";
2
+ export interface RadioControllerOptions<T> extends ControllerOptions {
3
+ options?: T[];
4
+ }
5
+ export declare class RadioController<T> extends Controller<T> {
6
+ container: HTMLElement;
7
+ buttons: HTMLButtonElement[];
8
+ optionValues: T[];
9
+ constructor(object: any, property: string, options: RadioControllerOptions<T>);
10
+ updateDisplay(): void;
11
+ }
12
+ //# sourceMappingURL=RadioController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioController.d.ts","sourceRoot":"","sources":["../../src/controllers/RadioController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM,WAAW,sBAAsB,CAAC,CAAC,CAAE,SAAQ,iBAAiB;IAClE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;CACf;AAED,qBAAa,eAAe,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACnD,SAAS,EAAE,WAAW,CAAC;IACvB,OAAO,EAAE,iBAAiB,EAAE,CAAM;IAClC,YAAY,EAAE,CAAC,EAAE,CAAM;gBAGrB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAyBpC,aAAa;CAWd"}
@@ -0,0 +1,12 @@
1
+ import { Controller, type ControllerOptions } from "./Controller";
2
+ export interface SelectControllerOptions<T> extends ControllerOptions {
3
+ options?: T[];
4
+ }
5
+ export declare class SelectController<T> extends Controller<T> {
6
+ select: HTMLSelectElement;
7
+ optionValues: T[];
8
+ constructor(object: any, property: string, options: SelectControllerOptions<T>);
9
+ setOptions(options: T[]): void;
10
+ updateDisplay(): void;
11
+ }
12
+ //# sourceMappingURL=SelectController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectController.d.ts","sourceRoot":"","sources":["../../src/controllers/SelectController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGlE,MAAM,WAAW,uBAAuB,CAAC,CAAC,CAAE,SAAQ,iBAAiB;IACnE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;CACf;AAED,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,EAAE,CAAC,EAAE,CAAM;gBAGrB,MAAM,EAAE,GAAG,EACX,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;IA0BrC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE;IAevB,aAAa;CAMd"}
@@ -0,0 +1,13 @@
1
+ export { ControlPanel } from "./ControlPanel";
2
+ export { Controller } from "./controllers/Controller";
3
+ export { NumberController, type NumberControllerOptions, } from "./controllers/NumberController";
4
+ export { SelectController, type SelectControllerOptions, } from "./controllers/SelectController";
5
+ export { BooleanController, type BooleanControllerOptions, } from "./controllers/BooleanController";
6
+ export { ButtonController, type ButtonControllerOptions, } from "./controllers/ButtonController";
7
+ export { RadioController, type RadioControllerOptions, } from "./controllers/RadioController";
8
+ export { ColorController, type ColorControllerOptions, } from "./controllers/ColorController";
9
+ export { GradientController, type GradientControllerOptions, } from "./controllers/GradientController";
10
+ export { ArrayController, type ArrayControllerOptions, } from "./controllers/ArrayController";
11
+ export { AudioSignals, audioSignals } from "./signals/AudioSignals";
12
+ export { MidiSignals, midiSignals } from "./signals/MidiSignals";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,iBAAiB,EACjB,KAAK,wBAAwB,GAC9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,GAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}