@tremolo-ui/react 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/index.cjs +1245 -1083
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.css +176 -159
  4. package/dist/index.d.cts +244 -253
  5. package/dist/index.d.cts.map +1 -1
  6. package/dist/index.d.ts +244 -253
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +1218 -1067
  9. package/dist/index.js.map +1 -1
  10. package/package.json +18 -19
  11. package/src/components/AnimationCanvas/index.tsx +0 -7
  12. package/src/components/DragObserver/index.tsx +9 -7
  13. package/src/components/Knob/ActiveLine.tsx +29 -0
  14. package/src/components/Knob/InactiveLine.tsx +53 -0
  15. package/src/components/Knob/SVGRoot.tsx +39 -0
  16. package/src/components/Knob/Thumb.tsx +64 -0
  17. package/src/components/Knob/context.tsx +120 -0
  18. package/src/components/Knob/index.css +5 -1
  19. package/src/components/Knob/index.tsx +110 -164
  20. package/src/components/NumberInput/DecrementStepper.tsx +0 -2
  21. package/src/components/NumberInput/IncrementStepper.tsx +0 -2
  22. package/src/components/NumberInput/InternalInput.tsx +3 -1
  23. package/src/components/NumberInput/Stepper.tsx +0 -2
  24. package/src/components/NumberInput/context.tsx +0 -1
  25. package/src/components/NumberInput/index.tsx +6 -8
  26. package/src/components/Piano/KeyLabel.tsx +0 -2
  27. package/src/components/Piano/context.tsx +0 -2
  28. package/src/components/Piano/index.tsx +7 -11
  29. package/src/components/Piano/key.tsx +0 -10
  30. package/src/components/Piano/keyboardShortcuts.ts +0 -2
  31. package/src/components/PointsEditor/Background.tsx +17 -0
  32. package/src/components/PointsEditor/Container.tsx +26 -0
  33. package/src/components/PointsEditor/Point.tsx +137 -0
  34. package/src/components/PointsEditor/context.tsx +91 -0
  35. package/src/components/PointsEditor/index.css +30 -0
  36. package/src/components/PointsEditor/index.tsx +129 -0
  37. package/src/components/Slider/Scale.tsx +0 -2
  38. package/src/components/Slider/ScaleOption.tsx +0 -2
  39. package/src/components/Slider/Thumb.tsx +0 -4
  40. package/src/components/Slider/Track.tsx +0 -2
  41. package/src/components/Slider/context.tsx +0 -1
  42. package/src/components/Slider/index.tsx +42 -14
  43. package/src/components/WheelObserver/index.tsx +17 -19
  44. package/src/components/XYPad/Area.tsx +0 -2
  45. package/src/components/XYPad/Thumb.tsx +0 -3
  46. package/src/components/XYPad/index.tsx +52 -25
  47. package/src/components/_util/composeRefs.tsx +63 -0
  48. package/src/components/_util/index.ts +23 -6
  49. package/src/components/_util/type.ts +1 -0
  50. package/src/hooks/useAnimationFrame.ts +0 -3
  51. package/src/hooks/useCallbackRef.ts +2 -2
  52. package/src/hooks/useDrag.ts +12 -11
  53. package/src/hooks/useDragWithElement.ts +12 -17
  54. package/src/hooks/useEventListener.ts +6 -9
  55. package/src/hooks/useInterval.ts +0 -3
  56. package/src/hooks/useLongPress.ts +0 -3
  57. package/src/hooks/useMIDIAccess.ts +20 -28
  58. package/src/hooks/useMIDIInput.ts +10 -38
  59. package/src/hooks/useMIDIMessage.ts +4 -12
  60. package/src/hooks/usePianoDrag.ts +75 -0
  61. package/src/index.ts +8 -5
  62. package/src/styles/global.css +17 -1
  63. package/dist/index.css.map +0 -1
  64. package/src/components/AnimationKnob/index.tsx +0 -314
package/dist/index.d.ts CHANGED
@@ -1,32 +1,22 @@
1
- import * as react0 from "react";
2
- import React$1, { CSSProperties, ComponentPropsWithoutRef, DependencyList, ElementType, ReactElement, ReactNode, RefObject } from "react";
3
- import * as react_jsx_runtime0 from "react/jsx-runtime";
1
+ import * as _$react from "react";
2
+ import React$1, { CSSProperties, ComponentProps, ComponentPropsWithoutRef, DependencyList, ElementType, ReactElement, ReactNode, Ref, RefObject, SVGProps } from "react";
4
3
  import { InputEventOption } from "@tremolo-ui/functions";
4
+ import * as _$_tremolo_ui_dom0 from "@tremolo-ui/dom";
5
+ import { MIDIAccessError, NOT_SUPPORTED, PERMISSION_DENIED } from "@tremolo-ui/dom";
5
6
 
6
7
  //#region src/components/AnimationCanvas/index.d.ts
7
- /** @category AnimationCanvas */
8
8
  type InitFunction = (context: CanvasRenderingContext2D, option: {
9
- /** current canvas width */
10
- width: number;
11
- /** current canvas height */
9
+ /** current canvas width */width: number; /** current canvas height */
12
10
  height: number;
13
11
  }) => void;
14
- /** @category AnimationCanvas */
15
12
  type DrawFunction = (context: CanvasRenderingContext2D, option: {
16
- /** current canvas width */
17
- width: number;
18
- /** current canvas height */
19
- height: number;
20
- /** frame count */
21
- count: number;
22
- /** delta time (ms) */
23
- deltaTime: number;
24
- /** elapsed time (ms) */
25
- elapsedTime: number;
26
- /** frame per second */
13
+ /** current canvas width */width: number; /** current canvas height */
14
+ height: number; /** frame count */
15
+ count: number; /** delta time (ms) */
16
+ deltaTime: number; /** elapsed time (ms) */
17
+ elapsedTime: number; /** frame per second */
27
18
  fps: number;
28
19
  }) => void;
29
- /** @category AnimationCanvas */
30
20
  interface CommonProps {
31
21
  draw: DrawFunction;
32
22
  init?: InitFunction;
@@ -36,89 +26,25 @@ interface CommonProps {
36
26
  */
37
27
  options?: CanvasRenderingContext2DSettings;
38
28
  }
39
- /** @category AnimationCanvas */
40
29
  interface AbsoluteSizingProps {
41
30
  width?: number;
42
31
  height?: number;
43
32
  }
44
- /** @category AnimationCanvas */
45
33
  interface RelativeSizingProps {
46
34
  relativeSize?: boolean;
47
35
  reduceFlickering?: boolean;
48
36
  }
49
- /** @category AnimationCanvas */
50
37
  type AnimationCanvasProps = CommonProps & AbsoluteSizingProps & RelativeSizingProps;
51
38
  /**
52
39
  * A simple animatable canvas with requestAnimationFrame()
53
- * @category AnimationCanvas
54
40
  */
55
41
  declare function AnimationCanvas(props: CommonProps & AbsoluteSizingProps & Omit<ComponentPropsWithoutRef<'canvas'>, keyof AnimationCanvasProps>): ReactElement;
56
42
  declare function AnimationCanvas(pros: CommonProps & RelativeSizingProps & Omit<ComponentPropsWithoutRef<'canvas'>, keyof AnimationCanvasProps>): ReactElement;
57
- //# sourceMappingURL=index.d.ts.map
58
43
  //#endregion
59
- //#region src/components/AnimationKnob/index.d.ts
60
- /** @category AnimationKnob */
61
- type AnimationKnobProps = {
62
- value: number;
63
- min: number;
64
- max: number;
65
- step?: number;
66
- skew?: number;
67
- /**
68
- * value set when double-clicking
69
- * @see enableDoubleClickDefault
70
- */
71
- defaultValue?: number;
72
- /**
73
- * Value to be used as the starting point of the line when drawing.
74
- * @default min
75
- */
76
- startValue?: number;
77
- /** Priority over width or height */
78
- size?: number | `${number}%`;
79
- width?: number | `${number}%`;
80
- height?: number | `${number}%`;
81
- /** active line color */
82
- activeColor?: string;
83
- /** inactive line color */
84
- inactiveColor?: string;
85
- /** background color */
86
- bg?: string;
87
- /** thumb color */
88
- thumb?: string;
89
- lineWeight?: number;
90
- thumbWeight?: number;
91
- draw?: DrawFunction;
92
- /** Whether to apply `{use-select: none}` when dragging */
93
- bodyNoSelect?: boolean;
94
- /**
95
- * wheel control option
96
- */
97
- wheel?: InputEventOption | null;
98
- /**
99
- * keyboard control option
100
- */
101
- keyboard?: InputEventOption | null;
102
- enableDoubleClickDefault?: boolean;
103
- style?: CSSProperties;
104
- onChange?: (value: number) => void;
105
- };
106
- /**
107
- * @category AnimationKnob
108
- */
109
- interface AnimationKnobMethods {
110
- focus: () => void;
111
- blur: () => void;
112
- }
113
- /**
114
- * Animatable rotary knob.
115
- * @category AnimationKnob
116
- */
117
- declare const AnimationKnob: React$1.ForwardRefExoticComponent<AnimationKnobProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof AnimationKnobProps> & React$1.RefAttributes<AnimationKnobMethods>>;
118
- //# sourceMappingURL=index.d.ts.map
44
+ //#region src/components/_util/type.d.ts
45
+ type Override<T, U> = T & Omit<U, keyof T>;
119
46
  //#endregion
120
47
  //#region src/components/DragObserver/index.d.ts
121
- /** @category DragObserver */
122
48
  interface DragObserverProps<T extends ElementType> {
123
49
  /**
124
50
  * React.ElementType
@@ -131,16 +57,78 @@ interface DragObserverProps<T extends ElementType> {
131
57
  */
132
58
  threshold?: number;
133
59
  children?: ReactNode;
134
- onDrag: (x: number, y: number, deltaX: number, deltaY: number) => void;
60
+ onDrag?: (x: number, y: number, deltaX: number, deltaY: number) => void;
135
61
  onDragStart?: () => void;
136
62
  onDragEnd?: () => void;
137
63
  }
138
- /** @category DragObserver */
139
- declare function DragObserver<T extends ElementType = 'div'>(props: DragObserverProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof DragObserverProps<T>>): react_jsx_runtime0.JSX.Element;
140
- //# sourceMappingURL=index.d.ts.map
64
+ declare function DragObserver<T extends ElementType = 'div'>(props: Override<DragObserverProps<T>, ComponentPropsWithoutRef<T>>): _$react.JSX.Element;
65
+ //#endregion
66
+ //#region src/components/_util/index.d.ts
67
+ declare const cursorStyles: {
68
+ grabbing: string;
69
+ grab: string;
70
+ pointer: string;
71
+ move: string;
72
+ none: string;
73
+ };
74
+ type Cursor = keyof typeof cursorStyles;
75
+ //#endregion
76
+ //#region src/components/Knob/ActiveLine.d.ts
77
+ declare function ActiveLine({
78
+ stroke,
79
+ strokeWidth,
80
+ className,
81
+ ...props
82
+ }: Omit<SVGProps<SVGPathElement>, 'd'>): _$react.JSX.Element;
83
+ //#endregion
84
+ //#region src/components/Knob/InactiveLine.d.ts
85
+ declare function InactiveLine({
86
+ stroke,
87
+ strokeWidth,
88
+ className,
89
+ ...props
90
+ }: Omit<SVGProps<SVGPathElement>, 'd'>): _$react.JSX.Element;
91
+ //#endregion
92
+ //#region src/components/Knob/SVGRoot.d.ts
93
+ interface SVGRoot {
94
+ block?: boolean;
95
+ overflowVisible?: boolean;
96
+ }
97
+ declare function SVGRoot({
98
+ children,
99
+ style,
100
+ ...props
101
+ }: Override<SVGRoot, SVGProps<SVGSVGElement>>): _$react.JSX.Element;
102
+ //#endregion
103
+ //#region src/components/Knob/Thumb.d.ts
104
+ interface Props {
105
+ /** color */
106
+ thumb?: string;
107
+ /** color */
108
+ thumbLine?: string;
109
+ /** percent (0-100) */
110
+ thumbSize?: number;
111
+ /** percent (0-100) */
112
+ thumbLineWeight?: number;
113
+ /** percent (0-100) */
114
+ thumbLineLength?: number;
115
+ classes?: {
116
+ thumb?: string;
117
+ thumbLine?: string;
118
+ };
119
+ }
120
+ declare function Thumb({
121
+ className,
122
+ thumb,
123
+ thumbLine,
124
+ thumbSize,
125
+ thumbLineWeight,
126
+ thumbLineLength,
127
+ classes,
128
+ ...props
129
+ }: Props & Omit<SVGProps<SVGSVGElement>, 'd' | keyof Props>): _$react.JSX.Element;
141
130
  //#endregion
142
131
  //#region src/components/Knob/index.d.ts
143
- /** @category Knob */
144
132
  interface KnobProps {
145
133
  value: number;
146
134
  min: number;
@@ -149,6 +137,7 @@ interface KnobProps {
149
137
  skew?: number;
150
138
  /**
151
139
  * value set when double-clicking
140
+ * restriction: enableDoubleClickDefault = true
152
141
  * @default min
153
142
  * @see enableDoubleClickDefault
154
143
  */
@@ -160,105 +149,82 @@ interface KnobProps {
160
149
  startValue?: number;
161
150
  /** width and height */
162
151
  size?: number | string;
163
- /** Whether to apply `{use-select: none}` when dragging */
164
- bodyNoSelect?: boolean;
152
+ /**
153
+ * Global style to apply when dragged
154
+ * @default defaultExternalStyles
155
+ */
156
+ externalStyles?: {
157
+ userSelectNone?: boolean;
158
+ cursor?: Cursor;
159
+ };
165
160
  /**
166
161
  * wheel control option
162
+ * If null, no event will be triggered
167
163
  */
168
164
  wheel?: InputEventOption | null;
169
165
  /**
170
166
  * keyboard control option
167
+ * If null, no event will be triggered
171
168
  */
172
169
  keyboard?: InputEventOption | null;
173
170
  enableDoubleClickDefault?: boolean;
174
171
  disabled?: boolean;
175
172
  readonly?: boolean;
176
- /** color */
177
- activeLine?: string;
178
- /** color */
179
- inactiveLine?: string;
180
- /** color */
181
- thumb?: string;
182
- /** color */
183
- thumbLine?: string;
184
- /** percent (0-100) */
185
- thumbSize?: number;
186
- /** percent (0-100) */
187
- thumbLineWeight?: number;
188
- /** percent (0-100) */
189
- thumbLineLength?: number;
190
- /** line weight [px] */
191
- lineWeight?: number;
192
173
  /** angle range [degree] */
193
174
  angleRange?: number;
194
- classes?: {
195
- activeLine?: string;
196
- inactiveLine?: string;
197
- thumb?: string;
198
- thumbLine?: string;
199
- };
200
175
  onChange?: (value: number) => void;
201
176
  }
202
- /**
203
- * @category Knob
204
- */
205
177
  interface KnobMethods {
206
178
  focus: () => void;
207
179
  blur: () => void;
208
180
  }
209
181
  /**
210
182
  * Interactive rotary knob component implemented in SVG.
211
- *
212
- * @category Knob
213
183
  */
214
- declare const Knob: react0.ForwardRefExoticComponent<KnobProps & Omit<Omit<react0.SVGProps<SVGSVGElement>, "ref">, keyof KnobProps> & react0.RefAttributes<KnobMethods>>;
215
- //# sourceMappingURL=index.d.ts.map
184
+ declare const Knob: {
185
+ Root: _$react.ForwardRefExoticComponent<KnobProps & Omit<Omit<_$react.DetailedHTMLProps<_$react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof KnobProps> & _$react.RefAttributes<KnobMethods>>;
186
+ SVGRoot: typeof SVGRoot;
187
+ InactiveLine: typeof InactiveLine;
188
+ ActiveLine: typeof ActiveLine;
189
+ Thumb: typeof Thumb;
190
+ };
216
191
  //#endregion
217
192
  //#region src/components/NumberInput/DecrementStepper.d.ts
218
- /** @category NumberInput */
219
193
  interface DecrementStepperProps {
220
194
  size?: number;
221
195
  children?: ReactNode;
222
196
  }
223
- /** @category NumberInput */
224
197
  declare function DecrementStepper({
225
198
  size,
226
199
  children,
227
200
  className,
228
201
  ...props
229
- }: DecrementStepperProps & Omit<ComponentPropsWithoutRef<'div'>, keyof DecrementStepperProps>): react_jsx_runtime0.JSX.Element;
230
- //# sourceMappingURL=DecrementStepper.d.ts.map
202
+ }: DecrementStepperProps & Omit<ComponentPropsWithoutRef<'div'>, keyof DecrementStepperProps>): _$react.JSX.Element;
231
203
  //#endregion
232
204
  //#region src/components/NumberInput/IncrementStepper.d.ts
233
- /** @category NumberInput */
234
205
  interface IncrementStepperProps {
235
206
  size?: number;
236
207
  children?: ReactNode;
237
208
  }
238
- /** @category NumberInput */
239
209
  declare function IncrementStepper({
240
210
  size,
241
211
  children,
242
212
  className,
243
213
  ...props
244
- }: IncrementStepperProps & Omit<ComponentPropsWithoutRef<'div'>, keyof IncrementStepperProps>): react_jsx_runtime0.JSX.Element;
245
- //# sourceMappingURL=IncrementStepper.d.ts.map
214
+ }: IncrementStepperProps & Omit<ComponentPropsWithoutRef<'div'>, keyof IncrementStepperProps>): _$react.JSX.Element;
246
215
  //#endregion
247
216
  //#region src/components/NumberInput/Stepper.d.ts
248
- /** @category NumberInput */
249
217
  interface StepperProps {
250
218
  /** Display only when hovering. */
251
219
  dynamic?: boolean;
252
220
  children?: ReactNode;
253
221
  }
254
- /** @category NumberInput */
255
222
  declare function Stepper({
256
223
  dynamic,
257
224
  children,
258
225
  className,
259
226
  ...props
260
- }: StepperProps & Omit<ComponentPropsWithoutRef<'div'>, keyof StepperProps>): react_jsx_runtime0.JSX.Element;
261
- //# sourceMappingURL=Stepper.d.ts.map
227
+ }: StepperProps & Omit<ComponentPropsWithoutRef<'div'>, keyof StepperProps>): _$react.JSX.Element;
262
228
  //#endregion
263
229
  //#region src/components/NumberInput/type.d.ts
264
230
  /**
@@ -269,7 +235,6 @@ declare function Stepper({
269
235
  type Units = [string, number][];
270
236
  //#endregion
271
237
  //#region src/components/NumberInput/index.d.ts
272
- /** @category NumberInput */
273
238
  interface NumberInputProps {
274
239
  value: number | string;
275
240
  /**
@@ -306,10 +271,12 @@ interface NumberInputProps {
306
271
  clampValueOnBlur?: boolean;
307
272
  /**
308
273
  * wheel control option
274
+ * If null, no event will be triggered
309
275
  */
310
276
  wheel?: InputEventOption | null;
311
277
  /**
312
278
  * keyboard control option
279
+ * If null, no event will be triggered
313
280
  */
314
281
  keyboard?: InputEventOption | null;
315
282
  activeColor?: string;
@@ -319,27 +286,21 @@ interface NumberInputProps {
319
286
  onBlur?: (value: number, text: string, event: React.FocusEvent<HTMLInputElement, Element>) => void;
320
287
  children?: ReactNode;
321
288
  }
322
- /**
323
- * @category NumberInput
324
- */
325
289
  interface NumberInputMethods {
326
290
  focus: () => void;
327
291
  blur: () => void;
328
292
  }
329
293
  /**
330
294
  * Input with some useful functions for entering numerical values.
331
- * @category NumberInput
332
295
  */
333
- declare const NumberInput: react0.ForwardRefExoticComponent<NumberInputProps & Omit<Omit<react0.DetailedHTMLProps<react0.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "type" | keyof NumberInputProps> & react0.RefAttributes<NumberInputMethods>> & {
296
+ declare const NumberInput: {
297
+ Root: _$react.ForwardRefExoticComponent<NumberInputProps & Omit<Omit<_$react.DetailedHTMLProps<_$react.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "type" | keyof NumberInputProps> & _$react.RefAttributes<NumberInputMethods>>;
334
298
  Stepper: typeof Stepper;
335
299
  IncrementStepper: typeof IncrementStepper;
336
300
  DecrementStepper: typeof DecrementStepper;
337
301
  };
338
302
  //#endregion
339
303
  //#region src/components/Piano/key.d.ts
340
- /**
341
- * @category Piano
342
- */
343
304
  interface KeyProps {
344
305
  noteNumber: number;
345
306
  width?: number;
@@ -356,41 +317,32 @@ interface KeyProps {
356
317
  /** @internal */
357
318
  __width?: number;
358
319
  }
359
- /**
360
- * @category Piano
361
- */
362
320
  interface KeyMethods {
363
321
  play: (velocity?: number) => void;
364
322
  stop: () => void;
365
323
  played: () => boolean;
366
324
  }
367
- /** @category Piano */
368
325
  //#endregion
369
326
  //#region src/components/Piano/context.d.ts
370
- /** @category Piano */
371
327
  type NoteRange = {
372
328
  first: number;
373
329
  last: number;
374
330
  };
375
331
  //#endregion
376
332
  //#region src/components/Piano/keyboardShortcuts.d.ts
377
- /** @category Piano */
378
333
  type KeyboardShortcuts = {
379
334
  keys: string[];
380
335
  flags?: {
381
336
  naturalOnly?: boolean;
382
337
  };
383
338
  };
384
- /** @category Piano */
385
339
  declare const SHORTCUTS: {
386
340
  HOME_ROW: {
387
341
  keys: string[];
388
342
  };
389
343
  };
390
- //# sourceMappingURL=keyboardShortcuts.d.ts.map
391
344
  //#endregion
392
345
  //#region src/components/Piano/KeyLabel.d.ts
393
- /** @category Piano */
394
346
  interface KeyLabelProps {
395
347
  /**
396
348
  * override Piano.label
@@ -403,7 +355,6 @@ interface KeyLabelProps {
403
355
  /** @internal */
404
356
  __label?: (note: number, index: number) => ReactNode;
405
357
  }
406
- /** @category Piano */
407
358
  declare function KeyLabel({
408
359
  label,
409
360
  className,
@@ -412,16 +363,13 @@ declare function KeyLabel({
412
363
  __note,
413
364
  __label,
414
365
  ...props
415
- }: KeyLabelProps & Omit<ComponentPropsWithoutRef<'div'>, keyof KeyLabelProps>): false | react_jsx_runtime0.JSX.Element;
416
- //# sourceMappingURL=KeyLabel.d.ts.map
366
+ }: KeyLabelProps & Omit<ComponentPropsWithoutRef<'div'>, keyof KeyLabelProps>): false | _$react.JSX.Element;
417
367
  //#endregion
418
368
  //#region src/components/Piano/index.d.ts
419
369
  /**
420
370
  * [noteRange.first, noteRange.first + 1 ..., noteRange.last]
421
- * @category Piano
422
371
  */
423
372
  declare function getNoteRangeArray(noteRange: NoteRange): number[];
424
- /** @category Piano */
425
373
  interface PianoProps {
426
374
  noteRange: NoteRange;
427
375
  glissando?: boolean;
@@ -440,35 +388,118 @@ interface PianoProps {
440
388
  */
441
389
  children?: ReactElement | ReactElement[];
442
390
  }
443
- /**
444
- * @category Piano
445
- */
446
391
  interface PianoMethods {
447
392
  playNote: (note: number, velocity?: number) => void;
448
393
  stopNote: (note: number) => void;
449
394
  }
450
395
  /**
451
396
  * Customizable piano component.
452
- * @category Piano
453
397
  */
454
- declare const Piano: React$1.ForwardRefExoticComponent<PianoProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof PianoProps> & React$1.RefAttributes<PianoMethods>> & {
398
+ declare const Piano: {
399
+ Root: React$1.ForwardRefExoticComponent<PianoProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof PianoProps> & React$1.RefAttributes<PianoMethods>>;
455
400
  WhiteKey: React$1.ForwardRefExoticComponent<KeyProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof KeyProps> & React$1.RefAttributes<KeyMethods>>;
456
401
  BlackKey: React$1.ForwardRefExoticComponent<KeyProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof KeyProps> & React$1.RefAttributes<KeyMethods>>;
457
402
  KeyLabel: typeof KeyLabel;
458
403
  };
459
404
  //#endregion
405
+ //#region src/components/PointsEditor/Background.d.ts
406
+ declare function Background({
407
+ className,
408
+ children,
409
+ ...props
410
+ }: ComponentPropsWithoutRef<'div'>): _$react.JSX.Element;
411
+ //#endregion
412
+ //#region src/components/PointsEditor/Container.d.ts
413
+ declare function Container({
414
+ className,
415
+ children,
416
+ ...props
417
+ }: ComponentPropsWithoutRef<'div'>): _$react.JSX.Element;
418
+ //#endregion
419
+ //#region src/components/PointsEditor/Point.d.ts
420
+ type PointBaseType = {
421
+ x: number;
422
+ y: number;
423
+ };
424
+ declare function clampPoint(point: PointBaseType, min?: Partial<PointBaseType>, max?: Partial<PointBaseType>): {
425
+ x: number;
426
+ y: number;
427
+ };
428
+ interface PointProps<T extends PointBaseType> {
429
+ value: T;
430
+ min?: Partial<PointBaseType>;
431
+ max?: Partial<PointBaseType>;
432
+ size?: number | string;
433
+ width?: number | string;
434
+ height?: number | string;
435
+ color?: string;
436
+ disabled?: boolean;
437
+ readonly?: boolean;
438
+ onChange?: (value: PointBaseType) => void;
439
+ onDragStart?: (value: PointBaseType) => void;
440
+ onDragEnd?: (value: PointBaseType) => void;
441
+ }
442
+ declare function Point<T extends PointBaseType>({
443
+ value,
444
+ min,
445
+ max,
446
+ size,
447
+ width,
448
+ height,
449
+ color,
450
+ disabled,
451
+ readonly,
452
+ onChange,
453
+ onDragStart,
454
+ onDragEnd,
455
+ className,
456
+ style,
457
+ onPointerDown,
458
+ ...props
459
+ }: PointProps<T> & Omit<ComponentPropsWithoutRef<'div'>, keyof PointProps<T>>): _$react.JSX.Element;
460
+ //#endregion
461
+ //#region src/components/PointsEditor/index.d.ts
462
+ interface PointsEditorProps {
463
+ width?: number | string;
464
+ height?: number | string;
465
+ grid?: number | PointBaseType;
466
+ disabled?: boolean;
467
+ readonly?: boolean;
468
+ externalStyles?: {
469
+ userSelectNone?: boolean;
470
+ cursor?: Cursor;
471
+ };
472
+ /**
473
+ * wheel control option
474
+ * If null, no event will be triggered
475
+ */
476
+ wheel?: InputEventOption | null;
477
+ /**
478
+ * keyboard control option
479
+ * If null, no event will be triggered
480
+ */
481
+ keyboard?: InputEventOption | null;
482
+ }
483
+ /**
484
+ * Multiple Point Controller
485
+ */
486
+ declare const PointsEditor: {
487
+ Root: _$react.ForwardRefExoticComponent<PointsEditorProps & Omit<Omit<_$react.DetailedHTMLProps<_$react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof PointsEditorProps> & _$react.RefAttributes<HTMLDivElement>>;
488
+ Background: typeof Background;
489
+ Container: typeof Container;
490
+ Point: typeof Point;
491
+ };
492
+ //#endregion
460
493
  //#region src/components/Slider/type.d.ts
461
494
  type ScaleType = 'mark' | 'mark-number' | 'number';
462
495
  type ScaleOptions = ['step', ScaleType] | [number, ScaleType];
463
496
  //#endregion
464
497
  //#region src/components/Slider/Scale.d.ts
465
- /** @category Slider */
466
498
  interface ScaleProps {
467
499
  gap?: number | string;
468
500
  options?: ScaleOptions;
469
501
  children?: ReactNode;
470
502
  }
471
- /** @category Slider */
472
503
  declare function Scale({
473
504
  gap,
474
505
  options,
@@ -476,11 +507,9 @@ declare function Scale({
476
507
  className,
477
508
  style,
478
509
  ...props
479
- }: ScaleProps & Omit<ComponentPropsWithoutRef<'div'>, keyof ScaleProps>): react_jsx_runtime0.JSX.Element;
480
- //# sourceMappingURL=Scale.d.ts.map
510
+ }: ScaleProps & Omit<ComponentPropsWithoutRef<'div'>, keyof ScaleProps>): _$react.JSX.Element;
481
511
  //#endregion
482
512
  //#region src/components/Slider/ScaleOption.d.ts
483
- /** @category Slider */
484
513
  interface ScaleOptionProps {
485
514
  value: number;
486
515
  type?: ScaleType;
@@ -502,7 +531,6 @@ interface ScaleOptionProps {
502
531
  label?: CSSProperties;
503
532
  };
504
533
  }
505
- /** @category Slider */
506
534
  declare function ScaleOption({
507
535
  value,
508
536
  type,
@@ -516,11 +544,9 @@ declare function ScaleOption({
516
544
  className,
517
545
  style,
518
546
  ...props
519
- }: ScaleOptionProps & Omit<ComponentPropsWithoutRef<'div'>, keyof ScaleOptionProps>): react_jsx_runtime0.JSX.Element;
520
- //# sourceMappingURL=ScaleOption.d.ts.map
547
+ }: ScaleOptionProps & Omit<ComponentPropsWithoutRef<'div'>, keyof ScaleOptionProps>): _$react.JSX.Element;
521
548
  //#endregion
522
549
  //#region src/components/Slider/Thumb.d.ts
523
- /** @category Slider */
524
550
  interface SliderThumbProps {
525
551
  size?: number | string;
526
552
  width?: number | string;
@@ -532,15 +558,12 @@ interface SliderThumbProps {
532
558
  /** @internal */
533
559
  __percent?: number;
534
560
  }
535
- /** @category Slider */
536
561
  interface SliderThumbMethods {
537
562
  focus: () => void;
538
563
  blur: () => void;
539
564
  }
540
- /** @category Slider */
541
565
  //#endregion
542
566
  //#region src/components/Slider/Track.d.ts
543
- /** @category Slider */
544
567
  interface SliderTrackProps {
545
568
  length?: number | string;
546
569
  thickness?: number | string;
@@ -555,7 +578,6 @@ interface SliderTrackProps {
555
578
  /** @internal */
556
579
  __percent?: number;
557
580
  }
558
- /** @category Slider */
559
581
  declare function Track({
560
582
  length,
561
583
  thickness,
@@ -568,8 +590,7 @@ declare function Track({
568
590
  __thumb,
569
591
  __percent,
570
592
  ...props
571
- }: SliderTrackProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SliderTrackProps>): react_jsx_runtime0.JSX.Element;
572
- //# sourceMappingURL=Track.d.ts.map
593
+ }: SliderTrackProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SliderTrackProps>): _$react.JSX.Element;
573
594
  //#endregion
574
595
  //#region src/components/Slider/context.d.ts
575
596
  type State = {
@@ -582,35 +603,45 @@ type State = {
582
603
  disabled: boolean;
583
604
  readonly: boolean;
584
605
  };
585
- /** @category Slider */
586
606
  declare function useSliderContext<T>(selector: (state: State) => T): T;
587
607
  //#endregion
588
608
  //#region src/components/Slider/index.d.ts
589
- /** @category Slider */
590
609
  interface SliderProps {
591
610
  value: number;
592
611
  min: number;
593
612
  max: number;
594
613
  step?: number;
595
614
  skew?: number;
615
+ /**
616
+ * slider orientation
617
+ * aria-orientation property is also applied.
618
+ */
596
619
  vertical?: boolean;
597
620
  reverse?: boolean;
598
- bodyNoSelect?: boolean;
621
+ /** Global style to apply when dragged */
622
+ externalStyles?: {
623
+ userSelectNone?: boolean;
624
+ cursor?: Cursor;
625
+ };
599
626
  /**
600
627
  * wheel control option
628
+ * If null, no event will be triggered
601
629
  */
602
630
  wheel?: InputEventOption | null;
603
631
  /**
604
632
  * keyboard control option
633
+ * If null, no event will be triggered
605
634
  */
606
635
  keyboard?: InputEventOption | null;
607
636
  /**
608
637
  * Only the appearance will change.
609
638
  * Please consider using with readonly.
639
+ * aria-disabled property is also applied.
610
640
  */
611
641
  disabled?: boolean;
612
642
  /**
613
643
  * Make the value unchangeable.
644
+ * aria-readonly property is also applied.
614
645
  */
615
646
  readonly?: boolean;
616
647
  className?: string;
@@ -621,18 +652,15 @@ interface SliderProps {
621
652
  /** \<SliderThumb /> | \<SliderTrack /> */
622
653
  children?: ReactElement | ReactElement[];
623
654
  }
624
- /**
625
- * @category Slider
626
- */
627
655
  interface SliderMethods {
628
656
  focus: () => void;
629
657
  blur: () => void;
630
658
  }
631
659
  /**
632
660
  * Customizable slider
633
- * @category Slider
634
661
  */
635
- declare const Slider: React$1.ForwardRefExoticComponent<SliderProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SliderProps> & React$1.RefAttributes<SliderMethods>> & {
662
+ declare const Slider: {
663
+ Root: React$1.ForwardRefExoticComponent<SliderProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SliderProps> & React$1.RefAttributes<SliderMethods>>;
636
664
  Thumb: React$1.ForwardRefExoticComponent<SliderThumbProps & React$1.RefAttributes<SliderThumbMethods>>;
637
665
  Track: typeof Track;
638
666
  Scale: typeof Scale;
@@ -640,6 +668,15 @@ declare const Slider: React$1.ForwardRefExoticComponent<SliderProps & Omit<Omit<
640
668
  };
641
669
  //#endregion
642
670
  //#region src/components/WheelObserver/index.d.ts
671
+ interface WheelObserverProps<T extends ElementType> {
672
+ /**
673
+ * React.ElementType
674
+ * @default div
675
+ */
676
+ as?: T;
677
+ children?: ReactNode;
678
+ onWheel?: (event: WheelEvent) => void;
679
+ }
643
680
  /**
644
681
  * @example
645
682
  * <WheelObserver
@@ -651,22 +688,9 @@ declare const Slider: React$1.ForwardRefExoticComponent<SliderProps & Omit<Omit<
651
688
  * <div>Wheel here</div>
652
689
  * </WheelObserver>
653
690
  */
654
- /** @category WheelObserver */
655
- interface WheelObserverProps<T extends ElementType> {
656
- /**
657
- * React.ElementType
658
- * @default div
659
- */
660
- as?: T;
661
- children?: ReactNode;
662
- onWheel?: (event: WheelEvent) => void;
663
- }
664
- /** @category WheelObserver */
665
- declare function WheelObserver<T extends ElementType = 'div'>(props: WheelObserverProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof WheelObserverProps<T>>): react_jsx_runtime0.JSX.Element;
666
- //# sourceMappingURL=index.d.ts.map
691
+ declare function WheelObserver<T extends ElementType = 'div'>(props: Override<WheelObserverProps<T>, ComponentProps<T>>): _$react.JSX.Element;
667
692
  //#endregion
668
693
  //#region src/components/XYPad/Area.d.ts
669
- /** @category XYPad */
670
694
  interface XYPadAreaProps {
671
695
  width?: number | string;
672
696
  height?: number | string;
@@ -677,7 +701,6 @@ interface XYPadAreaProps {
677
701
  /** inherit */
678
702
  __thumb?: ReactElement;
679
703
  }
680
- /** @category XYPad */
681
704
  declare function Area({
682
705
  width,
683
706
  height,
@@ -687,11 +710,9 @@ declare function Area({
687
710
  style,
688
711
  __thumb,
689
712
  ...props
690
- }: XYPadAreaProps & Omit<ComponentPropsWithoutRef<'div'>, keyof XYPadAreaProps>): react_jsx_runtime0.JSX.Element;
691
- //# sourceMappingURL=Area.d.ts.map
713
+ }: XYPadAreaProps & Omit<ComponentPropsWithoutRef<'div'>, keyof XYPadAreaProps>): _$react.JSX.Element;
692
714
  //#endregion
693
715
  //#region src/components/XYPad/Thumb.d.ts
694
- /** @category XYPad */
695
716
  interface XYPadThumbProps {
696
717
  size?: number | string;
697
718
  width?: number | string;
@@ -707,17 +728,14 @@ interface XYPadThumbProps {
707
728
  /** @internal */
708
729
  __css?: CSSProperties;
709
730
  }
710
- /** @category XYPad */
711
731
  interface XYPadThumbMethods {
712
732
  focus: () => void;
713
733
  blur: () => void;
714
734
  }
715
- /** @category XYPad */
716
735
  //#endregion
717
736
  //#region src/components/XYPad/index.d.ts
718
737
  /**
719
738
  * Two-dimensional slider component.
720
- * @category XYPad
721
739
  */
722
740
  interface ValueOptions {
723
741
  value: number;
@@ -735,11 +753,13 @@ interface ValueOptions {
735
753
  */
736
754
  keyboard?: InputEventOption | null;
737
755
  }
738
- /** @category XYPad */
739
756
  interface XYPadProps {
740
757
  x: ValueOptions;
741
758
  y: ValueOptions;
742
- bodyNoSelect?: boolean;
759
+ externalStyles?: {
760
+ userSelectNone?: boolean;
761
+ cursor?: Cursor;
762
+ };
743
763
  disabled?: boolean;
744
764
  readonly?: boolean;
745
765
  onChange?: (valueX: number, valueY: number) => void;
@@ -748,121 +768,92 @@ interface XYPadProps {
748
768
  /** \<XYPadThumb /> | \<XYPadArea /> */
749
769
  children?: ReactElement | ReactElement[];
750
770
  }
751
- /** @category XYPad */
752
771
  interface XYPadMethods {
753
772
  focus: () => void;
754
773
  blur: () => void;
774
+ original: Ref<HTMLDivElement>;
755
775
  }
756
776
  /**
757
777
  * Simple XYPad
758
- * @category XYPad
759
778
  */
760
- declare const XYPad: React$1.ForwardRefExoticComponent<XYPadProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof XYPadProps> & React$1.RefAttributes<XYPadMethods>> & {
779
+ declare const XYPad: {
780
+ Root: React$1.ForwardRefExoticComponent<XYPadProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof XYPadProps> & React$1.RefAttributes<XYPadMethods>>;
761
781
  Thumb: React$1.ForwardRefExoticComponent<XYPadThumbProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof XYPadThumbProps> & React$1.RefAttributes<XYPadThumbMethods>>;
762
782
  Area: typeof Area;
763
783
  };
764
784
  //#endregion
765
785
  //#region src/hooks/useAnimationFrame.d.ts
766
- /**
767
- * @category hooks
768
- */
769
786
  declare function useAnimationFrame(callback?: () => void, deps?: DependencyList): void;
770
- //# sourceMappingURL=useAnimationFrame.d.ts.map
771
787
  //#endregion
772
788
  //#region src/hooks/useDrag.d.ts
773
789
  interface UseDragProps {
774
790
  threshold?: number;
775
- onDrag: (x: number, y: number, deltaX: number, deltaY: number) => void;
791
+ onDrag?: (x: number, y: number, deltaX: number, deltaY: number) => void;
776
792
  onDragStart?: () => void;
777
793
  onDragEnd?: () => void;
778
794
  }
779
795
  /**
780
- * @category hooks
781
796
  * @returns [refCallback, pointerDownHandler]
782
797
  */
783
798
  declare function useDrag<T extends Element>({
784
- threshold,
799
+ threshold: _threshold,
785
800
  onDrag,
786
801
  onDragStart,
787
802
  onDragEnd
788
803
  }: UseDragProps): [(div: EventTarget | null) => void, (event: React.PointerEvent<T>) => void];
789
804
  //#endregion
790
805
  //#region src/hooks/useDragWithElement.d.ts
791
- interface UseDragWithElementProps<T extends Element> {
806
+ interface UseDragWithElement<T extends Element> {
792
807
  baseElementRef: RefObject<T | null>;
793
808
  onDrag: (normalizedX: number, normalizedY: number) => void;
794
809
  onDragStart?: (normalizedX: number, normalizedY: number) => void;
795
810
  onDragEnd?: (normalizedX: number, normalizedY: number) => void;
796
811
  }
797
- /**
798
- * @category hooks
799
- * @returns [refCallback, pointerDownHandler]
800
- */
801
812
  declare function useDragWithElement<T extends Element>({
802
813
  baseElementRef,
803
814
  onDrag,
804
815
  onDragStart,
805
816
  onDragEnd
806
- }: UseDragWithElementProps<T>): [(div: EventTarget | null) => void, (event: React.PointerEvent<T>) => void];
817
+ }: UseDragWithElement<T>): {
818
+ refHandler: (div: EventTarget | null) => void;
819
+ pointerDownHandler: (event: React.PointerEvent<T>) => void;
820
+ dragging: boolean;
821
+ };
807
822
  //#endregion
808
823
  //#region src/hooks/useEventListener.d.ts
809
824
  type Target = EventTarget | null | (() => EventTarget | null);
810
825
  type Options = boolean | AddEventListenerOptions;
811
- /**
812
- * @category hooks
813
- */
814
- declare function useEventListener<K extends keyof DocumentEventMap>(target: Target, event: K, handler?: (event: DocumentEventMap[K]) => void, options?: Options): VoidFunction;
815
- declare function useEventListener<K extends keyof WindowEventMap>(target: Target, event: K, handler?: (event: WindowEventMap[K]) => void, options?: Options): VoidFunction;
816
- declare function useEventListener<K extends keyof GlobalEventHandlersEventMap>(target: Target, event: K, handler?: (event: GlobalEventHandlersEventMap[K]) => void, options?: Options): VoidFunction;
826
+ declare function useEventListener<K extends keyof DocumentEventMap>(target: Target, event: K, handler: (event: DocumentEventMap[K]) => void, options?: Options): VoidFunction;
827
+ declare function useEventListener<K extends keyof WindowEventMap>(target: Target, event: K, handler: (event: WindowEventMap[K]) => void, options?: Options): VoidFunction;
828
+ declare function useEventListener<K extends keyof GlobalEventHandlersEventMap>(target: Target, event: K, handler: (event: GlobalEventHandlersEventMap[K]) => void, options?: Options): VoidFunction;
817
829
  //#endregion
818
830
  //#region src/hooks/useInterval.d.ts
819
- /**
820
- * @category hooks
821
- */
822
831
  declare function useInterval(callback: () => void, delay: number | null): void;
823
- //# sourceMappingURL=useInterval.d.ts.map
824
832
  //#endregion
825
833
  //#region src/hooks/useLongPress.d.ts
826
- /**
827
- * @category hooks
828
- */
829
834
  declare function useLongPress(callback: () => void, initialDelay?: number, interval?: number): () => void;
830
- //# sourceMappingURL=useLongPress.d.ts.map
831
835
  //#endregion
832
836
  //#region src/hooks/useMIDIAccess.d.ts
833
- /** @private */
834
- declare const PERMISSION_DENIED = "PERMISSION_DENIED";
835
- /** @private */
836
- declare const NOT_SUPPORTED = "NOT_SUPPORTED";
837
- /** @private */
838
- type MIDIAccessError = typeof PERMISSION_DENIED | typeof NOT_SUPPORTED;
839
837
  /**
840
838
  * Hooks for requesting MIDI access in the browser. The first argument allows you to choose whether to request access on mount.
841
- * @category hooks
842
839
  */
843
840
  declare function useMIDIAccess(requestOnMount?: boolean): {
844
841
  request: () => void;
845
842
  midiAccess: MIDIAccess | null;
846
- error: MIDIAccessError | null;
843
+ error: _$_tremolo_ui_dom0.MIDIAccessError | null;
847
844
  };
848
- //# sourceMappingURL=useMIDIAccess.d.ts.map
849
845
  //#endregion
850
846
  //#region src/hooks/useMIDIInput.d.ts
851
847
  /**
852
848
  * Hooks for handling note on/off events. To be used with useMIDIAccess. Internally uses useMIDIMessage.
853
- * @category hooks
854
849
  */
855
850
  declare function useMIDIInput(midiAccess: MIDIAccess | null, onNoteOnEvent?: (note: number, velocity: number) => void, onNoteOffEvent?: (note: number) => void, onPitchBendEvent?: (msb: number, lsb: number) => void): void;
856
- //# sourceMappingURL=useMIDIInput.d.ts.map
857
851
  //#endregion
858
852
  //#region src/hooks/useMIDIMessage.d.ts
859
853
  /**
860
854
  * Hooks for when you want to process MIDI events in more detail than useMIDIInput.
861
- * @category hooks
862
855
  */
863
856
  declare function useMIDIMessage(midiAccess: MIDIAccess | null, onMIDIMessage: (event: MIDIMessageEvent) => void): void;
864
- //# sourceMappingURL=useMIDIMessage.d.ts.map
865
-
866
857
  //#endregion
867
- export { type AbsoluteSizingProps, AnimationCanvas, type AnimationCanvasProps, AnimationKnob, type AnimationKnobMethods, type AnimationKnobProps, type CommonProps, type DecrementStepperProps, DragObserver, type DragObserverProps, type DrawFunction, type IncrementStepperProps, type InitFunction, type KeyLabelProps, type KeyMethods, type KeyProps, type KeyboardShortcuts, Knob, type KnobMethods, type KnobProps, type MIDIAccessError, NOT_SUPPORTED, NumberInput, type NumberInputMethods, type NumberInputProps, PERMISSION_DENIED, Piano, type PianoMethods, type PianoProps, type RelativeSizingProps, SHORTCUTS, type ScaleOptionProps, type ScaleProps, Slider, type SliderMethods, type SliderProps, type SliderThumbMethods, type SliderThumbProps, type SliderTrackProps, type StepperProps, type ValueOptions, WheelObserver, type WheelObserverProps, XYPad, type XYPadAreaProps, type XYPadMethods, type XYPadProps, type XYPadThumbMethods, type XYPadThumbProps, getNoteRangeArray, useAnimationFrame, useDrag, useDragWithElement, useEventListener, useInterval, useLongPress, useMIDIAccess, useMIDIInput, useMIDIMessage, useSliderContext };
858
+ export { type AbsoluteSizingProps, AnimationCanvas, type AnimationCanvasProps, type CommonProps, type DecrementStepperProps, DragObserver, type DragObserverProps, type DrawFunction, type IncrementStepperProps, type InitFunction, type KeyLabelProps, type KeyMethods, type KeyProps, type KeyboardShortcuts, Knob, type KnobMethods, type KnobProps, type MIDIAccessError, NOT_SUPPORTED, NumberInput, type NumberInputMethods, type NumberInputProps, PERMISSION_DENIED, Piano, type PianoMethods, type PianoProps, type PointBaseType, type PointProps, PointsEditor, type PointsEditorProps, type RelativeSizingProps, SHORTCUTS, type ScaleOptionProps, type ScaleProps, Slider, type SliderMethods, type SliderProps, type SliderThumbMethods, type SliderThumbProps, type SliderTrackProps, type StepperProps, type ValueOptions, WheelObserver, type WheelObserverProps, XYPad, type XYPadAreaProps, type XYPadMethods, type XYPadProps, type XYPadThumbMethods, type XYPadThumbProps, clampPoint, getNoteRangeArray, useAnimationFrame, useDrag, useDragWithElement, useEventListener, useInterval, useLongPress, useMIDIAccess, useMIDIInput, useMIDIMessage, useSliderContext };
868
859
  //# sourceMappingURL=index.d.ts.map