solid-pianoroll 0.0.28 → 0.0.29

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.
package/dist/dev.js CHANGED
@@ -1,12 +1,12 @@
1
- import { delegateEvents, createComponent, spread, mergeProps as mergeProps$1, insert, effect, setAttribute, memo, className, classList, template, use } from 'solid-js/web';
2
- import { createContext, createEffect, createSignal, mergeProps, Show, splitProps, createMemo, useContext, Index, For } from 'solid-js';
1
+ import { delegateEvents, createComponent, spread, mergeProps as mergeProps$1, insert, effect, setAttribute, memo, className, classList, template, setStyleProperty, use } from 'solid-js/web';
2
+ import { createContext, mergeProps, Show, splitProps, createEffect, createMemo, createSignal, useContext, Index, For } from 'solid-js';
3
3
  import { createStore } from 'solid-js/store';
4
+ import { createViewPortAxis } from 'solid-viewport';
4
5
 
5
- var __defProp = Object.defineProperty;
6
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ // src/PianoRoll.tsx
7
7
 
8
- // esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90274-pMUBja8bwWeg/solid-pianoroll/src/PianoRoll.module.css.js
9
- var digest = "4c2b012b69d9a9d56b2ed407a7df42a743722df5ccdacb8b19182ce1656beca4";
8
+ // esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-8lzhn6eq80hI/solid-pianoroll/src/PianoRoll.module.css.js
9
+ var digest = "f98365679977aeae978639d556d0bab7b4f40e1a8f0db1eb3e5c93f9af6181e2";
10
10
  var css = `._PianoRoll_1v1e7_1 {
11
11
  box-sizing: border-box;
12
12
  display: flex;
@@ -74,7 +74,7 @@ var defaultState = {
74
74
  notesScrollerClientRect: { left: 0, width: 0, top: 0, height: 0 },
75
75
  tracksScrollerClientRect: { left: 0, width: 0, top: 0, height: 0 }
76
76
  };
77
- var propNameToHandlerName = /* @__PURE__ */ __name((name) => `on${name[0]?.toUpperCase()}${name.slice(1)}Change`, "propNameToHandlerName");
77
+ var propNameToHandlerName = (name) => `on${name[0]?.toUpperCase()}${name.slice(1)}Change`;
78
78
  var pianoRollStatePropNames = [
79
79
  ...Object.keys(defaultState),
80
80
  ...Object.keys(defaultState).map(propNameToHandlerName),
@@ -86,7 +86,7 @@ var pianoRollStatePropNames = [
86
86
  "isKeyDown",
87
87
  "snapValueToGridIfEnabled"
88
88
  ];
89
- var createPianoRollstate = /* @__PURE__ */ __name((initialState) => {
89
+ var createPianoRollstate = (initialState) => {
90
90
  const [state, setState] = createStore({
91
91
  ...defaultState,
92
92
  ...initialState
@@ -106,12 +106,12 @@ var createPianoRollstate = /* @__PURE__ */ __name((initialState) => {
106
106
  ];
107
107
  })
108
108
  );
109
- const onPlayheadPositionChange = /* @__PURE__ */ __name((playheadPosition, originalEvent) => {
109
+ const onPlayheadPositionChange = (playheadPosition, originalEvent) => {
110
110
  handlers.onPlayHeadPositionChange(
111
111
  snapValueToGridIfEnabled(playheadPosition, !!originalEvent?.altKey)
112
112
  );
113
- }, "onPlayheadPositionChange");
114
- const updateNotes = /* @__PURE__ */ __name(async (trackIndex, getNotes) => {
113
+ };
114
+ const updateNotes = async (trackIndex, getNotes) => {
115
115
  const track = state.tracks[trackIndex];
116
116
  if (!track)
117
117
  return;
@@ -121,15 +121,15 @@ var createPianoRollstate = /* @__PURE__ */ __name((initialState) => {
121
121
  { ...track, notes: getNotes(notes) },
122
122
  ...state.tracks.slice(trackIndex + 1)
123
123
  ]);
124
- }, "updateNotes");
125
- const onNoteChange = /* @__PURE__ */ __name((trackIndex, noteIndex, note) => {
124
+ };
125
+ const onNoteChange = (trackIndex, noteIndex, note) => {
126
126
  updateNotes(trackIndex, (notes) => [
127
127
  ...notes.slice(0, noteIndex),
128
128
  note,
129
129
  ...notes.slice(noteIndex + 1)
130
130
  ]);
131
- }, "onNoteChange");
132
- const onInsertNote = /* @__PURE__ */ __name((trackIndex, note) => {
131
+ };
132
+ const onInsertNote = (trackIndex, note) => {
133
133
  const track = state.tracks[trackIndex];
134
134
  if (!track)
135
135
  return -1;
@@ -144,14 +144,14 @@ var createPianoRollstate = /* @__PURE__ */ __name((initialState) => {
144
144
  ...notes2.slice(newNoteIndex)
145
145
  ]);
146
146
  return newNoteIndex;
147
- }, "onInsertNote");
148
- const onRemoveNote = /* @__PURE__ */ __name((trackIndex, noteIndex) => {
147
+ };
148
+ const onRemoveNote = (trackIndex, noteIndex) => {
149
149
  updateNotes(trackIndex, (notes) => [
150
150
  ...notes.slice(0, noteIndex),
151
151
  ...notes.slice(noteIndex + 1)
152
152
  ]);
153
- }, "onRemoveNote");
154
- const updateKeyPressedState = /* @__PURE__ */ __name((trackIndex, keyNumber, value) => {
153
+ };
154
+ const updateKeyPressedState = (trackIndex, keyNumber, value) => {
155
155
  handlers.onPressedKeysChange?.({
156
156
  ...state.pressedKeys,
157
157
  [trackIndex]: {
@@ -159,18 +159,18 @@ var createPianoRollstate = /* @__PURE__ */ __name((initialState) => {
159
159
  [keyNumber]: value
160
160
  }
161
161
  });
162
- }, "updateKeyPressedState");
163
- const onNoteDown = /* @__PURE__ */ __name((trackIndex, keyNumber) => {
162
+ };
163
+ const onNoteDown = (trackIndex, keyNumber) => {
164
164
  updateKeyPressedState(trackIndex, keyNumber, true);
165
- }, "onNoteDown");
166
- const onNoteUp = /* @__PURE__ */ __name((trackIndex, keyNumber) => {
165
+ };
166
+ const onNoteUp = (trackIndex, keyNumber) => {
167
167
  updateKeyPressedState(trackIndex, keyNumber, false);
168
- }, "onNoteUp");
169
- const isKeyDown = /* @__PURE__ */ __name((trackIndex, keyNumber) => !!state.pressedKeys[trackIndex]?.[keyNumber], "isKeyDown");
170
- const snapValueToGridIfEnabled = /* @__PURE__ */ __name((value, altKey) => {
168
+ };
169
+ const isKeyDown = (trackIndex, keyNumber) => !!state.pressedKeys[trackIndex]?.[keyNumber];
170
+ const snapValueToGridIfEnabled = (value, altKey) => {
171
171
  const gridDivisionTicks = state.ppq * 4 / state.gridDivision;
172
172
  return state.snapToGrid && !altKey ? Math.round(value / gridDivisionTicks) * gridDivisionTicks : value;
173
- }, "snapValueToGridIfEnabled");
173
+ };
174
174
  return mergeProps(state, {
175
175
  ...handlers,
176
176
  onNoteChange,
@@ -182,22 +182,22 @@ var createPianoRollstate = /* @__PURE__ */ __name((initialState) => {
182
182
  snapValueToGridIfEnabled,
183
183
  onPlayheadPositionChange
184
184
  });
185
- }, "createPianoRollstate");
185
+ };
186
186
  var usePianoRollState_default = createPianoRollstate;
187
187
 
188
188
  // src/PianoRollContext.tsx
189
189
  var PianoRollContext = createContext();
190
190
  var PianoRollContextProvider = PianoRollContext.Provider;
191
- var usePianoRollContext = /* @__PURE__ */ __name(() => {
191
+ var usePianoRollContext = () => {
192
192
  const context = useContext(PianoRollContext);
193
193
  if (!context)
194
194
  throw new Error("No PianoRollContext found");
195
195
  return context;
196
- }, "usePianoRollContext");
197
- var splitContextProps = /* @__PURE__ */ __name((allProps) => splitProps(allProps, [...pianoRollStatePropNames, "showAllTracks", "showTrackList"]), "splitContextProps");
196
+ };
197
+ var splitContextProps = (allProps) => splitProps(allProps, [...pianoRollStatePropNames, "showAllTracks", "showTrackList"]);
198
198
 
199
- // esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90274-muVieWBOH8u3/solid-pianoroll/src/PianoRollKeys.module.css.js
200
- var digest2 = "2747abf13cdb3a49749f1e4e592ffdbcd8dc0f522dfec252ae0fcbd7781b5bf0";
199
+ // esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-QWt6xGwg8x8f/solid-pianoroll/src/PianoRollKeys.module.css.js
200
+ var digest2 = "2dc49011f255b6528cef972ac959dce8864dd148b3dc48487161aa29d0898925";
201
201
  var css2 = `._PianoRollKeys_1ne9i_1 {
202
202
  position: relative;
203
203
  height: 100%;
@@ -262,62 +262,58 @@ var css2 = `._PianoRollKeys_1ne9i_1 {
262
262
  })();
263
263
  var PianoRollKeys_module_css_default = { "PianoRollKeys": "_PianoRollKeys_1ne9i_1", "pianoRollKeys": "_PianoRollKeys_1ne9i_1", "Key": "_Key_1ne9i_14", "key": "_Key_1ne9i_14", "black": "_black_1ne9i_29", "white": "_white_1ne9i_38", "down": "_down_1ne9i_46" };
264
264
  function createViewPortDimension(getState) {
265
- const getStateWithFunctions = /* @__PURE__ */ __name(() => {
266
- const state2 = getState();
267
- const onZoomChange = /* @__PURE__ */ __name((zoom) => state2.onZoomChange?.(clamp(zoom, state2.minZoom, state2.maxZoom)), "onZoomChange");
268
- const onPositionChange = /* @__PURE__ */ __name((position) => state2.onPositionChange?.(position), "onPositionChange");
265
+ const axis = createViewPortAxis(() => {
266
+ const s = getState();
269
267
  return {
270
- ...state2,
271
- onZoomChange,
272
- onPositionChange,
273
- calculatePixelOffset,
274
- calculatePixelValue,
275
- calculatePosition,
276
- calculatePixelDimensions,
277
- calculateVisibleRange,
278
- calculateMaxPosition,
279
- isVisible
268
+ name: s.name,
269
+ position: s.position,
270
+ range: s.range,
271
+ pixelOffset: s.pixelOffset,
272
+ pixelSize: s.pixelSize,
273
+ zoom: s.zoom,
274
+ minZoom: s.minZoom,
275
+ maxZoom: s.maxZoom,
276
+ onPositionChange: s.onPositionChange,
277
+ onZoomChange: s.onZoomChange
280
278
  };
281
- }, "getStateWithFunctions");
282
- const [state, setState] = createStore(getStateWithFunctions());
283
- createEffect(() => setState(getStateWithFunctions()));
284
- function calculatePixelValue(position = state.position) {
285
- const virtualSize = state.pixelSize * state.zoom;
286
- return position / state.range * virtualSize;
287
- }
288
- __name(calculatePixelValue, "calculatePixelValue");
289
- function calculatePixelOffset(position) {
290
- return calculatePixelValue(position) - calculatePixelValue(state.position);
291
- }
292
- __name(calculatePixelOffset, "calculatePixelOffset");
293
- function calculatePosition(offset) {
294
- const percentX = (offset - state.pixelOffset) / state.pixelSize;
295
- const position = state.position + percentX * calculateVisibleRange();
296
- return position;
297
- }
298
- __name(calculatePosition, "calculatePosition");
299
- function calculateVisibleRange() {
300
- return state.range / state.zoom;
301
- }
302
- __name(calculateVisibleRange, "calculateVisibleRange");
303
- function calculateMaxPosition() {
304
- return state.range - state.range / state.zoom;
305
- }
306
- __name(calculateMaxPosition, "calculateMaxPosition");
307
- function calculatePixelDimensions(position, length) {
308
- const offset = calculatePixelOffset(position);
309
- const size = calculatePixelValue(length);
310
- return { offset, size };
311
- }
312
- __name(calculatePixelDimensions, "calculatePixelDimensions");
313
- function isVisible({ offset, size }) {
314
- return offset + size > 0 && offset < state.pixelSize;
315
- }
316
- __name(isVisible, "isVisible");
317
- return state;
279
+ });
280
+ return {
281
+ get name() {
282
+ return axis.name;
283
+ },
284
+ get position() {
285
+ return axis.position;
286
+ },
287
+ get range() {
288
+ return axis.range;
289
+ },
290
+ get pixelOffset() {
291
+ return axis.pixelOffset;
292
+ },
293
+ get pixelSize() {
294
+ return axis.pixelSize;
295
+ },
296
+ get zoom() {
297
+ return axis.zoom;
298
+ },
299
+ get minZoom() {
300
+ return axis.minZoom;
301
+ },
302
+ get maxZoom() {
303
+ return axis.maxZoom;
304
+ },
305
+ onPositionChange: (position) => axis.onPositionChange?.(position),
306
+ onZoomChange: (zoom) => axis.onZoomChange?.(zoom),
307
+ calculatePixelValue: (position) => axis.toPixels(position),
308
+ calculatePixelOffset: (position) => axis.toPixelOffset(position),
309
+ calculatePosition: (offset) => axis.toPosition(offset),
310
+ calculatePixelDimensions: (position, length) => axis.dimensions(position, length),
311
+ calculateVisibleRange: () => axis.visibleRange(),
312
+ calculateMaxPosition: () => axis.maxPosition(),
313
+ isVisible: (dimensions) => axis.isVisible(dimensions)
314
+ };
318
315
  }
319
- __name(createViewPortDimension, "createViewPortDimension");
320
- var clamp = /* @__PURE__ */ __name((value, min, max) => Math.max(min, Math.min(max, value)), "clamp");
316
+ var clamp = (value, min, max) => Math.max(min, Math.min(max, value));
321
317
 
322
318
  // src/viewport/ScrollZoomViewPort.tsx
323
319
  var defaultViewPortProps = {
@@ -328,7 +324,7 @@ var defaultViewPortProps = {
328
324
  minZoom: 1,
329
325
  maxZoom: Infinity
330
326
  };
331
- var ScrollZoomViewPort = /* @__PURE__ */ __name((props) => {
327
+ var ScrollZoomViewPort = (props) => {
332
328
  const viewPorts = Object.entries(props.dimensions).map(([name, viewPortProps]) => createViewPortDimension(() => ({
333
329
  name,
334
330
  ...defaultViewPortProps,
@@ -343,18 +339,18 @@ var ScrollZoomViewPort = /* @__PURE__ */ __name((props) => {
343
339
  return props.children;
344
340
  }
345
341
  });
346
- }, "ScrollZoomViewPort");
342
+ };
347
343
  var ScrollZoomViewPortContext = createContext([]);
348
- var useViewPortDimension = /* @__PURE__ */ __name((name) => {
344
+ var useViewPortDimension = (name) => {
349
345
  const viewPorts = useContext(ScrollZoomViewPortContext);
350
346
  const viewPort = name ? viewPorts.find((viewPort2) => viewPort2.name === name) : viewPorts[viewPorts.length - 1];
351
347
  if (!viewPort)
352
348
  throw new Error(`ViewPort dimension "${name}" not found.`);
353
349
  return viewPort;
354
- }, "useViewPortDimension");
350
+ };
355
351
 
356
- // esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90274-kFUHK8qcnYRc/solid-pianoroll/src/viewport/ScrollZoomContainer.module.css.js
357
- var digest3 = "e4fe5f40bb4171927322bea9bf991614f0f4fc7d6b3e5dd9ef83179606f22d04";
352
+ // esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-sRdgNeeVXBuQ/solid-pianoroll/src/viewport/ScrollZoomContainer.module.css.js
353
+ var digest3 = "8b3eabfb7fb7509fb8f2c3e80e0a7ca990acf44d3b9f09a34f5fd4d7a4b1cc4f";
358
354
  var css3 = `._ScrollZoomContainer_f395r_1 {
359
355
  height: 100%;
360
356
  width: 100%;
@@ -375,8 +371,8 @@ var css3 = `._ScrollZoomContainer_f395r_1 {
375
371
  var ScrollZoomContainer_module_css_default = { "ScrollZoomContainer": "_ScrollZoomContainer_f395r_1", "scrollZoomContainer": "_ScrollZoomContainer_f395r_1" };
376
372
 
377
373
  // src/viewport/ScrollZoomContainer.tsx
378
- var _tmpl$ = /* @__PURE__ */ template(`<div><div><div><div></div></div></div></div>`, 8);
379
- var ScrollZoomContainer = /* @__PURE__ */ __name((props) => {
374
+ var _tmpl$ = /* @__PURE__ */ template(`<div><div><div style=top:0;left:0;position:sticky;display:flex><div style=position:relative>`);
375
+ var ScrollZoomContainer = (props) => {
380
376
  let scrollContentRef;
381
377
  const [ownProps, divProps] = splitProps(props, ["ref", "verticalDimensionName", "horizontalDimensionName", "showScrollbar"]);
382
378
  const propsWithDefaults = mergeProps({
@@ -386,8 +382,7 @@ var ScrollZoomContainer = /* @__PURE__ */ __name((props) => {
386
382
  }, ownProps);
387
383
  const verticalViewPort = createMemo(() => useViewPortDimension(propsWithDefaults.verticalDimensionName));
388
384
  const horizontalViewPort = createMemo(() => useViewPortDimension(propsWithDefaults.horizontalDimensionName));
389
- const handleScroll = /* @__PURE__ */ __name((event) => {
390
- event.preventDefault();
385
+ const handleScroll = (event) => {
391
386
  if (didUpdateScroll) {
392
387
  didUpdateScroll = false;
393
388
  return;
@@ -406,25 +401,26 @@ var ScrollZoomContainer = /* @__PURE__ */ __name((props) => {
406
401
  const scrollLeftAmount = scrollLeft / (scrollWidth - width);
407
402
  verticalViewPort().onPositionChange?.(maxVerticalPosition * scrollTopAmount);
408
403
  horizontalViewPort().onPositionChange?.(maxPosition * scrollLeftAmount);
409
- }, "handleScroll");
410
- const handleWheel = /* @__PURE__ */ __name((event) => {
404
+ };
405
+ const handleWheel = (event) => {
411
406
  if (event.altKey) {
412
407
  event.preventDefault();
413
- if (Math.abs(event.deltaX) > Math.abs(event.deltaY)) {
414
- horizontalViewPort()?.onZoomChange?.(horizontalViewPort().zoom / (1 + event.deltaX / horizontalViewPort().pixelSize));
415
- const maxPosition = horizontalViewPort().calculateMaxPosition();
416
- horizontalViewPort()?.onPositionChange?.(Math.min(maxPosition, horizontalViewPort()?.position));
417
- } else {
418
- verticalViewPort()?.onZoomChange?.(verticalViewPort().zoom / (1 + event.deltaY / verticalViewPort().pixelSize));
419
- const maxVerticalPosition = verticalViewPort().calculateMaxPosition();
420
- verticalViewPort()?.onPositionChange?.(Math.min(maxVerticalPosition, verticalViewPort()?.position));
421
- }
408
+ const horizontal = Math.abs(event.deltaX) > Math.abs(event.deltaY);
409
+ const viewPort = horizontal ? horizontalViewPort() : verticalViewPort();
410
+ const delta = horizontal ? event.deltaX : event.deltaY;
411
+ const pointer = horizontal ? event.clientX : event.clientY;
412
+ const valueAtPointer = viewPort.calculatePosition(pointer);
413
+ const newZoom = viewPort.zoom / (1 + delta / viewPort.pixelSize);
414
+ const newVisibleRange = viewPort.range / newZoom;
415
+ const fraction = (pointer - viewPort.pixelOffset) / viewPort.pixelSize;
416
+ viewPort.onZoomChange?.(newZoom);
417
+ viewPort.onPositionChange?.(valueAtPointer - fraction * newVisibleRange);
422
418
  } else if (!props.showScrollbar) {
423
419
  event.preventDefault();
424
420
  event.currentTarget.scrollLeft += event.deltaX;
425
421
  event.currentTarget.scrollTop += event.deltaY;
426
422
  }
427
- }, "handleWheel");
423
+ };
428
424
  let didUpdateScroll = false;
429
425
  createEffect(() => {
430
426
  const maxVerticalPosition = verticalViewPort().calculateMaxPosition();
@@ -448,10 +444,10 @@ var ScrollZoomContainer = /* @__PURE__ */ __name((props) => {
448
444
  });
449
445
  });
450
446
  return (() => {
451
- const _el$ = _tmpl$.cloneNode(true), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild;
447
+ var _el$ = _tmpl$(), _el$2 = _el$.firstChild, _el$3 = _el$2.firstChild, _el$4 = _el$3.firstChild;
452
448
  _el$.addEventListener("wheel", handleWheel);
453
449
  _el$.addEventListener("scroll", handleScroll);
454
- const _ref$ = props.ref;
450
+ var _ref$ = props.ref;
455
451
  typeof _ref$ === "function" ? use(_ref$, _el$) : props.ref = _el$;
456
452
  spread(_el$, mergeProps$1(divProps, {
457
453
  get style() {
@@ -467,42 +463,37 @@ var ScrollZoomContainer = /* @__PURE__ */ __name((props) => {
467
463
  };
468
464
  }
469
465
  }), false, true);
470
- const _ref$2 = scrollContentRef;
466
+ var _ref$2 = scrollContentRef;
471
467
  typeof _ref$2 === "function" ? use(_ref$2, _el$2) : scrollContentRef = _el$2;
472
- _el$3.style.setProperty("top", "0");
473
- _el$3.style.setProperty("left", "0");
474
- _el$3.style.setProperty("position", "sticky");
475
- _el$3.style.setProperty("display", "flex");
476
- _el$4.style.setProperty("position", "relative");
477
468
  insert(_el$4, () => props.children);
478
469
  effect((_p$) => {
479
- const _v$ = `${verticalViewPort().pixelSize}px`, _v$2 = `${horizontalViewPort().pixelSize}px`, _v$3 = `${verticalViewPort().pixelSize}px`, _v$4 = `${horizontalViewPort().pixelSize}px`;
480
- _v$ !== _p$._v$ && _el$3.style.setProperty("height", _p$._v$ = _v$);
481
- _v$2 !== _p$._v$2 && _el$3.style.setProperty("width", _p$._v$2 = _v$2);
482
- _v$3 !== _p$._v$3 && _el$4.style.setProperty("height", _p$._v$3 = _v$3);
483
- _v$4 !== _p$._v$4 && _el$4.style.setProperty("width", _p$._v$4 = _v$4);
470
+ var _v$ = `${verticalViewPort().pixelSize}px`, _v$2 = `${horizontalViewPort().pixelSize}px`, _v$3 = `${verticalViewPort().pixelSize}px`, _v$4 = `${horizontalViewPort().pixelSize}px`;
471
+ _v$ !== _p$.e && setStyleProperty(_el$3, "height", _p$.e = _v$);
472
+ _v$2 !== _p$.t && setStyleProperty(_el$3, "width", _p$.t = _v$2);
473
+ _v$3 !== _p$.a && setStyleProperty(_el$4, "height", _p$.a = _v$3);
474
+ _v$4 !== _p$.o && setStyleProperty(_el$4, "width", _p$.o = _v$4);
484
475
  return _p$;
485
476
  }, {
486
- _v$: void 0,
487
- _v$2: void 0,
488
- _v$3: void 0,
489
- _v$4: void 0
477
+ e: void 0,
478
+ t: void 0,
479
+ a: void 0,
480
+ o: void 0
490
481
  });
491
482
  return _el$;
492
483
  })();
493
- }, "ScrollZoomContainer");
484
+ };
494
485
  var ScrollZoomContainer_default = ScrollZoomContainer;
495
486
 
496
487
  // src/PianoRollKeys.tsx
497
- var _tmpl$2 = /* @__PURE__ */ template(`<div></div>`, 2);
498
- var PianoRollKeys = /* @__PURE__ */ __name(() => {
488
+ var _tmpl$2 = /* @__PURE__ */ template(`<div>`);
489
+ var PianoRollKeys = () => {
499
490
  const verticalViewPort = createMemo(() => useViewPortDimension("vertical"));
500
491
  const horizontalViewPort = createMemo(() => useViewPortDimension("horizontalKeys"));
501
492
  const [isMouseDown, setIsMouseDown] = createSignal(false);
502
493
  const context = usePianoRollContext();
503
- const handleMouseUp = /* @__PURE__ */ __name(() => {
494
+ const handleMouseUp = () => {
504
495
  setIsMouseDown(false);
505
- }, "handleMouseUp");
496
+ };
506
497
  createEffect(() => {
507
498
  if (isMouseDown()) {
508
499
  window.addEventListener("mouseup", handleMouseUp);
@@ -511,7 +502,7 @@ var PianoRollKeys = /* @__PURE__ */ __name(() => {
511
502
  }
512
503
  });
513
504
  return (() => {
514
- const _el$ = _tmpl$2.cloneNode(true);
505
+ var _el$ = _tmpl$2();
515
506
  insert(_el$, createComponent(ScrollZoomContainer_default, {
516
507
  horizontalDimensionName: "horizontalKeys",
517
508
  showScrollbar: false,
@@ -528,7 +519,7 @@ var PianoRollKeys = /* @__PURE__ */ __name(() => {
528
519
  return verticalViewPort().isVisible(virtualDimensions());
529
520
  },
530
521
  get children() {
531
- const _el$2 = _tmpl$2.cloneNode(true);
522
+ var _el$2 = _tmpl$2();
532
523
  _el$2.addEventListener("mouseleave", () => {
533
524
  if (isMouseDown()) {
534
525
  context.onNoteUp(context.selectedTrackIndex, key().number);
@@ -547,26 +538,26 @@ var PianoRollKeys = /* @__PURE__ */ __name(() => {
547
538
  context.onNoteDown(context.selectedTrackIndex, key().number);
548
539
  };
549
540
  effect((_p$) => {
550
- const _v$3 = {
541
+ var _v$3 = {
551
542
  [PianoRollKeys_module_css_default["Key"]]: true,
552
543
  [PianoRollKeys_module_css_default["black"]]: key().isBlack,
553
544
  [PianoRollKeys_module_css_default["white"]]: !key().isBlack,
554
545
  [PianoRollKeys_module_css_default["down"]]: isDown()
555
546
  }, _v$4 = key().name, _v$5 = key().number % 12, _v$6 = `${virtualDimensions().offset - virtualDimensions().size * (!key().isBlack ? nextIsBlack ? 1 / 2 : 0 : 0)}px`, _v$7 = `${virtualDimensions().size + (!key().isBlack && nextIsBlack ? virtualDimensions().size / 2 : 0) + (!key().isBlack && previousIsBlack ? virtualDimensions().size / 2 : 0)}px`, _v$8 = `0px 0px ${Math.min(virtualDimensions().size / 20, 1)}px ${Math.min(virtualDimensions().size / 50, 1)}px rgba(0, 0, 0, 0.5) ${key().isBlack ? "" : "inset"}` + isDown() ? `0px 0px ${Math.min(virtualDimensions().size / 8, 2)}px ${Math.min(virtualDimensions().size / 20, 2)}px rgba(0, 0, 0, 0.5) inset` : "";
556
- _p$._v$3 = classList(_el$2, _v$3, _p$._v$3);
557
- _v$4 !== _p$._v$4 && setAttribute(_el$2, "title", _p$._v$4 = _v$4);
558
- _v$5 !== _p$._v$5 && setAttribute(_el$2, "data-index", _p$._v$5 = _v$5);
559
- _v$6 !== _p$._v$6 && _el$2.style.setProperty("top", _p$._v$6 = _v$6);
560
- _v$7 !== _p$._v$7 && _el$2.style.setProperty("height", _p$._v$7 = _v$7);
561
- _v$8 !== _p$._v$8 && _el$2.style.setProperty("box-shadow", _p$._v$8 = _v$8);
547
+ _p$.e = classList(_el$2, _v$3, _p$.e);
548
+ _v$4 !== _p$.t && setAttribute(_el$2, "title", _p$.t = _v$4);
549
+ _v$5 !== _p$.a && setAttribute(_el$2, "data-index", _p$.a = _v$5);
550
+ _v$6 !== _p$.o && setStyleProperty(_el$2, "top", _p$.o = _v$6);
551
+ _v$7 !== _p$.i && setStyleProperty(_el$2, "height", _p$.i = _v$7);
552
+ _v$8 !== _p$.n && setStyleProperty(_el$2, "box-shadow", _p$.n = _v$8);
562
553
  return _p$;
563
554
  }, {
564
- _v$3: void 0,
565
- _v$4: void 0,
566
- _v$5: void 0,
567
- _v$6: void 0,
568
- _v$7: void 0,
569
- _v$8: void 0
555
+ e: void 0,
556
+ t: void 0,
557
+ a: void 0,
558
+ o: void 0,
559
+ i: void 0,
560
+ n: void 0
570
561
  });
571
562
  return _el$2;
572
563
  }
@@ -576,17 +567,17 @@ var PianoRollKeys = /* @__PURE__ */ __name(() => {
576
567
  }
577
568
  }));
578
569
  effect((_p$) => {
579
- const _v$ = PianoRollKeys_module_css_default.PianoRollKeys, _v$2 = `${horizontalViewPort().pixelSize}px`;
580
- _v$ !== _p$._v$ && className(_el$, _p$._v$ = _v$);
581
- _v$2 !== _p$._v$2 && _el$.style.setProperty("width", _p$._v$2 = _v$2);
570
+ var _v$ = PianoRollKeys_module_css_default.PianoRollKeys, _v$2 = `${horizontalViewPort().pixelSize}px`;
571
+ _v$ !== _p$.e && className(_el$, _p$.e = _v$);
572
+ _v$2 !== _p$.t && setStyleProperty(_el$, "width", _p$.t = _v$2);
582
573
  return _p$;
583
574
  }, {
584
- _v$: void 0,
585
- _v$2: void 0
575
+ e: void 0,
576
+ t: void 0
586
577
  });
587
578
  return _el$;
588
579
  })();
589
- }, "PianoRollKeys");
580
+ };
590
581
  var blackKeys = [1, 3, 6, 8, 10];
591
582
  var keyNames = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"];
592
583
  var keys = Array.from({
@@ -599,8 +590,8 @@ var keys = Array.from({
599
590
  var PianoRollKeys_default = PianoRollKeys;
600
591
  delegateEvents(["mousedown", "mouseup"]);
601
592
 
602
- // esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90274-W2xGks6vBdVt/solid-pianoroll/src/PianoRollNotes.module.css.js
603
- var digest4 = "24e1bbbb7f2a4562c61f9c076e63366d30f65aef3f6581c068d2e9aba40c78c6";
593
+ // esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-fOFxcc31o2aC/solid-pianoroll/src/PianoRollNotes.module.css.js
594
+ var digest4 = "3f793f31c65fd8f88cc4fb08f90896e86c345a805956221f08511b5a800c5877";
604
595
  var css4 = `._PianoRollNotes_u3pew_1 {
605
596
  position: absolute;
606
597
  flex: 1;
@@ -644,8 +635,8 @@ var css4 = `._PianoRollNotes_u3pew_1 {
644
635
  var PianoRollNotes_module_css_default = { "PianoRollNotes": "_PianoRollNotes_u3pew_1", "pianoRollNotes": "_PianoRollNotes_u3pew_1", "Note": "_Note_u3pew_12", "note": "_Note_u3pew_12", "trimStart": "_trimStart_u3pew_22", "trimEnd": "_trimEnd_u3pew_26" };
645
636
 
646
637
  // src/PianoRollNotes.tsx
647
- var _tmpl$3 = /* @__PURE__ */ template(`<div></div>`, 2);
648
- var PianoRollNotes = /* @__PURE__ */ __name((props) => {
638
+ var _tmpl$3 = /* @__PURE__ */ template(`<div>`);
639
+ var PianoRollNotes = (props) => {
649
640
  const context = usePianoRollContext();
650
641
  const verticalViewPort = createMemo(() => useViewPortDimension(context.mode === "keys" ? "vertical" : "verticalTracks"));
651
642
  const horizontalViewPort = createMemo(() => useViewPortDimension("horizontal"));
@@ -656,7 +647,7 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
656
647
  const [currentNoteTrackIndex, setCurrentNoteTrackIndex] = createSignal(-1);
657
648
  const [diffPosition, setDiffPosition] = createSignal(0);
658
649
  const [getInitialNote, setInitialNote] = createSignal();
659
- const calculateNoteDragValues = /* @__PURE__ */ __name((event) => {
650
+ const calculateNoteDragValues = (event) => {
660
651
  const targetTrackIndex = context.mode === "tracks" ? clamp(Math.floor(verticalViewPort().calculatePosition(event.clientY)), 0, context.tracks.length - 1) : currentNoteTrackIndex() > -1 ? currentNoteTrackIndex() : context.selectedTrackIndex;
661
652
  const midi = context.mode === "keys" ? Math.floor(128 - verticalViewPort().calculatePosition(event.clientY)) : getInitialNote()?.midi ?? 60;
662
653
  const horiontalPosition = horizontalViewPort().calculatePosition(event.clientX);
@@ -665,8 +656,8 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
665
656
  midi,
666
657
  horiontalPosition
667
658
  };
668
- }, "calculateNoteDragValues");
669
- const handleMouseMove = /* @__PURE__ */ __name((mouseMoveEvent) => {
659
+ };
660
+ const handleMouseMove = (mouseMoveEvent) => {
670
661
  mouseMoveEvent.preventDefault();
671
662
  mouseMoveEvent.stopPropagation();
672
663
  const note = getInitialNote();
@@ -705,23 +696,23 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
705
696
  setCurrentNoteIndex(newNoteIndex);
706
697
  }
707
698
  }
708
- }, "handleMouseMove");
709
- const stopDragging = /* @__PURE__ */ __name(() => {
699
+ };
700
+ const stopDragging = () => {
710
701
  window.removeEventListener("mousemove", handleMouseMove);
711
702
  window.removeEventListener("mouseup", stopDragging);
712
703
  setIsDragging(false);
713
704
  setCurrentNoteIndex(-1);
714
705
  setCurrentNoteTrackIndex(-1);
715
- }, "stopDragging");
716
- const startDragging = /* @__PURE__ */ __name(() => {
706
+ };
707
+ const startDragging = () => {
717
708
  window.addEventListener("mousemove", handleMouseMove);
718
709
  window.addEventListener("mouseup", stopDragging);
719
- }, "startDragging");
720
- const getClasses = /* @__PURE__ */ __name((noteDragMode2) => {
710
+ };
711
+ const getClasses = (noteDragMode2) => {
721
712
  return noteDragMode2 ? [PianoRollNotes_module_css_default.Note, PianoRollNotes_module_css_default[noteDragMode2]] : [PianoRollNotes_module_css_default.Note];
722
- }, "getClasses");
713
+ };
723
714
  return (() => {
724
- const _el$ = _tmpl$3.cloneNode(true);
715
+ var _el$ = _tmpl$3();
725
716
  _el$.$$mousedown = (mouseDownEvent) => {
726
717
  mouseDownEvent.preventDefault();
727
718
  mouseDownEvent.stopPropagation();
@@ -747,7 +738,7 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
747
738
  setNoteDragMode("trimEnd");
748
739
  startDragging();
749
740
  };
750
- const _ref$ = props.ref;
741
+ var _ref$ = props.ref;
751
742
  typeof _ref$ === "function" ? use(_ref$, _el$) : props.ref = _el$;
752
743
  insert(_el$, createComponent(For, {
753
744
  get each() {
@@ -771,7 +762,7 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
771
762
  return memo(() => !!verticalViewPort().isVisible(verticalVirtualDimensions()))() && horizontalViewPort().isVisible(horizontalDimensions());
772
763
  },
773
764
  get children() {
774
- const _el$2 = _tmpl$3.cloneNode(true);
765
+ var _el$2 = _tmpl$3();
775
766
  _el$2.$$mousedown = (event) => {
776
767
  event.stopPropagation();
777
768
  const initialPosition = horizontalViewPort().calculatePosition(event.clientX);
@@ -797,23 +788,23 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
797
788
  };
798
789
  setAttribute(_el$2, "draggable", false);
799
790
  effect((_p$) => {
800
- const _v$ = getClasses(noteDragMode()).join(" "), _v$2 = `${track.color}`, _v$3 = (note.velocity / 128 + 2) / 3, _v$4 = `${verticalVirtualDimensions().offset}px`, _v$5 = `${verticalVirtualDimensions().size}px`, _v$6 = `${horizontalDimensions().offset}px`, _v$7 = `${horizontalDimensions().size}px`;
801
- _v$ !== _p$._v$ && className(_el$2, _p$._v$ = _v$);
802
- _v$2 !== _p$._v$2 && _el$2.style.setProperty("background-color", _p$._v$2 = _v$2);
803
- _v$3 !== _p$._v$3 && _el$2.style.setProperty("opacity", _p$._v$3 = _v$3);
804
- _v$4 !== _p$._v$4 && _el$2.style.setProperty("top", _p$._v$4 = _v$4);
805
- _v$5 !== _p$._v$5 && _el$2.style.setProperty("height", _p$._v$5 = _v$5);
806
- _v$6 !== _p$._v$6 && _el$2.style.setProperty("left", _p$._v$6 = _v$6);
807
- _v$7 !== _p$._v$7 && _el$2.style.setProperty("width", _p$._v$7 = _v$7);
791
+ var _v$ = getClasses(noteDragMode()).join(" "), _v$2 = `${track.color}`, _v$3 = (note.velocity / 128 + 2) / 3, _v$4 = `${verticalVirtualDimensions().offset}px`, _v$5 = `${verticalVirtualDimensions().size}px`, _v$6 = `${horizontalDimensions().offset}px`, _v$7 = `${horizontalDimensions().size}px`;
792
+ _v$ !== _p$.e && className(_el$2, _p$.e = _v$);
793
+ _v$2 !== _p$.t && setStyleProperty(_el$2, "background-color", _p$.t = _v$2);
794
+ _v$3 !== _p$.a && setStyleProperty(_el$2, "opacity", _p$.a = _v$3);
795
+ _v$4 !== _p$.o && setStyleProperty(_el$2, "top", _p$.o = _v$4);
796
+ _v$5 !== _p$.i && setStyleProperty(_el$2, "height", _p$.i = _v$5);
797
+ _v$6 !== _p$.n && setStyleProperty(_el$2, "left", _p$.n = _v$6);
798
+ _v$7 !== _p$.s && setStyleProperty(_el$2, "width", _p$.s = _v$7);
808
799
  return _p$;
809
800
  }, {
810
- _v$: void 0,
811
- _v$2: void 0,
812
- _v$3: void 0,
813
- _v$4: void 0,
814
- _v$5: void 0,
815
- _v$6: void 0,
816
- _v$7: void 0
801
+ e: void 0,
802
+ t: void 0,
803
+ a: void 0,
804
+ o: void 0,
805
+ i: void 0,
806
+ n: void 0,
807
+ s: void 0
817
808
  });
818
809
  return _el$2;
819
810
  }
@@ -829,12 +820,12 @@ var PianoRollNotes = /* @__PURE__ */ __name((props) => {
829
820
  }, _$p));
830
821
  return _el$;
831
822
  })();
832
- }, "PianoRollNotes");
823
+ };
833
824
  var PianoRollNotes_default = PianoRollNotes;
834
825
  delegateEvents(["mousedown", "mousemove", "dblclick"]);
835
826
 
836
- // esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90274-6CpPI7bz8DC0/solid-pianoroll/src/PianoRollGrid.module.css.js
837
- var digest5 = "235bc74c28e6dc96e6828689bdb99d4b9d1c684295fb499b0e2ce85834299f70";
827
+ // esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-FamItjgoB72k/solid-pianoroll/src/PianoRollGrid.module.css.js
828
+ var digest5 = "8f99749fdd1842645e11fa8c67b5563c2609d77e4a017609747695fcd73e49fc";
838
829
  var css5 = `._PianoRollGrid_qke5f_1 {
839
830
  position: relative;
840
831
  width: 100%;
@@ -891,7 +882,7 @@ var css5 = `._PianoRollGrid_qke5f_1 {
891
882
  }
892
883
  })();
893
884
  var PianoRollGrid_module_css_default = { "PianoRollGrid": "_PianoRollGrid_qke5f_1", "pianoRollGrid": "_PianoRollGrid_qke5f_1", "PianoRollGrid-Row": "_PianoRollGrid-Row_qke5f_7", "pianoRollGridRow": "_PianoRollGrid-Row_qke5f_7", "IsDark": "_IsDark_qke5f_14", "isDark": "_IsDark_qke5f_14", "Key": "_Key_qke5f_18", "key": "_Key_qke5f_18", "IsBlackAndNextIsWhite": "_IsBlackAndNextIsWhite_qke5f_21", "isBlackAndNextIsWhite": "_IsBlackAndNextIsWhite_qke5f_21", "PianoRollGrid-Time": "_PianoRollGrid-Time_qke5f_26", "pianoRollGridTime": "_PianoRollGrid-Time_qke5f_26", "Highlighted": "_Highlighted_qke5f_37", "highlighted": "_Highlighted_qke5f_37", "HighlightedBorder": "_HighlightedBorder_qke5f_41", "highlightedBorder": "_HighlightedBorder_qke5f_41" };
894
- var usePianoRollGrid = /* @__PURE__ */ __name(() => {
885
+ var usePianoRollGrid = () => {
895
886
  const context = usePianoRollContext();
896
887
  const horizontalViewPort = createMemo(() => useViewPortDimension("horizontal"));
897
888
  const measureTicks = createMemo(() => context.ppq * 4);
@@ -908,7 +899,6 @@ var usePianoRollGrid = /* @__PURE__ */ __name(() => {
908
899
  }
909
900
  return value;
910
901
  }
911
- __name(calculateVisibleGridDivisorTicks, "calculateVisibleGridDivisorTicks");
912
902
  const gridDivisorTicks = createMemo(
913
903
  () => calculateVisibleGridDivisorTicks(selectedGridDivisorTicks())
914
904
  );
@@ -936,18 +926,18 @@ var usePianoRollGrid = /* @__PURE__ */ __name(() => {
936
926
  });
937
927
  });
938
928
  return gridArray;
939
- }, "usePianoRollGrid");
929
+ };
940
930
  var usePianoRollGrid_default = usePianoRollGrid;
941
931
 
942
932
  // src/PianoRollGrid.tsx
943
- var _tmpl$4 = /* @__PURE__ */ template(`<div></div>`, 2);
944
- var PianoRollGrid = /* @__PURE__ */ __name(() => {
933
+ var _tmpl$4 = /* @__PURE__ */ template(`<div>`);
934
+ var PianoRollGrid = () => {
945
935
  const context = usePianoRollContext();
946
936
  const verticalViewPort = createMemo(() => useViewPortDimension(context.mode === "keys" ? "vertical" : "verticalTracks"));
947
937
  const horizontalViewPort = createMemo(() => useViewPortDimension("horizontal"));
948
938
  const gridArray = usePianoRollGrid_default();
949
939
  return (() => {
950
- const _el$ = _tmpl$4.cloneNode(true);
940
+ var _el$ = _tmpl$4();
951
941
  insert(_el$, createComponent(Index, {
952
942
  get each() {
953
943
  return gridArray();
@@ -958,21 +948,21 @@ var PianoRollGrid = /* @__PURE__ */ __name(() => {
958
948
  return horizontalViewPort().isVisible(entry().virtualDimensions);
959
949
  },
960
950
  get children() {
961
- const _el$2 = _tmpl$4.cloneNode(true);
951
+ var _el$2 = _tmpl$4();
962
952
  effect((_p$) => {
963
- const _v$ = {
953
+ var _v$ = {
964
954
  [PianoRollGrid_module_css_default["PianoRollGrid-Time"]]: true,
965
955
  [PianoRollGrid_module_css_default["Highlighted"]]: entry().isHighlighted,
966
956
  [PianoRollGrid_module_css_default["HighlightedBorder"]]: entry().hasHighlightedBorder
967
957
  }, _v$2 = `${entry().virtualDimensions.offset}px`, _v$3 = `${entry().virtualDimensions.size}px`;
968
- _p$._v$ = classList(_el$2, _v$, _p$._v$);
969
- _v$2 !== _p$._v$2 && _el$2.style.setProperty("left", _p$._v$2 = _v$2);
970
- _v$3 !== _p$._v$3 && _el$2.style.setProperty("width", _p$._v$3 = _v$3);
958
+ _p$.e = classList(_el$2, _v$, _p$.e);
959
+ _v$2 !== _p$.t && setStyleProperty(_el$2, "left", _p$.t = _v$2);
960
+ _v$3 !== _p$.a && setStyleProperty(_el$2, "width", _p$.a = _v$3);
971
961
  return _p$;
972
962
  }, {
973
- _v$: void 0,
974
- _v$2: void 0,
975
- _v$3: void 0
963
+ e: void 0,
964
+ t: void 0,
965
+ a: void 0
976
966
  });
977
967
  return _el$2;
978
968
  }
@@ -993,22 +983,22 @@ var PianoRollGrid = /* @__PURE__ */ __name(() => {
993
983
  return verticalViewPort().isVisible(virtualDimensions());
994
984
  },
995
985
  get children() {
996
- const _el$3 = _tmpl$4.cloneNode(true);
986
+ var _el$3 = _tmpl$4();
997
987
  effect((_p$) => {
998
- const _v$4 = {
988
+ var _v$4 = {
999
989
  [PianoRollGrid_module_css_default["PianoRollGrid-Row"]]: true,
1000
990
  [PianoRollGrid_module_css_default["Key"]]: true,
1001
991
  [PianoRollGrid_module_css_default["IsDark"]]: key().isBlack,
1002
992
  [PianoRollGrid_module_css_default["IsBlackAndNextIsWhite"]]: !key().isBlack && !blackKeys.includes((key().number + 1) % 12)
1003
993
  }, _v$5 = `${virtualDimensions().offset}px`, _v$6 = `${virtualDimensions().size}px`;
1004
- _p$._v$4 = classList(_el$3, _v$4, _p$._v$4);
1005
- _v$5 !== _p$._v$5 && _el$3.style.setProperty("top", _p$._v$5 = _v$5);
1006
- _v$6 !== _p$._v$6 && _el$3.style.setProperty("height", _p$._v$6 = _v$6);
994
+ _p$.e = classList(_el$3, _v$4, _p$.e);
995
+ _v$5 !== _p$.t && setStyleProperty(_el$3, "top", _p$.t = _v$5);
996
+ _v$6 !== _p$.a && setStyleProperty(_el$3, "height", _p$.a = _v$6);
1007
997
  return _p$;
1008
998
  }, {
1009
- _v$4: void 0,
1010
- _v$5: void 0,
1011
- _v$6: void 0
999
+ e: void 0,
1000
+ t: void 0,
1001
+ a: void 0
1012
1002
  });
1013
1003
  return _el$3;
1014
1004
  }
@@ -1033,20 +1023,20 @@ var PianoRollGrid = /* @__PURE__ */ __name(() => {
1033
1023
  return verticalViewPort().isVisible(virtualDimensions());
1034
1024
  },
1035
1025
  get children() {
1036
- const _el$4 = _tmpl$4.cloneNode(true);
1026
+ var _el$4 = _tmpl$4();
1037
1027
  effect((_p$) => {
1038
- const _v$7 = {
1028
+ var _v$7 = {
1039
1029
  [PianoRollGrid_module_css_default["PianoRollGrid-Row"]]: true,
1040
1030
  [PianoRollGrid_module_css_default["IsDark"]]: index() % 2 === 0
1041
1031
  }, _v$8 = `${virtualDimensions().offset}px`, _v$9 = `${virtualDimensions().size}px`;
1042
- _p$._v$7 = classList(_el$4, _v$7, _p$._v$7);
1043
- _v$8 !== _p$._v$8 && _el$4.style.setProperty("top", _p$._v$8 = _v$8);
1044
- _v$9 !== _p$._v$9 && _el$4.style.setProperty("height", _p$._v$9 = _v$9);
1032
+ _p$.e = classList(_el$4, _v$7, _p$.e);
1033
+ _v$8 !== _p$.t && setStyleProperty(_el$4, "top", _p$.t = _v$8);
1034
+ _v$9 !== _p$.a && setStyleProperty(_el$4, "height", _p$.a = _v$9);
1045
1035
  return _p$;
1046
1036
  }, {
1047
- _v$7: void 0,
1048
- _v$8: void 0,
1049
- _v$9: void 0
1037
+ e: void 0,
1038
+ t: void 0,
1039
+ a: void 0
1050
1040
  });
1051
1041
  return _el$4;
1052
1042
  }
@@ -1058,16 +1048,16 @@ var PianoRollGrid = /* @__PURE__ */ __name(() => {
1058
1048
  effect(() => className(_el$, PianoRollGrid_module_css_default.PianoRollGrid));
1059
1049
  return _el$;
1060
1050
  })();
1061
- }, "PianoRollGrid");
1051
+ };
1062
1052
  var PianoRollGrid_default = PianoRollGrid;
1063
- var _tmpl$5 = /* @__PURE__ */ template(`<input step="0.01">`, 1);
1064
- var ZoomSliderControl = /* @__PURE__ */ __name((props) => {
1053
+ var _tmpl$5 = /* @__PURE__ */ template(`<input step=0.01>`);
1054
+ var ZoomSliderControl = (props) => {
1065
1055
  const propsWithDefaults = mergeProps({
1066
1056
  orientation: "horizontal"
1067
1057
  }, props);
1068
1058
  const dimension = createMemo(() => useViewPortDimension(props.dimensionName ?? propsWithDefaults.orientation));
1069
1059
  return (() => {
1070
- const _el$ = _tmpl$5.cloneNode(true);
1060
+ var _el$ = _tmpl$5();
1071
1061
  spread(_el$, mergeProps$1({
1072
1062
  get min() {
1073
1063
  return dimension().minZoom;
@@ -1088,7 +1078,7 @@ var ZoomSliderControl = /* @__PURE__ */ __name((props) => {
1088
1078
  orient: propsWithDefaults.orientation
1089
1079
  }), {
1090
1080
  get style() {
1091
- return propsWithDefaults.orientation === "vertical" ? {
1081
+ return memo(() => propsWithDefaults.orientation === "vertical")() ? {
1092
1082
  margin: 0,
1093
1083
  "margin-left": "4px",
1094
1084
  "margin-right": "4px",
@@ -1097,6 +1087,7 @@ var ZoomSliderControl = /* @__PURE__ */ __name((props) => {
1097
1087
  ...{
1098
1088
  "writing-mode": "bt-lr",
1099
1089
  "-webkit-appearance": "slider-vertical"
1090
+ /* WebKit */
1100
1091
  },
1101
1092
  ...typeof props.style === "object" && props.style
1102
1093
  } : {
@@ -1109,11 +1100,11 @@ var ZoomSliderControl = /* @__PURE__ */ __name((props) => {
1109
1100
  }), false, false);
1110
1101
  return _el$;
1111
1102
  })();
1112
- }, "ZoomSliderControl");
1103
+ };
1113
1104
  var ZoomSliderControl_default = ZoomSliderControl;
1114
1105
 
1115
- // esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90274-04o3zUwnfo41/solid-pianoroll/src/PianoRollTrackList.module.css.js
1116
- var digest6 = "afbe02a679816121294673116a825a0139d6f81501e4f92d1b588dc1edcd59c5";
1106
+ // esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-w5NNkTp9mNCS/solid-pianoroll/src/PianoRollTrackList.module.css.js
1107
+ var digest6 = "d049e8498e63cdce6936c315f09fa36f99bc002cbbdbdda32aca02834e99d8dd";
1117
1108
  var css6 = `._PianoRollTrackList_11kti_1 {
1118
1109
  position: relative;
1119
1110
  height: 100%;
@@ -1150,13 +1141,13 @@ Track._selected_11kti_21 {
1150
1141
  }
1151
1142
  })();
1152
1143
  var PianoRollTrackList_module_css_default = { "PianoRollTrackList": "_PianoRollTrackList_11kti_1", "pianoRollTrackList": "_PianoRollTrackList_11kti_1", "Track": "_Track_11kti_7", "track": "_Track_11kti_7", "selected": "_selected_11kti_21" };
1153
- var _tmpl$6 = /* @__PURE__ */ template(`<div></div>`, 2);
1154
- var _tmpl$22 = /* @__PURE__ */ template(`<div> </div>`, 2);
1155
- var PianoRollTrackList = /* @__PURE__ */ __name(() => {
1144
+ var _tmpl$6 = /* @__PURE__ */ template(`<div>`);
1145
+ var _tmpl$22 = /* @__PURE__ */ template(`<div> `);
1146
+ var PianoRollTrackList = () => {
1156
1147
  const viewPort = createMemo(() => useViewPortDimension("verticalTracks"));
1157
1148
  const context = usePianoRollContext();
1158
1149
  return (() => {
1159
- const _el$ = _tmpl$6.cloneNode(true);
1150
+ var _el$ = _tmpl$6();
1160
1151
  insert(_el$, createComponent(Index, {
1161
1152
  get each() {
1162
1153
  return context.tracks;
@@ -1168,25 +1159,25 @@ var PianoRollTrackList = /* @__PURE__ */ __name(() => {
1168
1159
  return virtualDimensions().size > 0;
1169
1160
  },
1170
1161
  get children() {
1171
- const _el$2 = _tmpl$22.cloneNode(true), _el$3 = _el$2.firstChild;
1162
+ var _el$2 = _tmpl$22(), _el$3 = _el$2.firstChild;
1172
1163
  _el$2.$$click = () => context.onSelectedTrackIndexChange?.(index);
1173
1164
  insert(_el$2, index, _el$3);
1174
1165
  insert(_el$2, () => track().name || "[unnamed track]", null);
1175
1166
  effect((_p$) => {
1176
- const _v$ = {
1167
+ var _v$ = {
1177
1168
  [PianoRollTrackList_module_css_default["Track"]]: true,
1178
1169
  [PianoRollTrackList_module_css_default["selected"]]: index === context.selectedTrackIndex
1179
1170
  }, _v$2 = track().name, _v$3 = `${virtualDimensions().offset}px`, _v$4 = `${virtualDimensions().size}px`;
1180
- _p$._v$ = classList(_el$2, _v$, _p$._v$);
1181
- _v$2 !== _p$._v$2 && setAttribute(_el$2, "title", _p$._v$2 = _v$2);
1182
- _v$3 !== _p$._v$3 && _el$2.style.setProperty("top", _p$._v$3 = _v$3);
1183
- _v$4 !== _p$._v$4 && _el$2.style.setProperty("height", _p$._v$4 = _v$4);
1171
+ _p$.e = classList(_el$2, _v$, _p$.e);
1172
+ _v$2 !== _p$.t && setAttribute(_el$2, "title", _p$.t = _v$2);
1173
+ _v$3 !== _p$.a && setStyleProperty(_el$2, "top", _p$.a = _v$3);
1174
+ _v$4 !== _p$.o && setStyleProperty(_el$2, "height", _p$.o = _v$4);
1184
1175
  return _p$;
1185
1176
  }, {
1186
- _v$: void 0,
1187
- _v$2: void 0,
1188
- _v$3: void 0,
1189
- _v$4: void 0
1177
+ e: void 0,
1178
+ t: void 0,
1179
+ a: void 0,
1180
+ o: void 0
1190
1181
  });
1191
1182
  return _el$2;
1192
1183
  }
@@ -1196,10 +1187,10 @@ var PianoRollTrackList = /* @__PURE__ */ __name(() => {
1196
1187
  effect(() => className(_el$, PianoRollTrackList_module_css_default.PianoRollTrackList));
1197
1188
  return _el$;
1198
1189
  })();
1199
- }, "PianoRollTrackList");
1190
+ };
1200
1191
  var PianoRollTrackList_default = PianoRollTrackList;
1201
1192
  delegateEvents(["click"]);
1202
- var PianoRollScrollZoomViewPort = /* @__PURE__ */ __name((props) => {
1193
+ var PianoRollScrollZoomViewPort = (props) => {
1203
1194
  const zoomFactor = 500;
1204
1195
  const context = usePianoRollContext();
1205
1196
  return createComponent(ScrollZoomViewPort, {
@@ -1249,7 +1240,7 @@ var PianoRollScrollZoomViewPort = /* @__PURE__ */ __name((props) => {
1249
1240
  return props.children;
1250
1241
  }
1251
1242
  });
1252
- }, "PianoRollScrollZoomViewPort");
1243
+ };
1253
1244
  var PianoRollScrollZoomViewPort_default = PianoRollScrollZoomViewPort;
1254
1245
  var defaultRect = {
1255
1246
  left: 0,
@@ -1267,9 +1258,9 @@ function useBoundingClientRect(containerRef) {
1267
1258
  const container = containerRef();
1268
1259
  if (!container)
1269
1260
  return;
1270
- const updateBoundingClientRect = /* @__PURE__ */ __name(() => {
1261
+ const updateBoundingClientRect = () => {
1271
1262
  setBoundingClientRect(container.getBoundingClientRect() ?? defaultRect);
1272
- }, "updateBoundingClientRect");
1263
+ };
1273
1264
  const resizeObserver = new ResizeObserver(updateBoundingClientRect);
1274
1265
  resizeObserver.observe(container);
1275
1266
  updateBoundingClientRect();
@@ -1279,10 +1270,9 @@ function useBoundingClientRect(containerRef) {
1279
1270
  });
1280
1271
  return boundingClientRect;
1281
1272
  }
1282
- __name(useBoundingClientRect, "useBoundingClientRect");
1283
1273
 
1284
1274
  // src/PianoRollNotesScroller.tsx
1285
- var PianoRollNotesScroller = /* @__PURE__ */ __name((props) => {
1275
+ var PianoRollNotesScroller = (props) => {
1286
1276
  const context = usePianoRollContext();
1287
1277
  const [ref, setRef] = createSignal();
1288
1278
  const clientRect = useBoundingClientRect(ref);
@@ -1298,9 +1288,9 @@ var PianoRollNotesScroller = /* @__PURE__ */ __name((props) => {
1298
1288
  return props.children;
1299
1289
  }
1300
1290
  });
1301
- }, "PianoRollNotesScroller");
1291
+ };
1302
1292
  var PianoRollNotesScroller_default = PianoRollNotesScroller;
1303
- var PianoRollTrackListScroller = /* @__PURE__ */ __name((props) => {
1293
+ var PianoRollTrackListScroller = (props) => {
1304
1294
  const context = usePianoRollContext();
1305
1295
  const [ref, setRef] = createSignal();
1306
1296
  const clientRect = useBoundingClientRect(ref);
@@ -1318,11 +1308,11 @@ var PianoRollTrackListScroller = /* @__PURE__ */ __name((props) => {
1318
1308
  return props.children;
1319
1309
  }
1320
1310
  });
1321
- }, "PianoRollTrackListScroller");
1311
+ };
1322
1312
  var PianoRollTrackListScroller_default = PianoRollTrackListScroller;
1323
1313
 
1324
- // esbuild-css-modules-plugin-namespace:/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90274-8G8I801gc8CC/solid-pianoroll/src/PianoRollScale.module.css.js
1325
- var digest7 = "395878099b1ce30d4f3cdc790318386e5318ae90ec1fbca8292947126d57e274";
1314
+ // esbuild-css-modules-plugin-namespace:/private/var/folders/hn/m5r9jj0x3zb28s_y23nrnhmc0000gn/T/tmp-90536-cm8q894CpXzZ/solid-pianoroll/src/PianoRollScale.module.css.js
1315
+ var digest7 = "8c0c1123f6a44a31a2bc14c10ff9100747fd8502666ba18676b6ac47d08bc8ba";
1326
1316
  var css7 = `._PianoRollScale_1khhn_1 {
1327
1317
  position: relative;
1328
1318
  width: 100%;
@@ -1375,23 +1365,23 @@ var css7 = `._PianoRollScale_1khhn_1 {
1375
1365
  var PianoRollScale_module_css_default = { "PianoRollScale": "_PianoRollScale_1khhn_1", "pianoRollScale": "_PianoRollScale_1khhn_1", "PianoRollScale-Time": "_PianoRollScale-Time_1khhn_7", "pianoRollScaleTime": "_PianoRollScale-Time_1khhn_7", "PianoRollScale-Label": "_PianoRollScale-Label_1khhn_23", "pianoRollScaleLabel": "_PianoRollScale-Label_1khhn_23", "Highlighted": "_Highlighted_1khhn_31", "highlighted": "_Highlighted_1khhn_31", "HighlightedBorder": "_HighlightedBorder_1khhn_35", "highlightedBorder": "_HighlightedBorder_1khhn_35" };
1376
1366
 
1377
1367
  // src/PianoRollScale.tsx
1378
- var _tmpl$7 = /* @__PURE__ */ template(`<div></div>`, 2);
1379
- var PianoRollScale = /* @__PURE__ */ __name(() => {
1368
+ var _tmpl$7 = /* @__PURE__ */ template(`<div>`);
1369
+ var PianoRollScale = () => {
1380
1370
  const horizontalViewPort = createMemo(() => useViewPortDimension("horizontal"));
1381
1371
  const grid = usePianoRollGrid_default();
1382
1372
  const context = usePianoRollContext();
1383
- const updatePlayheadPosition = /* @__PURE__ */ __name((event) => {
1373
+ const updatePlayheadPosition = (event) => {
1384
1374
  const position = horizontalViewPort().calculatePosition(event.clientX);
1385
1375
  context.onPlayHeadPositionChange(position, event);
1386
- }, "updatePlayheadPosition");
1376
+ };
1387
1377
  return (() => {
1388
- const _el$ = _tmpl$7.cloneNode(true);
1378
+ var _el$ = _tmpl$7();
1389
1379
  _el$.$$mousedown = (event) => {
1390
1380
  updatePlayheadPosition(event);
1391
- const handleMouseUp = /* @__PURE__ */ __name(() => {
1381
+ const handleMouseUp = () => {
1392
1382
  window.removeEventListener("mousemove", updatePlayheadPosition);
1393
1383
  window.removeEventListener("mouseup", handleMouseUp);
1394
- }, "handleMouseUp");
1384
+ };
1395
1385
  window.addEventListener("mousemove", updatePlayheadPosition);
1396
1386
  window.addEventListener("mouseup", handleMouseUp);
1397
1387
  };
@@ -1405,32 +1395,32 @@ var PianoRollScale = /* @__PURE__ */ __name(() => {
1405
1395
  return horizontalViewPort().isVisible(entry().virtualDimensions);
1406
1396
  },
1407
1397
  get children() {
1408
- const _el$2 = _tmpl$7.cloneNode(true);
1398
+ var _el$2 = _tmpl$7();
1409
1399
  insert(_el$2, createComponent(Show, {
1410
1400
  get when() {
1411
1401
  return entry().showLabel;
1412
1402
  },
1413
1403
  get children() {
1414
- const _el$3 = _tmpl$7.cloneNode(true);
1404
+ var _el$3 = _tmpl$7();
1415
1405
  insert(_el$3, () => entry().label);
1416
1406
  effect(() => className(_el$3, PianoRollScale_module_css_default["PianoRollScale-Label"]));
1417
1407
  return _el$3;
1418
1408
  }
1419
1409
  }));
1420
1410
  effect((_p$) => {
1421
- const _v$ = {
1411
+ var _v$ = {
1422
1412
  [PianoRollScale_module_css_default["PianoRollScale-Time"]]: true,
1423
1413
  [PianoRollScale_module_css_default["Highlighted"]]: entry().isHighlighted,
1424
1414
  [PianoRollScale_module_css_default["HighlightedBorder"]]: entry().hasHighlightedBorder
1425
1415
  }, _v$2 = `${entry().virtualDimensions.offset}px`, _v$3 = `${entry().virtualDimensions.size}px`;
1426
- _p$._v$ = classList(_el$2, _v$, _p$._v$);
1427
- _v$2 !== _p$._v$2 && _el$2.style.setProperty("left", _p$._v$2 = _v$2);
1428
- _v$3 !== _p$._v$3 && _el$2.style.setProperty("width", _p$._v$3 = _v$3);
1416
+ _p$.e = classList(_el$2, _v$, _p$.e);
1417
+ _v$2 !== _p$.t && setStyleProperty(_el$2, "left", _p$.t = _v$2);
1418
+ _v$3 !== _p$.a && setStyleProperty(_el$2, "width", _p$.a = _v$3);
1429
1419
  return _p$;
1430
1420
  }, {
1431
- _v$: void 0,
1432
- _v$2: void 0,
1433
- _v$3: void 0
1421
+ e: void 0,
1422
+ t: void 0,
1423
+ a: void 0
1434
1424
  });
1435
1425
  return _el$2;
1436
1426
  }
@@ -1440,16 +1430,16 @@ var PianoRollScale = /* @__PURE__ */ __name(() => {
1440
1430
  effect(() => className(_el$, PianoRollScale_module_css_default.PianoRollScale));
1441
1431
  return _el$;
1442
1432
  })();
1443
- }, "PianoRollScale");
1433
+ };
1444
1434
  var PianoRollScale_default = PianoRollScale;
1445
1435
  delegateEvents(["mousedown"]);
1446
1436
 
1447
1437
  // src/PianoRoll.tsx
1448
- var _tmpl$8 = /* @__PURE__ */ template(`<div><button><div></div></button></div>`, 6);
1449
- var _tmpl$23 = /* @__PURE__ */ template(`<div><div></div><div></div></div>`, 6);
1450
- var _tmpl$32 = /* @__PURE__ */ template(`<div><div><div></div></div></div>`, 6);
1451
- var _tmpl$42 = /* @__PURE__ */ template(`<div></div>`, 2);
1452
- var PianoRoll = /* @__PURE__ */ __name((allProps) => {
1438
+ var _tmpl$8 = /* @__PURE__ */ template(`<div style="height:30px;border-right:1px black solid"><button style=font-size:16px;line-height:16px;cursor:pointer;overflow:hidden><div>`);
1439
+ var _tmpl$23 = /* @__PURE__ */ template(`<div style=width:100%;display:flex;height:100%;flex-direction:column;overflow:hidden><div style=height:30px></div><div style=flex:1;position:relative;overflow:hidden>`);
1440
+ var _tmpl$32 = /* @__PURE__ */ template(`<div><div><div style=flex:1;display:flex;overflow:hidden>`);
1441
+ var _tmpl$42 = /* @__PURE__ */ template(`<div>`);
1442
+ var PianoRoll = (allProps) => {
1453
1443
  const propsWithDefaults = mergeProps({
1454
1444
  showAllTracks: false
1455
1445
  }, allProps);
@@ -1457,7 +1447,7 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
1457
1447
  return createComponent(PianoRollContextProvider, {
1458
1448
  value: context,
1459
1449
  get children() {
1460
- const _el$ = _tmpl$42.cloneNode(true);
1450
+ var _el$ = _tmpl$42();
1461
1451
  spread(_el$, mergeProps$1(divProps, {
1462
1452
  get ["class"]() {
1463
1453
  return PianoRoll_module_css_default.PianoRoll;
@@ -1466,7 +1456,7 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
1466
1456
  insert(_el$, createComponent(PianoRollScrollZoomViewPort_default, {
1467
1457
  get children() {
1468
1458
  return [(() => {
1469
- const _el$2 = _tmpl$32.cloneNode(true), _el$3 = _el$2.firstChild, _el$7 = _el$3.firstChild;
1459
+ var _el$2 = _tmpl$32(), _el$3 = _el$2.firstChild, _el$7 = _el$3.firstChild;
1470
1460
  insert(_el$2, createComponent(ZoomSliderControl_default, {
1471
1461
  orientation: "vertical",
1472
1462
  dimensionName: "verticalTracks"
@@ -1476,22 +1466,13 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
1476
1466
  return context.showTrackList;
1477
1467
  },
1478
1468
  get children() {
1479
- const _el$4 = _tmpl$8.cloneNode(true), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild;
1480
- _el$4.style.setProperty("height", "30px");
1481
- _el$4.style.setProperty("border-right", "1px black solid");
1469
+ var _el$4 = _tmpl$8(), _el$5 = _el$4.firstChild, _el$6 = _el$5.firstChild;
1482
1470
  _el$5.$$click = () => context.onModeChange(context.mode === "keys" ? "tracks" : "keys");
1483
- _el$5.style.setProperty("font-size", "16px");
1484
- _el$5.style.setProperty("line-height", "16px");
1485
- _el$5.style.setProperty("cursor", "pointer");
1486
- _el$5.style.setProperty("overflow", "hidden");
1487
1471
  insert(_el$6, () => context.mode === "keys" ? "\u2261" : "\u{1F3B9}");
1488
1472
  effect(() => setAttribute(_el$5, "title", context.mode === "keys" ? "Tracks Mode" : "Keys Mode"));
1489
1473
  return _el$4;
1490
1474
  }
1491
1475
  }), _el$7);
1492
- _el$7.style.setProperty("flex", "1");
1493
- _el$7.style.setProperty("display", "flex");
1494
- _el$7.style.setProperty("overflow", "hidden");
1495
1476
  insert(_el$7, createComponent(Show, {
1496
1477
  get when() {
1497
1478
  return context.showTrackList;
@@ -1515,19 +1496,10 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
1515
1496
  insert(_el$2, createComponent(PianoRollNotesScroller_default, {
1516
1497
  get children() {
1517
1498
  return [memo(() => allProps.children), (() => {
1518
- const _el$8 = _tmpl$23.cloneNode(true), _el$9 = _el$8.firstChild, _el$10 = _el$9.nextSibling;
1519
- _el$8.style.setProperty("width", "100%");
1520
- _el$8.style.setProperty("display", "flex");
1521
- _el$8.style.setProperty("height", "100%");
1522
- _el$8.style.setProperty("flex-direction", "column");
1523
- _el$8.style.setProperty("overflow", "hidden");
1524
- _el$9.style.setProperty("height", "30px");
1499
+ var _el$8 = _tmpl$23(), _el$9 = _el$8.firstChild, _el$0 = _el$9.nextSibling;
1525
1500
  insert(_el$9, createComponent(PianoRollScale_default, {}));
1526
- _el$10.style.setProperty("flex", "1");
1527
- _el$10.style.setProperty("position", "relative");
1528
- _el$10.style.setProperty("overflow", "hidden");
1529
- insert(_el$10, createComponent(PianoRollGrid_default, {}), null);
1530
- insert(_el$10, createComponent(PianoRollNotes_default, {}), null);
1501
+ insert(_el$0, createComponent(PianoRollGrid_default, {}), null);
1502
+ insert(_el$0, createComponent(PianoRollNotes_default, {}), null);
1531
1503
  return _el$8;
1532
1504
  })()];
1533
1505
  }
@@ -1539,16 +1511,16 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
1539
1511
  }
1540
1512
  }), null);
1541
1513
  effect((_p$) => {
1542
- const _v$ = PianoRoll_module_css_default.PianoRollContainer, _v$2 = {
1514
+ var _v$ = PianoRoll_module_css_default.PianoRollContainer, _v$2 = {
1543
1515
  [PianoRoll_module_css_default.PianoRollLeftColumn]: true,
1544
1516
  [PianoRoll_module_css_default.showTrackList]: context.showTrackList
1545
1517
  };
1546
- _v$ !== _p$._v$ && className(_el$2, _p$._v$ = _v$);
1547
- _p$._v$2 = classList(_el$3, _v$2, _p$._v$2);
1518
+ _v$ !== _p$.e && className(_el$2, _p$.e = _v$);
1519
+ _p$.t = classList(_el$3, _v$2, _p$.t);
1548
1520
  return _p$;
1549
1521
  }, {
1550
- _v$: void 0,
1551
- _v$2: void 0
1522
+ e: void 0,
1523
+ t: void 0
1552
1524
  });
1553
1525
  return _el$2;
1554
1526
  })(), createComponent(ZoomSliderControl_default, {
@@ -1565,11 +1537,11 @@ var PianoRoll = /* @__PURE__ */ __name((allProps) => {
1565
1537
  return _el$;
1566
1538
  }
1567
1539
  });
1568
- }, "PianoRoll");
1540
+ };
1569
1541
  var PianoRoll_default = PianoRoll;
1570
1542
  delegateEvents(["click"]);
1571
- var _tmpl$9 = /* @__PURE__ */ template(`<div class="PlayHead"></div>`, 2);
1572
- var PlayHead = /* @__PURE__ */ __name((allProps) => {
1543
+ var _tmpl$9 = /* @__PURE__ */ template(`<div class=PlayHead>`);
1544
+ var PlayHead = (allProps) => {
1573
1545
  const [props, divProps] = splitProps(allProps, ["position", "sync", "onPositionChange", "dimensionName"]);
1574
1546
  const viewPort = useViewPortDimension(props.dimensionName ?? "horizontal");
1575
1547
  createEffect(() => {
@@ -1581,7 +1553,7 @@ var PlayHead = /* @__PURE__ */ __name((allProps) => {
1581
1553
  });
1582
1554
  const leftPosition = createMemo(() => viewPort.calculatePixelOffset(props.position));
1583
1555
  return (() => {
1584
- const _el$ = _tmpl$9.cloneNode(true);
1556
+ var _el$ = _tmpl$9();
1585
1557
  spread(_el$, mergeProps$1(divProps, {
1586
1558
  get style() {
1587
1559
  return {
@@ -1597,38 +1569,38 @@ var PlayHead = /* @__PURE__ */ __name((allProps) => {
1597
1569
  "onMouseDown": (event) => {
1598
1570
  event.preventDefault();
1599
1571
  event.stopPropagation();
1600
- const handleMouseMove = /* @__PURE__ */ __name((event2) => {
1572
+ const handleMouseMove = (event2) => {
1601
1573
  const newPosition = viewPort.calculatePosition(event2.clientX);
1602
1574
  props.onPositionChange?.(newPosition, event2);
1603
- }, "handleMouseMove");
1604
- const handleMouseUp = /* @__PURE__ */ __name(() => {
1575
+ };
1576
+ const handleMouseUp = () => {
1605
1577
  window.removeEventListener("mousemove", handleMouseMove);
1606
1578
  window.removeEventListener("mouseup", handleMouseUp);
1607
- }, "handleMouseUp");
1579
+ };
1608
1580
  window.addEventListener("mousemove", handleMouseMove);
1609
1581
  window.addEventListener("mouseup", handleMouseUp);
1610
1582
  }
1611
1583
  }), false, false);
1612
1584
  return _el$;
1613
1585
  })();
1614
- }, "PlayHead");
1586
+ };
1615
1587
  var PlayHead_default = PlayHead;
1616
- var useNotes = /* @__PURE__ */ __name(() => {
1588
+ var useNotes = () => {
1617
1589
  const [notes, onNotesChange] = createSignal([]);
1618
- const onNoteChange = /* @__PURE__ */ __name((index, note) => {
1590
+ const onNoteChange = (index, note) => {
1619
1591
  onNotesChange([...notes().slice(0, index), note, ...notes().splice(index + 1)]);
1620
- }, "onNoteChange");
1621
- const onInsertNote = /* @__PURE__ */ __name((note) => {
1592
+ };
1593
+ const onInsertNote = (note) => {
1622
1594
  const index = Math.max(
1623
1595
  notes().findIndex(({ ticks }) => ticks > note.ticks),
1624
1596
  0
1625
1597
  );
1626
1598
  onNotesChange([...notes().slice(0, index), note, ...notes().splice(index)]);
1627
1599
  return index;
1628
- }, "onInsertNote");
1629
- const onRemoveNote = /* @__PURE__ */ __name((index) => {
1600
+ };
1601
+ const onRemoveNote = (index) => {
1630
1602
  onNotesChange([...notes().slice(0, index), ...notes().splice(index + 1)]);
1631
- }, "onRemoveNote");
1603
+ };
1632
1604
  return {
1633
1605
  notes,
1634
1606
  onNotesChange,
@@ -1636,7 +1608,7 @@ var useNotes = /* @__PURE__ */ __name(() => {
1636
1608
  onInsertNote,
1637
1609
  onRemoveNote
1638
1610
  };
1639
- }, "useNotes");
1611
+ };
1640
1612
  var useNotes_default = useNotes;
1641
1613
 
1642
1614
  export { PianoRoll_default as PianoRoll, PlayHead_default as PlayHead, usePianoRollState_default as createPianoRollstate, useNotes_default as useNotes };