@vessel-dsp/control-ui 0.6.4 → 0.6.6

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 (75) hide show
  1. package/dist/ControlSurface.d.ts +2 -2
  2. package/dist/ControlSurface.d.ts.map +1 -1
  3. package/dist/ControlSurface.js +62 -31
  4. package/dist/ControlSurface.js.map +1 -1
  5. package/dist/appearance.d.ts +1 -1
  6. package/dist/appearance.d.ts.map +1 -1
  7. package/dist/appearance.js +20 -14
  8. package/dist/appearance.js.map +1 -1
  9. package/dist/components/ConcentricKnob.d.ts +22 -0
  10. package/dist/components/ConcentricKnob.d.ts.map +1 -0
  11. package/dist/components/ConcentricKnob.js +15 -0
  12. package/dist/components/ConcentricKnob.js.map +1 -0
  13. package/dist/components/ControlFrame.d.ts +3 -3
  14. package/dist/components/ControlFrame.d.ts.map +1 -1
  15. package/dist/components/ControlFrame.js +3 -3
  16. package/dist/components/ControlFrame.js.map +1 -1
  17. package/dist/components/DetentedRotarySelect.d.ts +2 -2
  18. package/dist/components/DetentedRotarySelect.d.ts.map +1 -1
  19. package/dist/components/DetentedRotarySelect.js +6 -6
  20. package/dist/components/DetentedRotarySelect.js.map +1 -1
  21. package/dist/components/FootswitchButton.d.ts +2 -2
  22. package/dist/components/FootswitchButton.d.ts.map +1 -1
  23. package/dist/components/FootswitchButton.js +7 -7
  24. package/dist/components/FootswitchButton.js.map +1 -1
  25. package/dist/components/JackIndicator.d.ts +15 -0
  26. package/dist/components/JackIndicator.d.ts.map +1 -0
  27. package/dist/components/JackIndicator.js +11 -0
  28. package/dist/components/JackIndicator.js.map +1 -0
  29. package/dist/components/KnobControl.d.ts +2 -2
  30. package/dist/components/KnobControl.d.ts.map +1 -1
  31. package/dist/components/KnobControl.js +42 -31
  32. package/dist/components/KnobControl.js.map +1 -1
  33. package/dist/components/LedIndicator.d.ts +2 -2
  34. package/dist/components/LedIndicator.d.ts.map +1 -1
  35. package/dist/components/LedIndicator.js +4 -4
  36. package/dist/components/LedIndicator.js.map +1 -1
  37. package/dist/components/SwitchSelectControl.d.ts +2 -2
  38. package/dist/components/SwitchSelectControl.d.ts.map +1 -1
  39. package/dist/components/SwitchSelectControl.js +3 -3
  40. package/dist/components/SwitchSelectControl.js.map +1 -1
  41. package/dist/components/ToggleSwitchControl.d.ts +2 -2
  42. package/dist/components/ToggleSwitchControl.d.ts.map +1 -1
  43. package/dist/components/ToggleSwitchControl.js +3 -3
  44. package/dist/components/ToggleSwitchControl.js.map +1 -1
  45. package/dist/controls.d.ts +2 -2
  46. package/dist/controls.d.ts.map +1 -1
  47. package/dist/controls.js +55 -37
  48. package/dist/controls.js.map +1 -1
  49. package/dist/index.d.ts +32 -28
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +17 -15
  52. package/dist/index.js.map +1 -1
  53. package/dist/render-plan.d.ts +2 -2
  54. package/dist/render-plan.d.ts.map +1 -1
  55. package/dist/render-plan.js +67 -10
  56. package/dist/render-plan.js.map +1 -1
  57. package/dist/state.d.ts +1 -1
  58. package/dist/state.d.ts.map +1 -1
  59. package/dist/state.js +7 -4
  60. package/dist/state.js.map +1 -1
  61. package/dist/styles.css +250 -203
  62. package/dist/theme.d.ts +3 -3
  63. package/dist/theme.d.ts.map +1 -1
  64. package/dist/theme.js +21 -11
  65. package/dist/theme.js.map +1 -1
  66. package/dist/types.d.ts +15 -6
  67. package/dist/types.d.ts.map +1 -1
  68. package/dist/useControlState.d.ts +1 -1
  69. package/dist/useControlState.d.ts.map +1 -1
  70. package/dist/useControlState.js +2 -2
  71. package/dist/useControlState.js.map +1 -1
  72. package/dist/utils.d.ts.map +1 -1
  73. package/dist/utils.js +3 -1
  74. package/dist/utils.js.map +1 -1
  75. package/package.json +70 -70
@@ -1,5 +1,5 @@
1
- import type { ControlState, Panel, PanelMessage } from '@vessel-dsp/core';
2
- import type { ControlAppearanceMap, ControlSurfaceClassNames } from './types';
1
+ import type { ControlState, Panel, PanelMessage } from "@vessel-dsp/core";
2
+ import type { ControlAppearanceMap, ControlSurfaceClassNames } from "./types";
3
3
  export type ControlSurfaceProps = Readonly<{
4
4
  panel: Panel;
5
5
  state: ControlState;
@@ -1 +1 @@
1
- {"version":3,"file":"ControlSurface.d.ts","sourceRoot":"","sources":["../src/ControlSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAgB,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIxF,OAAO,KAAK,EAAE,oBAAoB,EAA0B,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAUtG,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACvC,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACtF,CAAC,CAAC;AAEH,wBAAgB,cAAc,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,QAAgB,EAChB,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,aAAa,GAChB,EAAE,mBAAmB,+BA+BrB"}
1
+ {"version":3,"file":"ControlSurface.d.ts","sourceRoot":"","sources":["../src/ControlSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,YAAY,EAEZ,KAAK,EACL,YAAY,EACZ,MAAM,kBAAkB,CAAC;AAO1B,OAAO,KAAK,EACX,oBAAoB,EAEpB,wBAAwB,EACxB,MAAM,SAAS,CAAC;AAYjB,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAC1C,KAAK,EAAE,KAAK,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,aAAa,CAAC,EACX,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC,GACtD,SAAS,CAAC;CACb,CAAC,CAAC;AAEH,wBAAgB,cAAc,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,QAAgB,EAChB,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,aAAa,GACb,EAAE,mBAAmB,+BA6CrB"}
@@ -1,15 +1,17 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { controlValueForId } from './controls.js';
3
- import { createControlSurfaceRenderPlan } from './render-plan.js';
4
- import { applyControlUiMessage, controlMessageForValue } from './state.js';
5
- import { cx } from './utils.js';
6
- import { DetentedRotarySelect } from './components/DetentedRotarySelect.js';
7
- import { FootswitchButton } from './components/FootswitchButton.js';
8
- import { GraphicEqSlider } from './components/GraphicEqSlider.js';
9
- import { KnobControl } from './components/KnobControl.js';
10
- import { LedIndicator } from './components/LedIndicator.js';
11
- import { SwitchSelectControl } from './components/SwitchSelectControl.js';
12
- import { ToggleSwitchControl } from './components/ToggleSwitchControl.js';
2
+ import { controlValueForId } from "./controls.js";
3
+ import { createControlSurfaceRenderPlan, } from "./render-plan.js";
4
+ import { applyControlUiMessage, controlMessageForValue } from "./state.js";
5
+ import { cx } from "./utils.js";
6
+ import { ConcentricKnob } from "./components/ConcentricKnob.js";
7
+ import { DetentedRotarySelect } from "./components/DetentedRotarySelect.js";
8
+ import { FootswitchButton } from "./components/FootswitchButton.js";
9
+ import { GraphicEqSlider } from "./components/GraphicEqSlider.js";
10
+ import { JackIndicator } from "./components/JackIndicator.js";
11
+ import { KnobControl } from "./components/KnobControl.js";
12
+ import { LedIndicator } from "./components/LedIndicator.js";
13
+ import { SwitchSelectControl } from "./components/SwitchSelectControl.js";
14
+ import { ToggleSwitchControl } from "./components/ToggleSwitchControl.js";
13
15
  export function ControlSurface({ panel, state, disabled = false, appearance, className, classNames, onMessage, onStateChange, }) {
14
16
  const plan = createControlSurfaceRenderPlan(panel, { appearance });
15
17
  function emitControlValue(controlId, value) {
@@ -22,31 +24,56 @@ export function ControlSurface({ panel, state, disabled = false, appearance, cla
22
24
  onStateChange(applyControlUiMessage(panel, state, message), message);
23
25
  }
24
26
  }
25
- return (_jsx("div", { className: cx('vdsp-control-ui-surface', disabled && 'is-disabled', classNames?.root, className), "data-vdsp-control-surface": true, children: plan.map((item) => (_jsx("div", { className: cx('vdsp-control-ui-surface__item', classNames?.item), "data-vdsp-control-item": item.controlId, "data-vdsp-face-id": item.faceId, children: renderControlItem(item, state, disabled, classNames, emitControlValue) }, item.id))) }));
27
+ return (_jsx("div", { className: cx("vdsp-control-ui-surface", disabled && "is-disabled", classNames?.root, className), "data-vdsp-control-surface": true, children: plan.map((item) => (_jsx("div", { className: cx("vdsp-control-ui-surface__item", classNames?.item), "data-vdsp-control-item": item.controlId, "data-vdsp-face-id": item.faceId, children: renderControlItem(item, state, disabled, classNames, emitControlValue) }, item.id))) }));
26
28
  }
27
29
  function renderControlItem(item, state, disabled, classNames, emitControlValue) {
28
30
  const value = controlValueForId(state, item.controlId);
29
31
  const frameClassNames = frameClassNamesFor(item, classNames);
30
- if (item.control.kind === 'knob') {
31
- if (item.appearance === 'detented-rotary-select') {
32
- return (_jsx(DetentedRotarySelect, { control: item.control.control, position: value?.kind === 'knob' ? value.position : item.control.control.defaultPosition, disabled: disabled, label: item.label, classNames: frameClassNames, onPositionChange: (position) => emitControlValue(item.controlId, position) }));
32
+ if (item.control.kind === "knob") {
33
+ if (item.appearance === "detented-rotary-select") {
34
+ return (_jsx(DetentedRotarySelect, { control: item.control.control, position: value?.kind === "knob"
35
+ ? value.position
36
+ : item.control.control.defaultPosition, disabled: disabled, label: item.label, classNames: frameClassNames, onPositionChange: (position) => emitControlValue(item.controlId, position) }));
33
37
  }
34
- return (_jsx(KnobControl, { control: item.control.control, position: value?.kind === 'knob' ? value.position : item.control.control.defaultPosition, disabled: disabled, label: item.label, classNames: frameClassNames, onPositionChange: (position) => emitControlValue(item.controlId, position) }));
38
+ return (_jsx(KnobControl, { control: item.control.control, position: value?.kind === "knob"
39
+ ? value.position
40
+ : item.control.control.defaultPosition, disabled: disabled, label: item.label, classNames: frameClassNames, onPositionChange: (position) => emitControlValue(item.controlId, position) }));
35
41
  }
36
- if (item.control.kind === 'slider') {
37
- return (_jsx(GraphicEqSlider, { control: item.control.control, position: value?.kind === 'slider' ? value.position : item.control.control.defaultPosition, disabled: disabled, label: item.label, classNames: frameClassNames, onPositionChange: (position) => emitControlValue(item.controlId, position) }));
42
+ if (item.control.kind === "slider") {
43
+ return (_jsx(GraphicEqSlider, { control: item.control.control, position: value?.kind === "slider"
44
+ ? value.position
45
+ : item.control.control.defaultPosition, disabled: disabled, label: item.label, classNames: frameClassNames, onPositionChange: (position) => emitControlValue(item.controlId, position) }));
38
46
  }
39
- if (item.control.kind === 'switch') {
40
- const position = value?.kind === 'switch' ? value.position : item.control.control.defaultPosition;
41
- if (item.appearance === 'footswitch') {
47
+ if (item.control.kind === "switch") {
48
+ const position = value?.kind === "switch"
49
+ ? value.position
50
+ : item.control.control.defaultPosition;
51
+ if (item.appearance === "footswitch") {
42
52
  return (_jsx(FootswitchButton, { control: item.control.control, pressed: position > 0, disabled: disabled, label: item.label, classNames: frameClassNames, onPressedChange: (pressed) => emitControlValue(item.controlId, pressed ? 1 : 0) }));
43
53
  }
44
- if (item.appearance === 'toggle') {
54
+ if (item.appearance === "toggle") {
45
55
  return (_jsx(ToggleSwitchControl, { control: item.control.control, position: position, disabled: disabled, label: item.label, classNames: frameClassNames, onPositionChange: (nextPosition) => emitControlValue(item.controlId, nextPosition) }));
46
56
  }
47
57
  return (_jsx(SwitchSelectControl, { control: item.control.control, position: position, disabled: disabled, label: item.label, classNames: frameClassNames, onPositionChange: (nextPosition) => emitControlValue(item.controlId, nextPosition) }));
48
58
  }
49
- return (_jsx(LedIndicator, { control: item.control.control, value: value?.kind === 'led' ? value : { kind: 'led', on: false }, disabled: disabled, label: item.label, classNames: frameClassNames }));
59
+ if (item.control.kind === "concentric-knob") {
60
+ const tiers = item.control.tiers.map((knob) => {
61
+ const tierValue = controlValueForId(state, knob.id);
62
+ return {
63
+ control: knob,
64
+ position: tierValue?.kind === "knob"
65
+ ? tierValue.position
66
+ : knob.defaultPosition,
67
+ label: knob.name,
68
+ onPositionChange: (position) => emitControlValue(knob.id, position),
69
+ };
70
+ });
71
+ return (_jsx(ConcentricKnob, { tiers: tiers, disabled: disabled, classNames: frameClassNames }));
72
+ }
73
+ if (item.control.kind === "jack") {
74
+ return (_jsx(JackIndicator, { control: item.control.control, disabled: disabled, label: item.label, classNames: frameClassNames }));
75
+ }
76
+ return (_jsx(LedIndicator, { control: item.control.control, value: value?.kind === "led" ? value : { kind: "led", on: false }, disabled: disabled, label: item.label, classNames: frameClassNames }));
50
77
  }
51
78
  function frameClassNamesFor(item, classNames) {
52
79
  if (classNames === undefined) {
@@ -61,20 +88,24 @@ function frameClassNamesFor(item, classNames) {
61
88
  }
62
89
  function controlSpecificClassName(item, classNames) {
63
90
  switch (item.appearance) {
64
- case 'knob':
91
+ case "knob":
65
92
  return classNames.knob;
66
- case 'detented-rotary-select':
93
+ case "detented-rotary-select":
67
94
  return classNames.select;
68
- case 'footswitch':
95
+ case "concentric-knob":
96
+ return cx(classNames.knob, classNames.concentric);
97
+ case "footswitch":
69
98
  return classNames.footswitch;
70
- case 'toggle':
99
+ case "toggle":
71
100
  return classNames.toggle;
72
- case 'graphic-eq-slider':
73
- case 'slider':
101
+ case "graphic-eq-slider":
102
+ case "slider":
74
103
  return classNames.slider;
75
- case 'led':
104
+ case "led":
76
105
  return classNames.led;
77
- case 'hidden':
106
+ case "jack":
107
+ return classNames.jack;
108
+ case "hidden":
78
109
  return undefined;
79
110
  }
80
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ControlSurface.js","sourceRoot":"","sources":["../src/ControlSurface.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ControlSurface.js","sourceRoot":"","sources":["../src/ControlSurface.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { ControlAppearance, ControlUiControlRef } from './types';
1
+ import type { ControlAppearance, ControlUiControlRef } from "./types";
2
2
  export declare function resolveControlAppearance(control: ControlUiControlRef, override?: ControlAppearance): ControlAppearance;
3
3
  //# sourceMappingURL=appearance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"appearance.d.ts","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEtE,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,iBAAiB,CA0BnB"}
1
+ {"version":3,"file":"appearance.d.ts","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEtE,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,iBAAiB,GAC1B,iBAAiB,CAgCnB"}
@@ -3,23 +3,29 @@ export function resolveControlAppearance(control, override) {
3
3
  return override;
4
4
  }
5
5
  switch (control.kind) {
6
- case 'knob':
7
- return (control.control.steps?.length ?? 0) > 0 ? 'detented-rotary-select' : 'knob';
8
- case 'slider':
9
- return 'graphic-eq-slider';
10
- case 'switch':
11
- if (control.control.switchKind === '3pdt') {
12
- return 'footswitch';
6
+ case "knob":
7
+ return (control.control.steps?.length ?? 0) > 0
8
+ ? "detented-rotary-select"
9
+ : "knob";
10
+ case "slider":
11
+ return "graphic-eq-slider";
12
+ case "switch":
13
+ if (control.control.switchKind === "3pdt") {
14
+ return "footswitch";
13
15
  }
14
16
  if (control.control.positions === 2 &&
15
- (control.control.switchKind === 'spdt' ||
16
- control.control.switchKind === 'spst' ||
17
- control.control.switchKind === 'toggle')) {
18
- return 'toggle';
17
+ (control.control.switchKind === "spdt" ||
18
+ control.control.switchKind === "spst" ||
19
+ control.control.switchKind === "toggle")) {
20
+ return "toggle";
19
21
  }
20
- return 'detented-rotary-select';
21
- case 'led':
22
- return 'led';
22
+ return "detented-rotary-select";
23
+ case "led":
24
+ return "led";
25
+ case "jack":
26
+ return "jack";
27
+ case "concentric-knob":
28
+ return "concentric-knob";
23
29
  }
24
30
  }
25
31
  //# sourceMappingURL=appearance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"appearance.js","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,wBAAwB,CACpC,OAA4B,EAC5B,QAA4B;IAE5B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,MAAM;YACP,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,MAAM,CAAC;QACxF,KAAK,QAAQ;YACT,OAAO,mBAAmB,CAAC;QAC/B,KAAK,QAAQ;YACT,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;gBACxC,OAAO,YAAY,CAAC;YACxB,CAAC;YACD,IACI,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,CAAC;gBAC/B,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM;oBAClC,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM;oBACrC,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,EAC9C,CAAC;gBACC,OAAO,QAAQ,CAAC;YACpB,CAAC;YACD,OAAO,wBAAwB,CAAC;QACpC,KAAK,KAAK;YACN,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"appearance.js","sourceRoot":"","sources":["../src/appearance.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,wBAAwB,CACvC,OAA4B,EAC5B,QAA4B;IAE5B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM;YACV,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;gBAC9C,CAAC,CAAC,wBAAwB;gBAC1B,CAAC,CAAC,MAAM,CAAC;QACX,KAAK,QAAQ;YACZ,OAAO,mBAAmB,CAAC;QAC5B,KAAK,QAAQ;YACZ,IAAI,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;gBAC3C,OAAO,YAAY,CAAC;YACrB,CAAC;YACD,IACC,OAAO,CAAC,OAAO,CAAC,SAAS,KAAK,CAAC;gBAC/B,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM;oBACrC,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,MAAM;oBACrC,OAAO,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,EACxC,CAAC;gBACF,OAAO,QAAQ,CAAC;YACjB,CAAC;YACD,OAAO,wBAAwB,CAAC;QACjC,KAAK,KAAK;YACT,OAAO,KAAK,CAAC;QACd,KAAK,MAAM;YACV,OAAO,MAAM,CAAC;QACf,KAAK,iBAAiB;YACrB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;AACF,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { Knob } from "@vessel-dsp/core";
2
+ import type { ControlFrameClassNames } from "../types";
3
+ export type ConcentricKnobTier = Readonly<{
4
+ control: Knob;
5
+ position: number;
6
+ label?: string;
7
+ onPositionChange?: ((position: number) => void) | undefined;
8
+ }>;
9
+ export type ConcentricKnobProps = Readonly<{
10
+ tiers: readonly ConcentricKnobTier[];
11
+ disabled?: boolean;
12
+ className?: string | undefined;
13
+ classNames?: ControlFrameClassNames | undefined;
14
+ }>;
15
+ /**
16
+ * A stacked concentric potentiometer with N independent dials sharing one
17
+ * shaft. Each dial is a full {@link KnobControl} wired to its own tier control,
18
+ * so every section emits and snaps independently. Tiers are ordered bottom to
19
+ * top; rendered bottom (largest) first.
20
+ */
21
+ export declare function ConcentricKnob({ tiers, disabled, className, classNames, }: ConcentricKnobProps): import("react").JSX.Element;
22
+ //# sourceMappingURL=ConcentricKnob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcentricKnob.d.ts","sourceRoot":"","sources":["../../src/components/ConcentricKnob.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAIvD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACzC,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5D,CAAC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IAC1C,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;CAChD,CAAC,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC9B,KAAK,EACL,QAAgB,EAChB,SAAS,EACT,UAAU,GACV,EAAE,mBAAmB,+BA8BrB"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cx } from "../utils.js";
3
+ import { KnobControl } from "./KnobControl.js";
4
+ /**
5
+ * A stacked concentric potentiometer with N independent dials sharing one
6
+ * shaft. Each dial is a full {@link KnobControl} wired to its own tier control,
7
+ * so every section emits and snaps independently. Tiers are ordered bottom to
8
+ * top; rendered bottom (largest) first.
9
+ */
10
+ export function ConcentricKnob({ tiers, disabled = false, className, classNames, }) {
11
+ return (_jsx("div", { className: cx("vdsp-control-ui-concentric", className, classNames?.control), "data-vdsp-concentric": true, "data-vdsp-concentric-tiers": tiers.length, children: tiers.map((tier, index) => (_jsx(KnobControl, { control: tier.control, position: tier.position, disabled: disabled, label: tier.label ?? tier.control.name, className: cx("vdsp-control-ui-concentric__tier", index === 0
12
+ ? "vdsp-control-ui-concentric__base"
13
+ : "vdsp-control-ui-concentric__stacked"), classNames: classNames, onPositionChange: tier.onPositionChange }, tier.control.id))) }));
14
+ }
15
+ //# sourceMappingURL=ConcentricKnob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcentricKnob.js","sourceRoot":"","sources":["../../src/components/ConcentricKnob.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAgB5C;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,EAC9B,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,UAAU,GACW;IACrB,OAAO,CACN,cACC,SAAS,EAAE,EAAE,CACZ,4BAA4B,EAC5B,SAAS,EACT,UAAU,EAAE,OAAO,CACnB,0BACqB,IAAI,gCACE,KAAK,CAAC,MAAM,YAEvC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC3B,KAAC,WAAW,IAEX,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EACtC,SAAS,EAAE,EAAE,CACZ,kCAAkC,EAClC,KAAK,KAAK,CAAC;gBACV,CAAC,CAAC,kCAAkC;gBACpC,CAAC,CAAC,qCAAqC,CACxC,EACD,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAZlC,IAAI,CAAC,OAAO,CAAC,EAAE,CAanB,CACF,CAAC,GACG,CACN,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { ReactNode } from 'react';
2
- import type { ControlFrameClassNames } from '../types';
1
+ import type { ReactNode } from "react";
2
+ import type { ControlFrameClassNames } from "../types";
3
3
  export type ControlFrameProps = Readonly<{
4
4
  label?: ReactNode;
5
5
  readout?: ReactNode;
@@ -8,5 +8,5 @@ export type ControlFrameProps = Readonly<{
8
8
  classNames?: ControlFrameClassNames | undefined;
9
9
  children?: ReactNode;
10
10
  }>;
11
- export declare function ControlFrame({ label, readout, disabled, className, classNames, children }: ControlFrameProps): import("react").JSX.Element;
11
+ export declare function ControlFrame({ label, readout, disabled, className, classNames, children, }: ControlFrameProps): import("react").JSX.Element;
12
12
  //# sourceMappingURL=ControlFrame.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlFrame.d.ts","sourceRoot":"","sources":["../../src/components/ControlFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACrC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC,CAAC;AAEH,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAgB,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,iBAAiB,+BAYpH"}
1
+ {"version":3,"file":"ControlFrame.d.ts","sourceRoot":"","sources":["../../src/components/ControlFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAGvD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACxC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB,CAAC,CAAC;AAEH,wBAAgB,YAAY,CAAC,EAC5B,KAAK,EACL,OAAO,EACP,QAAgB,EAChB,SAAS,EACT,UAAU,EACV,QAAQ,GACR,EAAE,iBAAiB,+BAuBnB"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { cx } from '../utils.js';
3
- export function ControlFrame({ label, readout, disabled = false, className, classNames, children }) {
4
- return (_jsxs("div", { className: cx('vdsp-control-ui-frame', disabled && 'is-disabled', classNames?.frame, className), children: [label === undefined ? null : (_jsx("span", { className: cx('vdsp-control-ui-label', classNames?.label), children: label })), children, readout === undefined ? null : (_jsx("span", { className: cx('vdsp-control-ui-readout', classNames?.readout), children: readout }))] }));
2
+ import { cx } from "../utils.js";
3
+ export function ControlFrame({ label, readout, disabled = false, className, classNames, children, }) {
4
+ return (_jsxs("div", { className: cx("vdsp-control-ui-frame", disabled && "is-disabled", classNames?.frame, className), children: [label === undefined ? null : (_jsx("span", { className: cx("vdsp-control-ui-label", classNames?.label), children: label })), children, readout === undefined ? null : (_jsx("span", { className: cx("vdsp-control-ui-readout", classNames?.readout), children: readout }))] }));
5
5
  }
6
6
  //# sourceMappingURL=ControlFrame.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ControlFrame.js","sourceRoot":"","sources":["../../src/components/ControlFrame.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAW9B,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,GAAG,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAqB;IACjH,OAAO,CACH,eAAK,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,QAAQ,IAAI,aAAa,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,aAC/F,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1B,eAAM,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,UAAU,EAAE,KAAK,CAAC,YAAG,KAAK,GAAQ,CAClF,EACA,QAAQ,EACR,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5B,eAAM,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,UAAU,EAAE,OAAO,CAAC,YAAG,OAAO,GAAQ,CACxF,IACC,CACT,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"ControlFrame.js","sourceRoot":"","sources":["../../src/components/ControlFrame.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAW9B,MAAM,UAAU,YAAY,CAAC,EAC5B,KAAK,EACL,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,UAAU,EACV,QAAQ,GACW;IACnB,OAAO,CACN,eACC,SAAS,EAAE,EAAE,CACZ,uBAAuB,EACvB,QAAQ,IAAI,aAAa,EACzB,UAAU,EAAE,KAAK,EACjB,SAAS,CACT,aAEA,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7B,eAAM,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,UAAU,EAAE,KAAK,CAAC,YAC7D,KAAK,GACA,CACP,EACA,QAAQ,EACR,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC/B,eAAM,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,UAAU,EAAE,OAAO,CAAC,YACjE,OAAO,GACF,CACP,IACI,CACN,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { Knob } from '@vessel-dsp/core';
2
- import type { ControlFrameClassNames } from '../types';
1
+ import type { Knob } from "@vessel-dsp/core";
2
+ import type { ControlFrameClassNames } from "../types";
3
3
  export type DetentedRotarySelectProps = Readonly<{
4
4
  control: Knob;
5
5
  position: number;
@@ -1 +1 @@
1
- {"version":3,"file":"DetentedRotarySelect.d.ts","sourceRoot":"","sources":["../../src/components/DetentedRotarySelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAIvD,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAC7C,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC/D,CAAC,CAAC;AAEH,wBAAgB,oBAAoB,CAAC,EACjC,OAAO,EACP,QAAQ,EACR,QAAgB,EAChB,KAAoB,EACpB,SAAS,EACT,UAAU,EACV,gBAAgB,GACnB,EAAE,yBAAyB,+BAyB3B"}
1
+ {"version":3,"file":"DetentedRotarySelect.d.ts","sourceRoot":"","sources":["../../src/components/DetentedRotarySelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAIvD,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAChD,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5D,CAAC,CAAC;AAEH,wBAAgB,oBAAoB,CAAC,EACpC,OAAO,EACP,QAAQ,EACR,QAAgB,EAChB,KAAoB,EACpB,SAAS,EACT,UAAU,EACV,gBAAgB,GAChB,EAAE,yBAAyB,+BAoC3B"}
@@ -1,13 +1,13 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { nearestKnobStep } from '@vessel-dsp/core';
3
- import { cx } from '../utils.js';
4
- import { ControlFrame } from './ControlFrame.js';
2
+ import { nearestKnobStep } from "@vessel-dsp/core";
3
+ import { cx } from "../utils.js";
4
+ import { ControlFrame } from "./ControlFrame.js";
5
5
  export function DetentedRotarySelect({ control, position, disabled = false, label = control.name, className, classNames, onPositionChange, }) {
6
6
  const steps = control.steps ?? [
7
- { index: 0, position: 0, label: 'Position 1' },
8
- { index: 1, position: 1, label: 'Position 2' },
7
+ { index: 0, position: 0, label: "Position 1" },
8
+ { index: 1, position: 1, label: "Position 2" },
9
9
  ];
10
10
  const selected = nearestKnobStep(steps, position)?.position ?? position;
11
- return (_jsx(ControlFrame, { label: label, disabled: disabled, className: className, classNames: classNames, children: _jsx("select", { className: cx('vdsp-control-ui-control', 'vdsp-control-ui-select', classNames?.control), value: String(selected), "aria-label": control.name, disabled: disabled, "data-vdsp-control-id": control.id, onChange: (event) => onPositionChange?.(Number(event.currentTarget.value)), children: steps.map((step) => (_jsx("option", { value: String(step.position), children: step.label ?? `Position ${step.index + 1}` }, step.index))) }) }));
11
+ return (_jsx(ControlFrame, { label: label, disabled: disabled, className: className, classNames: classNames, children: _jsx("select", { className: cx("vdsp-control-ui-control", "vdsp-control-ui-select", classNames?.control), value: String(selected), "aria-label": control.name, disabled: disabled, "data-vdsp-control-id": control.id, onChange: (event) => onPositionChange?.(Number(event.currentTarget.value)), children: steps.map((step) => (_jsx("option", { value: String(step.position), children: step.label ?? `Position ${step.index + 1}` }, step.index))) }) }));
12
12
  }
13
13
  //# sourceMappingURL=DetentedRotarySelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DetentedRotarySelect.js","sourceRoot":"","sources":["../../src/components/DetentedRotarySelect.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAY9C,MAAM,UAAU,oBAAoB,CAAC,EACjC,OAAO,EACP,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,OAAO,CAAC,IAAI,EACpB,SAAS,EACT,UAAU,EACV,gBAAgB,GACQ;IACxB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI;QAC3B,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;QAC9C,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;KACjD,CAAC;IACF,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,IAAI,QAAQ,CAAC;IAExE,OAAO,CACH,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,YACxF,iBACI,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,wBAAwB,EAAE,UAAU,EAAE,OAAO,CAAC,EACvF,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,gBACX,OAAO,CAAC,IAAI,EACxB,QAAQ,EAAE,QAAQ,0BACI,OAAO,CAAC,EAAE,EAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,YAEzE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjB,iBAAyB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YAChD,IAAI,CAAC,KAAK,IAAI,YAAY,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IADlC,IAAI,CAAC,KAAK,CAEd,CACZ,CAAC,GACG,GACE,CAClB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"DetentedRotarySelect.js","sourceRoot":"","sources":["../../src/components/DetentedRotarySelect.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAY9C,MAAM,UAAU,oBAAoB,CAAC,EACpC,OAAO,EACP,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,OAAO,CAAC,IAAI,EACpB,SAAS,EACT,UAAU,EACV,gBAAgB,GACW;IAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI;QAC9B,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;QAC9C,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE;KAC9C,CAAC;IACF,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,IAAI,QAAQ,CAAC;IAExE,OAAO,CACN,KAAC,YAAY,IACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,YAEtB,iBACC,SAAS,EAAE,EAAE,CACZ,yBAAyB,EACzB,wBAAwB,EACxB,UAAU,EAAE,OAAO,CACnB,EACD,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,gBACX,OAAO,CAAC,IAAI,EACxB,QAAQ,EAAE,QAAQ,0BACI,OAAO,CAAC,EAAE,EAChC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,gBAAgB,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,YAGrD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACpB,iBAAyB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,YACnD,IAAI,CAAC,KAAK,IAAI,YAAY,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAD/B,IAAI,CAAC,KAAK,CAEd,CACT,CAAC,GACM,GACK,CACf,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { SwitchControl } from '@vessel-dsp/core';
2
- import type { ControlFrameClassNames } from '../types';
1
+ import type { SwitchControl } from "@vessel-dsp/core";
2
+ import type { ControlFrameClassNames } from "../types";
3
3
  export type FootswitchButtonProps = Readonly<{
4
4
  control?: SwitchControl;
5
5
  label?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"FootswitchButton.d.ts","sourceRoot":"","sources":["../../src/components/FootswitchButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAIvD,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IACzC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAChD,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACxC,CAAC,CAAC;AAEH,wBAAgB,gBAAgB,CAAC,EAC7B,OAAO,EACP,KAAqC,EACrC,OAAO,EACP,QAAgB,EAChB,SAAS,EACT,UAAU,EACV,eAAe,EACf,OAAO,EACP,SAAS,GACZ,EAAE,qBAAqB,+BA0DvB"}
1
+ {"version":3,"file":"FootswitchButton.d.ts","sourceRoot":"","sources":["../../src/components/FootswitchButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAIvD,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC5C,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAChD,eAAe,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,OAAO,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACrC,CAAC,CAAC;AAEH,wBAAgB,gBAAgB,CAAC,EAChC,OAAO,EACP,KAAqC,EACrC,OAAO,EACP,QAAgB,EAChB,SAAS,EACT,UAAU,EACV,eAAe,EACf,OAAO,EACP,SAAS,GACT,EAAE,qBAAqB,+BA+DvB"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useState } from 'react';
3
- import { cx } from '../utils.js';
4
- import { ControlFrame } from './ControlFrame.js';
5
- export function FootswitchButton({ control, label = control?.name ?? 'Footswitch', pressed, disabled = false, className, classNames, onPressedChange, onPress, onRelease, }) {
2
+ import { useState } from "react";
3
+ import { cx } from "../utils.js";
4
+ import { ControlFrame } from "./ControlFrame.js";
5
+ export function FootswitchButton({ control, label = control?.name ?? "Footswitch", pressed, disabled = false, className, classNames, onPressedChange, onPress, onRelease, }) {
6
6
  const [isPressing, setIsPressing] = useState(false);
7
7
  function handleClick() {
8
8
  if (!disabled) {
@@ -21,13 +21,13 @@ export function FootswitchButton({ control, label = control?.name ?? 'Footswitch
21
21
  onRelease?.();
22
22
  }
23
23
  }
24
- return (_jsx(ControlFrame, { label: label, disabled: disabled, className: className, classNames: classNames, children: _jsx("button", { type: "button", className: cx('vdsp-control-ui-control', 'vdsp-control-ui-footswitch', isPressing && 'is-pressing', classNames?.control), "aria-label": label, "aria-pressed": pressed, disabled: disabled, "data-vdsp-control-id": control?.id, onClick: handleClick, onPointerDown: handlePress, onPointerUp: handleRelease, onPointerCancel: handleRelease, onKeyDown: (event) => {
25
- if (event.key === ' ' || event.key === 'Enter') {
24
+ return (_jsx(ControlFrame, { label: label, disabled: disabled, className: className, classNames: classNames, children: _jsx("button", { type: "button", className: cx("vdsp-control-ui-control", "vdsp-control-ui-footswitch", isPressing && "is-pressing", classNames?.control), "aria-label": label, "aria-pressed": pressed, disabled: disabled, "data-vdsp-control-id": control?.id, onClick: handleClick, onPointerDown: handlePress, onPointerUp: handleRelease, onPointerCancel: handleRelease, onKeyDown: (event) => {
25
+ if (event.key === " " || event.key === "Enter") {
26
26
  event.preventDefault();
27
27
  handlePress();
28
28
  }
29
29
  }, onKeyUp: (event) => {
30
- if (event.key === ' ' || event.key === 'Enter') {
30
+ if (event.key === " " || event.key === "Enter") {
31
31
  event.preventDefault();
32
32
  handleRelease();
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FootswitchButton.js","sourceRoot":"","sources":["../../src/components/FootswitchButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAc9C,MAAM,UAAU,gBAAgB,CAAC,EAC7B,OAAO,EACP,KAAK,GAAG,OAAO,EAAE,IAAI,IAAI,YAAY,EACrC,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,UAAU,EACV,eAAe,EACf,OAAO,EACP,SAAS,GACW;IACpB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,WAAW;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;IACL,CAAC;IAED,SAAS,WAAW;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO,EAAE,EAAE,CAAC;QAChB,CAAC;IACL,CAAC;IAED,SAAS,aAAa;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,SAAS,EAAE,EAAE,CAAC;QAClB,CAAC;IACL,CAAC;IAED,OAAO,CACH,KAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,YACxF,iBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CACT,yBAAyB,EACzB,4BAA4B,EAC5B,UAAU,IAAI,aAAa,EAC3B,UAAU,EAAE,OAAO,CACtB,gBACW,KAAK,kBACH,OAAO,EACrB,QAAQ,EAAE,QAAQ,0BACI,OAAO,EAAE,EAAE,EACjC,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,WAAW,EAC1B,WAAW,EAAE,aAAa,EAC1B,eAAe,EAAE,aAAa,EAC9B,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBACjB,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;oBAC7C,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,WAAW,EAAE,CAAC;gBAClB,CAAC;YACL,CAAC,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;oBAC7C,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,aAAa,EAAE,CAAC;gBACpB,CAAC;YACL,CAAC,YAED,eAAM,SAAS,EAAC,iCAAiC,GAAG,GAC/C,GACE,CAClB,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"FootswitchButton.js","sourceRoot":"","sources":["../../src/components/FootswitchButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAc9C,MAAM,UAAU,gBAAgB,CAAC,EAChC,OAAO,EACP,KAAK,GAAG,OAAO,EAAE,IAAI,IAAI,YAAY,EACrC,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,UAAU,EACV,eAAe,EACf,OAAO,EACP,SAAS,GACc;IACvB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,SAAS,WAAW;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,SAAS,WAAW;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,OAAO,EAAE,EAAE,CAAC;QACb,CAAC;IACF,CAAC;IAED,SAAS,aAAa;QACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,aAAa,CAAC,KAAK,CAAC,CAAC;YACrB,SAAS,EAAE,EAAE,CAAC;QACf,CAAC;IACF,CAAC;IAED,OAAO,CACN,KAAC,YAAY,IACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,YAEtB,iBACC,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,EAAE,CACZ,yBAAyB,EACzB,4BAA4B,EAC5B,UAAU,IAAI,aAAa,EAC3B,UAAU,EAAE,OAAO,CACnB,gBACW,KAAK,kBACH,OAAO,EACrB,QAAQ,EAAE,QAAQ,0BACI,OAAO,EAAE,EAAE,EACjC,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,WAAW,EAC1B,WAAW,EAAE,aAAa,EAC1B,eAAe,EAAE,aAAa,EAC9B,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;gBACpB,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;oBAChD,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,WAAW,EAAE,CAAC;gBACf,CAAC;YACF,CAAC,EACD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAClB,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;oBAChD,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,aAAa,EAAE,CAAC;gBACjB,CAAC;YACF,CAAC,YAED,eAAM,SAAS,EAAC,iCAAiC,GAAG,GAC5C,GACK,CACf,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { JackPort } from "@vessel-dsp/core";
2
+ import type { ControlFrameClassNames } from "../types";
3
+ export type JackIndicatorProps = Readonly<{
4
+ control: JackPort;
5
+ disabled?: boolean;
6
+ label?: string;
7
+ className?: string | undefined;
8
+ classNames?: ControlFrameClassNames | undefined;
9
+ }>;
10
+ /**
11
+ * Read-only panel port. Jacks carry no settable value; they appear on the
12
+ * control surface for orientation only and never emit control messages.
13
+ */
14
+ export declare function JackIndicator({ control, disabled, label, className, classNames, }: JackIndicatorProps): import("react").JSX.Element;
15
+ //# sourceMappingURL=JackIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JackIndicator.d.ts","sourceRoot":"","sources":["../../src/components/JackIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAIvD,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACzC,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;CAChD,CAAC,CAAC;AAEH;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC7B,OAAO,EACP,QAAgB,EAChB,KAAoB,EACpB,SAAS,EACT,UAAU,GACV,EAAE,kBAAkB,+BAqBpB"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cx } from "../utils.js";
3
+ import { ControlFrame } from "./ControlFrame.js";
4
+ /**
5
+ * Read-only panel port. Jacks carry no settable value; they appear on the
6
+ * control surface for orientation only and never emit control messages.
7
+ */
8
+ export function JackIndicator({ control, disabled = false, label = control.name, className, classNames, }) {
9
+ return (_jsx(ControlFrame, { label: label, readout: control.role, disabled: disabled, className: className, classNames: classNames, children: _jsx("span", { className: cx("vdsp-control-ui-control", "vdsp-control-ui-jack", classNames?.control), role: "img", "aria-label": `${control.name} ${control.role} jack`, "data-vdsp-control-id": control.id }) }));
10
+ }
11
+ //# sourceMappingURL=JackIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JackIndicator.js","sourceRoot":"","sources":["../../src/components/JackIndicator.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAU9C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAC7B,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,OAAO,CAAC,IAAI,EACpB,SAAS,EACT,UAAU,GACU;IACpB,OAAO,CACN,KAAC,YAAY,IACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,CAAC,IAAI,EACrB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,YAEtB,eACC,SAAS,EAAE,EAAE,CACZ,yBAAyB,EACzB,sBAAsB,EACtB,UAAU,EAAE,OAAO,CACnB,EACD,IAAI,EAAC,KAAK,gBACE,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,OAAO,0BAC5B,OAAO,CAAC,EAAE,GAC/B,GACY,CACf,CAAC;AACH,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { Knob } from '@vessel-dsp/core';
2
- import type { ControlFrameClassNames } from '../types';
1
+ import type { Knob } from "@vessel-dsp/core";
2
+ import type { ControlFrameClassNames } from "../types";
3
3
  export type KnobControlProps = Readonly<{
4
4
  control: Knob;
5
5
  position: number;
@@ -1 +1 @@
1
- {"version":3,"file":"KnobControl.d.ts","sourceRoot":"","sources":["../../src/components/KnobControl.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAmBvD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACpC,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC/D,CAAC,CAAC;AAEH,wBAAgB,WAAW,CAAC,EACxB,OAAO,EACP,QAAQ,EACR,QAAgB,EAChB,KAAoB,EACpB,SAAS,EACT,UAAU,EACV,gBAAgB,GACnB,EAAE,gBAAgB,+BA6LlB"}
1
+ {"version":3,"file":"KnobControl.d.ts","sourceRoot":"","sources":["../../src/components/KnobControl.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAG7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAmBvD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC;IACvC,OAAO,EAAE,IAAI,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAChD,gBAAgB,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5D,CAAC,CAAC;AAEH,wBAAgB,WAAW,CAAC,EAC3B,OAAO,EACP,QAAQ,EACR,QAAgB,EAChB,KAAoB,EACpB,SAAS,EACT,UAAU,EACV,gBAAgB,GAChB,EAAE,gBAAgB,+BA+NlB"}