@antimatter-audio/antimatter-ui 10.3.0 → 10.5.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.
Files changed (32) hide show
  1. package/dist/advanced/ModMatrix/ModMatrixCell.d.ts +1 -3
  2. package/dist/advanced/ModMatrix/ModMatrixCell.d.ts.map +1 -1
  3. package/dist/advanced/ModuleFooter/LFOTab.d.ts +4 -0
  4. package/dist/advanced/ModuleFooter/LFOTab.d.ts.map +1 -0
  5. package/dist/advanced/ModuleFooter/ModuleFooter.d.ts +0 -1
  6. package/dist/advanced/ModuleFooter/ModuleFooter.d.ts.map +1 -1
  7. package/dist/core/Dropdown/Dropdown.d.ts +4 -2
  8. package/dist/core/Dropdown/Dropdown.d.ts.map +1 -1
  9. package/dist/core/Label/Label.d.ts +2 -1
  10. package/dist/core/Label/Label.d.ts.map +1 -1
  11. package/dist/core/Slider/BarSlider.d.ts.map +1 -1
  12. package/dist/core/Slider/RotarySlider.d.ts +5 -1
  13. package/dist/core/Slider/RotarySlider.d.ts.map +1 -1
  14. package/dist/index.js +465 -299
  15. package/dist/index.js.map +1 -1
  16. package/dist/src/advanced/ModuleFooter/LFOTab.d.ts +4 -0
  17. package/dist/src/advanced/ModuleFooter/LFOTab.d.ts.map +1 -0
  18. package/dist/src/advanced/ModuleFooter/ModuleFooter.d.ts +0 -1
  19. package/dist/src/advanced/ModuleFooter/ModuleFooter.d.ts.map +1 -1
  20. package/dist/src/core/Box/Box.d.ts +1 -0
  21. package/dist/src/core/Box/Box.d.ts.map +1 -1
  22. package/dist/src/core/Dropdown/Dropdown.d.ts +4 -2
  23. package/dist/src/core/Dropdown/Dropdown.d.ts.map +1 -1
  24. package/dist/src/core/Label/Label.d.ts +2 -1
  25. package/dist/src/core/Label/Label.d.ts.map +1 -1
  26. package/dist/src/core/Slider/BarSlider.d.ts.map +1 -1
  27. package/dist/src/core/Slider/RotarySlider.d.ts +5 -1
  28. package/dist/src/core/Slider/RotarySlider.d.ts.map +1 -1
  29. package/dist/src/hooks/useDropdown.d.ts +5 -5
  30. package/dist/src/hooks/useDropdown.d.ts.map +1 -1
  31. package/dist/src/hooks/useSlider.d.ts.map +1 -1
  32. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -33,7 +33,7 @@ function styleInject(css, ref) {
33
33
  }
34
34
  }
35
35
 
36
- var css_248z$b = "@import 'tailwindcss';\n@import 'tailwindcss/base';\n@import 'tailwindcss/utilities';\n\n@theme static {\n --color-brand: #bb68d9;\n --color-alert: #8a0101;\n --color-text: #bab6cf;\n --color-gray-100: #c7c3de;\n --color-gray-200: #9a96ab;\n --color-gray-300: #838091;\n --color-gray-400: #595763;\n --color-gray-500: #4c4a54;\n --color-gray-600: #2e2c33;\n --color-gray-700: #1e1d21;\n --color-gray-800: #101012;\n --color-gray-900: #09090a;\n\n --color-VFDBlue-100: #0d3814;\n --color-VFDBlue-200: #234e4a;\n --color-VFDBlue-300: #128073;\n --color-VFDBlue-400: #138c6e;\n --color-VFDBlue-500: #1abe95;\n --color-VFDBlue-600: #23d8a4;\n --color-VFDBlue-700: #4aeea4;\n --color-VFDBlue-1000: #35edb4;\n --spacing-none: 0px;\n --spacing-xs: 2px;\n --spacing-sm: 4px;\n --spacing-ms: 6px;\n --spacing-md: 8px;\n --spacing-ml: 12px;\n --spacing-lg: 16px;\n --spacing-xl: 20px;\n --m-none: 0px;\n --m-xs: 2px;\n --m-sm: 4px;\n --m-ms: 6px;\n --m-md: 8px;\n --m-ml: 12px;\n --m-lg: 16px;\n --m-xl: 20px;\n --mt-none: 0px;\n --mt-xs: 2px;\n --mt-sm: 4px;\n --mt-ms: 6px;\n --mt-md: 8px;\n --mt-ml: 12px;\n --mt-lg: 16px;\n --mt-xl: 20px;\n --mr-none: 0px;\n --mr-xs: 2px;\n --mr-sm: 4px;\n --mr-ms: 6px;\n --mr-md: 8px;\n --mr-ml: 12px;\n --mr-lg: 16px;\n --mr-xl: 20px;\n --mb-none: 0px;\n --mb-xs: 2px;\n --mb-sm: 4px;\n --mb-ms: 6px;\n --mb-md: 8px;\n --mb-ml: 12px;\n --mb-lg: 16px;\n --mb-xl: 20px;\n --ml-none: 0px;\n --ml-xs: 2px;\n --ml-sm: 4px;\n --ml-ms: 6px;\n --ml-md: 8px;\n --ml-ml: 12px;\n --ml-lg: 16px;\n --ml-xl: 20px;\n --p-none: 0px;\n --p-xs: 2px;\n --p-sm: 4px;\n --p-ms: 6px;\n --p-md: 8px;\n --p-ml: 12px;\n --p-lg: 16px;\n --p-xl: 20px;\n --pt-none: 0px;\n --pt-xs: 2px;\n --pt-sm: 4px;\n --pt-ms: 6px;\n --pt-md: 8px;\n --pt-ml: 12px;\n --pt-lg: 16px;\n --pt-xl: 20px;\n --pr-none: 0px;\n --pr-xs: 2px;\n --pr-sm: 4px;\n --pr-ms: 6px;\n --pr-md: 8px;\n --pr-ml: 12px;\n --pr-lg: 16px;\n --pr-xl: 20px;\n --pb-none: 0px;\n --pb-xs: 2px;\n --pb-sm: 4px;\n --pb-ms: 6px;\n --pb-md: 8px;\n --pb-ml: 12px;\n --pb-lg: 16px;\n --pb-xl: 20px;\n --pl-none: 0px;\n --pl-xs: 2px;\n --pl-sm: 4px;\n --pl-ms: 6px;\n --pl-md: 8px;\n --pl-ml: 12px;\n --pl-lg: 16px;\n --pl-xl: 20px;\n --bg-page: #1e1d21;\n --bg-section: #1e1d21;\n --bg-popover: #09090a;\n --bg-highlighted: #838091;\n --bg-muted: #595763;\n --bg-selected: #2e2c33;\n --bg-input: #1e1d21;\n --font-leagueSpartan: 'LeagueSpartan';\n --text-xs: 0.625rem;\n --text-sm: 0.75rem;\n --text-ms: 0.813rem;\n --text-md: 0.875rem;\n --text-lg: 1rem;\n --text-xl: 1.25rem;\n --text-title: 1.75rem;\n --gap-none: 0px;\n --gap-xs: 2px;\n --gap-sm: 4px;\n --gap-ms: 6px;\n --gap-md: 8px;\n --gap-ml: 12px;\n --gap-lg: 16px;\n --gap-xl: 20px;\n}\n\ninput,\ninput:hover,\ninput:focus,\ninput:focus-visible {\n background: transparent;\n border: none;\n outline: none;\n appearance: textfield;\n}\n\nbutton,\nbutton:hover,\nbutton:focus,\nbutton:focus-visible {\n border: none;\n outline: none;\n}\n\nbutton:disabled,\ninput:disabled {\n cursor: not-allowed;\n}\n\n@font-face {\n font-family: LeagueSpartan;\n /* ascent-override: 70%; */\n src: url('./common/assets/fonts/LeagueSpartan-Regular.ttf');\n}\n\n@font-face {\n font-family: LeagueSpartan;\n /* ascent-override: 70%; */\n src: url('./common/assets/fonts/LeagueSpartan-Thin.ttf');\n font-weight: lighter;\n}\n";
36
+ var css_248z$b = "@import 'tailwindcss';\n@import 'tailwindcss/base';\n@import 'tailwindcss/utilities';\n\n@theme static {\n --color-brand: #bb68d9;\n --color-brand-600: #932eb8;\n --color-brand-400: #d199e6;\n --color-alert: #8a0101;\n --color-text: #bab6cf;\n --color-gray-100: #c7c3de;\n --color-gray-200: #9a96ab;\n --color-gray-300: #838091;\n --color-gray-400: #595763;\n --color-gray-500: #4c4a54;\n --color-gray-600: #2e2c33;\n --color-gray-700: #1e1d21;\n --color-gray-800: #101012;\n --color-gray-900: #09090a;\n\n --color-VFDBlue-100: #0d3814;\n --color-VFDBlue-200: #234e4a;\n --color-VFDBlue-300: #128073;\n --color-VFDBlue-400: #138c6e;\n --color-VFDBlue-500: #1abe95;\n --color-VFDBlue-600: #23d8a4;\n --color-VFDBlue-700: #4aeea4;\n --color-VFDBlue-1000: #35edb4;\n --spacing-none: 0px;\n --spacing-xs: 2px;\n --spacing-sm: 4px;\n --spacing-ms: 6px;\n --spacing-md: 8px;\n --spacing-ml: 12px;\n --spacing-lg: 16px;\n --spacing-xl: 20px;\n --m-none: 0px;\n --m-xs: 2px;\n --m-sm: 4px;\n --m-ms: 6px;\n --m-md: 8px;\n --m-ml: 12px;\n --m-lg: 16px;\n --m-xl: 20px;\n --mt-none: 0px;\n --mt-xs: 2px;\n --mt-sm: 4px;\n --mt-ms: 6px;\n --mt-md: 8px;\n --mt-ml: 12px;\n --mt-lg: 16px;\n --mt-xl: 20px;\n --mr-none: 0px;\n --mr-xs: 2px;\n --mr-sm: 4px;\n --mr-ms: 6px;\n --mr-md: 8px;\n --mr-ml: 12px;\n --mr-lg: 16px;\n --mr-xl: 20px;\n --mb-none: 0px;\n --mb-xs: 2px;\n --mb-sm: 4px;\n --mb-ms: 6px;\n --mb-md: 8px;\n --mb-ml: 12px;\n --mb-lg: 16px;\n --mb-xl: 20px;\n --ml-none: 0px;\n --ml-xs: 2px;\n --ml-sm: 4px;\n --ml-ms: 6px;\n --ml-md: 8px;\n --ml-ml: 12px;\n --ml-lg: 16px;\n --ml-xl: 20px;\n --p-none: 0px;\n --p-xs: 2px;\n --p-sm: 4px;\n --p-ms: 6px;\n --p-md: 8px;\n --p-ml: 12px;\n --p-lg: 16px;\n --p-xl: 20px;\n --pt-none: 0px;\n --pt-xs: 2px;\n --pt-sm: 4px;\n --pt-ms: 6px;\n --pt-md: 8px;\n --pt-ml: 12px;\n --pt-lg: 16px;\n --pt-xl: 20px;\n --pr-none: 0px;\n --pr-xs: 2px;\n --pr-sm: 4px;\n --pr-ms: 6px;\n --pr-md: 8px;\n --pr-ml: 12px;\n --pr-lg: 16px;\n --pr-xl: 20px;\n --pb-none: 0px;\n --pb-xs: 2px;\n --pb-sm: 4px;\n --pb-ms: 6px;\n --pb-md: 8px;\n --pb-ml: 12px;\n --pb-lg: 16px;\n --pb-xl: 20px;\n --pl-none: 0px;\n --pl-xs: 2px;\n --pl-sm: 4px;\n --pl-ms: 6px;\n --pl-md: 8px;\n --pl-ml: 12px;\n --pl-lg: 16px;\n --pl-xl: 20px;\n --bg-page: #1e1d21;\n --bg-section: #1e1d21;\n --bg-popover: #09090a;\n --bg-highlighted: #838091;\n --bg-muted: #595763;\n --bg-selected: #2e2c33;\n --bg-input: #1e1d21;\n --font-leagueSpartan: 'LeagueSpartan';\n --text-xs: 0.625rem;\n --text-sm: 0.75rem;\n --text-ms: 0.813rem;\n --text-md: 0.875rem;\n --text-lg: 1rem;\n --text-xl: 1.25rem;\n --text-title: 1.75rem;\n --gap-none: 0px;\n --gap-xs: 2px;\n --gap-sm: 4px;\n --gap-ms: 6px;\n --gap-md: 8px;\n --gap-ml: 12px;\n --gap-lg: 16px;\n --gap-xl: 20px;\n}\n\ninput,\ninput:hover,\ninput:focus,\ninput:focus-visible {\n background: transparent;\n border: none;\n outline: none;\n appearance: textfield;\n}\n\nbutton,\nbutton:hover,\nbutton:focus,\nbutton:focus-visible {\n outline: none;\n}\n\nbutton:disabled,\ninput:disabled {\n cursor: not-allowed;\n}\n\ndiv:focus,\ndiv:focus-visible {\n outline: none;\n appearance: textfield;\n}\n\n@font-face {\n font-family: LeagueSpartan;\n /* ascent-override: 70%; */\n src: url('./common/assets/fonts/LeagueSpartan-Regular.ttf');\n}\n\n@font-face {\n font-family: LeagueSpartan;\n /* ascent-override: 70%; */\n src: url('./common/assets/fonts/LeagueSpartan-Thin.ttf');\n font-weight: lighter;\n}\n";
37
37
  styleInject(css_248z$b);
38
38
 
39
39
  var Spacing = /*#__PURE__*/ function(Spacing) {
@@ -218,7 +218,7 @@ function _array_like_to_array$c(arr, len) {
218
218
  function _array_with_holes$c(arr) {
219
219
  if (Array.isArray(arr)) return arr;
220
220
  }
221
- function _define_property$j(obj, key, value) {
221
+ function _define_property$k(obj, key, value) {
222
222
  if (key in obj) {
223
223
  Object.defineProperty(obj, key, {
224
224
  value: value,
@@ -258,7 +258,7 @@ function _iterable_to_array_limit$c(arr, i) {
258
258
  function _non_iterable_rest$c() {
259
259
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
260
260
  }
261
- function _object_spread$j(target) {
261
+ function _object_spread$k(target) {
262
262
  for(var i = 1; i < arguments.length; i++){
263
263
  var source = arguments[i] != null ? arguments[i] : {};
264
264
  var ownKeys = Object.keys(source);
@@ -268,7 +268,7 @@ function _object_spread$j(target) {
268
268
  }));
269
269
  }
270
270
  ownKeys.forEach(function(key) {
271
- _define_property$j(target, key, source[key]);
271
+ _define_property$k(target, key, source[key]);
272
272
  });
273
273
  }
274
274
  return target;
@@ -347,7 +347,7 @@ function Button(param) {
347
347
  onMouseDown: handleMouseDown,
348
348
  disabled: disabled,
349
349
  onClick: onClick && onClick,
350
- style: _object_spread$j({
350
+ style: _object_spread$k({
351
351
  paddingTop: "var(--p-".concat(padding[0], ")"),
352
352
  paddingRight: "var(--p-".concat((_padding_ = padding[1]) !== null && _padding_ !== void 0 ? _padding_ : padding[0], ")"),
353
353
  paddingBottom: "var(--p-".concat((_padding_1 = padding[2]) !== null && _padding_1 !== void 0 ? _padding_1 : padding[0], ")"),
@@ -365,7 +365,7 @@ Button.margin = Spacing;
365
365
  Button.type = ButtonType;
366
366
  Button.size = ButtonSize;
367
367
 
368
- var css_248z$8 = ".Dropdown-button {\n font-size: var(--text-sm);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-lg);\n cursor: pointer;\n vertical-align: middle;\n white-space: nowrap;\n text-decoration: none;\n text-transform: uppercase;\n text-align: center;\n border: 0;\n border-radius: var(--radius-sm);\n appearance: none;\n user-select: none;\n -webkit-user-select: none;\n height: var(--spacing-xl);\n background: var(--bg-input);\n &:hover,\n &:focus,\n &:active {\n outline: none;\n background-color: var(--bg-highlighted);\n }\n &:disabled {\n cursor: not-allowed;\n }\n}\n\n.Dropdown-item {\n background-color: var(--bg-popover);\n padding: var(--spacing-l);\n cursor: pointer;\n user-select: none;\n -webkit-user-select: none;\n &:hover {\n background-color: var(--bg-highlighted);\n }\n &[data-selected] {\n background-color: var(--bg-selected);\n }\n}\n";
368
+ var css_248z$8 = ".Dropdown-button {\n font-size: var(--text-sm);\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--spacing-lg);\n cursor: pointer;\n vertical-align: middle;\n white-space: nowrap;\n text-decoration: none;\n text-transform: uppercase;\n text-align: center;\n border-radius: var(--radius-sm);\n appearance: none;\n user-select: none;\n -webkit-user-select: none;\n height: var(--spacing-xl);\n background: var(--color-gray-800);\n color: var(--color-text);\n &:hover,\n &:focus,\n &:active {\n outline: none;\n background-color: var(--bg-highlighted);\n }\n &:disabled {\n cursor: not-allowed;\n }\n}\n\n.Dropdown-items {\n border: 2px solid;\n}\n\n.Dropdown-item {\n background-color: var(--bg-page);\n font-size: var(--text-sm);\n padding: var(--spacing-md) var(--spacing-xl);\n min-width: 100px;\n color: var(--color-text);\n cursor: pointer;\n text-align: center;\n text-transform: uppercase;\n font-weight: bold;\n}\n\n.Dropdown-item[data-selected] {\n background-color: var(--bg-popover);\n color: var(--color-text);\n}\n\n.Dropdown-item[data-active] {\n background-color: var(--bg-popover);\n color: var(--color-text);\n}\n";
369
369
  styleInject(css_248z$8);
370
370
 
371
371
  function useObservable(param) {
@@ -416,7 +416,7 @@ function _array_like_to_array$b(arr, len) {
416
416
  function _array_with_holes$b(arr) {
417
417
  if (Array.isArray(arr)) return arr;
418
418
  }
419
- function _define_property$i(obj, key, value) {
419
+ function _define_property$j(obj, key, value) {
420
420
  if (key in obj) {
421
421
  Object.defineProperty(obj, key, {
422
422
  value: value,
@@ -456,7 +456,7 @@ function _iterable_to_array_limit$b(arr, i) {
456
456
  function _non_iterable_rest$b() {
457
457
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
458
458
  }
459
- function _object_spread$i(target) {
459
+ function _object_spread$j(target) {
460
460
  for(var i = 1; i < arguments.length; i++){
461
461
  var source = arguments[i] != null ? arguments[i] : {};
462
462
  var ownKeys = Object.keys(source);
@@ -466,7 +466,7 @@ function _object_spread$i(target) {
466
466
  }));
467
467
  }
468
468
  ownKeys.forEach(function(key) {
469
- _define_property$i(target, key, source[key]);
469
+ _define_property$j(target, key, source[key]);
470
470
  });
471
471
  }
472
472
  return target;
@@ -518,39 +518,39 @@ var defaultGlobalStateValue = {
518
518
  var reducer = function(state, action) {
519
519
  switch(action.type){
520
520
  case 'HIGHLIGHTED_ITEM_CHANGED':
521
- return _object_spread_props$3(_object_spread$i({}, state), {
521
+ return _object_spread_props$3(_object_spread$j({}, state), {
522
522
  highlightedItem: action.payload
523
523
  });
524
524
  case 'ADVANCED_VIEW_TOGGLED':
525
- return _object_spread_props$3(_object_spread$i({}, state), {
525
+ return _object_spread_props$3(_object_spread$j({}, state), {
526
526
  advancedView: action.payload
527
527
  });
528
528
  case 'AUTOMATABLE_PARAMS_LIST_RECEIVED':
529
- return _object_spread_props$3(_object_spread$i({}, state), {
529
+ return _object_spread_props$3(_object_spread$j({}, state), {
530
530
  automatableParamsList: action.payload
531
531
  });
532
532
  case 'AUTOMATABLE_PARAM_LABELS_RECEIVED':
533
- return _object_spread_props$3(_object_spread$i({}, state), {
533
+ return _object_spread_props$3(_object_spread$j({}, state), {
534
534
  automatableParamLabels: action.payload
535
535
  });
536
536
  case 'MOD_SLOTS_RECEIVED':
537
537
  var _action_payload;
538
- return _object_spread_props$3(_object_spread$i({}, state), {
538
+ return _object_spread_props$3(_object_spread$j({}, state), {
539
539
  modSlots: action === null || action === void 0 ? void 0 : (_action_payload = action.payload) === null || _action_payload === void 0 ? void 0 : _action_payload.reduce(function(acc, val) {
540
- return _object_spread_props$3(_object_spread$i({}, acc), _define_property$i({}, val[0], val[1]));
540
+ return _object_spread_props$3(_object_spread$j({}, acc), _define_property$j({}, val[0], val[1]));
541
541
  }, {})
542
542
  });
543
543
  case 'MOD_SLOT_UPDATED':
544
544
  var _action_payload1, _action_payload2;
545
- return _object_spread_props$3(_object_spread$i({}, state), {
546
- modSlots: _object_spread_props$3(_object_spread$i({}, state === null || state === void 0 ? void 0 : state.modSlots), _define_property$i({}, (_action_payload1 = action.payload) === null || _action_payload1 === void 0 ? void 0 : _action_payload1[0], action === null || action === void 0 ? void 0 : (_action_payload2 = action.payload) === null || _action_payload2 === void 0 ? void 0 : _action_payload2[1]))
545
+ return _object_spread_props$3(_object_spread$j({}, state), {
546
+ modSlots: _object_spread_props$3(_object_spread$j({}, state === null || state === void 0 ? void 0 : state.modSlots), _define_property$j({}, (_action_payload1 = action.payload) === null || _action_payload1 === void 0 ? void 0 : _action_payload1[0], action === null || action === void 0 ? void 0 : (_action_payload2 = action.payload) === null || _action_payload2 === void 0 ? void 0 : _action_payload2[1]))
547
547
  });
548
548
  case 'MOD_SLOT_PARAMS_LIST_RECEIVED':
549
- return _object_spread_props$3(_object_spread$i({}, state), {
549
+ return _object_spread_props$3(_object_spread$j({}, state), {
550
550
  modSlotParams: action === null || action === void 0 ? void 0 : action.payload
551
551
  });
552
552
  case 'MOD_SLOT_PARAM_LABELS_RECIEVED':
553
- return _object_spread_props$3(_object_spread$i({}, state), {
553
+ return _object_spread_props$3(_object_spread$j({}, state), {
554
554
  modSlotParamLabels: action === null || action === void 0 ? void 0 : action.payload
555
555
  });
556
556
  default:
@@ -692,7 +692,7 @@ var useDropdown = function(param) {
692
692
  var id = param.id, label = param.label, _param_items = param.items, items = _param_items === void 0 ? [] : _param_items, filter = param.filter, onChange = param.onChange, _param_displayValInHeader = param.displayValInHeader, displayValInHeader = _param_displayValInHeader === void 0 ? true : _param_displayValInHeader;
693
693
  var _properties_choices;
694
694
  var comboBoxState = Juce.getComboBoxState(id);
695
- var _useState = _sliced_to_array$a(useState(comboBoxState.getChoiceIndex()), 2), value = _useState[0], setValue = _useState[1];
695
+ var _useState = _sliced_to_array$a(useState(comboBoxState.getChoiceIndex()), 2), index = _useState[0], setIndex = _useState[1];
696
696
  var _useState1 = _sliced_to_array$a(useState(comboBoxState.properties), 2), properties = _useState1[0], setProperties = _useState1[1];
697
697
  var setHighlightedItem = useGlobalContext().setHighlightedItem;
698
698
  var choices = items.length ? items : (properties === null || properties === void 0 ? void 0 : (_properties_choices = properties.choices) === null || _properties_choices === void 0 ? void 0 : _properties_choices.length) ? properties === null || properties === void 0 ? void 0 : properties.choices : [];
@@ -702,30 +702,32 @@ var useDropdown = function(param) {
702
702
  }) : choices;
703
703
  var prevIndex = useRef(null);
704
704
  var handleChange = function(value) {
705
- if (value !== prevIndex.current) {
706
- comboBoxState.setChoiceIndex(value);
707
- setValue(value);
708
- onChange && onChange(value);
705
+ var choiceIndex = choices.indexOf(value);
706
+ if (choiceIndex !== prevIndex.current) {
707
+ comboBoxState.setChoiceIndex(choiceIndex);
708
+ setIndex(choiceIndex);
709
+ onChange && onChange(choiceIndex);
709
710
  // //@ts-expect-error
710
711
  // window.__JUCE__.backend.emitEvent('undoableActionOccurred', {});
711
712
  if (displayValInHeader) {
712
- setHighlightedItem({
713
+ setHighlightedItem && setHighlightedItem({
713
714
  label: label,
714
- value: choices === null || choices === void 0 ? void 0 : choices[value]
715
+ value: value
715
716
  });
716
717
  }
717
- prevIndex.current = value;
718
+ prevIndex.current = choiceIndex;
718
719
  }
720
+ return choices[choiceIndex];
719
721
  };
720
722
  useEffect(function() {
721
723
  var comboBoxState = Juce.getComboBoxState(id);
722
- setValue(comboBoxState.getChoiceIndex());
724
+ setIndex(comboBoxState.getChoiceIndex());
723
725
  }, [
724
726
  id
725
727
  ]);
726
728
  useEffect(function() {
727
729
  var valueListenerId = comboBoxState.valueChangedEvent.addListener(function() {
728
- setValue(comboBoxState.getChoiceIndex());
730
+ setIndex(comboBoxState.getChoiceIndex());
729
731
  });
730
732
  var propertiesListenerId = comboBoxState.propertiesChangedEvent.addListener(function() {
731
733
  setProperties(comboBoxState.properties);
@@ -739,16 +741,16 @@ var useDropdown = function(param) {
739
741
  ]);
740
742
  var onMouseEnter = function() {
741
743
  if (displayValInHeader) {
742
- setHighlightedItem({
744
+ setHighlightedItem && (setHighlightedItem === null || setHighlightedItem === void 0 ? void 0 : setHighlightedItem({
743
745
  label: label,
744
- value: choices === null || choices === void 0 ? void 0 : choices[value]
745
- });
746
+ value: choices === null || choices === void 0 ? void 0 : choices[index]
747
+ }));
746
748
  }
747
749
  };
748
750
  return {
749
- value: value,
750
- valueString: choices === null || choices === void 0 ? void 0 : choices[value],
751
- setValue: setValue,
751
+ value: choices[index],
752
+ index: index,
753
+ setIndex: setIndex,
752
754
  choices: choices,
753
755
  filteredChoices: filteredChoices,
754
756
  onMouseEnter: onMouseEnter,
@@ -756,21 +758,275 @@ var useDropdown = function(param) {
756
758
  };
757
759
  };
758
760
 
761
+ var JustifyContent = /*#__PURE__*/ function(JustifyContent) {
762
+ JustifyContent["flexStart"] = "flex-start";
763
+ JustifyContent["flexEnd"] = "flex-end";
764
+ JustifyContent["center"] = "center";
765
+ JustifyContent["spaceBetween"] = "space-between";
766
+ JustifyContent["spaceAround"] = "space-around";
767
+ JustifyContent["spaceEvenly"] = "space-evenly";
768
+ return JustifyContent;
769
+ }({});
770
+ var AlignItems = /*#__PURE__*/ function(AlignItems) {
771
+ AlignItems["flexStart"] = "flex-start";
772
+ AlignItems["flexEnd"] = "flex-end";
773
+ AlignItems["center"] = "center";
774
+ AlignItems["stretch"] = "stretch";
775
+ AlignItems["baseline"] = "baseline";
776
+ return AlignItems;
777
+ }({});
778
+ var LayoutTags = /*#__PURE__*/ function(LayoutTags) {
779
+ LayoutTags["header"] = "header";
780
+ LayoutTags["main"] = "main";
781
+ LayoutTags["section"] = "section";
782
+ LayoutTags["div"] = "div";
783
+ LayoutTags["footer"] = "footer";
784
+ LayoutTags["ul"] = "ul";
785
+ LayoutTags["li"] = "li";
786
+ return LayoutTags;
787
+ }({});
788
+
789
+ function _define_property$i(obj, key, value) {
790
+ if (key in obj) {
791
+ Object.defineProperty(obj, key, {
792
+ value: value,
793
+ enumerable: true,
794
+ configurable: true,
795
+ writable: true
796
+ });
797
+ } else {
798
+ obj[key] = value;
799
+ }
800
+ return obj;
801
+ }
802
+ function _object_spread$i(target) {
803
+ for(var i = 1; i < arguments.length; i++){
804
+ var source = arguments[i] != null ? arguments[i] : {};
805
+ var ownKeys = Object.keys(source);
806
+ if (typeof Object.getOwnPropertySymbols === "function") {
807
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
808
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
809
+ }));
810
+ }
811
+ ownKeys.forEach(function(key) {
812
+ _define_property$i(target, key, source[key]);
813
+ });
814
+ }
815
+ return target;
816
+ }
817
+ function ownKeys$2(object, enumerableOnly) {
818
+ var keys = Object.keys(object);
819
+ if (Object.getOwnPropertySymbols) {
820
+ var symbols = Object.getOwnPropertySymbols(object);
821
+ keys.push.apply(keys, symbols);
822
+ }
823
+ return keys;
824
+ }
825
+ function _object_spread_props$2(target, source) {
826
+ source = source != null ? source : {};
827
+ if (Object.getOwnPropertyDescriptors) {
828
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
829
+ } else {
830
+ ownKeys$2(Object(source)).forEach(function(key) {
831
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
832
+ });
833
+ }
834
+ return target;
835
+ }
836
+ function _object_without_properties(source, excluded) {
837
+ if (source == null) return {};
838
+ var target = _object_without_properties_loose(source, excluded);
839
+ var key, i;
840
+ if (Object.getOwnPropertySymbols) {
841
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
842
+ for(i = 0; i < sourceSymbolKeys.length; i++){
843
+ key = sourceSymbolKeys[i];
844
+ if (excluded.indexOf(key) >= 0) continue;
845
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
846
+ target[key] = source[key];
847
+ }
848
+ }
849
+ return target;
850
+ }
851
+ function _object_without_properties_loose(source, excluded) {
852
+ if (source == null) return {};
853
+ var target = {};
854
+ var sourceKeys = Object.keys(source);
855
+ var key, i;
856
+ for(i = 0; i < sourceKeys.length; i++){
857
+ key = sourceKeys[i];
858
+ if (excluded.indexOf(key) >= 0) continue;
859
+ target[key] = source[key];
860
+ }
861
+ return target;
862
+ }
863
+ var BoxDisplay = /*#__PURE__*/ function(BoxDisplay) {
864
+ BoxDisplay["flex"] = "flex";
865
+ BoxDisplay["block"] = "block";
866
+ return BoxDisplay;
867
+ }(BoxDisplay || {});
868
+ function Box(_param) {
869
+ var className = _param.className, style = _param.style, children = _param.children, flex = _param.flex, key = _param.key, onClick = _param.onClick, _param_alignItems = _param.alignItems, alignItems = _param_alignItems === void 0 ? AlignItems.center : _param_alignItems, _param_justifyContent = _param.justifyContent, justifyContent = _param_justifyContent === void 0 ? JustifyContent.center : _param_justifyContent, _param_display = _param.display, display = _param_display === void 0 ? "flex" : _param_display, _param_width = _param.width, width = _param_width === void 0 ? Width.auto : _param_width, _param_flexWrap = _param.flexWrap, flexWrap = _param_flexWrap === void 0 ? FlexWrap.noWrap : _param_flexWrap, _param_height = _param.height, height = _param_height === void 0 ? Height.auto : _param_height, _param_border = _param.border, border = _param_border === void 0 ? false : _param_border, _param_flexDirection = _param.flexDirection, flexDirection = _param_flexDirection === void 0 ? FlexDirection.row : _param_flexDirection, _param_padding = _param.padding, padding = _param_padding === void 0 ? [
870
+ Spacing.none,
871
+ Spacing.none,
872
+ Spacing.none,
873
+ Spacing.none
874
+ ] : _param_padding, _param_gap = _param.gap, gap = _param_gap === void 0 ? Spacing.xSmall : _param_gap, _param_tag = _param.tag, tag = _param_tag === void 0 ? LayoutTags.div : _param_tag, rest = _object_without_properties(_param, [
875
+ "className",
876
+ "style",
877
+ "children",
878
+ "flex",
879
+ "key",
880
+ "onClick",
881
+ "alignItems",
882
+ "justifyContent",
883
+ "display",
884
+ "width",
885
+ "flexWrap",
886
+ "height",
887
+ "border",
888
+ "flexDirection",
889
+ "padding",
890
+ "gap",
891
+ "tag"
892
+ ]);
893
+ var Tag = tag;
894
+ var _padding_, _padding_1, _padding_2, _ref;
895
+ return /*#__PURE__*/ React__default.createElement(Tag, _object_spread_props$2(_object_spread$i({
896
+ // id="globalValues"
897
+ key: key,
898
+ className: className,
899
+ onClick: onClick
900
+ }, rest), {
901
+ style: _object_spread$i({
902
+ flexWrap: flexWrap,
903
+ display: display,
904
+ gap: "var(--gap-".concat(gap, ")"),
905
+ width: '100%',
906
+ paddingTop: "var(--p-".concat(padding[0], ")"),
907
+ paddingRight: "var(--p-".concat((_padding_ = padding[1]) !== null && _padding_ !== void 0 ? _padding_ : padding[0], ")"),
908
+ paddingBottom: "var(--p-".concat((_padding_1 = padding[2]) !== null && _padding_1 !== void 0 ? _padding_1 : padding[0], ")"),
909
+ paddingLeft: "var(--p-".concat((_ref = (_padding_2 = padding[3]) !== null && _padding_2 !== void 0 ? _padding_2 : padding[1]) !== null && _ref !== void 0 ? _ref : padding[0], ")"),
910
+ border: border ? '2px solid #999' : '',
911
+ maxWidth: width,
912
+ height: height,
913
+ flexDirection: flexDirection === FlexDirection.row ? FlexDirection.row : FlexDirection.column,
914
+ justifyContent: "".concat(justifyContent),
915
+ alignItems: "".concat(alignItems),
916
+ flex: flex ? flex : ''
917
+ }, style)
918
+ }), children);
919
+ }
920
+ // Object.assign(Layout, width, height, ALIGN, JUSTIFY, DIRECTION, SPACING);
921
+ Box.display = BoxDisplay;
922
+ Box.alignItems = AlignItems;
923
+ Box.justifyContent = JustifyContent;
924
+ Box.gap = Spacing;
925
+ Box.flexDirection = FlexDirection;
926
+ Box.width = Width;
927
+ Box.height = Height;
928
+ Box.padding = Spacing;
929
+ Box.flexWrap = FlexWrap;
930
+ Box.tag = LayoutTags;
931
+
932
+ function _define_property$h(obj, key, value) {
933
+ if (key in obj) {
934
+ Object.defineProperty(obj, key, {
935
+ value: value,
936
+ enumerable: true,
937
+ configurable: true,
938
+ writable: true
939
+ });
940
+ } else {
941
+ obj[key] = value;
942
+ }
943
+ return obj;
944
+ }
945
+ function _object_spread$h(target) {
946
+ for(var i = 1; i < arguments.length; i++){
947
+ var source = arguments[i] != null ? arguments[i] : {};
948
+ var ownKeys = Object.keys(source);
949
+ if (typeof Object.getOwnPropertySymbols === "function") {
950
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
951
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
952
+ }));
953
+ }
954
+ ownKeys.forEach(function(key) {
955
+ _define_property$h(target, key, source[key]);
956
+ });
957
+ }
958
+ return target;
959
+ }
960
+ function Label(param) {
961
+ var value = param.value, id = param.id, className = param.className, style = param.style, _param_color = param.color, color = _param_color === void 0 ? 'var(--color-text)' : _param_color, _param_padding = param.padding, padding = _param_padding === void 0 ? [
962
+ Spacing.none
963
+ ] : _param_padding, children = param.children, htmlFor = param.htmlFor, _param_fontSize = param.fontSize, fontSize = _param_fontSize === void 0 ? FontSizes.medium : _param_fontSize;
964
+ var _padding_, _padding_1, _padding_2, _ref;
965
+ return /*#__PURE__*/ React.createElement("label", {
966
+ id: id,
967
+ htmlFor: htmlFor,
968
+ style: _object_spread$h({
969
+ fontSize: "var(--text-".concat(fontSize),
970
+ paddingTop: "var(--p-".concat(padding[0], ")"),
971
+ paddingRight: "var(--p-".concat((_padding_ = padding[1]) !== null && _padding_ !== void 0 ? _padding_ : padding[0], ")"),
972
+ paddingBottom: "var(--p-".concat((_padding_1 = padding[2]) !== null && _padding_1 !== void 0 ? _padding_1 : padding[0], ")"),
973
+ paddingLeft: "var(--p-".concat((_ref = (_padding_2 = padding[3]) !== null && _padding_2 !== void 0 ? _padding_2 : padding[1]) !== null && _ref !== void 0 ? _ref : padding[0], ")"),
974
+ WebkitUserSelect: 'none',
975
+ userSelect: 'none',
976
+ color: color
977
+ }, style),
978
+ className: classnames('Label', 'select-none', className)
979
+ }, value ? value : children);
980
+ }
981
+ Label.padding = Spacing;
982
+ Label.fontSize = FontSizes;
983
+
984
+ function _define_property$g(obj, key, value) {
985
+ if (key in obj) {
986
+ Object.defineProperty(obj, key, {
987
+ value: value,
988
+ enumerable: true,
989
+ configurable: true,
990
+ writable: true
991
+ });
992
+ } else {
993
+ obj[key] = value;
994
+ }
995
+ return obj;
996
+ }
997
+ function _object_spread$g(target) {
998
+ for(var i = 1; i < arguments.length; i++){
999
+ var source = arguments[i] != null ? arguments[i] : {};
1000
+ var ownKeys = Object.keys(source);
1001
+ if (typeof Object.getOwnPropertySymbols === "function") {
1002
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
1003
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
1004
+ }));
1005
+ }
1006
+ ownKeys.forEach(function(key) {
1007
+ _define_property$g(target, key, source[key]);
1008
+ });
1009
+ }
1010
+ return target;
1011
+ }
759
1012
  function Dropdown(param) {
760
- var label = param.label, className = param.className, onChange = param.onChange, id = param.id, style = param.style;
1013
+ var label = param.label, _param_color = param.color, color = _param_color === void 0 ? 'var(--color-text)' : _param_color, _param_labelColor = param.labelColor, labelColor = _param_labelColor === void 0 ? 'var(--color-text)' : _param_labelColor, className = param.className, onChange = param.onChange, id = param.id, style = param.style;
761
1014
  var _useDropdown = useDropdown({
762
1015
  id: id,
763
1016
  label: label,
764
1017
  onChange: onChange
765
1018
  }), value = _useDropdown.value, choices = _useDropdown.choices, onMouseEnter = _useDropdown.onMouseEnter, handleChange = _useDropdown.handleChange;
766
- return /*#__PURE__*/ React__default.createElement("div", {
1019
+ return /*#__PURE__*/ React__default.createElement(Box, {
1020
+ flexDirection: Box.flexDirection.column,
767
1021
  onMouseEnter: onMouseEnter
768
1022
  }, /*#__PURE__*/ React__default.createElement(Listbox, {
769
1023
  value: value,
770
1024
  onChange: handleChange
771
1025
  }, /*#__PURE__*/ React__default.createElement(ListboxButton, {
772
1026
  className: classnames('Dropdown-button', className),
773
- style: style,
1027
+ style: _object_spread$g({
1028
+ color: "".concat(color ? color : 'initial')
1029
+ }, style),
774
1030
  "aria-label": "Assignee",
775
1031
  onChange: function(value) {
776
1032
  return console.log(value);
@@ -778,14 +1034,29 @@ function Dropdown(param) {
778
1034
  }, value), /*#__PURE__*/ React__default.createElement(ListboxOptions, {
779
1035
  anchor: "bottom",
780
1036
  portal: false,
781
- className: "Dropdown-items z-10"
1037
+ className: "Dropdown-items z-10",
1038
+ style: {
1039
+ color: "".concat(color ? color : 'initial')
1040
+ }
782
1041
  }, choices === null || choices === void 0 ? void 0 : choices.map(function(item, i) {
783
1042
  return /*#__PURE__*/ React__default.createElement(ListboxOption, {
784
1043
  className: classnames('Dropdown-item'),
785
1044
  key: item,
786
- value: i
1045
+ value: item,
1046
+ style: {
1047
+ color: "".concat(color ? color : 'initial')
1048
+ }
787
1049
  }, item);
788
- }))));
1050
+ }))), /*#__PURE__*/ React__default.createElement(Label, {
1051
+ padding: [
1052
+ Label.padding.mediumSmall
1053
+ ],
1054
+ fontSize: Label.fontSize.xSmall,
1055
+ value: label,
1056
+ style: {
1057
+ color: "".concat(labelColor ? labelColor : 'initial')
1058
+ }
1059
+ }));
789
1060
  }
790
1061
 
791
1062
  var validate = function(param) {
@@ -871,7 +1142,7 @@ function _array_like_to_array$9(arr, len) {
871
1142
  function _array_with_holes$9(arr) {
872
1143
  if (Array.isArray(arr)) return arr;
873
1144
  }
874
- function _define_property$h(obj, key, value) {
1145
+ function _define_property$f(obj, key, value) {
875
1146
  if (key in obj) {
876
1147
  Object.defineProperty(obj, key, {
877
1148
  value: value,
@@ -911,7 +1182,7 @@ function _iterable_to_array_limit$9(arr, i) {
911
1182
  function _non_iterable_rest$9() {
912
1183
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
913
1184
  }
914
- function _object_spread$h(target) {
1185
+ function _object_spread$f(target) {
915
1186
  for(var i = 1; i < arguments.length; i++){
916
1187
  var source = arguments[i] != null ? arguments[i] : {};
917
1188
  var ownKeys = Object.keys(source);
@@ -921,7 +1192,7 @@ function _object_spread$h(target) {
921
1192
  }));
922
1193
  }
923
1194
  ownKeys.forEach(function(key) {
924
- _define_property$h(target, key, source[key]);
1195
+ _define_property$f(target, key, source[key]);
925
1196
  });
926
1197
  }
927
1198
  return target;
@@ -1053,7 +1324,7 @@ function Input(param) {
1053
1324
  id: id,
1054
1325
  ref: inputRef,
1055
1326
  className: classnames('TextInput', hasIncompleteValue || hasError ? 'is-blinking' : '', className),
1056
- style: _object_spread$h({
1327
+ style: _object_spread$f({
1057
1328
  // TODO
1058
1329
  // color: hasError ? 'red' : hasIncompleteValue ? '#999' : textColor
1059
1330
  color: hasError ? 'red' : textColor,
@@ -1085,12 +1356,6 @@ var SliderType = /*#__PURE__*/ function(SliderType) {
1085
1356
  SliderType["custom"] = "custom";
1086
1357
  return SliderType;
1087
1358
  }({});
1088
- var SliderRotationBehavior = /*#__PURE__*/ function(SliderRotationBehavior) {
1089
- SliderRotationBehavior["rotateIndicator"] = "rotateIndicator";
1090
- SliderRotationBehavior["rotateKnob"] = "rotateKnob";
1091
- SliderRotationBehavior["noRotation"] = "noRotation";
1092
- return SliderRotationBehavior;
1093
- }({});
1094
1359
 
1095
1360
  var clamp = function(val) {
1096
1361
  var min = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0, max = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1;
@@ -1291,12 +1556,24 @@ var useSlider = function(param) {
1291
1556
  }
1292
1557
  if (down) {
1293
1558
  var deltaVal = delta[1] * -1;
1559
+ var getNormalisedInterval = function() {
1560
+ if (properties === null || properties === void 0 ? void 0 : properties.interval) {
1561
+ if ((properties === null || properties === void 0 ? void 0 : properties.interval) >= 1) {
1562
+ return (properties === null || properties === void 0 ? void 0 : properties.interval) * 0.01;
1563
+ } else {
1564
+ return properties === null || properties === void 0 ? void 0 : properties.interval;
1565
+ }
1566
+ } else {
1567
+ return 0.01;
1568
+ }
1569
+ };
1570
+ var normalisedInterval = getNormalisedInterval();
1294
1571
  var _normalisedValueRef_current;
1295
1572
  var newValue = ((_normalisedValueRef_current = normalisedValueRef.current) !== null && _normalisedValueRef_current !== void 0 ? _normalisedValueRef_current : 0) + deltaVal * // (properties?.interval && properties?.interval.toString().length > 4
1296
1573
  // ? 4
1297
1574
  // : 0.4) *
1298
- ((properties === null || properties === void 0 ? void 0 : properties.interval) || 0.01);
1299
- setNormalisedState(newValue);
1575
+ normalisedInterval;
1576
+ setNormalisedState(clamp(newValue));
1300
1577
  }
1301
1578
  if (last) {
1302
1579
  //@ts-expect-error
@@ -1351,7 +1628,7 @@ var useSlider = function(param) {
1351
1628
  } else {
1352
1629
  newValue = x / rect.width;
1353
1630
  }
1354
- setNormalisedState(newValue);
1631
+ setNormalisedState(clamp(newValue));
1355
1632
  }
1356
1633
  if (last) {
1357
1634
  //@ts-expect-error
@@ -1386,229 +1663,7 @@ var useSlider = function(param) {
1386
1663
  };
1387
1664
  };
1388
1665
 
1389
- var JustifyContent = /*#__PURE__*/ function(JustifyContent) {
1390
- JustifyContent["flexStart"] = "flex-start";
1391
- JustifyContent["flexEnd"] = "flex-end";
1392
- JustifyContent["center"] = "center";
1393
- JustifyContent["spaceBetween"] = "space-between";
1394
- JustifyContent["spaceAround"] = "space-around";
1395
- JustifyContent["spaceEvenly"] = "space-evenly";
1396
- return JustifyContent;
1397
- }({});
1398
- var AlignItems = /*#__PURE__*/ function(AlignItems) {
1399
- AlignItems["flexStart"] = "flex-start";
1400
- AlignItems["flexEnd"] = "flex-end";
1401
- AlignItems["center"] = "center";
1402
- AlignItems["stretch"] = "stretch";
1403
- AlignItems["baseline"] = "baseline";
1404
- return AlignItems;
1405
- }({});
1406
- var LayoutTags = /*#__PURE__*/ function(LayoutTags) {
1407
- LayoutTags["header"] = "header";
1408
- LayoutTags["main"] = "main";
1409
- LayoutTags["section"] = "section";
1410
- LayoutTags["div"] = "div";
1411
- LayoutTags["footer"] = "footer";
1412
- LayoutTags["ul"] = "ul";
1413
- LayoutTags["li"] = "li";
1414
- return LayoutTags;
1415
- }({});
1416
-
1417
- function _define_property$g(obj, key, value) {
1418
- if (key in obj) {
1419
- Object.defineProperty(obj, key, {
1420
- value: value,
1421
- enumerable: true,
1422
- configurable: true,
1423
- writable: true
1424
- });
1425
- } else {
1426
- obj[key] = value;
1427
- }
1428
- return obj;
1429
- }
1430
- function _object_spread$g(target) {
1431
- for(var i = 1; i < arguments.length; i++){
1432
- var source = arguments[i] != null ? arguments[i] : {};
1433
- var ownKeys = Object.keys(source);
1434
- if (typeof Object.getOwnPropertySymbols === "function") {
1435
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
1436
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
1437
- }));
1438
- }
1439
- ownKeys.forEach(function(key) {
1440
- _define_property$g(target, key, source[key]);
1441
- });
1442
- }
1443
- return target;
1444
- }
1445
- function ownKeys$2(object, enumerableOnly) {
1446
- var keys = Object.keys(object);
1447
- if (Object.getOwnPropertySymbols) {
1448
- var symbols = Object.getOwnPropertySymbols(object);
1449
- keys.push.apply(keys, symbols);
1450
- }
1451
- return keys;
1452
- }
1453
- function _object_spread_props$2(target, source) {
1454
- source = source != null ? source : {};
1455
- if (Object.getOwnPropertyDescriptors) {
1456
- Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
1457
- } else {
1458
- ownKeys$2(Object(source)).forEach(function(key) {
1459
- Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
1460
- });
1461
- }
1462
- return target;
1463
- }
1464
- function _object_without_properties(source, excluded) {
1465
- if (source == null) return {};
1466
- var target = _object_without_properties_loose(source, excluded);
1467
- var key, i;
1468
- if (Object.getOwnPropertySymbols) {
1469
- var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
1470
- for(i = 0; i < sourceSymbolKeys.length; i++){
1471
- key = sourceSymbolKeys[i];
1472
- if (excluded.indexOf(key) >= 0) continue;
1473
- if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
1474
- target[key] = source[key];
1475
- }
1476
- }
1477
- return target;
1478
- }
1479
- function _object_without_properties_loose(source, excluded) {
1480
- if (source == null) return {};
1481
- var target = {};
1482
- var sourceKeys = Object.keys(source);
1483
- var key, i;
1484
- for(i = 0; i < sourceKeys.length; i++){
1485
- key = sourceKeys[i];
1486
- if (excluded.indexOf(key) >= 0) continue;
1487
- target[key] = source[key];
1488
- }
1489
- return target;
1490
- }
1491
- var BoxDisplay = /*#__PURE__*/ function(BoxDisplay) {
1492
- BoxDisplay["flex"] = "flex";
1493
- BoxDisplay["block"] = "block";
1494
- return BoxDisplay;
1495
- }(BoxDisplay || {});
1496
- function Box(_param) {
1497
- var className = _param.className, style = _param.style, children = _param.children, flex = _param.flex, key = _param.key, onClick = _param.onClick, _param_alignItems = _param.alignItems, alignItems = _param_alignItems === void 0 ? AlignItems.center : _param_alignItems, _param_justifyContent = _param.justifyContent, justifyContent = _param_justifyContent === void 0 ? JustifyContent.center : _param_justifyContent, _param_display = _param.display, display = _param_display === void 0 ? "flex" : _param_display, _param_width = _param.width, width = _param_width === void 0 ? Width.auto : _param_width, _param_flexWrap = _param.flexWrap, flexWrap = _param_flexWrap === void 0 ? FlexWrap.noWrap : _param_flexWrap, _param_height = _param.height, height = _param_height === void 0 ? Height.auto : _param_height, _param_border = _param.border, border = _param_border === void 0 ? false : _param_border, _param_flexDirection = _param.flexDirection, flexDirection = _param_flexDirection === void 0 ? FlexDirection.row : _param_flexDirection, _param_padding = _param.padding, padding = _param_padding === void 0 ? [
1498
- Spacing.none,
1499
- Spacing.none,
1500
- Spacing.none,
1501
- Spacing.none
1502
- ] : _param_padding, _param_gap = _param.gap, gap = _param_gap === void 0 ? Spacing.xSmall : _param_gap, _param_tag = _param.tag, tag = _param_tag === void 0 ? LayoutTags.div : _param_tag, rest = _object_without_properties(_param, [
1503
- "className",
1504
- "style",
1505
- "children",
1506
- "flex",
1507
- "key",
1508
- "onClick",
1509
- "alignItems",
1510
- "justifyContent",
1511
- "display",
1512
- "width",
1513
- "flexWrap",
1514
- "height",
1515
- "border",
1516
- "flexDirection",
1517
- "padding",
1518
- "gap",
1519
- "tag"
1520
- ]);
1521
- var Tag = tag;
1522
- var _padding_, _padding_1, _padding_2, _ref;
1523
- return /*#__PURE__*/ React__default.createElement(Tag, _object_spread_props$2(_object_spread$g({
1524
- // id="globalValues"
1525
- key: key,
1526
- className: className,
1527
- onClick: onClick
1528
- }, rest), {
1529
- style: _object_spread$g({
1530
- flexWrap: flexWrap,
1531
- display: display,
1532
- gap: "var(--gap-".concat(gap, ")"),
1533
- width: '100%',
1534
- paddingTop: "var(--p-".concat(padding[0], ")"),
1535
- paddingRight: "var(--p-".concat((_padding_ = padding[1]) !== null && _padding_ !== void 0 ? _padding_ : padding[0], ")"),
1536
- paddingBottom: "var(--p-".concat((_padding_1 = padding[2]) !== null && _padding_1 !== void 0 ? _padding_1 : padding[0], ")"),
1537
- paddingLeft: "var(--p-".concat((_ref = (_padding_2 = padding[3]) !== null && _padding_2 !== void 0 ? _padding_2 : padding[1]) !== null && _ref !== void 0 ? _ref : padding[0], ")"),
1538
- border: border ? '2px solid #999' : '',
1539
- maxWidth: width,
1540
- height: height,
1541
- flexDirection: flexDirection === FlexDirection.row ? FlexDirection.row : FlexDirection.column,
1542
- justifyContent: "".concat(justifyContent),
1543
- alignItems: "".concat(alignItems),
1544
- flex: flex ? flex : ''
1545
- }, style)
1546
- }), children);
1547
- }
1548
- // Object.assign(Layout, width, height, ALIGN, JUSTIFY, DIRECTION, SPACING);
1549
- Box.display = BoxDisplay;
1550
- Box.alignItems = AlignItems;
1551
- Box.justifyContent = JustifyContent;
1552
- Box.gap = Spacing;
1553
- Box.flexDirection = FlexDirection;
1554
- Box.width = Width;
1555
- Box.height = Height;
1556
- Box.padding = Spacing;
1557
- Box.flexWrap = FlexWrap;
1558
- Box.tag = LayoutTags;
1559
-
1560
- function _define_property$f(obj, key, value) {
1561
- if (key in obj) {
1562
- Object.defineProperty(obj, key, {
1563
- value: value,
1564
- enumerable: true,
1565
- configurable: true,
1566
- writable: true
1567
- });
1568
- } else {
1569
- obj[key] = value;
1570
- }
1571
- return obj;
1572
- }
1573
- function _object_spread$f(target) {
1574
- for(var i = 1; i < arguments.length; i++){
1575
- var source = arguments[i] != null ? arguments[i] : {};
1576
- var ownKeys = Object.keys(source);
1577
- if (typeof Object.getOwnPropertySymbols === "function") {
1578
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
1579
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
1580
- }));
1581
- }
1582
- ownKeys.forEach(function(key) {
1583
- _define_property$f(target, key, source[key]);
1584
- });
1585
- }
1586
- return target;
1587
- }
1588
- function Label(param) {
1589
- var value = param.value, id = param.id, className = param.className, style = param.style, _param_padding = param.padding, padding = _param_padding === void 0 ? [
1590
- Spacing.none
1591
- ] : _param_padding, children = param.children, htmlFor = param.htmlFor, _param_fontSize = param.fontSize, fontSize = _param_fontSize === void 0 ? FontSizes.medium : _param_fontSize;
1592
- var _padding_, _padding_1, _padding_2, _ref;
1593
- return /*#__PURE__*/ React.createElement("label", {
1594
- id: id,
1595
- htmlFor: htmlFor,
1596
- style: _object_spread$f({
1597
- fontSize: "var(--text-".concat(fontSize),
1598
- paddingTop: "var(--p-".concat(padding[0], ")"),
1599
- paddingRight: "var(--p-".concat((_padding_ = padding[1]) !== null && _padding_ !== void 0 ? _padding_ : padding[0], ")"),
1600
- paddingBottom: "var(--p-".concat((_padding_1 = padding[2]) !== null && _padding_1 !== void 0 ? _padding_1 : padding[0], ")"),
1601
- paddingLeft: "var(--p-".concat((_ref = (_padding_2 = padding[3]) !== null && _padding_2 !== void 0 ? _padding_2 : padding[1]) !== null && _ref !== void 0 ? _ref : padding[0], ")"),
1602
- WebkitUserSelect: 'none',
1603
- userSelect: 'none'
1604
- }, style),
1605
- className: classnames('Label', 'select-none', className)
1606
- }, value ? value : children);
1607
- }
1608
- Label.padding = Spacing;
1609
- Label.fontSize = FontSizes;
1610
-
1611
- var css_248z$6 = ".RotarySlider {\n position: relative;\n height: 50px;\n width: 50px;\n border-radius: 50%;\n aspect-ratio: 1 / 1;\n}\n\n.RotarySlider-Inner {\n height: 100%;\n width: 100%;\n right: 0;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: var(--bg-popover);\n border-radius: 50%;\n}\n\n.RotarySlider-Indicator {\n position: absolute;\n top: 0;\n right: 0;\n left: 50%;\n width: var(--spacing-xs);\n height: 50%;\n transform: translate(-50%, 0) rotate(0) skewX(0) skewY(0) scaleX(1) scaleY(1);\n}\n\n.RotarySlider-center-marker {\n border-color: var(--bg-popover) transparent var(--bg-popover) transparent;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 7px 10px 7px;\n transform: rotate(180deg);\n padding-bottom: var(--spacing-sm);\n}\n";
1666
+ var css_248z$6 = ".RotarySlider {\n position: relative;\n border-radius: 50%;\n aspect-ratio: 1 / 1;\n}\n\n.RotarySlider-Inner {\n height: 100%;\n width: 100%;\n right: 0;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: var(--bg-popover);\n border-radius: 50%;\n}\n\n.RotarySlider-Indicator {\n position: absolute;\n top: 0;\n right: 0;\n left: 50%;\n width: var(--spacing-xs);\n height: 50%;\n transform: translate(-50%, 0) rotate(0) skewX(0) skewY(0) scaleX(1) scaleY(1);\n}\n\n.RotarySlider-center-marker {\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 0 5px 8px 5px;\n transform: rotate(180deg);\n padding-bottom: var(--spacing-sm);\n}\n\n.ProgressCircle-wrapper {\n position: relative;\n}\n.ProgressCircle {\n fill: none;\n}\n\n.ProgressCircle-value {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n text-align: center;\n}\n\n.ProgressCircle-bg {\n stroke-width: 3px;\n transform-origin: center;\n transform: rotate(135deg);\n stroke-linecap: round;\n font-size: var(--text-sm);\n}\n.ProgressCircle-fg {\n stroke-width: 3px;\n /* stroke-dasharray: 75; */\n /* stroke-dashoffset: calc(880 - (660 * 0) / 100); */\n transform-origin: center;\n stroke-linecap: round;\n}\n";
1612
1667
  styleInject(css_248z$6);
1613
1668
 
1614
1669
  function _define_property$e(obj, key, value) {
@@ -1658,14 +1713,67 @@ function _object_spread_props$1(target, source) {
1658
1713
  }
1659
1714
  return target;
1660
1715
  }
1716
+ var ProgressCircle = function(param) {
1717
+ var color = param.color, bgColor = param.bgColor, _param_width = param.width, width = _param_width === void 0 ? 40 : _param_width, _param_height = param.height, height = _param_height === void 0 ? 40 : _param_height, _param_strokeWidth = param.strokeWidth, strokeWidth = _param_strokeWidth === void 0 ? 3 : _param_strokeWidth, _param_polarity = param.polarity, polarity = _param_polarity === void 0 ? Polarity.linear : _param_polarity, value = param.value;
1718
+ var cx = width / 2;
1719
+ var cy = height / 2;
1720
+ var radius = (width - strokeWidth * 2) / 2;
1721
+ var circ = 2 * 3.14 * radius;
1722
+ var activeZone = circ - circ * 0.25;
1723
+ var linearOffset = circ - activeZone * (value * 100) / 100;
1724
+ var bipolarOffset = circ - activeZone * (value * 100 - 50) / 100;
1725
+ return /*#__PURE__*/ React__default.createElement("svg", {
1726
+ className: "ProgressCircle",
1727
+ width: width,
1728
+ height: height
1729
+ }, /*#__PURE__*/ React__default.createElement("circle", {
1730
+ className: "ProgressCircle-bg",
1731
+ cx: cx,
1732
+ cy: cy,
1733
+ r: radius,
1734
+ style: {
1735
+ stroke: bgColor,
1736
+ strokeWidth: strokeWidth,
1737
+ strokeDasharray: "".concat(activeZone)
1738
+ }
1739
+ }), polarity === Polarity.bipolar ? /*#__PURE__*/ React__default.createElement("circle", {
1740
+ id: "circle2",
1741
+ className: "ProgressCircle-fg",
1742
+ cx: cx,
1743
+ cy: cy,
1744
+ r: radius,
1745
+ style: {
1746
+ stroke: color,
1747
+ strokeWidth: strokeWidth,
1748
+ strokeLinecap: 'round',
1749
+ strokeDasharray: circ,
1750
+ transform: "rotate(270deg)",
1751
+ strokeDashoffset: 107.5
1752
+ }
1753
+ }) : null, /*#__PURE__*/ React__default.createElement("circle", {
1754
+ id: "circle2",
1755
+ className: "ProgressCircle-fg",
1756
+ cx: cx,
1757
+ cy: cy,
1758
+ r: radius,
1759
+ style: {
1760
+ stroke: color,
1761
+ strokeWidth: strokeWidth,
1762
+ strokeLinecap: 'round',
1763
+ strokeDasharray: circ,
1764
+ transform: "rotate(".concat(polarity === Polarity.linear ? '135deg' : '270deg', ")"),
1765
+ strokeDashoffset: polarity === Polarity.linear ? linearOffset : bipolarOffset
1766
+ }
1767
+ }));
1768
+ };
1661
1769
  function RotarySlider(param) {
1662
- var _param_polarity = param.polarity, polarity = _param_polarity === void 0 ? Polarity.linear : _param_polarity, label = param.label, className = param.className, id = param.id, onChange = param.onChange, _param_rotationBehavior = param.rotationBehavior, rotationBehavior = _param_rotationBehavior === void 0 ? SliderRotationBehavior.rotateIndicator : _param_rotationBehavior, _param_mockInitialNormalisedValue = param.// Mocks the initial scaled value of the slider for web veiws outside of JUCE
1770
+ var _param_polarity = param.polarity, polarity = _param_polarity === void 0 ? Polarity.linear : _param_polarity, label = param.label, className = param.className, id = param.id, onChange = param.onChange; param.rotationBehavior; var _param_mockInitialNormalisedValue = param.// Mocks the initial scaled value of the slider for web veiws outside of JUCE
1663
1771
  mockInitialNormalisedValue, mockInitialNormalisedValue = _param_mockInitialNormalisedValue === void 0 ? 0 : _param_mockInitialNormalisedValue, _param_isRandomizable = param.isRandomizable, isRandomizable = _param_isRandomizable === void 0 ? false : _param_isRandomizable, _param_mockProperties = param.mockProperties, mockProperties = _param_mockProperties === void 0 ? {
1664
1772
  start: 20.0,
1665
1773
  end: 15000.0,
1666
1774
  interval: 0.1,
1667
1775
  skew: 0.7
1668
- } : _param_mockProperties, _param_color = param.color, color = _param_color === void 0 ? 'var(--color-gray-400)' : _param_color, style = param.style;
1776
+ } : _param_mockProperties; param.labelColor; var _param_color = param.color, color = _param_color === void 0 ? 'var(--color-gray-500)' : _param_color, _param_bgColor = param.bgColor, bgColor = _param_bgColor === void 0 ? 'var(--color-gray-200)' : _param_bgColor, _param_width = param.width, width = _param_width === void 0 ? 40 : _param_width, _param_height = param.height, height = _param_height === void 0 ? 40 : _param_height, style = param.style;
1669
1777
  var _useSlider = useSlider({
1670
1778
  id: id,
1671
1779
  label: label,
@@ -1673,33 +1781,43 @@ function RotarySlider(param) {
1673
1781
  mockInitialNormalisedValue: mockInitialNormalisedValue,
1674
1782
  onChange: onChange,
1675
1783
  isRandomizable: isRandomizable
1676
- }), bindDrag = _useSlider.bindDrag, normalisedValue = _useSlider.normalisedValue, onMouseEnter = _useSlider.onMouseEnter;
1784
+ }), bindDrag = _useSlider.bindDrag, normalisedValue = _useSlider.normalisedValue, scaledValue = _useSlider.scaledValue, onMouseEnter = _useSlider.onMouseEnter;
1785
+ console.log(id, 'IDIDDIDI');
1677
1786
  return /*#__PURE__*/ React__default.createElement(Box, {
1678
1787
  flexDirection: Box.flexDirection.column
1679
1788
  }, polarity === Polarity.bipolar && /*#__PURE__*/ React__default.createElement("div", {
1789
+ style: {
1790
+ borderColor: "".concat(color, " transparent ").concat(color, " transparent")
1791
+ },
1680
1792
  className: classnames('RotarySlider-center-marker')
1681
1793
  }), /*#__PURE__*/ React__default.createElement("div", _object_spread_props$1(_object_spread$e({
1682
1794
  className: classnames('RotarySlider', polarity === Polarity.linear ? 'Slider-polarity-linear' : 'Slider-polarity-bipolar', className)
1683
1795
  }, bindDrag()), {
1684
1796
  onMouseEnter: onMouseEnter,
1685
1797
  style: _object_spread$e({
1686
- touchAction: 'none'
1798
+ touchAction: 'none',
1799
+ height: "".concat(height, "px"),
1800
+ width: "".concat(width, "px")
1687
1801
  }, style)
1688
1802
  }), normalisedValue !== null ? /*#__PURE__*/ React__default.createElement("div", {
1689
- className: classnames('RotarySlider-Inner'),
1803
+ className: "ProgressCircle-wrapper"
1804
+ }, /*#__PURE__*/ React__default.createElement(ProgressCircle, {
1805
+ value: normalisedValue,
1806
+ polarity: polarity,
1807
+ color: bgColor,
1808
+ bgColor: color
1809
+ }), /*#__PURE__*/ React__default.createElement(Label, {
1810
+ className: "ProgressCircle-value",
1811
+ color: "var(--color-gray-200)",
1812
+ fontSize: Label.fontSize.xSmall,
1690
1813
  style: {
1691
- rotate: rotationBehavior === SliderRotationBehavior.rotateIndicator ? "".concat(polarity === Polarity.linear ? normalisedValue : normalisedValue + 0.5, "turn") : ''
1814
+ fontWeight: 'bold'
1692
1815
  }
1693
- }, /*#__PURE__*/ React__default.createElement("div", {
1694
- className: classnames('RotarySlider-Indicator'),
1695
- style: _object_spread$e({
1696
- backgroundColor: color
1697
- }, style)
1698
- })) : ''), /*#__PURE__*/ React__default.createElement(Label, {
1816
+ }, scaledValue)) : ''), /*#__PURE__*/ React__default.createElement(Label, {
1699
1817
  padding: [
1700
1818
  Label.padding.mediumSmall
1701
1819
  ],
1702
- fontSize: Label.fontSize.small,
1820
+ fontSize: Label.fontSize.xSmall,
1703
1821
  value: label
1704
1822
  }));
1705
1823
  }
@@ -1801,7 +1919,8 @@ function Slider(param) {
1801
1919
  Label.padding.mediumSmall
1802
1920
  ],
1803
1921
  fontSize: Label.fontSize.small,
1804
- value: label
1922
+ value: label,
1923
+ color: color
1805
1924
  }));
1806
1925
  }
1807
1926
  Slider.sliderType = SliderType;
@@ -3877,7 +3996,7 @@ function ModMatrixToggleCell(param) {
3877
3996
  var modifier = param.modifier, color = param.color, style = param.style;
3878
3997
  var _useDropdown = useDropdown({
3879
3998
  id: modifier
3880
- }), value = _useDropdown.value, handleChange = _useDropdown.handleChange;
3999
+ }), index = _useDropdown.index, choices = _useDropdown.choices, handleChange = _useDropdown.handleChange;
3881
4000
  return /*#__PURE__*/ React__default.createElement(Box, {
3882
4001
  className: "ModMatrixCell ModMatrixToggleCell",
3883
4002
  justifyContent: Box.justifyContent.flexEnd,
@@ -3889,8 +4008,8 @@ function ModMatrixToggleCell(param) {
3889
4008
  }, style),
3890
4009
  height: '2.5rem',
3891
4010
  onClick: function() {
3892
- var newValue = Math.abs(value - 1);
3893
- handleChange(newValue);
4011
+ var newIndex = Math.abs(index - 1);
4012
+ handleChange(choices[newIndex]);
3894
4013
  }
3895
4014
  }, /*#__PURE__*/ React__default.createElement(Box, {
3896
4015
  flex: "1",
@@ -3901,7 +4020,7 @@ function ModMatrixToggleCell(param) {
3901
4020
  style: {
3902
4021
  pointerEvents: 'none'
3903
4022
  }
3904
- }, Object.keys(Polarity)[value] || '0')));
4023
+ }, Object.keys(Polarity)[index] || '0')));
3905
4024
  }
3906
4025
 
3907
4026
  function _define_property$2(obj, key, value) {
@@ -4409,6 +4528,56 @@ function ModMatrix(param) {
4409
4528
  })));
4410
4529
  }
4411
4530
 
4531
+ function LFOTab() {
4532
+ return /*#__PURE__*/ React__default.createElement(Box, {
4533
+ className: "LFOTab"
4534
+ }, /*#__PURE__*/ React__default.createElement(Dropdown, {
4535
+ labelColor: "var(--color-text)",
4536
+ color: "var(--color-brand)",
4537
+ id: "LFO1_Wave",
4538
+ label: "LFO1 Wave"
4539
+ }), /*#__PURE__*/ React__default.createElement(RotarySlider, {
4540
+ id: "LFO1_Hz",
4541
+ label: "LFO1 Hz"
4542
+ }), /*#__PURE__*/ React__default.createElement(RotarySlider, {
4543
+ id: "LFO1_Hz_Hi",
4544
+ label: "LFO1 Hz Hi"
4545
+ }), /*#__PURE__*/ React__default.createElement(Dropdown, {
4546
+ labelColor: "var(--color-text)",
4547
+ color: "var(--color-brand)",
4548
+ id: "LFO1_SyncRate",
4549
+ label: "LFO1 Sync Rate"
4550
+ }), /*#__PURE__*/ React__default.createElement(Dropdown, {
4551
+ labelColor: "var(--color-text)",
4552
+ color: "var(--color-brand)",
4553
+ id: "LFO1_SyncType",
4554
+ label: "LFO1 Sync Type"
4555
+ }), /*#__PURE__*/ React__default.createElement(RotarySlider, {
4556
+ id: "LFO1_Sixteenths",
4557
+ label: "LFO1 Sixteenths"
4558
+ }), /*#__PURE__*/ React__default.createElement(RotarySlider, {
4559
+ id: "LFO1_Thirds",
4560
+ label: "LFO1 Thirds"
4561
+ }), /*#__PURE__*/ React__default.createElement(RotarySlider, {
4562
+ polarity: RotarySlider.sliderPolarity.bipolar,
4563
+ id: "LFO1_Sync_Offset",
4564
+ label: "LFO1 Sync Offset"
4565
+ }), /*#__PURE__*/ React__default.createElement(RotarySlider, {
4566
+ polarity: RotarySlider.sliderPolarity.bipolar,
4567
+ id: "LFO1_Phase",
4568
+ label: "LFO1 Phase"
4569
+ }), /*#__PURE__*/ React__default.createElement(RotarySlider, {
4570
+ id: "LFO1_Width",
4571
+ label: "LFO1 Width"
4572
+ }), /*#__PURE__*/ React__default.createElement(RotarySlider, {
4573
+ id: "LFO1_Amp",
4574
+ label: "LFO1 Amp"
4575
+ }), /*#__PURE__*/ React__default.createElement(RotarySlider, {
4576
+ id: "LFO1_Rand",
4577
+ label: "LFO1 Rand"
4578
+ }));
4579
+ }
4580
+
4412
4581
  var css_248z = "/* Tab styles */\n/* TODO: Refactor to use utility classes? */\n/* TODO: Clean up */\n\n.ModuleFooter {\n overflow-y: scroll;\n}\n\n.ModuleFooter .Tabs-item {\n background: transparent;\n color: var(--color-text);\n font-family: var(--font-leagueSpartan);\n background: var(--color-gray-600);\n flex: 1 0 auto;\n}\n\n.ModuleFooter .Tabs-item:hover,\n.ModuleFooter .tabs-item:focus,\n.ModuleFooter .tabs-item:focus-visible {\n background: var(--color-gray-700);\n}\n\n.ModuleFooter .Tabs-item[data-headlessui-state='selected'] {\n background: var(--color-gray-700);\n}\n";
4413
4582
  styleInject(css_248z);
4414
4583
 
@@ -4620,9 +4789,6 @@ var ModMatrixTab = function() {
4620
4789
  var InputModTab = function() {
4621
4790
  return /*#__PURE__*/ React__default.createElement(Box, null, "InputModTab");
4622
4791
  };
4623
- var LFOsTab = function() {
4624
- return /*#__PURE__*/ React__default.createElement(Box, null, "LFOsTab");
4625
- };
4626
4792
  var SequencerTab = function() {
4627
4793
  return /*#__PURE__*/ React__default.createElement(Box, null, "SequencerTab");
4628
4794
  };
@@ -4739,7 +4905,7 @@ function ModuleFooter(param) {
4739
4905
  padding: [
4740
4906
  Box.padding.large
4741
4907
  ]
4742
- }, isTabSelected("ModMatrix") ? /*#__PURE__*/ React__default.createElement(ModMatrixTab, null) : '', isTabSelected("InputMod") ? /*#__PURE__*/ React__default.createElement(InputModTab, null) : '', isTabSelected("LFOs") ? /*#__PURE__*/ React__default.createElement(LFOsTab, null) : '', isTabSelected("Sequencer") ? /*#__PURE__*/ React__default.createElement(SequencerTab, null) : '', isTabSelected("Settings") ? /*#__PURE__*/ React__default.createElement(SettingsTab, null) : '')));
4908
+ }, isTabSelected("ModMatrix") ? /*#__PURE__*/ React__default.createElement(ModMatrixTab, null) : '', isTabSelected("InputMod") ? /*#__PURE__*/ React__default.createElement(InputModTab, null) : '', isTabSelected("LFOs") ? /*#__PURE__*/ React__default.createElement(LFOTab, null) : '', isTabSelected("Sequencer") ? /*#__PURE__*/ React__default.createElement(SequencerTab, null) : '', isTabSelected("Settings") ? /*#__PURE__*/ React__default.createElement(SettingsTab, null) : '')));
4743
4909
  }
4744
4910
 
4745
4911
  export { Slider as BarSlider, Box, Button, Dropdown, FontSizes, GlobalContextProvider, Heading, IconButton, IndicatorLight, Input, KeyValueDisplayScreen, Label, ModuleFooter, ModuleHeader, Oscilloscope, RotarySlider, SliderValue, Spacing, Tabs, clamp, decimalToPercent, defaultGlobalStateValue as defaultValue, normalisedToScaled, percentToDecimal, randomizeValue, scaledToNormalised as scaledTonormalised, useGlobalContext, useObservable, useSlider };