@antimatter-audio/antimatter-ui 10.15.2 → 10.16.1

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 +712 -350
  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,11 +1808,13 @@ 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
- var _document_getElementById;
1815
+ var // Update the preview mod slot target selection in the mod matrix.
1816
+ // This selection will be saved to the back end when a modifier is set for the target.
1817
+ _document_getElementById;
1500
1818
  setIsActive(true);
1501
1819
  (_document_getElementById = document.getElementById(id)) === null || _document_getElementById === void 0 ? void 0 : _document_getElementById.focus();
1502
1820
  event.stopPropagation();
@@ -1538,7 +1856,7 @@ var useSlider = function(param) {
1538
1856
  var normalisedValueRef = useRef(null);
1539
1857
  var sliderState = Juce.getSliderState(id);
1540
1858
  // const randomValueSetCounter = useRef<number>(null);
1541
- var _useGlobalContext = useGlobalContext(), useRandom = _useGlobalContext.useRandom, highlightedItemChanged = _useGlobalContext.highlightedItemChanged, setDefaultParameter = _useGlobalContext.setDefaultParameter;
1859
+ 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
1860
  var _useState2 = _sliced_to_array$c(useState(false), 2), isActive = _useState2[0], setIsActive = _useState2[1];
1543
1861
  useEffect(function() {
1544
1862
  document.addEventListener('click', clickListener);
@@ -1549,7 +1867,9 @@ var useSlider = function(param) {
1549
1867
  };
1550
1868
  }, [
1551
1869
  window,
1552
- isActive
1870
+ isActive,
1871
+ automatableParamsList,
1872
+ modSlotTargets
1553
1873
  ]);
1554
1874
  // Set the initial state
1555
1875
  //@ts-expect-error
@@ -1579,6 +1899,11 @@ var useSlider = function(param) {
1579
1899
  normalisedValueRef.current = mockInitialNormalisedValue;
1580
1900
  }
1581
1901
  }, []);
1902
+ var changeHandler = useCallback(function(scaledValueFromState, sliderId) {
1903
+ onChange && onChange(parseFloat(scaledValueFromState.toFixed(2)), sliderId);
1904
+ }, [
1905
+ onChange
1906
+ ]);
1582
1907
  // Update the local state from JUCE
1583
1908
  var updateLocalState = function(sliderState) {
1584
1909
  var normalisedValueFromState = sliderState === null || sliderState === void 0 ? void 0 : sliderState.getNormalisedValue();
@@ -1586,7 +1911,7 @@ var useSlider = function(param) {
1586
1911
  var scaledValue = parseFloat(scaledValueFromState.toFixed(2));
1587
1912
  normalisedValueRef.current = parseFloat(normalisedValueFromState.toFixed(2));
1588
1913
  setScaledValue(scaledValue);
1589
- onChange && onChange(parseFloat(scaledValueFromState.toFixed(2)));
1914
+ changeHandler(scaledValueFromState, id);
1590
1915
  if (displayValInHeader && (scaledValueRef === null || scaledValueRef === void 0 ? void 0 : scaledValueRef.current) !== scaledValue) {
1591
1916
  highlightedItemChanged({
1592
1917
  label: label,
@@ -1616,7 +1941,8 @@ var useSlider = function(param) {
1616
1941
  };
1617
1942
  }
1618
1943
  }, [
1619
- window
1944
+ window,
1945
+ changeHandler
1620
1946
  ]);
1621
1947
  // Update JUCE state
1622
1948
  var setNormalisedState = function(newValue) {
@@ -1669,6 +1995,8 @@ var useSlider = function(param) {
1669
1995
  var bindDrag = useGesture({
1670
1996
  onMouseDown: function(param) {
1671
1997
  param.event;
1998
+ console.log('addModSlotRowTargetAndMakeRowEditable');
1999
+ addModSlotRowTargetAndMakeRowEditable(id);
1672
2000
  if (!dragInProgress) {
1673
2001
  sliderState.sliderDragStarted(id);
1674
2002
  dragInProgress = true;
@@ -1684,6 +2012,8 @@ var useSlider = function(param) {
1684
2012
  param.event;
1685
2013
  sliderState.sliderDragEnded();
1686
2014
  }
2015
+ }, {
2016
+ enabled: !isDisabled
1687
2017
  });
1688
2018
  var bindBarSliderDrag = function() {
1689
2019
  var drag = useDrag(function(param) {
@@ -1712,7 +2042,8 @@ var useSlider = function(param) {
1712
2042
  sliderState.sliderDragEnded();
1713
2043
  }
1714
2044
  }, {
1715
- preventDefault: false
2045
+ preventDefault: false,
2046
+ enabled: !isDisabled
1716
2047
  });
1717
2048
  return drag();
1718
2049
  };
@@ -1763,6 +2094,8 @@ var useSlider = function(param) {
1763
2094
  sliderState.sliderDragEnded();
1764
2095
  }
1765
2096
  }
2097
+ }, {
2098
+ enabled: !isDisabled
1766
2099
  });
1767
2100
  var setToDefaultState = function() {
1768
2101
  return setDefaultParameter(id);
@@ -2047,7 +2380,7 @@ function Slider(param) {
2047
2380
  }, polarity === Polarity.bipolar && /*#__PURE__*/ React__default.createElement("div", {
2048
2381
  className: 'Slider-center-marker'
2049
2382
  }), /*#__PURE__*/ React__default.createElement("div", _object_spread_props$1(_object_spread$d({
2050
- className: classnames('Slider-bar', 'relative')
2383
+ className: classnames('Slider', 'Slider-bar', 'relative')
2051
2384
  }, drag()), {
2052
2385
  // onMouseEnter={onMouseEnter}
2053
2386
  id: id,
@@ -2321,13 +2654,15 @@ var Icons = /*#__PURE__*/ function(Icons) {
2321
2654
  return Icons;
2322
2655
  }({});
2323
2656
  var Undo = function(param) {
2324
- var color = param.color;
2657
+ var color = param.color, height = param.height;
2325
2658
  return /*#__PURE__*/ React__default.createElement("svg", {
2326
2659
  viewBox: "0 0 25 25",
2327
2660
  "stroke-width": "1.5",
2328
2661
  fill: "none",
2329
2662
  xmlns: "http://www.w3.org/2000/svg",
2330
- color: color
2663
+ color: color,
2664
+ height: height,
2665
+ width: height
2331
2666
  }, /*#__PURE__*/ React__default.createElement("path", {
2332
2667
  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
2668
  stroke: color,
@@ -2343,13 +2678,15 @@ var Undo = function(param) {
2343
2678
  }));
2344
2679
  };
2345
2680
  var Redo = function(param) {
2346
- var color = param.color;
2681
+ var color = param.color, height = param.height;
2347
2682
  return /*#__PURE__*/ React__default.createElement("svg", {
2348
2683
  viewBox: "0 0 25 25",
2349
2684
  "stroke-width": "1.5",
2350
2685
  fill: "none",
2351
2686
  xmlns: "http://www.w3.org/2000/svg",
2352
- color: color
2687
+ color: color,
2688
+ height: height,
2689
+ width: height
2353
2690
  }, /*#__PURE__*/ React__default.createElement("path", {
2354
2691
  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
2692
  stroke: color,
@@ -2365,13 +2702,15 @@ var Redo = function(param) {
2365
2702
  }));
2366
2703
  };
2367
2704
  var Favorite = function(param) {
2368
- var color = param.color;
2705
+ var color = param.color, height = param.height;
2369
2706
  return /*#__PURE__*/ React__default.createElement("svg", {
2370
2707
  "stroke-width": "1.5",
2371
2708
  viewBox: "-7 -7 40 40",
2372
2709
  fill: "none",
2373
2710
  xmlns: "http://www.w3.org/2000/svg",
2374
- color: color
2711
+ color: color,
2712
+ height: height,
2713
+ width: height
2375
2714
  }, /*#__PURE__*/ React__default.createElement("path", {
2376
2715
  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
2716
  stroke: color,
@@ -2380,13 +2719,15 @@ var Favorite = function(param) {
2380
2719
  }));
2381
2720
  };
2382
2721
  var Up = function(param) {
2383
- var color = param.color;
2722
+ var color = param.color, height = param.height;
2384
2723
  return /*#__PURE__*/ React__default.createElement("svg", {
2385
2724
  viewBox: "0 0 25 25",
2386
2725
  "stroke-width": "1.5",
2387
2726
  fill: "none",
2388
2727
  xmlns: "http://www.w3.org/2000/svg",
2389
- color: color
2728
+ color: color,
2729
+ height: height,
2730
+ width: height
2390
2731
  }, /*#__PURE__*/ React__default.createElement("path", {
2391
2732
  "fill-rule": "evenodd",
2392
2733
  "clip-rule": "evenodd",
@@ -2395,13 +2736,15 @@ var Up = function(param) {
2395
2736
  }));
2396
2737
  };
2397
2738
  var Down = function(param) {
2398
- var color = param.color;
2739
+ var color = param.color, height = param.height;
2399
2740
  return /*#__PURE__*/ React__default.createElement("svg", {
2400
2741
  viewBox: "0 0 25 25",
2401
2742
  "stroke-width": "1.5",
2402
2743
  fill: "none",
2403
2744
  xmlns: "http://www.w3.org/2000/svg",
2404
- color: color
2745
+ color: color,
2746
+ height: height,
2747
+ width: height
2405
2748
  }, /*#__PURE__*/ React__default.createElement("path", {
2406
2749
  "fill-rule": "evenodd",
2407
2750
  "clip-rule": "evenodd",
@@ -2410,13 +2753,15 @@ var Down = function(param) {
2410
2753
  }));
2411
2754
  };
2412
2755
  var Save = function(param) {
2413
- var color = param.color;
2756
+ var color = param.color, height = param.height;
2414
2757
  return /*#__PURE__*/ React__default.createElement("svg", {
2415
2758
  "stroke-width": "1.5",
2416
2759
  viewBox: "-7 -7 40 40",
2417
2760
  fill: "none",
2418
2761
  xmlns: "http://www.w3.org/2000/svg",
2419
- color: color
2762
+ color: color,
2763
+ height: height,
2764
+ width: height
2420
2765
  }, /*#__PURE__*/ React__default.createElement("path", {
2421
2766
  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
2767
  stroke: color,
@@ -2432,13 +2777,15 @@ var Save = function(param) {
2432
2777
  }));
2433
2778
  };
2434
2779
  var Random = function(param) {
2435
- var color = param.color;
2780
+ var color = param.color, height = param.height;
2436
2781
  return /*#__PURE__*/ React__default.createElement("svg", {
2437
2782
  viewBox: "0 0 25 25",
2438
2783
  "stroke-width": "1.5",
2439
2784
  fill: "none",
2440
2785
  xmlns: "http://www.w3.org/2000/svg",
2441
- color: color
2786
+ color: color,
2787
+ height: height,
2788
+ width: height
2442
2789
  }, /*#__PURE__*/ React__default.createElement("path", {
2443
2790
  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
2791
  stroke: color,
@@ -2489,15 +2836,15 @@ var Random = function(param) {
2489
2836
  }));
2490
2837
  };
2491
2838
  var Add = function(param) {
2492
- var color = param.color;
2839
+ var color = param.color, height = param.height;
2493
2840
  return /*#__PURE__*/ React__default.createElement("svg", {
2494
- width: "24px",
2495
- height: "24px",
2496
2841
  "stroke-width": "1.5",
2497
2842
  viewBox: "0 0 24 24",
2498
2843
  fill: "none",
2499
2844
  xmlns: "http://www.w3.org/2000/svg",
2500
- color: color
2845
+ color: color,
2846
+ height: height,
2847
+ width: height
2501
2848
  }, /*#__PURE__*/ React__default.createElement("path", {
2502
2849
  d: "M6 12H12M18 12H12M12 12V6M12 12V18",
2503
2850
  stroke: color,
@@ -2507,15 +2854,15 @@ var Add = function(param) {
2507
2854
  }));
2508
2855
  };
2509
2856
  var Delete = function(param) {
2510
- var color = param.color;
2857
+ var color = param.color, height = param.height;
2511
2858
  return /*#__PURE__*/ React__default.createElement("svg", {
2512
- width: "24px",
2513
- height: "24px",
2514
2859
  viewBox: "0 0 24 24",
2515
2860
  fill: "none",
2516
2861
  xmlns: "http://www.w3.org/2000/svg",
2517
2862
  color: color,
2518
- "stroke-width": "1.5"
2863
+ "stroke-width": "1.5",
2864
+ height: height,
2865
+ width: height
2519
2866
  }, /*#__PURE__*/ React__default.createElement("path", {
2520
2867
  "fill-rule": "evenodd",
2521
2868
  "clip-rule": "evenodd",
@@ -2552,7 +2899,7 @@ function Icon(param) {
2552
2899
  height: height
2553
2900
  }, style)
2554
2901
  }, /*#__PURE__*/ React__default.createElement(_$Icon, {
2555
- width: width,
2902
+ height: width,
2556
2903
  color: disabled ? 'var(--color-gray-400)' : color
2557
2904
  }));
2558
2905
  }
@@ -2608,7 +2955,7 @@ function IconButton(param) {
2608
2955
  height: height
2609
2956
  }, style)
2610
2957
  }, /*#__PURE__*/ React__default.createElement(Icon, {
2611
- width: width,
2958
+ height: height,
2612
2959
  color: disabled ? 'var(--color-gray-400)' : color
2613
2960
  }));
2614
2961
  }
@@ -3862,7 +4209,7 @@ function ModuleHeader(param) {
3862
4209
  }, "Advanced")))));
3863
4210
  }
3864
4211
 
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";
4212
+ 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
4213
  styleInject(css_248z$1);
3867
4214
 
3868
4215
  var targetColors = [
@@ -3980,7 +4327,7 @@ var useCombobox = function(param) {
3980
4327
  var comboBoxState = Juce.getComboBoxState(id);
3981
4328
  var _useState = _sliced_to_array$7(useState(0), 2), value = _useState[0], setValue = _useState[1];
3982
4329
  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;
4330
+ 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
4331
  //TODO: Filter choices for subsequent rows
3985
4332
  // const availableChoices = properties?.choices;
3986
4333
  useEffect(function() {
@@ -3991,6 +4338,14 @@ var useCombobox = function(param) {
3991
4338
  useEffect(function() {
3992
4339
  setProperties(comboBoxState === null || comboBoxState === void 0 ? void 0 : comboBoxState.properties);
3993
4340
  });
4341
+ useEffect(function() {
4342
+ if (modSlotPreview.slotId === id && modSlotPreview.targetIndex > 0) {
4343
+ setValue(modSlotPreview.targetIndex);
4344
+ }
4345
+ }, [
4346
+ modSlotTargets,
4347
+ modSlotPreview
4348
+ ]);
3994
4349
  useEffect(function() {
3995
4350
  var _comboBoxState_valueChangedEvent, _comboBoxState_propertiesChangedEvent;
3996
4351
  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 +4362,7 @@ var useCombobox = function(param) {
4007
4362
  }, [
4008
4363
  window
4009
4364
  ]);
4010
- var selectedChoices = (_Object_values = Object.values(modSlots)) === null || _Object_values === void 0 ? void 0 : _Object_values.filter(function(item) {
4365
+ var selectedChoices = (_Object_values = Object.values(modSlotTargets)) === null || _Object_values === void 0 ? void 0 : _Object_values.filter(function(item) {
4011
4366
  return item > 0;
4012
4367
  });
4013
4368
  var selectedLabels = automatableParamLabels === null || automatableParamLabels === void 0 ? void 0 : automatableParamLabels.filter(function(item, i) {
@@ -4032,6 +4387,9 @@ var useCombobox = function(param) {
4032
4387
  };
4033
4388
  var onMouseEnter = function() {
4034
4389
  };
4390
+ var onClick = function() {
4391
+ addModSlotRowTargetAndMakeRowEditable(id);
4392
+ };
4035
4393
  return {
4036
4394
  value: value,
4037
4395
  valueString: automatableParamLabels === null || automatableParamLabels === void 0 ? void 0 : automatableParamLabels[value],
@@ -4039,6 +4397,7 @@ var useCombobox = function(param) {
4039
4397
  choices: properties === null || properties === void 0 ? void 0 : properties.choices,
4040
4398
  filteredChoices: filteredChoices,
4041
4399
  onMouseEnter: onMouseEnter,
4400
+ onClick: onClick,
4042
4401
  handleChange: handleChange
4043
4402
  };
4044
4403
  };
@@ -4131,8 +4490,8 @@ function ModMatrixComboboxCell(param) {
4131
4490
  useEffect(function() {
4132
4491
  if (target) {
4133
4492
  var sliderState = Juce.getSliderState(target);
4134
- var normalisedValue = sliderState.getNormalisedValue();
4135
- setTargetValue(normalisedValue);
4493
+ var scaledValue = sliderState.scaledValue;
4494
+ setTargetValue(scaledValue);
4136
4495
  }
4137
4496
  }, [
4138
4497
  target
@@ -4165,14 +4524,15 @@ function ModMatrixComboboxCell(param) {
4165
4524
  },
4166
4525
  autoFocus: true
4167
4526
  }), /*#__PURE__*/ React__default.createElement(ComboboxButton, {
4168
- className: "ModMatrixComboboxButton"
4527
+ className: "ModMatrixComboboxButton",
4528
+ id: rowId
4169
4529
  }, /*#__PURE__*/ React__default.createElement(Icon, {
4170
4530
  icon: Icon.icon.down,
4171
4531
  backgroundColor: "transparent",
4172
4532
  onClick: function(e) {
4173
4533
  return e.preventDefault();
4174
4534
  },
4175
- color: color,
4535
+ color: 'var(--color-text)',
4176
4536
  width: "20px",
4177
4537
  height: "20px"
4178
4538
  }))), /*#__PURE__*/ React__default.createElement(ComboboxOptions, {
@@ -4224,12 +4584,16 @@ function _object_spread$3(target) {
4224
4584
  return target;
4225
4585
  }
4226
4586
  function ModMatrixToggleCell(param) {
4227
- var modifier = param.modifier, color = param.color, style = param.style;
4587
+ 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;
4588
+ var _useGlobalContext = useGlobalContext(), getDefaultParameter = _useGlobalContext.getDefaultParameter, updateModSlotTargetAndResetPreview = _useGlobalContext.updateModSlotTargetAndResetPreview, modSlotPreview = _useGlobalContext.globalState.modSlotPreview;
4589
+ var rowState = Juce.getComboBoxState(rowId);
4228
4590
  var _useDropdown = useDropdown({
4229
- id: modifier
4591
+ id: modifier,
4592
+ isDisabled: isDisabled,
4593
+ onChange: updateModSlotTargetAndResetPreview
4230
4594
  }), index = _useDropdown.index, choices = _useDropdown.choices, handleChange = _useDropdown.handleChange;
4231
4595
  return /*#__PURE__*/ React__default.createElement(Box, {
4232
- className: "ModMatrixCell ModMatrixToggleCell",
4596
+ className: "ModMatrixCell ModMatrixToggleCell ".concat(isDisabled ? 'isDisabled' : ''),
4233
4597
  justifyContent: Box.justifyContent.flexEnd,
4234
4598
  alignItems: Box.alignItems.flexStart,
4235
4599
  flexDirection: Box.flexDirection.column,
@@ -4238,9 +4602,16 @@ function ModMatrixToggleCell(param) {
4238
4602
  pointerEvents: 'all'
4239
4603
  }, style),
4240
4604
  height: '2.5rem',
4241
- onClick: function() {
4605
+ onClick: function(val) {
4606
+ // Update the toggle state
4242
4607
  var newIndex = Math.abs(index - 1);
4243
4608
  handleChange(choices[newIndex]);
4609
+ // Save the selected row target to JUCE
4610
+ var defaultParameter = getDefaultParameter(modifier);
4611
+ var isRowSet = rowState === null || rowState === void 0 ? void 0 : rowState.getChoiceIndex();
4612
+ if (!isRowSet && newIndex !== defaultParameter && modSlotPreview.slotId === rowId) {
4613
+ rowState === null || rowState === void 0 ? void 0 : rowState.setChoiceIndex(modSlotPreview.targetIndex);
4614
+ }
4244
4615
  }
4245
4616
  }, /*#__PURE__*/ React__default.createElement(Box, {
4246
4617
  flex: "1",
@@ -4302,17 +4673,19 @@ function _object_spread_props(target, source) {
4302
4673
  return target;
4303
4674
  }
4304
4675
  function ModMatrixCell(param) {
4305
- var modifier = param.modifier, color = param.color, style = param.style;
4676
+ var modifier = param.modifier, isDisabled = param.isDisabled, color = param.color, style = param.style;
4306
4677
  var _SingleBarViz_polarity;
4678
+ var _useGlobalContext = useGlobalContext(), setDefaultParameter = _useGlobalContext.setDefaultParameter, updateModSlotTargetAndResetPreview = _useGlobalContext.updateModSlotTargetAndResetPreview;
4307
4679
  var _useSlider = useSlider({
4308
4680
  id: modifier,
4309
4681
  displayValInHeader: false,
4310
4682
  orientation: Orientation.horizontal,
4311
- dragOrientation: Orientation.vertical
4683
+ dragOrientation: Orientation.vertical,
4684
+ onChange: updateModSlotTargetAndResetPreview,
4685
+ isDisabled: isDisabled
4312
4686
  }), bindBarSliderDrag = _useSlider.bindBarSliderDrag, normalisedValue = _useSlider.normalisedValue, scaledValue = _useSlider.scaledValue;
4313
- var setDefaultParameter = useGlobalContext().setDefaultParameter;
4314
4687
  return /*#__PURE__*/ React__default.createElement(Box, _object_spread_props(_object_spread$2({
4315
- className: "ModMatrixCell",
4688
+ className: "ModMatrixCell ".concat(isDisabled ? 'isDisabled' : ''),
4316
4689
  justifyContent: Box.justifyContent.flexEnd,
4317
4690
  alignItems: Box.alignItems.flexStart,
4318
4691
  flexDirection: Box.flexDirection.column,
@@ -4351,31 +4724,30 @@ function ModMatrixCell(param) {
4351
4724
  }
4352
4725
 
4353
4726
  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>();
4727
+ var rowId = param.rowId, key = param.key;
4728
+ var _modSlotParams_rowId;
4358
4729
  // 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);
4730
+ var _useGlobalContext = useGlobalContext(), // modSlotTargetUpdated,
4731
+ 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
4732
  var handleTargetChange = function(newTarget) {
4362
4733
  if (newTarget > 0) {
4363
- modSlotUpdated([
4364
- rowId,
4365
- newTarget
4366
- ]);
4734
+ // modSlotTargetUpdated([rowId, newTarget]);
4735
+ if (rowId === modSlotPreview.slotId) {
4736
+ modSlotPreviewTargetIndexUpdated(newTarget);
4737
+ modSlotPreviewIsEditableUpdated(true);
4738
+ }
4367
4739
  } else {
4368
- var _modSlotParams_modSlotIndex;
4369
- modSlotUpdated([
4740
+ var _modSlotParams_rowId;
4741
+ modSlotTargetUpdated([
4370
4742
  rowId,
4371
4743
  0
4372
4744
  ]);
4373
- modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_modSlotIndex = modSlotParams[modSlotIndex]) === null || _modSlotParams_modSlotIndex === void 0 ? void 0 : _modSlotParams_modSlotIndex.forEach(function(item) {
4745
+ modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_rowId = modSlotParams[rowId]) === null || _modSlotParams_rowId === void 0 ? void 0 : _modSlotParams_rowId.forEach(function(item) {
4374
4746
  setDefaultParameter(item);
4375
4747
  });
4376
- }
4377
- if (isPreview && newTarget) {
4378
- setIsPreview(false);
4748
+ if (!modSlotPreview.slotId) {
4749
+ setNewModSlotPreview();
4750
+ }
4379
4751
  }
4380
4752
  };
4381
4753
  return /*#__PURE__*/ React__default.createElement(Box, {
@@ -4390,7 +4762,7 @@ function ModMatrixRow(param) {
4390
4762
  color: targetColors[0]
4391
4763
  }
4392
4764
  }, /*#__PURE__*/ React__default.createElement(ModMatrixComboboxCell, {
4393
- target: modSlots[rowId],
4765
+ target: modSlotTargets[rowId],
4394
4766
  handleTargetChange: handleTargetChange,
4395
4767
  rowId: rowId,
4396
4768
  color: targetColors[0],
@@ -4398,8 +4770,8 @@ function ModMatrixRow(param) {
4398
4770
  width: ComboboxCellWidth
4399
4771
  },
4400
4772
  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;
4773
+ })), 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) {
4774
+ var _modSlotParams_rowId, _modSlotParams_rowId1;
4403
4775
  return /*#__PURE__*/ React__default.createElement(Box, {
4404
4776
  className: "ModMatrixBodyCell",
4405
4777
  flexDirection: Box.flexDirection.column,
@@ -4408,11 +4780,15 @@ function ModMatrixRow(param) {
4408
4780
  },
4409
4781
  key: item
4410
4782
  }, 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]
4783
+ // rowId={rowId}
4784
+ modifier: modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_rowId = modSlotParams[rowId]) === null || _modSlotParams_rowId === void 0 ? void 0 : _modSlotParams_rowId[i],
4785
+ color: targetColors[i + 1],
4786
+ isDisabled: modSlotPreview.slotId === rowId && !modSlotPreview.targetIndex
4413
4787
  }) : /*#__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]
4788
+ rowId: rowId,
4789
+ modifier: modSlotParams === null || modSlotParams === void 0 ? void 0 : (_modSlotParams_rowId1 = modSlotParams[rowId]) === null || _modSlotParams_rowId1 === void 0 ? void 0 : _modSlotParams_rowId1[i],
4790
+ color: targetColors[i + 1],
4791
+ isDisabled: modSlotPreview.slotId === rowId && !modSlotPreview.targetIndex
4416
4792
  }));
4417
4793
  }));
4418
4794
  }
@@ -4626,12 +5002,48 @@ function _ts_generator$1(thisArg, body) {
4626
5002
  //
4627
5003
  function ModMatrix(param) {
4628
5004
  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
5005
  var getAutomatableParamsListFunc = Juce.getNativeFunction('getAutomatableParamsList');
4632
5006
  var getAllModSlotsFunc = Juce.getNativeFunction('getAllModSlots');
4633
5007
  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;
5008
+ var _useState = _sliced_to_array$5(useState([]), 2), displayedModSlots = _useState[0], setDisplayedModSlots = _useState[1];
5009
+ 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;
5010
+ // Empty state preview row
5011
+ useEffect(function() {
5012
+ var unassignedModSlots = modSlotIds === null || modSlotIds === void 0 ? void 0 : modSlotIds.filter(function(item) {
5013
+ return modSlotTargets[item] <= 0;
5014
+ });
5015
+ if ((unassignedModSlots === null || unassignedModSlots === void 0 ? void 0 : unassignedModSlots.length) > 0 && modSlotPreview.slotId.length === 0) {
5016
+ setNewModSlotPreview();
5017
+ }
5018
+ }, [
5019
+ window,
5020
+ modSlotIds,
5021
+ modSlotPreview
5022
+ ]);
5023
+ useEffect(function() {
5024
+ var _Object_keys;
5025
+ var displayedSlots = (_Object_keys = Object.keys(modSlotTargets)) === null || _Object_keys === void 0 ? void 0 : _Object_keys.reduce(function(acc, item) {
5026
+ if ((modSlotTargets === null || modSlotTargets === void 0 ? void 0 : modSlotTargets[item]) > 0) {
5027
+ acc === null || acc === void 0 ? void 0 : acc.push(item);
5028
+ }
5029
+ return acc;
5030
+ }, []).sort();
5031
+ var unassignedModSlots = modSlotIds === null || modSlotIds === void 0 ? void 0 : modSlotIds.filter(function(item) {
5032
+ return modSlotTargets[item] <= 0;
5033
+ });
5034
+ if (unassignedModSlots.length > 0) {
5035
+ setDisplayedModSlots(_to_consumable_array(displayedSlots).concat([
5036
+ modSlotPreview.slotId
5037
+ ]));
5038
+ } else {
5039
+ setDisplayedModSlots(displayedSlots);
5040
+ }
5041
+ }, [
5042
+ window,
5043
+ modSlotTargets,
5044
+ modSlotIds,
5045
+ modSlotPreview
5046
+ ]);
4635
5047
  var getAPVTSParams = function() {
4636
5048
  return _async_to_generator$1(function() {
4637
5049
  var automatableParamsList, modSlotsData, modSlotParams, e;
@@ -4692,37 +5104,9 @@ function ModMatrix(param) {
4692
5104
  }, [
4693
5105
  window
4694
5106
  ]);
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
5107
  var headers = [
4707
5108
  'Target'
4708
5109
  ].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
5110
  return /*#__PURE__*/ React__default.createElement(Box, {
4727
5111
  gap: Box.gap.medium,
4728
5112
  padding: [
@@ -4757,31 +5141,9 @@ function ModMatrix(param) {
4757
5141
  }, (displayedModSlots === null || displayedModSlots === void 0 ? void 0 : displayedModSlots.length) ? displayedModSlots === null || displayedModSlots === void 0 ? void 0 : displayedModSlots.map(function(item, i) {
4758
5142
  return /*#__PURE__*/ React__default.createElement(ModMatrixRow, {
4759
5143
  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
5144
+ key: item
4764
5145
  });
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
- })));
5146
+ }) : null));
4785
5147
  }
4786
5148
 
4787
5149
  var svgInnerMargin = 5;