@antimatter-audio/antimatter-ui 10.15.2 → 10.16.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 (47) hide show
  1. package/dist/advanced/IconButton/IconButton.d.ts.map +1 -1
  2. package/dist/advanced/ModMatrix/ModMatrix.d.ts.map +1 -1
  3. package/dist/advanced/ModMatrix/ModMatrixCell.d.ts +3 -2
  4. package/dist/advanced/ModMatrix/ModMatrixCell.d.ts.map +1 -1
  5. package/dist/advanced/ModMatrix/ModMatrixRow.d.ts +2 -4
  6. package/dist/advanced/ModMatrix/ModMatrixRow.d.ts.map +1 -1
  7. package/dist/advanced/ModMatrix/ModMatrixToggleCell.d.ts +4 -2
  8. package/dist/advanced/ModMatrix/ModMatrixToggleCell.d.ts.map +1 -1
  9. package/dist/advanced/ModMatrix/utils.d.ts +16 -0
  10. package/dist/advanced/ModMatrix/utils.d.ts.map +1 -0
  11. package/dist/context/GlobalContextProvider.d.ts +21 -4
  12. package/dist/context/GlobalContextProvider.d.ts.map +1 -1
  13. package/dist/core/Button/Button.d.ts.map +1 -1
  14. package/dist/core/Dropdown/Dropdown.d.ts.map +1 -1
  15. package/dist/core/Icon/Icon.d.ts +21 -55
  16. package/dist/core/Icon/Icon.d.ts.map +1 -1
  17. package/dist/hooks/useCombobox.d.ts +1 -0
  18. package/dist/hooks/useCombobox.d.ts.map +1 -1
  19. package/dist/hooks/useDropdown.d.ts +3 -1
  20. package/dist/hooks/useDropdown.d.ts.map +1 -1
  21. package/dist/hooks/useSlider.d.ts +3 -2
  22. package/dist/hooks/useSlider.d.ts.map +1 -1
  23. package/dist/index.js +710 -349
  24. package/dist/index.js.map +1 -1
  25. package/dist/src/advanced/IconButton/IconButton.d.ts.map +1 -1
  26. package/dist/src/advanced/ModMatrix/ModMatrix.d.ts.map +1 -1
  27. package/dist/src/advanced/ModMatrix/ModMatrixCell.d.ts +3 -2
  28. package/dist/src/advanced/ModMatrix/ModMatrixCell.d.ts.map +1 -1
  29. package/dist/src/advanced/ModMatrix/ModMatrixRow.d.ts +2 -4
  30. package/dist/src/advanced/ModMatrix/ModMatrixRow.d.ts.map +1 -1
  31. package/dist/src/advanced/ModMatrix/ModMatrixToggleCell.d.ts +4 -2
  32. package/dist/src/advanced/ModMatrix/ModMatrixToggleCell.d.ts.map +1 -1
  33. package/dist/src/advanced/ModMatrix/utils.d.ts +16 -0
  34. package/dist/src/advanced/ModMatrix/utils.d.ts.map +1 -0
  35. package/dist/src/context/GlobalContextProvider.d.ts +21 -4
  36. package/dist/src/context/GlobalContextProvider.d.ts.map +1 -1
  37. package/dist/src/core/Button/Button.d.ts.map +1 -1
  38. package/dist/src/core/Dropdown/Dropdown.d.ts.map +1 -1
  39. package/dist/src/core/Icon/Icon.d.ts +21 -55
  40. package/dist/src/core/Icon/Icon.d.ts.map +1 -1
  41. package/dist/src/hooks/useCombobox.d.ts +1 -0
  42. package/dist/src/hooks/useCombobox.d.ts.map +1 -1
  43. package/dist/src/hooks/useDropdown.d.ts +3 -1
  44. package/dist/src/hooks/useDropdown.d.ts.map +1 -1
  45. package/dist/src/hooks/useSlider.d.ts +3 -2
  46. package/dist/src/hooks/useSlider.d.ts.map +1 -1
  47. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import React__default, { useEffect, useRef, useReducer, useCallback, createContext, useContext, useState } from 'react';
2
+ import React__default, { useRef, useReducer, useCallback, createContext, useContext, useEffect, useState } from 'react';
3
3
  import classnames from 'classnames';
4
4
  import { TabGroup, TabList, Tab, Listbox, ListboxButton, ListboxOptions, ListboxOption, Combobox, ComboboxInput, ComboboxButton, ComboboxOptions, ComboboxOption } from '@headlessui/react';
5
5
  import * as Juce from 'juce-framework-frontend';
@@ -159,164 +159,6 @@ var ButtonType = /*#__PURE__*/ function(ButtonType) {
159
159
  return ButtonType;
160
160
  }({});
161
161
 
162
- function _array_like_to_array$h(arr, len) {
163
- if (len == null || len > arr.length) len = arr.length;
164
- for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
165
- return arr2;
166
- }
167
- function _array_with_holes$g(arr) {
168
- if (Array.isArray(arr)) return arr;
169
- }
170
- function _define_property$k(obj, key, value) {
171
- if (key in obj) {
172
- Object.defineProperty(obj, key, {
173
- value: value,
174
- enumerable: true,
175
- configurable: true,
176
- writable: true
177
- });
178
- } else {
179
- obj[key] = value;
180
- }
181
- return obj;
182
- }
183
- function _iterable_to_array_limit$g(arr, i) {
184
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
185
- if (_i == null) return;
186
- var _arr = [];
187
- var _n = true;
188
- var _d = false;
189
- var _s, _e;
190
- try {
191
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
192
- _arr.push(_s.value);
193
- if (i && _arr.length === i) break;
194
- }
195
- } catch (err) {
196
- _d = true;
197
- _e = err;
198
- } finally{
199
- try {
200
- if (!_n && _i["return"] != null) _i["return"]();
201
- } finally{
202
- if (_d) throw _e;
203
- }
204
- }
205
- return _arr;
206
- }
207
- function _non_iterable_rest$g() {
208
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
209
- }
210
- function _object_spread$k(target) {
211
- for(var i = 1; i < arguments.length; i++){
212
- var source = arguments[i] != null ? arguments[i] : {};
213
- var ownKeys = Object.keys(source);
214
- if (typeof Object.getOwnPropertySymbols === "function") {
215
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
216
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
217
- }));
218
- }
219
- ownKeys.forEach(function(key) {
220
- _define_property$k(target, key, source[key]);
221
- });
222
- }
223
- return target;
224
- }
225
- function _sliced_to_array$g(arr, i) {
226
- return _array_with_holes$g(arr) || _iterable_to_array_limit$g(arr, i) || _unsupported_iterable_to_array$h(arr, i) || _non_iterable_rest$g();
227
- }
228
- function _unsupported_iterable_to_array$h(o, minLen) {
229
- if (!o) return;
230
- if (typeof o === "string") return _array_like_to_array$h(o, minLen);
231
- var n = Object.prototype.toString.call(o).slice(8, -1);
232
- if (n === "Object" && o.constructor) n = o.constructor.name;
233
- if (n === "Map" || n === "Set") return Array.from(n);
234
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$h(o, minLen);
235
- }
236
- function Button(param) {
237
- var disabled = param.disabled, text = param.text, id = param.id, className = param.className, style = param.style, onClick = param.onClick, children = param.children, _param_padding = param.padding, padding = _param_padding === void 0 ? [
238
- Spacing.small
239
- ] : _param_padding, _param_margin = param.margin, margin = _param_margin === void 0 ? [
240
- Spacing.none
241
- ] : _param_margin, _param_type = param.type, type = _param_type === void 0 ? ButtonType.latch : _param_type, _param_size = param.size, size = _param_size === void 0 ? ButtonSize.large : _param_size;
242
- var _React_useState = _sliced_to_array$g(React__default.useState(false), 2), isSelected = _React_useState[0], setIsSelected = _React_useState[1];
243
- var buttonState = Juce.getToggleState(id);
244
- var isLocalhost = window.location.hostname === 'localhost';
245
- // Update the local state when the ID changes
246
- useEffect(function() {
247
- setIsSelected(buttonState === null || buttonState === void 0 ? void 0 : buttonState.value);
248
- }, [
249
- id
250
- ]);
251
- // Sets up listeners to handle changes on the backend
252
- useEffect(function() {
253
- if (!isLocalhost && !onClick) {
254
- var valueListenerId = buttonState === null || buttonState === void 0 ? void 0 : buttonState.valueChangedEvent.addListener(function() {
255
- setIsSelected(buttonState === null || buttonState === void 0 ? void 0 : buttonState.value);
256
- });
257
- return function cleanup() {
258
- buttonState === null || buttonState === void 0 ? void 0 : buttonState.valueChangedEvent.removeListener(valueListenerId);
259
- };
260
- } else {
261
- return;
262
- }
263
- });
264
- var handleMouseDown = function(e) {
265
- if (!onClick) {
266
- e.preventDefault();
267
- if (type === ButtonType.momentary) {
268
- setIsSelected(true);
269
- buttonState.setValue(true);
270
- } else {
271
- setIsSelected(!isSelected);
272
- buttonState.setValue(!isSelected);
273
- }
274
- }
275
- };
276
- var handleMouseUp = function() {
277
- if (!onClick) {
278
- setIsSelected(false);
279
- buttonState.setValue(false);
280
- }
281
- };
282
- React__default.useEffect(function() {
283
- if (type === ButtonType.momentary && !onClick) {
284
- window.addEventListener('mouseup', handleMouseUp);
285
- return function() {
286
- window.removeEventListener('mouseup', handleMouseUp);
287
- };
288
- }
289
- return;
290
- }, [
291
- isSelected
292
- ]);
293
- var _padding_, _padding_1, _padding_2, _ref, _margin_, _margin_1, _margin_2, _ref1;
294
- return /*#__PURE__*/ React__default.createElement("button", {
295
- id: id,
296
- onMouseDown: handleMouseDown,
297
- disabled: disabled,
298
- onClick: onClick && onClick,
299
- style: _object_spread$k({
300
- paddingTop: "var(--p-".concat(padding[0], ")"),
301
- paddingRight: "var(--p-".concat((_padding_ = padding[1]) !== null && _padding_ !== void 0 ? _padding_ : padding[0], ")"),
302
- paddingBottom: "var(--p-".concat((_padding_1 = padding[2]) !== null && _padding_1 !== void 0 ? _padding_1 : padding[0], ")"),
303
- 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], ")"),
304
- marginTop: "var(--p-".concat(margin[0], ")"),
305
- marginRight: "var(--p-".concat((_margin_ = margin[1]) !== null && _margin_ !== void 0 ? _margin_ : margin[0], ")"),
306
- marginBottom: "var(--p-".concat((_margin_1 = margin[2]) !== null && _margin_1 !== void 0 ? _margin_1 : margin[0], ")"),
307
- marginLeft: "var(--p-".concat((_ref1 = (_margin_2 = margin[3]) !== null && _margin_2 !== void 0 ? _margin_2 : margin[1]) !== null && _ref1 !== void 0 ? _ref1 : margin[0], ")")
308
- }, style),
309
- className: classnames('Button', isSelected && 'selected', "".concat(size), className)
310
- }, size !== ButtonSize.xSmall && (text ? text : children));
311
- }
312
- Button.padding = Spacing;
313
- Button.margin = Spacing;
314
- Button.type = ButtonType;
315
- Button.size = ButtonSize;
316
-
317
- 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";
318
- styleInject(css_248z$8);
319
-
320
162
  function useObservable(param) {
321
163
  var onFire = param.onFire;
322
164
  var observers = useRef([]);
@@ -357,30 +199,30 @@ function useObservable(param) {
357
199
  };
358
200
  }
359
201
 
360
- function _array_like_to_array$g(arr, len) {
202
+ function _array_like_to_array$h(arr, len) {
361
203
  if (len == null || len > arr.length) len = arr.length;
362
204
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
363
205
  return arr2;
364
206
  }
365
- function _array_without_holes$1(arr) {
366
- if (Array.isArray(arr)) return _array_like_to_array$g(arr);
207
+ function _array_without_holes$2(arr) {
208
+ if (Array.isArray(arr)) return _array_like_to_array$h(arr);
367
209
  }
368
- function _iterable_to_array$1(iter) {
210
+ function _iterable_to_array$2(iter) {
369
211
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
370
212
  }
371
- function _non_iterable_spread$1() {
213
+ function _non_iterable_spread$2() {
372
214
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
373
215
  }
374
- function _to_consumable_array$1(arr) {
375
- return _array_without_holes$1(arr) || _iterable_to_array$1(arr) || _unsupported_iterable_to_array$g(arr) || _non_iterable_spread$1();
216
+ function _to_consumable_array$2(arr) {
217
+ return _array_without_holes$2(arr) || _iterable_to_array$2(arr) || _unsupported_iterable_to_array$h(arr) || _non_iterable_spread$2();
376
218
  }
377
- function _unsupported_iterable_to_array$g(o, minLen) {
219
+ function _unsupported_iterable_to_array$h(o, minLen) {
378
220
  if (!o) return;
379
- if (typeof o === "string") return _array_like_to_array$g(o, minLen);
221
+ if (typeof o === "string") return _array_like_to_array$h(o, minLen);
380
222
  var n = Object.prototype.toString.call(o).slice(8, -1);
381
223
  if (n === "Object" && o.constructor) n = o.constructor.name;
382
224
  if (n === "Map" || n === "Set") return Array.from(n);
383
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$g(o, minLen);
225
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$h(o, minLen);
384
226
  }
385
227
  // export const roundUpToTwoDecimals = (val: number) => Math.ceil(val * 100) / 100;
386
228
  // mocks the `normalisedToScaledValue` internal method from JUCE
@@ -430,7 +272,7 @@ var getValidValueForInput = function(param) {
430
272
  // TODO: Clean up
431
273
  var matchCriteria = /^-?(?:\d+\.\d+|\d+|\.\d+)$/g;
432
274
  var splitValue = value.toString().matchAll(matchCriteria);
433
- var splitValueArray = _to_consumable_array$1(splitValue);
275
+ var splitValueArray = _to_consumable_array$2(splitValue);
434
276
  var validValue = splitValueArray === null || splitValueArray === void 0 ? void 0 : (_splitValueArray_ = splitValueArray[0]) === null || _splitValueArray_ === void 0 ? void 0 : _splitValueArray_[0];
435
277
  var start = properties.start, end = properties.end;
436
278
  if (validValue !== null && validValue !== undefined) {
@@ -495,15 +337,47 @@ var randomizeValue = function(min, max) {
495
337
  return Math.random() * (max - min) + min;
496
338
  };
497
339
 
498
- function _array_like_to_array$f(arr, len) {
340
+ function _array_like_to_array$g(arr, len) {
499
341
  if (len == null || len > arr.length) len = arr.length;
500
342
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
501
343
  return arr2;
502
344
  }
503
- function _array_with_holes$f(arr) {
345
+ function _array_with_holes$g(arr) {
504
346
  if (Array.isArray(arr)) return arr;
505
347
  }
506
- function _define_property$j(obj, key, value) {
348
+ function _array_without_holes$1(arr) {
349
+ if (Array.isArray(arr)) return _array_like_to_array$g(arr);
350
+ }
351
+ function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
352
+ try {
353
+ var info = gen[key](arg);
354
+ var value = info.value;
355
+ } catch (error) {
356
+ reject(error);
357
+ return;
358
+ }
359
+ if (info.done) {
360
+ resolve(value);
361
+ } else {
362
+ Promise.resolve(value).then(_next, _throw);
363
+ }
364
+ }
365
+ function _async_to_generator$4(fn) {
366
+ return function() {
367
+ var self = this, args = arguments;
368
+ return new Promise(function(resolve, reject) {
369
+ var gen = fn.apply(self, args);
370
+ function _next(value) {
371
+ asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "next", value);
372
+ }
373
+ function _throw(err) {
374
+ asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "throw", err);
375
+ }
376
+ _next(undefined);
377
+ });
378
+ };
379
+ }
380
+ function _define_property$k(obj, key, value) {
507
381
  if (key in obj) {
508
382
  Object.defineProperty(obj, key, {
509
383
  value: value,
@@ -516,7 +390,10 @@ function _define_property$j(obj, key, value) {
516
390
  }
517
391
  return obj;
518
392
  }
519
- function _iterable_to_array_limit$f(arr, i) {
393
+ function _iterable_to_array$1(iter) {
394
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
395
+ }
396
+ function _iterable_to_array_limit$g(arr, i) {
520
397
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
521
398
  if (_i == null) return;
522
399
  var _arr = [];
@@ -540,10 +417,13 @@ function _iterable_to_array_limit$f(arr, i) {
540
417
  }
541
418
  return _arr;
542
419
  }
543
- function _non_iterable_rest$f() {
420
+ function _non_iterable_rest$g() {
544
421
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
545
422
  }
546
- function _object_spread$j(target) {
423
+ function _non_iterable_spread$1() {
424
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
425
+ }
426
+ function _object_spread$k(target) {
547
427
  for(var i = 1; i < arguments.length; i++){
548
428
  var source = arguments[i] != null ? arguments[i] : {};
549
429
  var ownKeys = Object.keys(source);
@@ -553,7 +433,7 @@ function _object_spread$j(target) {
553
433
  }));
554
434
  }
555
435
  ownKeys.forEach(function(key) {
556
- _define_property$j(target, key, source[key]);
436
+ _define_property$k(target, key, source[key]);
557
437
  });
558
438
  }
559
439
  return target;
@@ -577,16 +457,110 @@ function _object_spread_props$4(target, source) {
577
457
  }
578
458
  return target;
579
459
  }
580
- function _sliced_to_array$f(arr, i) {
581
- return _array_with_holes$f(arr) || _iterable_to_array_limit$f(arr, i) || _unsupported_iterable_to_array$f(arr, i) || _non_iterable_rest$f();
460
+ function _sliced_to_array$g(arr, i) {
461
+ return _array_with_holes$g(arr) || _iterable_to_array_limit$g(arr, i) || _unsupported_iterable_to_array$g(arr, i) || _non_iterable_rest$g();
582
462
  }
583
- function _unsupported_iterable_to_array$f(o, minLen) {
463
+ function _to_consumable_array$1(arr) {
464
+ return _array_without_holes$1(arr) || _iterable_to_array$1(arr) || _unsupported_iterable_to_array$g(arr) || _non_iterable_spread$1();
465
+ }
466
+ function _unsupported_iterable_to_array$g(o, minLen) {
584
467
  if (!o) return;
585
- if (typeof o === "string") return _array_like_to_array$f(o, minLen);
468
+ if (typeof o === "string") return _array_like_to_array$g(o, minLen);
586
469
  var n = Object.prototype.toString.call(o).slice(8, -1);
587
470
  if (n === "Object" && o.constructor) n = o.constructor.name;
588
471
  if (n === "Map" || n === "Set") return Array.from(n);
589
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$f(o, minLen);
472
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$g(o, minLen);
473
+ }
474
+ function _ts_generator$4(thisArg, body) {
475
+ var f, y, t, _ = {
476
+ label: 0,
477
+ sent: function() {
478
+ if (t[0] & 1) throw t[1];
479
+ return t[1];
480
+ },
481
+ trys: [],
482
+ ops: []
483
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
484
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
485
+ return this;
486
+ }), g;
487
+ function verb(n) {
488
+ return function(v) {
489
+ return step([
490
+ n,
491
+ v
492
+ ]);
493
+ };
494
+ }
495
+ function step(op) {
496
+ if (f) throw new TypeError("Generator is already executing.");
497
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
498
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
499
+ if (y = 0, t) op = [
500
+ op[0] & 2,
501
+ t.value
502
+ ];
503
+ switch(op[0]){
504
+ case 0:
505
+ case 1:
506
+ t = op;
507
+ break;
508
+ case 4:
509
+ _.label++;
510
+ return {
511
+ value: op[1],
512
+ done: false
513
+ };
514
+ case 5:
515
+ _.label++;
516
+ y = op[1];
517
+ op = [
518
+ 0
519
+ ];
520
+ continue;
521
+ case 7:
522
+ op = _.ops.pop();
523
+ _.trys.pop();
524
+ continue;
525
+ default:
526
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
527
+ _ = 0;
528
+ continue;
529
+ }
530
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
531
+ _.label = op[1];
532
+ break;
533
+ }
534
+ if (op[0] === 6 && _.label < t[1]) {
535
+ _.label = t[1];
536
+ t = op;
537
+ break;
538
+ }
539
+ if (t && _.label < t[2]) {
540
+ _.label = t[2];
541
+ _.ops.push(op);
542
+ break;
543
+ }
544
+ if (t[2]) _.ops.pop();
545
+ _.trys.pop();
546
+ continue;
547
+ }
548
+ op = body.call(thisArg, _);
549
+ } catch (e) {
550
+ op = [
551
+ 6,
552
+ e
553
+ ];
554
+ y = 0;
555
+ } finally{
556
+ f = t = 0;
557
+ }
558
+ if (op[0] & 5) throw op[1];
559
+ return {
560
+ value: op[0] ? op[1] : void 0,
561
+ done: true
562
+ };
563
+ }
590
564
  }
591
565
  // Initial state
592
566
  var defaultGlobalStateValue = {
@@ -594,11 +568,18 @@ var defaultGlobalStateValue = {
594
568
  label: 'Antimatter Audio',
595
569
  value: 0
596
570
  },
571
+ // focusedItem: '',
597
572
  allParameters: [],
598
573
  automatableParamsList: [],
599
574
  automatableParamLabels: [],
600
575
  parameterTypes: [],
601
- modSlots: {},
576
+ modSlotTargets: {},
577
+ modSlotIds: [],
578
+ modSlotPreview: {
579
+ slotId: '',
580
+ targetIndex: 0,
581
+ isEditable: false
582
+ },
602
583
  modSlotParams: [],
603
584
  modSlotParamLabels: [],
604
585
  defaultParamValues: [],
@@ -608,51 +589,107 @@ var defaultGlobalStateValue = {
608
589
  var reducer = function(state, action) {
609
590
  switch(action.type){
610
591
  case 'HIGHLIGHTED_ITEM_CHANGED':
611
- return _object_spread_props$4(_object_spread$j({}, state), {
592
+ return _object_spread_props$4(_object_spread$k({}, state), {
612
593
  highlightedItem: action.payload
613
594
  });
595
+ // case 'FOCUSED_ITEM_CHANGED':
596
+ // return { ...state, focusedItem: action.payload };
614
597
  case 'ADVANCED_VIEW_TOGGLED':
615
- return _object_spread_props$4(_object_spread$j({}, state), {
598
+ return _object_spread_props$4(_object_spread$k({}, state), {
616
599
  advancedView: action.payload
617
600
  });
618
601
  case 'AUTOMATABLE_PARAMS_LIST_RECEIVED':
619
- return _object_spread_props$4(_object_spread$j({}, state), {
602
+ return _object_spread_props$4(_object_spread$k({}, state), {
620
603
  automatableParamsList: action.payload
621
604
  });
622
605
  case 'AUTOMATABLE_PARAM_LABELS_RECEIVED':
623
- return _object_spread_props$4(_object_spread$j({}, state), {
606
+ return _object_spread_props$4(_object_spread$k({}, state), {
624
607
  automatableParamLabels: action.payload
625
608
  });
626
609
  case 'PARAMETER_TYPES_RECEIVED':
627
- return _object_spread_props$4(_object_spread$j({}, state), {
610
+ return _object_spread_props$4(_object_spread$k({}, state), {
628
611
  parameterTypes: action.payload
629
612
  });
630
613
  case 'ALL_PARAMETERS_RECEIVED':
631
- return _object_spread_props$4(_object_spread$j({}, state), {
614
+ return _object_spread_props$4(_object_spread$k({}, state), {
632
615
  allParameters: action.payload
633
616
  });
634
617
  case 'MOD_SLOTS_RECEIVED':
635
618
  var _action_payload;
636
- return _object_spread_props$4(_object_spread$j({}, state), {
637
- 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) {
638
- return _object_spread_props$4(_object_spread$j({}, acc), _define_property$j({}, val[0], val[1]));
619
+ return _object_spread_props$4(_object_spread$k({}, state), {
620
+ modSlotIds: action.payload.map(function(val) {
621
+ return val[0];
622
+ }),
623
+ modSlotTargets: action === null || action === void 0 ? void 0 : (_action_payload = action.payload) === null || _action_payload === void 0 ? void 0 : _action_payload.reduce(function(acc, val) {
624
+ return _object_spread_props$4(_object_spread$k({}, acc), _define_property$k({}, val[0], val[1]));
639
625
  }, {})
640
626
  });
641
- case 'MOD_SLOT_UPDATED':
627
+ case 'MOD_SLOT_TARGETS_UPDATED':
642
628
  var _action_payload1, _action_payload2;
643
- return _object_spread_props$4(_object_spread$j({}, state), {
644
- modSlots: _object_spread_props$4(_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]))
629
+ return _object_spread_props$4(_object_spread$k({}, state), {
630
+ modSlotTargets: _object_spread_props$4(_object_spread$k({}, state === null || state === void 0 ? void 0 : state.modSlotTargets), _define_property$k({}, (_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]))
645
631
  });
632
+ case 'MOD_SLOT_PREVIEW_TARGET_INDEX_UPDATED':
633
+ {
634
+ return _object_spread_props$4(_object_spread$k({}, state), {
635
+ modSlotPreview: _object_spread_props$4(_object_spread$k({}, state.modSlotPreview), {
636
+ targetIndex: action.payload
637
+ })
638
+ });
639
+ }
640
+ case 'MOD_SLOT_PREVIEW_SLOT_ID_UPDATED':
641
+ {
642
+ return _object_spread_props$4(_object_spread$k({}, state), {
643
+ modSlotPreview: _object_spread_props$4(_object_spread$k({}, state.modSlotPreview), {
644
+ slotId: action === null || action === void 0 ? void 0 : action.payload
645
+ })
646
+ });
647
+ }
648
+ case 'SET_NEW_MOD_SLOT_PREVIEW':
649
+ {
650
+ var _state_modSlotIds_find;
651
+ return _object_spread_props$4(_object_spread$k({}, state), {
652
+ modSlotPreview: {
653
+ slotId: (_state_modSlotIds_find = state.modSlotIds.find(function(item) {
654
+ return state.modSlotTargets[item] <= 0;
655
+ })) !== null && _state_modSlotIds_find !== void 0 ? _state_modSlotIds_find : '',
656
+ isEditable: false,
657
+ targetIndex: 0
658
+ }
659
+ });
660
+ }
661
+ case 'CLEAR_MOD_SLOT_PREVIEW':
662
+ {
663
+ return _object_spread_props$4(_object_spread$k({}, state), {
664
+ modSlotPreview: {
665
+ slotId: '',
666
+ isEditable: false,
667
+ targetIndex: 0
668
+ }
669
+ });
670
+ }
671
+ case 'MOD_SLOT_PREVIEW_IS_EDITABLE_UPDATED':
672
+ {
673
+ return _object_spread_props$4(_object_spread$k({}, state), {
674
+ modSlotPreview: _object_spread_props$4(_object_spread$k({}, state.modSlotPreview), {
675
+ isEditable: action === null || action === void 0 ? void 0 : action.payload
676
+ })
677
+ });
678
+ }
646
679
  case 'MOD_SLOT_PARAMS_LIST_RECEIVED':
647
- return _object_spread_props$4(_object_spread$j({}, state), {
648
- modSlotParams: action === null || action === void 0 ? void 0 : action.payload
680
+ var modSlotNames = Object.keys(state.modSlotTargets);
681
+ return _object_spread_props$4(_object_spread$k({}, state), {
682
+ modSlotParams: action === null || action === void 0 ? void 0 : action.payload.reduce(function(acc, item, i) {
683
+ acc[modSlotNames[i]] = item;
684
+ return acc;
685
+ }, {})
649
686
  });
650
687
  case 'DEFAULT_PARAM_VALUES_RECEIVED':
651
- return _object_spread_props$4(_object_spread$j({}, state), {
688
+ return _object_spread_props$4(_object_spread$k({}, state), {
652
689
  defaultParamValues: action === null || action === void 0 ? void 0 : action.payload
653
690
  });
654
691
  case 'MOD_SLOT_PARAM_LABELS_RECIEVED':
655
- return _object_spread_props$4(_object_spread$j({}, state), {
692
+ return _object_spread_props$4(_object_spread$k({}, state), {
656
693
  modSlotParamLabels: action === null || action === void 0 ? void 0 : action.payload
657
694
  });
658
695
  default:
@@ -671,13 +708,16 @@ function useGlobalContext(selector) {
671
708
  // Context provider
672
709
  function GlobalContextProvider(param) {
673
710
  var children = param.children;
674
- var _useReducer = _sliced_to_array$f(useReducer(reducer, defaultGlobalStateValue), 2), state = _useReducer[0], dispatch = _useReducer[1];
711
+ var _useReducer = _sliced_to_array$g(useReducer(reducer, defaultGlobalStateValue), 2), state = _useReducer[0], dispatch = _useReducer[1];
675
712
  var highlightedItemChanged = useCallback(function(highlightedItem) {
676
713
  dispatch({
677
714
  type: 'HIGHLIGHTED_ITEM_CHANGED',
678
715
  payload: highlightedItem
679
716
  });
680
717
  }, []);
718
+ // const focusedItemChanged = useCallback((focusedItem: string) => {
719
+ // dispatch({ type: 'FOCUSED_ITEM_CHANGED', payload: focusedItem });
720
+ // }, []);
681
721
  var advancedViewToggled = useCallback(function(advancedView) {
682
722
  dispatch({
683
723
  type: 'ADVANCED_VIEW_TOGGLED',
@@ -687,7 +727,9 @@ function GlobalContextProvider(param) {
687
727
  var automatableParamsListReceived = useCallback(function(automatableParamsList) {
688
728
  dispatch({
689
729
  type: 'AUTOMATABLE_PARAMS_LIST_RECEIVED',
690
- payload: automatableParamsList
730
+ payload: [
731
+ 'none'
732
+ ].concat(_to_consumable_array$1(automatableParamsList))
691
733
  });
692
734
  }, []);
693
735
  var allParametersReceived = useCallback(function(allParameters) {
@@ -720,9 +762,39 @@ function GlobalContextProvider(param) {
720
762
  payload: modSlots
721
763
  });
722
764
  }, []);
723
- var modSlotUpdated = useCallback(function(modSlot) {
765
+ var modSlotPreviewTargetIndexUpdated = useCallback(function(targetIndex) {
766
+ dispatch({
767
+ type: 'MOD_SLOT_PREVIEW_TARGET_INDEX_UPDATED',
768
+ payload: targetIndex
769
+ });
770
+ }, []);
771
+ var modSlotPreviewIsEditableUpdated = useCallback(function(isEditable) {
724
772
  dispatch({
725
- type: 'MOD_SLOT_UPDATED',
773
+ type: 'MOD_SLOT_PREVIEW_IS_EDITABLE_UPDATED',
774
+ payload: isEditable
775
+ });
776
+ }, []);
777
+ var modSlotPreviewSlotIdUpdated = useCallback(function(slotId) {
778
+ dispatch({
779
+ type: 'MOD_SLOT_PREVIEW_SLOT_ID_UPDATED',
780
+ payload: slotId
781
+ });
782
+ }, []);
783
+ var setNewModSlotPreview = useCallback(function() {
784
+ dispatch({
785
+ type: 'SET_NEW_MOD_SLOT_PREVIEW',
786
+ payload: null
787
+ });
788
+ }, []);
789
+ var clearModSlotPreview = useCallback(function() {
790
+ dispatch({
791
+ type: 'CLEAR_MOD_SLOT_PREVIEW',
792
+ payload: null
793
+ });
794
+ }, []);
795
+ var modSlotTargetUpdated = useCallback(function(modSlot) {
796
+ dispatch({
797
+ type: 'MOD_SLOT_TARGETS_UPDATED',
726
798
  payload: modSlot
727
799
  });
728
800
  }, []);
@@ -752,6 +824,74 @@ function GlobalContextProvider(param) {
752
824
  skew: sliderState === null || sliderState === void 0 ? void 0 : (_sliderState_properties2 = sliderState.properties) === null || _sliderState_properties2 === void 0 ? void 0 : _sliderState_properties2.skew
753
825
  });
754
826
  sliderState.setNormalisedValue(normalisedDefaultValue);
827
+ // if(state?.modSlots)
828
+ }
829
+ };
830
+ var getDefaultParameter = function(id) {
831
+ var paramIndex = state === null || state === void 0 ? void 0 : state.allParameters.indexOf(id);
832
+ return state === null || state === void 0 ? void 0 : state.defaultParamValues[paramIndex];
833
+ };
834
+ var addModSlotRowTargetAndMakeRowEditable = function(id) {
835
+ var _Object_values;
836
+ var parameterIndex = state.automatableParamsList.indexOf(id);
837
+ if (!((_Object_values = Object.values(state.modSlotTargets)) === null || _Object_values === void 0 ? void 0 : _Object_values.includes(parameterIndex))) {
838
+ modSlotPreviewTargetIndexUpdated(parameterIndex);
839
+ modSlotPreviewIsEditableUpdated(true);
840
+ }
841
+ };
842
+ var updateModSlotTargetAndResetPreview = function(value, id) {
843
+ var _state_modSlotPreview, _state_modSlotPreview1, _state_modSlotPreview2;
844
+ var rowState = Juce.getComboBoxState((_state_modSlotPreview = state.modSlotPreview) === null || _state_modSlotPreview === void 0 ? void 0 : _state_modSlotPreview.slotId);
845
+ var defaultParameter = getDefaultParameter(id);
846
+ var refetchModSlots = function() {
847
+ return _async_to_generator$4(function() {
848
+ var getAllModSlotsFunc, modSlotsData, e;
849
+ return _ts_generator$4(this, function(_state) {
850
+ switch(_state.label){
851
+ case 0:
852
+ _state.trys.push([
853
+ 0,
854
+ 2,
855
+ ,
856
+ 3
857
+ ]);
858
+ getAllModSlotsFunc = Juce.getNativeFunction('getAllModSlots');
859
+ return [
860
+ 4,
861
+ getAllModSlotsFunc()
862
+ ];
863
+ case 1:
864
+ modSlotsData = _state.sent();
865
+ modSlotsReceived(modSlotsData || []);
866
+ return [
867
+ 3,
868
+ 3
869
+ ];
870
+ case 2:
871
+ e = _state.sent();
872
+ console.log(e);
873
+ return [
874
+ 3,
875
+ 3
876
+ ];
877
+ case 3:
878
+ return [
879
+ 2
880
+ ];
881
+ }
882
+ });
883
+ })();
884
+ };
885
+ if (defaultParameter !== null && defaultParameter !== undefined && value !== defaultParameter && ((_state_modSlotPreview1 = state.modSlotPreview) === null || _state_modSlotPreview1 === void 0 ? void 0 : _state_modSlotPreview1.slotId) && ((_state_modSlotPreview2 = state.modSlotPreview) === null || _state_modSlotPreview2 === void 0 ? void 0 : _state_modSlotPreview2.targetIndex)) {
886
+ var _state_modSlotPreview3;
887
+ modSlotTargetUpdated([
888
+ state.modSlotPreview.slotId,
889
+ state.modSlotPreview.targetIndex
890
+ ]);
891
+ rowState === null || rowState === void 0 ? void 0 : rowState.setChoiceIndex((_state_modSlotPreview3 = state.modSlotPreview) === null || _state_modSlotPreview3 === void 0 ? void 0 : _state_modSlotPreview3.targetIndex);
892
+ clearModSlotPreview();
893
+ setNewModSlotPreview();
894
+ refetchModSlots();
755
895
  }
756
896
  };
757
897
  var onFire = function() {
@@ -764,6 +904,12 @@ function GlobalContextProvider(param) {
764
904
  var value = {
765
905
  globalState: state,
766
906
  highlightedItemChanged: highlightedItemChanged,
907
+ // focusedItemChanged,
908
+ clearModSlotPreview: clearModSlotPreview,
909
+ setNewModSlotPreview: setNewModSlotPreview,
910
+ modSlotPreviewSlotIdUpdated: modSlotPreviewSlotIdUpdated,
911
+ modSlotPreviewTargetIndexUpdated: modSlotPreviewTargetIndexUpdated,
912
+ modSlotPreviewIsEditableUpdated: modSlotPreviewIsEditableUpdated,
767
913
  advancedViewToggled: advancedViewToggled,
768
914
  automatableParamsListReceived: automatableParamsListReceived,
769
915
  automatableParamLabelsReceived: automatableParamLabelsReceived,
@@ -771,10 +917,13 @@ function GlobalContextProvider(param) {
771
917
  allParametersReceived: allParametersReceived,
772
918
  defaultParamValuesReceived: defaultParamValuesReceived,
773
919
  setDefaultParameter: setDefaultParameter,
920
+ getDefaultParameter: getDefaultParameter,
774
921
  modSlotsReceived: modSlotsReceived,
775
- modSlotUpdated: modSlotUpdated,
922
+ modSlotTargetUpdated: modSlotTargetUpdated,
776
923
  modSlotParamsListReceived: modSlotParamsListReceived,
777
924
  modSlotParamLabelsReceived: modSlotParamLabelsReceived,
925
+ addModSlotRowTargetAndMakeRowEditable: addModSlotRowTargetAndMakeRowEditable,
926
+ updateModSlotTargetAndResetPreview: updateModSlotTargetAndResetPreview,
778
927
  useRandom: useRandom
779
928
  };
780
929
  return /*#__PURE__*/ React__default.createElement(GlobalContext.Provider, {
@@ -782,6 +931,166 @@ function GlobalContextProvider(param) {
782
931
  }, children);
783
932
  }
784
933
 
934
+ function _array_like_to_array$f(arr, len) {
935
+ if (len == null || len > arr.length) len = arr.length;
936
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
937
+ return arr2;
938
+ }
939
+ function _array_with_holes$f(arr) {
940
+ if (Array.isArray(arr)) return arr;
941
+ }
942
+ function _define_property$j(obj, key, value) {
943
+ if (key in obj) {
944
+ Object.defineProperty(obj, key, {
945
+ value: value,
946
+ enumerable: true,
947
+ configurable: true,
948
+ writable: true
949
+ });
950
+ } else {
951
+ obj[key] = value;
952
+ }
953
+ return obj;
954
+ }
955
+ function _iterable_to_array_limit$f(arr, i) {
956
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
957
+ if (_i == null) return;
958
+ var _arr = [];
959
+ var _n = true;
960
+ var _d = false;
961
+ var _s, _e;
962
+ try {
963
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
964
+ _arr.push(_s.value);
965
+ if (i && _arr.length === i) break;
966
+ }
967
+ } catch (err) {
968
+ _d = true;
969
+ _e = err;
970
+ } finally{
971
+ try {
972
+ if (!_n && _i["return"] != null) _i["return"]();
973
+ } finally{
974
+ if (_d) throw _e;
975
+ }
976
+ }
977
+ return _arr;
978
+ }
979
+ function _non_iterable_rest$f() {
980
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
981
+ }
982
+ function _object_spread$j(target) {
983
+ for(var i = 1; i < arguments.length; i++){
984
+ var source = arguments[i] != null ? arguments[i] : {};
985
+ var ownKeys = Object.keys(source);
986
+ if (typeof Object.getOwnPropertySymbols === "function") {
987
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
988
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
989
+ }));
990
+ }
991
+ ownKeys.forEach(function(key) {
992
+ _define_property$j(target, key, source[key]);
993
+ });
994
+ }
995
+ return target;
996
+ }
997
+ function _sliced_to_array$f(arr, i) {
998
+ return _array_with_holes$f(arr) || _iterable_to_array_limit$f(arr, i) || _unsupported_iterable_to_array$f(arr, i) || _non_iterable_rest$f();
999
+ }
1000
+ function _unsupported_iterable_to_array$f(o, minLen) {
1001
+ if (!o) return;
1002
+ if (typeof o === "string") return _array_like_to_array$f(o, minLen);
1003
+ var n = Object.prototype.toString.call(o).slice(8, -1);
1004
+ if (n === "Object" && o.constructor) n = o.constructor.name;
1005
+ if (n === "Map" || n === "Set") return Array.from(n);
1006
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$f(o, minLen);
1007
+ }
1008
+ function Button(param) {
1009
+ var disabled = param.disabled, text = param.text, id = param.id, className = param.className, style = param.style, onClick = param.onClick, children = param.children, _param_padding = param.padding, padding = _param_padding === void 0 ? [
1010
+ Spacing.small
1011
+ ] : _param_padding, _param_margin = param.margin, margin = _param_margin === void 0 ? [
1012
+ Spacing.none
1013
+ ] : _param_margin, _param_type = param.type, type = _param_type === void 0 ? ButtonType.latch : _param_type, _param_size = param.size, size = _param_size === void 0 ? ButtonSize.large : _param_size;
1014
+ var _React_useState = _sliced_to_array$f(React__default.useState(false), 2), isSelected = _React_useState[0], setIsSelected = _React_useState[1];
1015
+ var buttonState = Juce.getToggleState(id);
1016
+ var isLocalhost = window.location.hostname === 'localhost';
1017
+ var addModSlotRowTargetAndMakeRowEditable = useGlobalContext().addModSlotRowTargetAndMakeRowEditable;
1018
+ // Update the local state when the ID changes
1019
+ useEffect(function() {
1020
+ setIsSelected(buttonState === null || buttonState === void 0 ? void 0 : buttonState.value);
1021
+ }, [
1022
+ id
1023
+ ]);
1024
+ // Sets up listeners to handle changes on the backend
1025
+ useEffect(function() {
1026
+ if (!isLocalhost && !onClick) {
1027
+ var valueListenerId = buttonState === null || buttonState === void 0 ? void 0 : buttonState.valueChangedEvent.addListener(function() {
1028
+ setIsSelected(buttonState === null || buttonState === void 0 ? void 0 : buttonState.value);
1029
+ });
1030
+ return function cleanup() {
1031
+ buttonState === null || buttonState === void 0 ? void 0 : buttonState.valueChangedEvent.removeListener(valueListenerId);
1032
+ };
1033
+ } else {
1034
+ return;
1035
+ }
1036
+ });
1037
+ var handleMouseDown = function(e) {
1038
+ addModSlotRowTargetAndMakeRowEditable(id);
1039
+ if (!onClick) {
1040
+ e.preventDefault();
1041
+ if (type === ButtonType.momentary) {
1042
+ setIsSelected(true);
1043
+ buttonState.setValue(true);
1044
+ } else {
1045
+ setIsSelected(!isSelected);
1046
+ buttonState.setValue(!isSelected);
1047
+ }
1048
+ }
1049
+ };
1050
+ var handleMouseUp = function() {
1051
+ if (!onClick) {
1052
+ setIsSelected(false);
1053
+ buttonState.setValue(false);
1054
+ }
1055
+ };
1056
+ React__default.useEffect(function() {
1057
+ if (type === ButtonType.momentary && !onClick) {
1058
+ window.addEventListener('mouseup', handleMouseUp);
1059
+ return function() {
1060
+ window.removeEventListener('mouseup', handleMouseUp);
1061
+ };
1062
+ }
1063
+ return;
1064
+ }, [
1065
+ isSelected
1066
+ ]);
1067
+ var _padding_, _padding_1, _padding_2, _ref, _margin_, _margin_1, _margin_2, _ref1;
1068
+ return /*#__PURE__*/ React__default.createElement("button", {
1069
+ id: id,
1070
+ onMouseDown: handleMouseDown,
1071
+ disabled: disabled,
1072
+ onClick: onClick && onClick,
1073
+ style: _object_spread$j({
1074
+ paddingTop: "var(--p-".concat(padding[0], ")"),
1075
+ paddingRight: "var(--p-".concat((_padding_ = padding[1]) !== null && _padding_ !== void 0 ? _padding_ : padding[0], ")"),
1076
+ paddingBottom: "var(--p-".concat((_padding_1 = padding[2]) !== null && _padding_1 !== void 0 ? _padding_1 : padding[0], ")"),
1077
+ 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], ")"),
1078
+ marginTop: "var(--p-".concat(margin[0], ")"),
1079
+ marginRight: "var(--p-".concat((_margin_ = margin[1]) !== null && _margin_ !== void 0 ? _margin_ : margin[0], ")"),
1080
+ marginBottom: "var(--p-".concat((_margin_1 = margin[2]) !== null && _margin_1 !== void 0 ? _margin_1 : margin[0], ")"),
1081
+ marginLeft: "var(--p-".concat((_ref1 = (_margin_2 = margin[3]) !== null && _margin_2 !== void 0 ? _margin_2 : margin[1]) !== null && _ref1 !== void 0 ? _ref1 : margin[0], ")")
1082
+ }, style),
1083
+ className: classnames('Button', isSelected && 'selected', "".concat(size), className)
1084
+ }, size !== ButtonSize.xSmall && (text ? text : children));
1085
+ }
1086
+ Button.padding = Spacing;
1087
+ Button.margin = Spacing;
1088
+ Button.type = ButtonType;
1089
+ Button.size = ButtonSize;
1090
+
1091
+ 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";
1092
+ styleInject(css_248z$8);
1093
+
785
1094
  function _array_like_to_array$e(arr, len) {
786
1095
  if (len == null || len > arr.length) len = arr.length;
787
1096
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
@@ -829,12 +1138,12 @@ function _unsupported_iterable_to_array$e(o, minLen) {
829
1138
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array$e(o, minLen);
830
1139
  }
831
1140
  var useDropdown = function(param) {
832
- 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;
1141
+ var id = param.id, label = param.label, _param_items = param.items, items = _param_items === void 0 ? [] : _param_items, _param_isDisabled = param.isDisabled, isDisabled = _param_isDisabled === void 0 ? false : _param_isDisabled, filter = param.filter, onChange = param.onChange, _param_displayValInHeader = param.displayValInHeader, displayValInHeader = _param_displayValInHeader === void 0 ? true : _param_displayValInHeader;
833
1142
  var _properties_choices;
834
1143
  var comboBoxState = Juce.getComboBoxState(id);
835
1144
  var _useState = _sliced_to_array$e(useState(comboBoxState.getChoiceIndex()), 2), index = _useState[0], setIndex = _useState[1];
836
1145
  var _useState1 = _sliced_to_array$e(useState(comboBoxState.properties), 2), properties = _useState1[0], setProperties = _useState1[1];
837
- var setHighlightedItem = useGlobalContext().setHighlightedItem;
1146
+ var _useGlobalContext = useGlobalContext(), highlightedItemChanged = _useGlobalContext.highlightedItemChanged, addModSlotRowTargetAndMakeRowEditable = _useGlobalContext.addModSlotRowTargetAndMakeRowEditable;
838
1147
  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 : [];
839
1148
  var filteredChoices = filter ? choices === null || choices === void 0 ? void 0 : choices.filter(function(item) {
840
1149
  var _item_;
@@ -842,22 +1151,24 @@ var useDropdown = function(param) {
842
1151
  }) : choices;
843
1152
  var prevIndex = useRef(null);
844
1153
  var handleChange = function(value) {
845
- var choiceIndex = choices.indexOf(value);
846
- if (choiceIndex !== prevIndex.current) {
847
- comboBoxState.setChoiceIndex(choiceIndex);
848
- setIndex(choiceIndex);
849
- onChange && onChange(choiceIndex);
850
- // //@ts-expect-error
851
- // window.__JUCE__.backend.emitEvent('undoableActionOccurred', {});
852
- if (displayValInHeader) {
853
- setHighlightedItem && setHighlightedItem({
854
- label: label,
855
- value: value
856
- });
1154
+ if (!isDisabled) {
1155
+ var choiceIndex = choices.indexOf(value);
1156
+ if (choiceIndex !== prevIndex.current) {
1157
+ comboBoxState.setChoiceIndex(choiceIndex);
1158
+ setIndex(choiceIndex);
1159
+ onChange && onChange(choiceIndex);
1160
+ // //@ts-expect-error
1161
+ // window.__JUCE__.backend.emitEvent('undoableActionOccurred', {});
1162
+ if (displayValInHeader) {
1163
+ highlightedItemChanged && highlightedItemChanged({
1164
+ label: label,
1165
+ value: value
1166
+ });
1167
+ }
1168
+ prevIndex.current = choiceIndex;
857
1169
  }
858
- prevIndex.current = choiceIndex;
1170
+ return choices[choiceIndex];
859
1171
  }
860
- return choices[choiceIndex];
861
1172
  };
862
1173
  useEffect(function() {
863
1174
  var comboBoxState = Juce.getComboBoxState(id);
@@ -868,7 +1179,6 @@ var useDropdown = function(param) {
868
1179
  useEffect(function() {
869
1180
  var valueListenerId = comboBoxState.valueChangedEvent.addListener(function() {
870
1181
  setIndex(comboBoxState.getChoiceIndex());
871
- console.log(id, comboBoxState.getChoiceIndex(), 'IDDDIDIDIDIDIDIin dropdown');
872
1182
  });
873
1183
  var propertiesListenerId = comboBoxState.propertiesChangedEvent.addListener(function() {
874
1184
  setProperties(comboBoxState.properties);
@@ -881,13 +1191,16 @@ var useDropdown = function(param) {
881
1191
  window
882
1192
  ]);
883
1193
  var onMouseEnter = function() {
884
- if (displayValInHeader) {
885
- setHighlightedItem && (setHighlightedItem === null || setHighlightedItem === void 0 ? void 0 : setHighlightedItem({
1194
+ if (displayValInHeader && !isDisabled) {
1195
+ highlightedItemChanged && (highlightedItemChanged === null || highlightedItemChanged === void 0 ? void 0 : highlightedItemChanged({
886
1196
  label: label,
887
1197
  value: choices === null || choices === void 0 ? void 0 : choices[index]
888
1198
  }));
889
1199
  }
890
1200
  };
1201
+ var onClick = function() {
1202
+ addModSlotRowTargetAndMakeRowEditable(id);
1203
+ };
891
1204
  return {
892
1205
  value: choices[index],
893
1206
  index: index,
@@ -895,6 +1208,7 @@ var useDropdown = function(param) {
895
1208
  choices: choices,
896
1209
  filteredChoices: filteredChoices,
897
1210
  onMouseEnter: onMouseEnter,
1211
+ onClick: onClick,
898
1212
  handleChange: handleChange
899
1213
  };
900
1214
  };
@@ -1156,7 +1470,7 @@ function Dropdown(param) {
1156
1470
  id: id,
1157
1471
  label: label,
1158
1472
  onChange: onChange
1159
- }), value = _useDropdown.value, choices = _useDropdown.choices, onMouseEnter = _useDropdown.onMouseEnter, handleChange = _useDropdown.handleChange;
1473
+ }), value = _useDropdown.value, choices = _useDropdown.choices, onMouseEnter = _useDropdown.onMouseEnter, handleChange = _useDropdown.handleChange, onClick = _useDropdown.onClick;
1160
1474
  return /*#__PURE__*/ React__default.createElement(Box, {
1161
1475
  flexDirection: Box.flexDirection.column,
1162
1476
  onMouseEnter: onMouseEnter,
@@ -1166,10 +1480,12 @@ function Dropdown(param) {
1166
1480
  value: value,
1167
1481
  onChange: handleChange
1168
1482
  }, /*#__PURE__*/ React__default.createElement(ListboxButton, {
1169
- className: classnames('Dropdown-button', className),
1483
+ className: classnames('Combobox Dropdown-button', className),
1170
1484
  style: _object_spread$g({
1171
1485
  color: "".concat(color ? color : 'initial')
1172
1486
  }, style),
1487
+ id: id,
1488
+ onClick: onClick,
1173
1489
  "aria-label": "Assignee",
1174
1490
  onChange: function(value) {
1175
1491
  return console.log(value);
@@ -1492,12 +1808,15 @@ var useSlider = function(param) {
1492
1808
  end: 15000,
1493
1809
  interval: 0.1,
1494
1810
  skew: 0.7
1495
- } : _param_mockProperties, _param_isRandomizable = param.isRandomizable, isRandomizable = _param_isRandomizable === void 0 ? false : _param_isRandomizable, _param_orientation = param.orientation, orientation = _param_orientation === void 0 ? Orientation.vertical : _param_orientation, _param_dragOrientation = param.dragOrientation, dragOrientation = _param_dragOrientation === void 0 ? Orientation.vertical : _param_dragOrientation, _param_mockInitialNormalisedValue = param.mockInitialNormalisedValue, mockInitialNormalisedValue = _param_mockInitialNormalisedValue === void 0 ? 0.0 : _param_mockInitialNormalisedValue, onChange = param.onChange; param.sliderElementRef;
1811
+ } : _param_mockProperties, _param_isRandomizable = param.isRandomizable, isRandomizable = _param_isRandomizable === void 0 ? false : _param_isRandomizable, _param_orientation = param.orientation, orientation = _param_orientation === void 0 ? Orientation.vertical : _param_orientation, _param_dragOrientation = param.dragOrientation, dragOrientation = _param_dragOrientation === void 0 ? Orientation.vertical : _param_dragOrientation, _param_mockInitialNormalisedValue = param.mockInitialNormalisedValue, mockInitialNormalisedValue = _param_mockInitialNormalisedValue === void 0 ? 0.0 : _param_mockInitialNormalisedValue, onChange = param.onChange; param.sliderElementRef; var _param_isDisabled = param.isDisabled, isDisabled = _param_isDisabled === void 0 ? false : _param_isDisabled;
1496
1812
  var clickListener = function clickListener(event) {
1497
1813
  var _event_target_closest;
1498
1814
  if (((_event_target_closest = event.target.closest('.Slider')) === null || _event_target_closest === void 0 ? void 0 : _event_target_closest.id) === id) {
1499
1815
  var _document_getElementById;
1500
1816
  setIsActive(true);
1817
+ // Update the preview mod slot target selection in the mod matrix.
1818
+ // This selection will be saved to the back end when a modifier is set for the target.
1819
+ addModSlotRowTargetAndMakeRowEditable(id);
1501
1820
  (_document_getElementById = document.getElementById(id)) === null || _document_getElementById === void 0 ? void 0 : _document_getElementById.focus();
1502
1821
  event.stopPropagation();
1503
1822
  } else {
@@ -1538,7 +1857,7 @@ var useSlider = function(param) {
1538
1857
  var normalisedValueRef = useRef(null);
1539
1858
  var sliderState = Juce.getSliderState(id);
1540
1859
  // const randomValueSetCounter = useRef<number>(null);
1541
- var _useGlobalContext = useGlobalContext(), useRandom = _useGlobalContext.useRandom, highlightedItemChanged = _useGlobalContext.highlightedItemChanged, setDefaultParameter = _useGlobalContext.setDefaultParameter;
1860
+ var _useGlobalContext = useGlobalContext(), useRandom = _useGlobalContext.useRandom, highlightedItemChanged = _useGlobalContext.highlightedItemChanged, setDefaultParameter = _useGlobalContext.setDefaultParameter, addModSlotRowTargetAndMakeRowEditable = _useGlobalContext.addModSlotRowTargetAndMakeRowEditable, _useGlobalContext_globalState = _useGlobalContext.globalState, automatableParamsList = _useGlobalContext_globalState.automatableParamsList, modSlotTargets = _useGlobalContext_globalState.modSlotTargets;
1542
1861
  var _useState2 = _sliced_to_array$c(useState(false), 2), isActive = _useState2[0], setIsActive = _useState2[1];
1543
1862
  useEffect(function() {
1544
1863
  document.addEventListener('click', clickListener);
@@ -1549,7 +1868,9 @@ var useSlider = function(param) {
1549
1868
  };
1550
1869
  }, [
1551
1870
  window,
1552
- isActive
1871
+ isActive,
1872
+ automatableParamsList,
1873
+ modSlotTargets
1553
1874
  ]);
1554
1875
  // Set the initial state
1555
1876
  //@ts-expect-error
@@ -1579,6 +1900,11 @@ var useSlider = function(param) {
1579
1900
  normalisedValueRef.current = mockInitialNormalisedValue;
1580
1901
  }
1581
1902
  }, []);
1903
+ var changeHandler = useCallback(function(scaledValueFromState, sliderId) {
1904
+ onChange && onChange(parseFloat(scaledValueFromState.toFixed(2)), sliderId);
1905
+ }, [
1906
+ onChange
1907
+ ]);
1582
1908
  // Update the local state from JUCE
1583
1909
  var updateLocalState = function(sliderState) {
1584
1910
  var normalisedValueFromState = sliderState === null || sliderState === void 0 ? void 0 : sliderState.getNormalisedValue();
@@ -1586,7 +1912,7 @@ var useSlider = function(param) {
1586
1912
  var scaledValue = parseFloat(scaledValueFromState.toFixed(2));
1587
1913
  normalisedValueRef.current = parseFloat(normalisedValueFromState.toFixed(2));
1588
1914
  setScaledValue(scaledValue);
1589
- onChange && onChange(parseFloat(scaledValueFromState.toFixed(2)));
1915
+ changeHandler(scaledValueFromState, id);
1590
1916
  if (displayValInHeader && (scaledValueRef === null || scaledValueRef === void 0 ? void 0 : scaledValueRef.current) !== scaledValue) {
1591
1917
  highlightedItemChanged({
1592
1918
  label: label,
@@ -1616,7 +1942,8 @@ var useSlider = function(param) {
1616
1942
  };
1617
1943
  }
1618
1944
  }, [
1619
- window
1945
+ window,
1946
+ changeHandler
1620
1947
  ]);
1621
1948
  // Update JUCE state
1622
1949
  var setNormalisedState = function(newValue) {
@@ -1684,6 +2011,8 @@ var useSlider = function(param) {
1684
2011
  param.event;
1685
2012
  sliderState.sliderDragEnded();
1686
2013
  }
2014
+ }, {
2015
+ enabled: !isDisabled
1687
2016
  });
1688
2017
  var bindBarSliderDrag = function() {
1689
2018
  var drag = useDrag(function(param) {
@@ -1712,7 +2041,8 @@ var useSlider = function(param) {
1712
2041
  sliderState.sliderDragEnded();
1713
2042
  }
1714
2043
  }, {
1715
- preventDefault: false
2044
+ preventDefault: false,
2045
+ enabled: !isDisabled
1716
2046
  });
1717
2047
  return drag();
1718
2048
  };
@@ -1763,6 +2093,8 @@ var useSlider = function(param) {
1763
2093
  sliderState.sliderDragEnded();
1764
2094
  }
1765
2095
  }
2096
+ }, {
2097
+ enabled: !isDisabled
1766
2098
  });
1767
2099
  var setToDefaultState = function() {
1768
2100
  return setDefaultParameter(id);
@@ -2047,7 +2379,7 @@ function Slider(param) {
2047
2379
  }, polarity === Polarity.bipolar && /*#__PURE__*/ React__default.createElement("div", {
2048
2380
  className: 'Slider-center-marker'
2049
2381
  }), /*#__PURE__*/ React__default.createElement("div", _object_spread_props$1(_object_spread$d({
2050
- className: classnames('Slider-bar', 'relative')
2382
+ className: classnames('Slider', 'Slider-bar', 'relative')
2051
2383
  }, drag()), {
2052
2384
  // onMouseEnter={onMouseEnter}
2053
2385
  id: id,
@@ -2321,13 +2653,15 @@ var Icons = /*#__PURE__*/ function(Icons) {
2321
2653
  return Icons;
2322
2654
  }({});
2323
2655
  var Undo = function(param) {
2324
- var color = param.color;
2656
+ var color = param.color, height = param.height;
2325
2657
  return /*#__PURE__*/ React__default.createElement("svg", {
2326
2658
  viewBox: "0 0 25 25",
2327
2659
  "stroke-width": "1.5",
2328
2660
  fill: "none",
2329
2661
  xmlns: "http://www.w3.org/2000/svg",
2330
- color: color
2662
+ color: color,
2663
+ height: height,
2664
+ width: height
2331
2665
  }, /*#__PURE__*/ React__default.createElement("path", {
2332
2666
  d: "M4.5 8C8.5 8 11 8 15 8C15 8 15 8 15 8C15 8 20 8 20 12.7059C20 18 15 18 15 18C11.5714 18 9.71429 18 6.28571 18",
2333
2667
  stroke: color,
@@ -2343,13 +2677,15 @@ var Undo = function(param) {
2343
2677
  }));
2344
2678
  };
2345
2679
  var Redo = function(param) {
2346
- var color = param.color;
2680
+ var color = param.color, height = param.height;
2347
2681
  return /*#__PURE__*/ React__default.createElement("svg", {
2348
2682
  viewBox: "0 0 25 25",
2349
2683
  "stroke-width": "1.5",
2350
2684
  fill: "none",
2351
2685
  xmlns: "http://www.w3.org/2000/svg",
2352
- color: color
2686
+ color: color,
2687
+ height: height,
2688
+ width: height
2353
2689
  }, /*#__PURE__*/ React__default.createElement("path", {
2354
2690
  d: "M19.5 8C15.5 8 13 8 9 8C9 8 9 8 9 8C9 8 4 8 4 12.7059C4 18 9 18 9 18C12.4286 18 14.2857 18 17.7143 18",
2355
2691
  stroke: color,
@@ -2365,13 +2701,15 @@ var Redo = function(param) {
2365
2701
  }));
2366
2702
  };
2367
2703
  var Favorite = function(param) {
2368
- var color = param.color;
2704
+ var color = param.color, height = param.height;
2369
2705
  return /*#__PURE__*/ React__default.createElement("svg", {
2370
2706
  "stroke-width": "1.5",
2371
2707
  viewBox: "-7 -7 40 40",
2372
2708
  fill: "none",
2373
2709
  xmlns: "http://www.w3.org/2000/svg",
2374
- color: color
2710
+ color: color,
2711
+ height: height,
2712
+ width: height
2375
2713
  }, /*#__PURE__*/ React__default.createElement("path", {
2376
2714
  d: "M22 8.86222C22 10.4087 21.4062 11.8941 20.3458 12.9929C17.9049 15.523 15.5374 18.1613 13.0053 20.5997C12.4249 21.1505 11.5042 21.1304 10.9488 20.5547L3.65376 12.9929C1.44875 10.7072 1.44875 7.01723 3.65376 4.73157C5.88044 2.42345 9.50794 2.42345 11.7346 4.73157L11.9998 5.00642L12.2648 4.73173C13.3324 3.6245 14.7864 3 16.3053 3C17.8242 3 19.2781 3.62444 20.3458 4.73157C21.4063 5.83045 22 7.31577 22 8.86222Z",
2377
2715
  stroke: color,
@@ -2380,13 +2718,15 @@ var Favorite = function(param) {
2380
2718
  }));
2381
2719
  };
2382
2720
  var Up = function(param) {
2383
- var color = param.color;
2721
+ var color = param.color, height = param.height;
2384
2722
  return /*#__PURE__*/ React__default.createElement("svg", {
2385
2723
  viewBox: "0 0 25 25",
2386
2724
  "stroke-width": "1.5",
2387
2725
  fill: "none",
2388
2726
  xmlns: "http://www.w3.org/2000/svg",
2389
- color: color
2727
+ color: color,
2728
+ height: height,
2729
+ width: height
2390
2730
  }, /*#__PURE__*/ React__default.createElement("path", {
2391
2731
  "fill-rule": "evenodd",
2392
2732
  "clip-rule": "evenodd",
@@ -2395,13 +2735,15 @@ var Up = function(param) {
2395
2735
  }));
2396
2736
  };
2397
2737
  var Down = function(param) {
2398
- var color = param.color;
2738
+ var color = param.color, height = param.height;
2399
2739
  return /*#__PURE__*/ React__default.createElement("svg", {
2400
2740
  viewBox: "0 0 25 25",
2401
2741
  "stroke-width": "1.5",
2402
2742
  fill: "none",
2403
2743
  xmlns: "http://www.w3.org/2000/svg",
2404
- color: color
2744
+ color: color,
2745
+ height: height,
2746
+ width: height
2405
2747
  }, /*#__PURE__*/ React__default.createElement("path", {
2406
2748
  "fill-rule": "evenodd",
2407
2749
  "clip-rule": "evenodd",
@@ -2410,13 +2752,15 @@ var Down = function(param) {
2410
2752
  }));
2411
2753
  };
2412
2754
  var Save = function(param) {
2413
- var color = param.color;
2755
+ var color = param.color, height = param.height;
2414
2756
  return /*#__PURE__*/ React__default.createElement("svg", {
2415
2757
  "stroke-width": "1.5",
2416
2758
  viewBox: "-7 -7 40 40",
2417
2759
  fill: "none",
2418
2760
  xmlns: "http://www.w3.org/2000/svg",
2419
- color: color
2761
+ color: color,
2762
+ height: height,
2763
+ width: height
2420
2764
  }, /*#__PURE__*/ React__default.createElement("path", {
2421
2765
  d: "M3 19V5C3 3.89543 3.89543 3 5 3H16.1716C16.702 3 17.2107 3.21071 17.5858 3.58579L20.4142 6.41421C20.7893 6.78929 21 7.29799 21 7.82843V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19Z",
2422
2766
  stroke: color,
@@ -2432,13 +2776,15 @@ var Save = function(param) {
2432
2776
  }));
2433
2777
  };
2434
2778
  var Random = function(param) {
2435
- var color = param.color;
2779
+ var color = param.color, height = param.height;
2436
2780
  return /*#__PURE__*/ React__default.createElement("svg", {
2437
2781
  viewBox: "0 0 25 25",
2438
2782
  "stroke-width": "1.5",
2439
2783
  fill: "none",
2440
2784
  xmlns: "http://www.w3.org/2000/svg",
2441
- color: color
2785
+ color: color,
2786
+ height: height,
2787
+ width: height
2442
2788
  }, /*#__PURE__*/ React__default.createElement("path", {
2443
2789
  d: "M11.7 1.1732C11.8856 1.06603 12.1144 1.06603 12.3 1.17321L21.2263 6.3268C21.4119 6.43397 21.5263 6.63205 21.5263 6.84641V17.1536C21.5263 17.3679 21.4119 17.566 21.2263 17.6732L12.3 22.8268C12.1144 22.934 11.8856 22.934 11.7 22.8268L2.77372 17.6732C2.58808 17.566 2.47372 17.3679 2.47372 17.1536V6.84641C2.47372 6.63205 2.58808 6.43397 2.77372 6.32679L11.7 1.1732Z",
2444
2790
  stroke: color,
@@ -2489,15 +2835,15 @@ var Random = function(param) {
2489
2835
  }));
2490
2836
  };
2491
2837
  var Add = function(param) {
2492
- var color = param.color;
2838
+ var color = param.color, height = param.height;
2493
2839
  return /*#__PURE__*/ React__default.createElement("svg", {
2494
- width: "24px",
2495
- height: "24px",
2496
2840
  "stroke-width": "1.5",
2497
2841
  viewBox: "0 0 24 24",
2498
2842
  fill: "none",
2499
2843
  xmlns: "http://www.w3.org/2000/svg",
2500
- color: color
2844
+ color: color,
2845
+ height: height,
2846
+ width: height
2501
2847
  }, /*#__PURE__*/ React__default.createElement("path", {
2502
2848
  d: "M6 12H12M18 12H12M12 12V6M12 12V18",
2503
2849
  stroke: color,
@@ -2507,15 +2853,15 @@ var Add = function(param) {
2507
2853
  }));
2508
2854
  };
2509
2855
  var Delete = function(param) {
2510
- var color = param.color;
2856
+ var color = param.color, height = param.height;
2511
2857
  return /*#__PURE__*/ React__default.createElement("svg", {
2512
- width: "24px",
2513
- height: "24px",
2514
2858
  viewBox: "0 0 24 24",
2515
2859
  fill: "none",
2516
2860
  xmlns: "http://www.w3.org/2000/svg",
2517
2861
  color: color,
2518
- "stroke-width": "1.5"
2862
+ "stroke-width": "1.5",
2863
+ height: height,
2864
+ width: height
2519
2865
  }, /*#__PURE__*/ React__default.createElement("path", {
2520
2866
  "fill-rule": "evenodd",
2521
2867
  "clip-rule": "evenodd",
@@ -2552,7 +2898,7 @@ function Icon(param) {
2552
2898
  height: height
2553
2899
  }, style)
2554
2900
  }, /*#__PURE__*/ React__default.createElement(_$Icon, {
2555
- width: width,
2901
+ height: width,
2556
2902
  color: disabled ? 'var(--color-gray-400)' : color
2557
2903
  }));
2558
2904
  }
@@ -2608,7 +2954,7 @@ function IconButton(param) {
2608
2954
  height: height
2609
2955
  }, style)
2610
2956
  }, /*#__PURE__*/ React__default.createElement(Icon, {
2611
- width: width,
2957
+ height: height,
2612
2958
  color: disabled ? 'var(--color-gray-400)' : color
2613
2959
  }));
2614
2960
  }
@@ -3862,7 +4208,7 @@ function ModuleHeader(param) {
3862
4208
  }, "Advanced")))));
3863
4209
  }
3864
4210
 
3865
- var css_248z$1 = ".ModMatrix {\n color: var(--color-text);\n font-size: var(--text-ms);\n}\n\n.ModMatrixCell {\n background: #252429;\n position: relative;\n}\n\n.ModMatrixToggleCell {\n cursor: pointer;\n}\n\n.ModMatrixComboboxCell {\n background: #252429;\n cursor: pointer;\n}\n\n.ModMatrixComboboxItems {\n position: absolute;\n z-index: 50;\n bottom: -151px;\n left: 0px;\n height: 150px;\n width: 100%;\n background: var(--color-gray-500);\n color: var(--color-text);\n font-family: var(--font-leagueSpartan);\n overflow-y: auto;\n overflow-x: hidden;\n cursor: pointer;\n}\n\n.ModMatrixComboboxItem:hover,\n.ModMatrixComboboxItem:active,\n.ModMatrixComboboxItem[data-selected] {\n background: var(--color-gray-600);\n}\n\n.ModMatrixComboboxItem {\n padding: var(--spacing-md) var(--spacing-lg);\n width: 100%;\n}\n.ModMatrixComboboxButton {\n cursor: pointer;\n}\n";
4211
+ var css_248z$1 = ".ModMatrix {\n color: var(--color-text);\n font-size: var(--text-ms);\n}\n\n.ModMatrixCell {\n background: #252429;\n position: relative;\n}\n\n.ModMatrixCell.isDisabled {\n /* background: var(--bg-muted);\n color: var(--color-gray-400); */\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.ModMatrixToggleCell {\n cursor: pointer;\n}\n\n.ModMatrixComboboxCell {\n background: #252429;\n cursor: pointer;\n}\n\n.ModMatrixComboboxItems {\n position: absolute;\n z-index: 50;\n bottom: -151px;\n left: 0px;\n height: 150px;\n width: 100%;\n background: var(--color-gray-500);\n color: var(--color-text);\n font-family: var(--font-leagueSpartan);\n overflow-y: auto;\n overflow-x: hidden;\n cursor: pointer;\n}\n\n.ModMatrixComboboxItem:hover,\n.ModMatrixComboboxItem:active,\n.ModMatrixComboboxItem[data-selected] {\n background: var(--color-gray-600);\n}\n\n.ModMatrixComboboxItem {\n padding: var(--spacing-md) var(--spacing-lg);\n width: 100%;\n}\n.ModMatrixComboboxButton {\n cursor: pointer;\n}\n";
3866
4212
  styleInject(css_248z$1);
3867
4213
 
3868
4214
  var targetColors = [
@@ -3980,7 +4326,7 @@ var useCombobox = function(param) {
3980
4326
  var comboBoxState = Juce.getComboBoxState(id);
3981
4327
  var _useState = _sliced_to_array$7(useState(0), 2), value = _useState[0], setValue = _useState[1];
3982
4328
  var _useState1 = _sliced_to_array$7(useState(comboBoxState === null || comboBoxState === void 0 ? void 0 : comboBoxState.properties), 2), properties = _useState1[0], setProperties = _useState1[1];
3983
- var _useGlobalContext = useGlobalContext(); _useGlobalContext.highlightedItemChanged; var _useGlobalContext_globalState = _useGlobalContext.globalState, automatableParamLabels = _useGlobalContext_globalState.automatableParamLabels, modSlots = _useGlobalContext_globalState.modSlots;
4329
+ var _useGlobalContext = useGlobalContext(); _useGlobalContext.highlightedItemChanged; var addModSlotRowTargetAndMakeRowEditable = _useGlobalContext.addModSlotRowTargetAndMakeRowEditable, _useGlobalContext_globalState = _useGlobalContext.globalState, automatableParamLabels = _useGlobalContext_globalState.automatableParamLabels, modSlotTargets = _useGlobalContext_globalState.modSlotTargets, modSlotPreview = _useGlobalContext_globalState.modSlotPreview;
3984
4330
  //TODO: Filter choices for subsequent rows
3985
4331
  // const availableChoices = properties?.choices;
3986
4332
  useEffect(function() {
@@ -3991,6 +4337,14 @@ var useCombobox = function(param) {
3991
4337
  useEffect(function() {
3992
4338
  setProperties(comboBoxState === null || comboBoxState === void 0 ? void 0 : comboBoxState.properties);
3993
4339
  });
4340
+ useEffect(function() {
4341
+ if (modSlotPreview.slotId === id && modSlotPreview.targetIndex > 0) {
4342
+ setValue(modSlotPreview.targetIndex);
4343
+ }
4344
+ }, [
4345
+ modSlotTargets,
4346
+ modSlotPreview
4347
+ ]);
3994
4348
  useEffect(function() {
3995
4349
  var _comboBoxState_valueChangedEvent, _comboBoxState_propertiesChangedEvent;
3996
4350
  var valueListenerId = comboBoxState === null || comboBoxState === void 0 ? void 0 : (_comboBoxState_valueChangedEvent = comboBoxState.valueChangedEvent) === null || _comboBoxState_valueChangedEvent === void 0 ? void 0 : _comboBoxState_valueChangedEvent.addListener(function() {
@@ -4007,7 +4361,7 @@ var useCombobox = function(param) {
4007
4361
  }, [
4008
4362
  window
4009
4363
  ]);
4010
- var selectedChoices = (_Object_values = Object.values(modSlots)) === null || _Object_values === void 0 ? void 0 : _Object_values.filter(function(item) {
4364
+ var selectedChoices = (_Object_values = Object.values(modSlotTargets)) === null || _Object_values === void 0 ? void 0 : _Object_values.filter(function(item) {
4011
4365
  return item > 0;
4012
4366
  });
4013
4367
  var selectedLabels = automatableParamLabels === null || automatableParamLabels === void 0 ? void 0 : automatableParamLabels.filter(function(item, i) {
@@ -4032,6 +4386,9 @@ var useCombobox = function(param) {
4032
4386
  };
4033
4387
  var onMouseEnter = function() {
4034
4388
  };
4389
+ var onClick = function() {
4390
+ addModSlotRowTargetAndMakeRowEditable(id);
4391
+ };
4035
4392
  return {
4036
4393
  value: value,
4037
4394
  valueString: automatableParamLabels === null || automatableParamLabels === void 0 ? void 0 : automatableParamLabels[value],
@@ -4039,6 +4396,7 @@ var useCombobox = function(param) {
4039
4396
  choices: properties === null || properties === void 0 ? void 0 : properties.choices,
4040
4397
  filteredChoices: filteredChoices,
4041
4398
  onMouseEnter: onMouseEnter,
4399
+ onClick: onClick,
4042
4400
  handleChange: handleChange
4043
4401
  };
4044
4402
  };
@@ -4131,8 +4489,8 @@ function ModMatrixComboboxCell(param) {
4131
4489
  useEffect(function() {
4132
4490
  if (target) {
4133
4491
  var sliderState = Juce.getSliderState(target);
4134
- var normalisedValue = sliderState.getNormalisedValue();
4135
- setTargetValue(normalisedValue);
4492
+ var scaledValue = sliderState.scaledValue;
4493
+ setTargetValue(scaledValue);
4136
4494
  }
4137
4495
  }, [
4138
4496
  target
@@ -4165,14 +4523,15 @@ function ModMatrixComboboxCell(param) {
4165
4523
  },
4166
4524
  autoFocus: true
4167
4525
  }), /*#__PURE__*/ React__default.createElement(ComboboxButton, {
4168
- className: "ModMatrixComboboxButton"
4526
+ className: "ModMatrixComboboxButton",
4527
+ id: rowId
4169
4528
  }, /*#__PURE__*/ React__default.createElement(Icon, {
4170
4529
  icon: Icon.icon.down,
4171
4530
  backgroundColor: "transparent",
4172
4531
  onClick: function(e) {
4173
4532
  return e.preventDefault();
4174
4533
  },
4175
- color: color,
4534
+ color: 'var(--color-text)',
4176
4535
  width: "20px",
4177
4536
  height: "20px"
4178
4537
  }))), /*#__PURE__*/ React__default.createElement(ComboboxOptions, {
@@ -4224,12 +4583,16 @@ function _object_spread$3(target) {
4224
4583
  return target;
4225
4584
  }
4226
4585
  function ModMatrixToggleCell(param) {
4227
- var modifier = param.modifier, color = param.color, style = param.style;
4586
+ var modifier = param.modifier, _param_isDisabled = param.isDisabled, isDisabled = _param_isDisabled === void 0 ? false : _param_isDisabled, rowId = param.rowId, color = param.color, style = param.style;
4587
+ var _useGlobalContext = useGlobalContext(), getDefaultParameter = _useGlobalContext.getDefaultParameter, updateModSlotTargetAndResetPreview = _useGlobalContext.updateModSlotTargetAndResetPreview, modSlotPreview = _useGlobalContext.globalState.modSlotPreview;
4588
+ var rowState = Juce.getComboBoxState(rowId);
4228
4589
  var _useDropdown = useDropdown({
4229
- id: modifier
4590
+ id: modifier,
4591
+ isDisabled: isDisabled,
4592
+ onChange: updateModSlotTargetAndResetPreview
4230
4593
  }), index = _useDropdown.index, choices = _useDropdown.choices, handleChange = _useDropdown.handleChange;
4231
4594
  return /*#__PURE__*/ React__default.createElement(Box, {
4232
- className: "ModMatrixCell ModMatrixToggleCell",
4595
+ className: "ModMatrixCell ModMatrixToggleCell ".concat(isDisabled ? 'isDisabled' : ''),
4233
4596
  justifyContent: Box.justifyContent.flexEnd,
4234
4597
  alignItems: Box.alignItems.flexStart,
4235
4598
  flexDirection: Box.flexDirection.column,
@@ -4238,9 +4601,16 @@ function ModMatrixToggleCell(param) {
4238
4601
  pointerEvents: 'all'
4239
4602
  }, style),
4240
4603
  height: '2.5rem',
4241
- onClick: function() {
4604
+ onClick: function(val) {
4605
+ // Update the toggle state
4242
4606
  var newIndex = Math.abs(index - 1);
4243
4607
  handleChange(choices[newIndex]);
4608
+ // Save the selected row target to JUCE
4609
+ var defaultParameter = getDefaultParameter(modifier);
4610
+ var isRowSet = rowState === null || rowState === void 0 ? void 0 : rowState.getChoiceIndex();
4611
+ if (!isRowSet && newIndex !== defaultParameter && modSlotPreview.slotId === rowId) {
4612
+ rowState === null || rowState === void 0 ? void 0 : rowState.setChoiceIndex(modSlotPreview.targetIndex);
4613
+ }
4244
4614
  }
4245
4615
  }, /*#__PURE__*/ React__default.createElement(Box, {
4246
4616
  flex: "1",
@@ -4302,17 +4672,19 @@ function _object_spread_props(target, source) {
4302
4672
  return target;
4303
4673
  }
4304
4674
  function ModMatrixCell(param) {
4305
- var modifier = param.modifier, color = param.color, style = param.style;
4675
+ var modifier = param.modifier, isDisabled = param.isDisabled, color = param.color, style = param.style;
4306
4676
  var _SingleBarViz_polarity;
4677
+ var _useGlobalContext = useGlobalContext(), setDefaultParameter = _useGlobalContext.setDefaultParameter, updateModSlotTargetAndResetPreview = _useGlobalContext.updateModSlotTargetAndResetPreview;
4307
4678
  var _useSlider = useSlider({
4308
4679
  id: modifier,
4309
4680
  displayValInHeader: false,
4310
4681
  orientation: Orientation.horizontal,
4311
- dragOrientation: Orientation.vertical
4682
+ dragOrientation: Orientation.vertical,
4683
+ onChange: updateModSlotTargetAndResetPreview,
4684
+ isDisabled: isDisabled
4312
4685
  }), bindBarSliderDrag = _useSlider.bindBarSliderDrag, normalisedValue = _useSlider.normalisedValue, scaledValue = _useSlider.scaledValue;
4313
- var setDefaultParameter = useGlobalContext().setDefaultParameter;
4314
4686
  return /*#__PURE__*/ React__default.createElement(Box, _object_spread_props(_object_spread$2({
4315
- className: "ModMatrixCell",
4687
+ className: "ModMatrixCell ".concat(isDisabled ? 'isDisabled' : ''),
4316
4688
  justifyContent: Box.justifyContent.flexEnd,
4317
4689
  alignItems: Box.alignItems.flexStart,
4318
4690
  flexDirection: Box.flexDirection.column,
@@ -4351,31 +4723,30 @@ function ModMatrixCell(param) {
4351
4723
  }
4352
4724
 
4353
4725
  function ModMatrixRow(param) {
4354
- var rowId = param.rowId, key = param.key, _param_isPreview = param.// rowIndex,
4355
- isPreview, isPreview = _param_isPreview === void 0 ? false : _param_isPreview, setIsPreview = param.setIsPreview;
4356
- var _Object_keys, _modSlotParams_modSlotIndex;
4357
- // const [rowTarget, setRowTarget] = useState<number>();
4726
+ var rowId = param.rowId, key = param.key;
4727
+ var _modSlotParams_rowId;
4358
4728
  // const getModSlotsFunc = Juce.getNativeFunction('getModSlots');
4359
- var _useGlobalContext = useGlobalContext(), modSlotUpdated = _useGlobalContext.modSlotUpdated, setDefaultParameter = _useGlobalContext.setDefaultParameter, _useGlobalContext_globalState = _useGlobalContext.globalState, modSlotParams = _useGlobalContext_globalState.modSlotParams, modSlots = _useGlobalContext_globalState.modSlots;
4360
- var modSlotIndex = (_Object_keys = Object.keys(modSlots)) === null || _Object_keys === void 0 ? void 0 : _Object_keys.indexOf(rowId);
4729
+ var _useGlobalContext = useGlobalContext(), // modSlotTargetUpdated,
4730
+ setDefaultParameter = _useGlobalContext.setDefaultParameter, modSlotPreviewIsEditableUpdated = _useGlobalContext.modSlotPreviewIsEditableUpdated, modSlotPreviewTargetIndexUpdated = _useGlobalContext.modSlotPreviewTargetIndexUpdated, setNewModSlotPreview = _useGlobalContext.setNewModSlotPreview, modSlotTargetUpdated = _useGlobalContext.modSlotTargetUpdated, _useGlobalContext_globalState = _useGlobalContext.globalState, modSlotParams = _useGlobalContext_globalState.modSlotParams, modSlotTargets = _useGlobalContext_globalState.modSlotTargets, modSlotPreview = _useGlobalContext_globalState.modSlotPreview;
4361
4731
  var handleTargetChange = function(newTarget) {
4362
4732
  if (newTarget > 0) {
4363
- modSlotUpdated([
4364
- rowId,
4365
- newTarget
4366
- ]);
4733
+ // modSlotTargetUpdated([rowId, newTarget]);
4734
+ if (rowId === modSlotPreview.slotId) {
4735
+ modSlotPreviewTargetIndexUpdated(newTarget);
4736
+ modSlotPreviewIsEditableUpdated(true);
4737
+ }
4367
4738
  } else {
4368
- var _modSlotParams_modSlotIndex;
4369
- modSlotUpdated([
4739
+ var _modSlotParams_rowId;
4740
+ modSlotTargetUpdated([
4370
4741
  rowId,
4371
4742
  0
4372
4743
  ]);
4373
- modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_modSlotIndex = modSlotParams[modSlotIndex]) === null || _modSlotParams_modSlotIndex === void 0 ? void 0 : _modSlotParams_modSlotIndex.forEach(function(item) {
4744
+ modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_rowId = modSlotParams[rowId]) === null || _modSlotParams_rowId === void 0 ? void 0 : _modSlotParams_rowId.forEach(function(item) {
4374
4745
  setDefaultParameter(item);
4375
4746
  });
4376
- }
4377
- if (isPreview && newTarget) {
4378
- setIsPreview(false);
4747
+ if (!modSlotPreview.slotId) {
4748
+ setNewModSlotPreview();
4749
+ }
4379
4750
  }
4380
4751
  };
4381
4752
  return /*#__PURE__*/ React__default.createElement(Box, {
@@ -4390,7 +4761,7 @@ function ModMatrixRow(param) {
4390
4761
  color: targetColors[0]
4391
4762
  }
4392
4763
  }, /*#__PURE__*/ React__default.createElement(ModMatrixComboboxCell, {
4393
- target: modSlots[rowId],
4764
+ target: modSlotTargets[rowId],
4394
4765
  handleTargetChange: handleTargetChange,
4395
4766
  rowId: rowId,
4396
4767
  color: targetColors[0],
@@ -4398,8 +4769,8 @@ function ModMatrixRow(param) {
4398
4769
  width: ComboboxCellWidth
4399
4770
  },
4400
4771
  key: rowId
4401
- })), modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_modSlotIndex = modSlotParams[modSlotIndex]) === null || _modSlotParams_modSlotIndex === void 0 ? void 0 : _modSlotParams_modSlotIndex.map(function(item, i, arr) {
4402
- var _modSlotParams_modSlotIndex, _modSlotParams_modSlotIndex1;
4772
+ })), modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_rowId = modSlotParams[rowId]) === null || _modSlotParams_rowId === void 0 ? void 0 : _modSlotParams_rowId.map(function(item, i, arr) {
4773
+ var _modSlotParams_rowId, _modSlotParams_rowId1;
4403
4774
  return /*#__PURE__*/ React__default.createElement(Box, {
4404
4775
  className: "ModMatrixBodyCell",
4405
4776
  flexDirection: Box.flexDirection.column,
@@ -4408,11 +4779,15 @@ function ModMatrixRow(param) {
4408
4779
  },
4409
4780
  key: item
4410
4781
  }, i !== arr.length - 1 ? /*#__PURE__*/ React__default.createElement(ModMatrixCell, {
4411
- modifier: modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_modSlotIndex = modSlotParams[modSlotIndex]) === null || _modSlotParams_modSlotIndex === void 0 ? void 0 : _modSlotParams_modSlotIndex[i],
4412
- color: targetColors[i + 1]
4782
+ // rowId={rowId}
4783
+ modifier: modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_rowId = modSlotParams[rowId]) === null || _modSlotParams_rowId === void 0 ? void 0 : _modSlotParams_rowId[i],
4784
+ color: targetColors[i + 1],
4785
+ isDisabled: modSlotPreview.slotId === rowId && !modSlotPreview.targetIndex
4413
4786
  }) : /*#__PURE__*/ React__default.createElement(ModMatrixToggleCell, {
4414
- modifier: modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_modSlotIndex1 = modSlotParams[modSlotIndex]) === null || _modSlotParams_modSlotIndex1 === void 0 ? void 0 : _modSlotParams_modSlotIndex1[i],
4415
- color: targetColors[i + 1]
4787
+ rowId: rowId,
4788
+ modifier: modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_rowId1 = modSlotParams[rowId]) === null || _modSlotParams_rowId1 === void 0 ? void 0 : _modSlotParams_rowId1[i],
4789
+ color: targetColors[i + 1],
4790
+ isDisabled: modSlotPreview.slotId === rowId && !modSlotPreview.targetIndex
4416
4791
  }));
4417
4792
  }));
4418
4793
  }
@@ -4626,12 +5001,48 @@ function _ts_generator$1(thisArg, body) {
4626
5001
  //
4627
5002
  function ModMatrix(param) {
4628
5003
  var className = param.className, style = param.style;
4629
- var _Object_keys, _Object_keys1, _Object_keys2;
4630
- var _useState = _sliced_to_array$5(useState(), 2), previewRowIsActive = _useState[0], setPreviewRowIsActive = _useState[1];
4631
5004
  var getAutomatableParamsListFunc = Juce.getNativeFunction('getAutomatableParamsList');
4632
5005
  var getAllModSlotsFunc = Juce.getNativeFunction('getAllModSlots');
4633
5006
  var getModSlotParamsFunc = Juce.getNativeFunction('getModSlotParams');
4634
- var _useGlobalContext = useGlobalContext(), automatableParamsListReceived = _useGlobalContext.automatableParamsListReceived, automatableParamLabelsReceived = _useGlobalContext.automatableParamLabelsReceived, modSlotsReceived = _useGlobalContext.modSlotsReceived, modSlotParamsListReceived = _useGlobalContext.modSlotParamsListReceived, modSlotParamLabelsReceived = _useGlobalContext.modSlotParamLabelsReceived, _useGlobalContext_globalState = _useGlobalContext.globalState, modSlotParamLabels = _useGlobalContext_globalState.modSlotParamLabels, modSlots = _useGlobalContext_globalState.modSlots;
5007
+ var _useState = _sliced_to_array$5(useState([]), 2), displayedModSlots = _useState[0], setDisplayedModSlots = _useState[1];
5008
+ var _useGlobalContext = useGlobalContext(), automatableParamsListReceived = _useGlobalContext.automatableParamsListReceived, automatableParamLabelsReceived = _useGlobalContext.automatableParamLabelsReceived, modSlotsReceived = _useGlobalContext.modSlotsReceived, setNewModSlotPreview = _useGlobalContext.setNewModSlotPreview, modSlotParamsListReceived = _useGlobalContext.modSlotParamsListReceived, modSlotParamLabelsReceived = _useGlobalContext.modSlotParamLabelsReceived, _useGlobalContext_globalState = _useGlobalContext.globalState, modSlotParamLabels = _useGlobalContext_globalState.modSlotParamLabels, modSlotTargets = _useGlobalContext_globalState.modSlotTargets, modSlotIds = _useGlobalContext_globalState.modSlotIds, modSlotPreview = _useGlobalContext_globalState.modSlotPreview;
5009
+ // Empty state preview row
5010
+ useEffect(function() {
5011
+ var unassignedModSlots = modSlotIds === null || modSlotIds === void 0 ? void 0 : modSlotIds.filter(function(item) {
5012
+ return modSlotTargets[item] <= 0;
5013
+ });
5014
+ if ((unassignedModSlots === null || unassignedModSlots === void 0 ? void 0 : unassignedModSlots.length) > 0 && modSlotPreview.slotId.length === 0) {
5015
+ setNewModSlotPreview();
5016
+ }
5017
+ }, [
5018
+ window,
5019
+ modSlotIds,
5020
+ modSlotPreview
5021
+ ]);
5022
+ useEffect(function() {
5023
+ var _Object_keys;
5024
+ var displayedSlots = (_Object_keys = Object.keys(modSlotTargets)) === null || _Object_keys === void 0 ? void 0 : _Object_keys.reduce(function(acc, item) {
5025
+ if ((modSlotTargets === null || modSlotTargets === void 0 ? void 0 : modSlotTargets[item]) > 0) {
5026
+ acc === null || acc === void 0 ? void 0 : acc.push(item);
5027
+ }
5028
+ return acc;
5029
+ }, []).sort();
5030
+ var unassignedModSlots = modSlotIds === null || modSlotIds === void 0 ? void 0 : modSlotIds.filter(function(item) {
5031
+ return modSlotTargets[item] <= 0;
5032
+ });
5033
+ if (unassignedModSlots.length > 0) {
5034
+ setDisplayedModSlots(_to_consumable_array(displayedSlots).concat([
5035
+ modSlotPreview.slotId
5036
+ ]));
5037
+ } else {
5038
+ setDisplayedModSlots(displayedSlots);
5039
+ }
5040
+ }, [
5041
+ window,
5042
+ modSlotTargets,
5043
+ modSlotIds,
5044
+ modSlotPreview
5045
+ ]);
4635
5046
  var getAPVTSParams = function() {
4636
5047
  return _async_to_generator$1(function() {
4637
5048
  var automatableParamsList, modSlotsData, modSlotParams, e;
@@ -4692,37 +5103,9 @@ function ModMatrix(param) {
4692
5103
  }, [
4693
5104
  window
4694
5105
  ]);
4695
- useEffect(function() {
4696
- var _Object_keys;
4697
- var assignedModSlots = (_Object_keys = Object.keys(modSlots)) === null || _Object_keys === void 0 ? void 0 : _Object_keys.filter(function(item) {
4698
- return (modSlots === null || modSlots === void 0 ? void 0 : modSlots[item]) > 0;
4699
- });
4700
- if (!assignedModSlots.length) {
4701
- setPreviewRowIsActive(true);
4702
- }
4703
- }, [
4704
- modSlots
4705
- ]);
4706
5106
  var headers = [
4707
5107
  'Target'
4708
5108
  ].concat(_to_consumable_array(modSlotParamLabels));
4709
- // [slot2, slot3] unassigned
4710
- // [slot1] assigned
4711
- var assignedModSlots = (_Object_keys = Object.keys(modSlots)) === null || _Object_keys === void 0 ? void 0 : _Object_keys.filter(function(item) {
4712
- return (modSlots === null || modSlots === void 0 ? void 0 : modSlots[item]) > 0;
4713
- });
4714
- var unassignedModSlots = (_Object_keys1 = Object.keys(modSlots)) === null || _Object_keys1 === void 0 ? void 0 : _Object_keys1.filter(function(item) {
4715
- return (modSlots === null || modSlots === void 0 ? void 0 : modSlots[item]) === 0;
4716
- });
4717
- var displayedModSlots = (_Object_keys2 = Object.keys(modSlots)) === null || _Object_keys2 === void 0 ? void 0 : _Object_keys2.reduce(function(acc, item) {
4718
- if ((modSlots === null || modSlots === void 0 ? void 0 : modSlots[item]) > 0 || previewRowIsActive && item === (unassignedModSlots === null || unassignedModSlots === void 0 ? void 0 : unassignedModSlots[0])) {
4719
- return _to_consumable_array(acc).concat([
4720
- item
4721
- ]);
4722
- } else {
4723
- return _to_consumable_array(acc);
4724
- }
4725
- }, []);
4726
5109
  return /*#__PURE__*/ React__default.createElement(Box, {
4727
5110
  gap: Box.gap.medium,
4728
5111
  padding: [
@@ -4757,31 +5140,9 @@ function ModMatrix(param) {
4757
5140
  }, (displayedModSlots === null || displayedModSlots === void 0 ? void 0 : displayedModSlots.length) ? displayedModSlots === null || displayedModSlots === void 0 ? void 0 : displayedModSlots.map(function(item, i) {
4758
5141
  return /*#__PURE__*/ React__default.createElement(ModMatrixRow, {
4759
5142
  rowId: item,
4760
- key: item,
4761
- // rowIndex={i}
4762
- setIsPreview: setPreviewRowIsActive,
4763
- isPreview: previewRowIsActive && (unassignedModSlots === null || unassignedModSlots === void 0 ? void 0 : unassignedModSlots.indexOf(item)) === 0
5143
+ key: item
4764
5144
  });
4765
- }) : null), /*#__PURE__*/ React__default.createElement(Box, {
4766
- justifyContent: Box.justifyContent.flexStart
4767
- }, /*#__PURE__*/ React__default.createElement(IconButton, {
4768
- id: "addModMatrixRow",
4769
- icon: IconButton.icon.add,
4770
- margin: [
4771
- IconButton.margin.small
4772
- ],
4773
- padding: [
4774
- IconButton.padding.small
4775
- ],
4776
- disabled: (assignedModSlots === null || assignedModSlots === void 0 ? void 0 : assignedModSlots.length) === 0 || (unassignedModSlots === null || unassignedModSlots === void 0 ? void 0 : unassignedModSlots.length) === 0,
4777
- // color="var(--color-gray-500)"
4778
- // backgroundColor="transparent"
4779
- onClick: function(e) {
4780
- if ((unassignedModSlots === null || unassignedModSlots === void 0 ? void 0 : unassignedModSlots.length) > 0) {
4781
- setPreviewRowIsActive(true);
4782
- }
4783
- }
4784
- })));
5145
+ }) : null));
4785
5146
  }
4786
5147
 
4787
5148
  var svgInnerMargin = 5;