@tremolo-ui/react 0.1.1 → 0.1.3

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 (163) hide show
  1. package/dist/index.cjs +2082 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/{styles/index.css → index.css} +3 -0
  4. package/dist/index.css.map +1 -0
  5. package/dist/index.d.cts +827 -0
  6. package/dist/index.d.cts.map +1 -0
  7. package/dist/index.d.ts +827 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +2030 -0
  10. package/dist/index.js.map +1 -0
  11. package/package.json +14 -14
  12. package/src/hooks/useAnimationFrame.ts +2 -2
  13. package/src/hooks/useDrag.ts +2 -2
  14. package/src/hooks/useDragWithElement.ts +2 -2
  15. package/src/index.ts +79 -15
  16. package/dist/cjs/index.js +0 -2041
  17. package/dist/cjs/index.js.map +0 -1
  18. package/dist/cjs/types/components/AnimationCanvas/canvas.d.ts +0 -6
  19. package/dist/cjs/types/components/AnimationCanvas/canvas.d.ts.map +0 -1
  20. package/dist/cjs/types/components/AnimationCanvas/index.d.ts +0 -51
  21. package/dist/cjs/types/components/AnimationCanvas/index.d.ts.map +0 -1
  22. package/dist/cjs/types/components/AnimationKnob/index.d.ts +0 -62
  23. package/dist/cjs/types/components/AnimationKnob/index.d.ts.map +0 -1
  24. package/dist/cjs/types/components/DragObserver/index.d.ts +0 -21
  25. package/dist/cjs/types/components/DragObserver/index.d.ts.map +0 -1
  26. package/dist/cjs/types/components/Knob/index.d.ts +0 -71
  27. package/dist/cjs/types/components/Knob/index.d.ts.map +0 -1
  28. package/dist/cjs/types/components/NumberInput/DecrementStepper.d.ts +0 -9
  29. package/dist/cjs/types/components/NumberInput/DecrementStepper.d.ts.map +0 -1
  30. package/dist/cjs/types/components/NumberInput/IncrementStepper.d.ts +0 -9
  31. package/dist/cjs/types/components/NumberInput/IncrementStepper.d.ts.map +0 -1
  32. package/dist/cjs/types/components/NumberInput/InternalInput.d.ts +0 -18
  33. package/dist/cjs/types/components/NumberInput/InternalInput.d.ts.map +0 -1
  34. package/dist/cjs/types/components/NumberInput/Stepper.d.ts +0 -10
  35. package/dist/cjs/types/components/NumberInput/Stepper.d.ts.map +0 -1
  36. package/dist/cjs/types/components/NumberInput/context.d.ts +0 -28
  37. package/dist/cjs/types/components/NumberInput/context.d.ts.map +0 -1
  38. package/dist/cjs/types/components/NumberInput/index.d.ts +0 -69
  39. package/dist/cjs/types/components/NumberInput/index.d.ts.map +0 -1
  40. package/dist/cjs/types/components/Piano/KeyLabel.d.ts +0 -17
  41. package/dist/cjs/types/components/Piano/KeyLabel.d.ts.map +0 -1
  42. package/dist/cjs/types/components/Piano/context.d.ts +0 -24
  43. package/dist/cjs/types/components/Piano/context.d.ts.map +0 -1
  44. package/dist/cjs/types/components/Piano/index.d.ts +0 -39
  45. package/dist/cjs/types/components/Piano/index.d.ts.map +0 -1
  46. package/dist/cjs/types/components/Piano/key.d.ts +0 -37
  47. package/dist/cjs/types/components/Piano/key.d.ts.map +0 -1
  48. package/dist/cjs/types/components/Piano/keyboardShortcuts.d.ts +0 -14
  49. package/dist/cjs/types/components/Piano/keyboardShortcuts.d.ts.map +0 -1
  50. package/dist/cjs/types/components/Slider/Scale.d.ts +0 -11
  51. package/dist/cjs/types/components/Slider/Scale.d.ts.map +0 -1
  52. package/dist/cjs/types/components/Slider/ScaleOption.d.ts +0 -27
  53. package/dist/cjs/types/components/Slider/ScaleOption.d.ts.map +0 -1
  54. package/dist/cjs/types/components/Slider/Thumb.d.ts +0 -23
  55. package/dist/cjs/types/components/Slider/Thumb.d.ts.map +0 -1
  56. package/dist/cjs/types/components/Slider/Track.d.ts +0 -21
  57. package/dist/cjs/types/components/Slider/Track.d.ts.map +0 -1
  58. package/dist/cjs/types/components/Slider/context.d.ts +0 -16
  59. package/dist/cjs/types/components/Slider/context.d.ts.map +0 -1
  60. package/dist/cjs/types/components/Slider/index.d.ts +0 -55
  61. package/dist/cjs/types/components/Slider/index.d.ts.map +0 -1
  62. package/dist/cjs/types/components/WheelObserver/index.d.ts +0 -25
  63. package/dist/cjs/types/components/WheelObserver/index.d.ts.map +0 -1
  64. package/dist/cjs/types/components/XYPad/Area.d.ts +0 -15
  65. package/dist/cjs/types/components/XYPad/Area.d.ts.map +0 -1
  66. package/dist/cjs/types/components/XYPad/Thumb.d.ts +0 -23
  67. package/dist/cjs/types/components/XYPad/Thumb.d.ts.map +0 -1
  68. package/dist/cjs/types/components/XYPad/index.d.ts +0 -48
  69. package/dist/cjs/types/components/XYPad/index.d.ts.map +0 -1
  70. package/dist/cjs/types/components/_util/index.d.ts +0 -4
  71. package/dist/cjs/types/components/_util/index.d.ts.map +0 -1
  72. package/dist/cjs/types/hooks/useAnimationFrame.d.ts +0 -3
  73. package/dist/cjs/types/hooks/useAnimationFrame.d.ts.map +0 -1
  74. package/dist/cjs/types/hooks/useCallbackRef.d.ts +0 -6
  75. package/dist/cjs/types/hooks/useCallbackRef.d.ts.map +0 -1
  76. package/dist/cjs/types/hooks/useDrag.d.ts +0 -15
  77. package/dist/cjs/types/hooks/useDrag.d.ts.map +0 -1
  78. package/dist/cjs/types/hooks/useDragWithElement.d.ts +0 -16
  79. package/dist/cjs/types/hooks/useDragWithElement.d.ts.map +0 -1
  80. package/dist/cjs/types/hooks/useEventListener.d.ts +0 -7
  81. package/dist/cjs/types/hooks/useEventListener.d.ts.map +0 -1
  82. package/dist/cjs/types/hooks/useInterval.d.ts +0 -2
  83. package/dist/cjs/types/hooks/useInterval.d.ts.map +0 -1
  84. package/dist/cjs/types/hooks/useLongPress.d.ts +0 -2
  85. package/dist/cjs/types/hooks/useLongPress.d.ts.map +0 -1
  86. package/dist/cjs/types/hooks/useRefCallbackEvent.d.ts +0 -2
  87. package/dist/cjs/types/hooks/useRefCallbackEvent.d.ts.map +0 -1
  88. package/dist/cjs/types/index.d.ts +0 -22
  89. package/dist/cjs/types/index.d.ts.map +0 -1
  90. package/dist/esm/index.js +0 -2010
  91. package/dist/esm/index.js.map +0 -1
  92. package/dist/esm/types/components/AnimationCanvas/canvas.d.ts +0 -6
  93. package/dist/esm/types/components/AnimationCanvas/canvas.d.ts.map +0 -1
  94. package/dist/esm/types/components/AnimationCanvas/index.d.ts +0 -51
  95. package/dist/esm/types/components/AnimationCanvas/index.d.ts.map +0 -1
  96. package/dist/esm/types/components/AnimationKnob/index.d.ts +0 -62
  97. package/dist/esm/types/components/AnimationKnob/index.d.ts.map +0 -1
  98. package/dist/esm/types/components/DragObserver/index.d.ts +0 -21
  99. package/dist/esm/types/components/DragObserver/index.d.ts.map +0 -1
  100. package/dist/esm/types/components/Knob/index.d.ts +0 -71
  101. package/dist/esm/types/components/Knob/index.d.ts.map +0 -1
  102. package/dist/esm/types/components/NumberInput/DecrementStepper.d.ts +0 -9
  103. package/dist/esm/types/components/NumberInput/DecrementStepper.d.ts.map +0 -1
  104. package/dist/esm/types/components/NumberInput/IncrementStepper.d.ts +0 -9
  105. package/dist/esm/types/components/NumberInput/IncrementStepper.d.ts.map +0 -1
  106. package/dist/esm/types/components/NumberInput/InternalInput.d.ts +0 -18
  107. package/dist/esm/types/components/NumberInput/InternalInput.d.ts.map +0 -1
  108. package/dist/esm/types/components/NumberInput/Stepper.d.ts +0 -10
  109. package/dist/esm/types/components/NumberInput/Stepper.d.ts.map +0 -1
  110. package/dist/esm/types/components/NumberInput/context.d.ts +0 -28
  111. package/dist/esm/types/components/NumberInput/context.d.ts.map +0 -1
  112. package/dist/esm/types/components/NumberInput/index.d.ts +0 -69
  113. package/dist/esm/types/components/NumberInput/index.d.ts.map +0 -1
  114. package/dist/esm/types/components/Piano/KeyLabel.d.ts +0 -17
  115. package/dist/esm/types/components/Piano/KeyLabel.d.ts.map +0 -1
  116. package/dist/esm/types/components/Piano/context.d.ts +0 -24
  117. package/dist/esm/types/components/Piano/context.d.ts.map +0 -1
  118. package/dist/esm/types/components/Piano/index.d.ts +0 -39
  119. package/dist/esm/types/components/Piano/index.d.ts.map +0 -1
  120. package/dist/esm/types/components/Piano/key.d.ts +0 -37
  121. package/dist/esm/types/components/Piano/key.d.ts.map +0 -1
  122. package/dist/esm/types/components/Piano/keyboardShortcuts.d.ts +0 -14
  123. package/dist/esm/types/components/Piano/keyboardShortcuts.d.ts.map +0 -1
  124. package/dist/esm/types/components/Slider/Scale.d.ts +0 -11
  125. package/dist/esm/types/components/Slider/Scale.d.ts.map +0 -1
  126. package/dist/esm/types/components/Slider/ScaleOption.d.ts +0 -27
  127. package/dist/esm/types/components/Slider/ScaleOption.d.ts.map +0 -1
  128. package/dist/esm/types/components/Slider/Thumb.d.ts +0 -23
  129. package/dist/esm/types/components/Slider/Thumb.d.ts.map +0 -1
  130. package/dist/esm/types/components/Slider/Track.d.ts +0 -21
  131. package/dist/esm/types/components/Slider/Track.d.ts.map +0 -1
  132. package/dist/esm/types/components/Slider/context.d.ts +0 -16
  133. package/dist/esm/types/components/Slider/context.d.ts.map +0 -1
  134. package/dist/esm/types/components/Slider/index.d.ts +0 -55
  135. package/dist/esm/types/components/Slider/index.d.ts.map +0 -1
  136. package/dist/esm/types/components/WheelObserver/index.d.ts +0 -25
  137. package/dist/esm/types/components/WheelObserver/index.d.ts.map +0 -1
  138. package/dist/esm/types/components/XYPad/Area.d.ts +0 -15
  139. package/dist/esm/types/components/XYPad/Area.d.ts.map +0 -1
  140. package/dist/esm/types/components/XYPad/Thumb.d.ts +0 -23
  141. package/dist/esm/types/components/XYPad/Thumb.d.ts.map +0 -1
  142. package/dist/esm/types/components/XYPad/index.d.ts +0 -48
  143. package/dist/esm/types/components/XYPad/index.d.ts.map +0 -1
  144. package/dist/esm/types/components/_util/index.d.ts +0 -4
  145. package/dist/esm/types/components/_util/index.d.ts.map +0 -1
  146. package/dist/esm/types/hooks/useAnimationFrame.d.ts +0 -3
  147. package/dist/esm/types/hooks/useAnimationFrame.d.ts.map +0 -1
  148. package/dist/esm/types/hooks/useCallbackRef.d.ts +0 -6
  149. package/dist/esm/types/hooks/useCallbackRef.d.ts.map +0 -1
  150. package/dist/esm/types/hooks/useDrag.d.ts +0 -15
  151. package/dist/esm/types/hooks/useDrag.d.ts.map +0 -1
  152. package/dist/esm/types/hooks/useDragWithElement.d.ts +0 -16
  153. package/dist/esm/types/hooks/useDragWithElement.d.ts.map +0 -1
  154. package/dist/esm/types/hooks/useEventListener.d.ts +0 -7
  155. package/dist/esm/types/hooks/useEventListener.d.ts.map +0 -1
  156. package/dist/esm/types/hooks/useInterval.d.ts +0 -2
  157. package/dist/esm/types/hooks/useInterval.d.ts.map +0 -1
  158. package/dist/esm/types/hooks/useLongPress.d.ts +0 -2
  159. package/dist/esm/types/hooks/useLongPress.d.ts.map +0 -1
  160. package/dist/esm/types/hooks/useRefCallbackEvent.d.ts +0 -2
  161. package/dist/esm/types/hooks/useRefCallbackEvent.d.ts.map +0 -1
  162. package/dist/esm/types/index.d.ts +0 -22
  163. package/dist/esm/types/index.d.ts.map +0 -1
@@ -0,0 +1,827 @@
1
+ import * as react0 from "react";
2
+ import * as react2 from "react";
3
+ import * as react6 from "react";
4
+ import * as react8 from "react";
5
+ import React$1, { CSSProperties, ComponentPropsWithoutRef, DependencyList, ElementType, ReactElement, ReactNode, RefObject } from "react";
6
+ import * as react_jsx_runtime0$1 from "react/jsx-runtime";
7
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
8
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
9
+ import * as react_jsx_runtime4 from "react/jsx-runtime";
10
+ import * as react_jsx_runtime3 from "react/jsx-runtime";
11
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
12
+ import * as react_jsx_runtime9 from "react/jsx-runtime";
13
+ import * as react_jsx_runtime8 from "react/jsx-runtime";
14
+ import * as react_jsx_runtime10 from "react/jsx-runtime";
15
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
16
+ import * as react_jsx_runtime11 from "react/jsx-runtime";
17
+ import { InputEventOption } from "@tremolo-ui/functions";
18
+ import { Units } from "@tremolo-ui/functions/NumberInput";
19
+ import { ScaleOptions, ScaleType } from "@tremolo-ui/functions/Slider";
20
+
21
+ //#region src/components/AnimationCanvas/index.d.ts
22
+ /** @category AnimationCanvas */
23
+ type InitFunction = (context: CanvasRenderingContext2D, option: {
24
+ /** current canvas width */
25
+ width: number;
26
+ /** current canvas height */
27
+ height: number;
28
+ }) => void;
29
+ /** @category AnimationCanvas */
30
+ type DrawFunction = (context: CanvasRenderingContext2D, option: {
31
+ /** current canvas width */
32
+ width: number;
33
+ /** current canvas height */
34
+ height: number;
35
+ /** frame count */
36
+ count: number;
37
+ /** delta time (ms) */
38
+ deltaTime: number;
39
+ /** elapsed time (ms) */
40
+ elapsedTime: number;
41
+ /** frame per second */
42
+ fps: number;
43
+ }) => void;
44
+ /** @category AnimationCanvas */
45
+ interface CommonProps {
46
+ /**
47
+ * @see https://developer.mozilla.org/docs/Web/API/HTMLCanvasElement/getContext#contextattributes
48
+ */
49
+ options?: CanvasRenderingContext2DSettings;
50
+ init?: InitFunction;
51
+ draw: DrawFunction;
52
+ }
53
+ /** @category AnimationCanvas */
54
+ interface AbsoluteSizingProps {
55
+ width?: number;
56
+ height?: number;
57
+ }
58
+ /** @category AnimationCanvas */
59
+ interface RelativeSizingProps {
60
+ relativeSize?: boolean;
61
+ reduceFlickering?: boolean;
62
+ }
63
+ /** @category AnimationCanvas */
64
+ type AnimationCanvasProps = CommonProps & AbsoluteSizingProps & RelativeSizingProps;
65
+ /**
66
+ * A simple animatable canvas with requestAnimationFrame()
67
+ * @category AnimationCanvas
68
+ */
69
+ declare function AnimationCanvas(props: CommonProps & AbsoluteSizingProps & Omit<ComponentPropsWithoutRef<'canvas'>, keyof AnimationCanvasProps>): ReactElement;
70
+ declare function AnimationCanvas(pros: CommonProps & RelativeSizingProps & Omit<ComponentPropsWithoutRef<'canvas'>, keyof AnimationCanvasProps>): ReactElement;
71
+ //# sourceMappingURL=index.d.ts.map
72
+ //#endregion
73
+ //#region src/components/AnimationKnob/index.d.ts
74
+ /** @category AnimationKnob */
75
+ type AnimationKnobProps = {
76
+ value: number;
77
+ min: number;
78
+ max: number;
79
+ step?: number;
80
+ skew?: number;
81
+ /**
82
+ * value set when double-clicking
83
+ * @see enableDoubleClickDefault
84
+ */
85
+ defaultValue?: number;
86
+ /**
87
+ * Value to be used as the starting point of the line when drawing.
88
+ * @default min
89
+ */
90
+ startValue?: number;
91
+ /** Priority over width or height */
92
+ size?: number | `${number}%`;
93
+ width?: number | `${number}%`;
94
+ height?: number | `${number}%`;
95
+ /** active line color */
96
+ activeColor?: string;
97
+ /** inactive line color */
98
+ inactiveColor?: string;
99
+ /** background color */
100
+ bg?: string;
101
+ /** thumb color */
102
+ thumb?: string;
103
+ lineWeight?: number;
104
+ thumbWeight?: number;
105
+ draw?: DrawFunction;
106
+ /** Whether to apply `{use-select: none}` when dragging */
107
+ bodyNoSelect?: boolean;
108
+ /**
109
+ * wheel control option
110
+ */
111
+ wheel?: InputEventOption | null;
112
+ /**
113
+ * keyboard control option
114
+ */
115
+ keyboard?: InputEventOption | null;
116
+ enableDoubleClickDefault?: boolean;
117
+ style?: CSSProperties;
118
+ onChange?: (value: number) => void;
119
+ };
120
+ /**
121
+ * @category AnimationKnob
122
+ */
123
+ interface AnimationKnobMethods {
124
+ focus: () => void;
125
+ blur: () => void;
126
+ }
127
+ /**
128
+ * Animatable rotary knob.
129
+ * @category AnimationKnob
130
+ */
131
+ declare const AnimationKnob: React$1.ForwardRefExoticComponent<AnimationKnobProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof AnimationKnobProps> & React$1.RefAttributes<AnimationKnobMethods>>;
132
+ //# sourceMappingURL=index.d.ts.map
133
+ //#endregion
134
+ //#region src/components/DragObserver/index.d.ts
135
+ /** @category DragObserver */
136
+ interface DragObserverProps<T extends ElementType> {
137
+ /**
138
+ * React.ElementType
139
+ * @default div
140
+ */
141
+ as?: T;
142
+ /**
143
+ * Threshold at which the onDrag event fires.
144
+ * Prevents onDrag events from firing, for example, when double-clicking.
145
+ */
146
+ threshold?: number;
147
+ children?: ReactNode;
148
+ onDrag: (x: number, y: number, deltaX: number, deltaY: number) => void;
149
+ onDragStart?: () => void;
150
+ onDragEnd?: () => void;
151
+ }
152
+ /** @category DragObserver */
153
+ declare function DragObserver<T extends ElementType = 'div'>(props: DragObserverProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof DragObserverProps<T>>): react_jsx_runtime0$1.JSX.Element;
154
+ //# sourceMappingURL=index.d.ts.map
155
+ //#endregion
156
+ //#region src/components/Knob/index.d.ts
157
+ /** @category Knob */
158
+ interface KnobProps {
159
+ value: number;
160
+ min: number;
161
+ max: number;
162
+ step?: number;
163
+ skew?: number;
164
+ /**
165
+ * value set when double-clicking
166
+ * @default min
167
+ * @see enableDoubleClickDefault
168
+ */
169
+ defaultValue?: number;
170
+ /**
171
+ * Value to be used as the starting point of the line when drawing.
172
+ * @default min
173
+ */
174
+ startValue?: number;
175
+ size?: number;
176
+ /** Whether to apply `{use-select: none}` when dragging */
177
+ bodyNoSelect?: boolean;
178
+ /**
179
+ * wheel control option
180
+ */
181
+ wheel?: InputEventOption | null;
182
+ /**
183
+ * keyboard control option
184
+ */
185
+ keyboard?: InputEventOption | null;
186
+ enableDoubleClickDefault?: boolean;
187
+ disabled?: boolean;
188
+ readonly?: boolean;
189
+ /** color */
190
+ activeLine?: string;
191
+ /** color */
192
+ inactiveLine?: string;
193
+ /** color */
194
+ thumb?: string;
195
+ /** color */
196
+ thumbLine?: string;
197
+ /** percent (0-100) */
198
+ thumbSize?: number;
199
+ /** percent (0-100) */
200
+ thumbLineWeight?: number;
201
+ /** percent (0-100) */
202
+ thumbLineLength?: number;
203
+ /** percent (0-100) */
204
+ lineWeight?: number;
205
+ classes?: {
206
+ activeLine?: string;
207
+ inactiveLine?: string;
208
+ thumb?: string;
209
+ thumbLine?: string;
210
+ };
211
+ onChange?: (value: number) => void;
212
+ }
213
+ /**
214
+ * @category Knob
215
+ */
216
+ interface KnobMethods {
217
+ focus: () => void;
218
+ blur: () => void;
219
+ }
220
+ /**
221
+ * Interactive rotary knob component implemented in SVG.
222
+ *
223
+ * @category Knob
224
+ */
225
+ declare const Knob: react0.ForwardRefExoticComponent<KnobProps & Omit<Omit<react0.SVGProps<SVGSVGElement>, "ref">, keyof KnobProps> & react0.RefAttributes<KnobMethods>>;
226
+ //# sourceMappingURL=index.d.ts.map
227
+ //#endregion
228
+ //#region src/components/NumberInput/Stepper.d.ts
229
+ /** @category NumberInput */
230
+ interface StepperProps {
231
+ /** Display only when hovering. */
232
+ dynamic?: boolean;
233
+ children?: ReactNode;
234
+ }
235
+ /** @category NumberInput */
236
+ declare function Stepper({
237
+ dynamic,
238
+ children,
239
+ className,
240
+ ...props
241
+ }: StepperProps & Omit<ComponentPropsWithoutRef<'div'>, keyof StepperProps>): react_jsx_runtime5.JSX.Element;
242
+ //# sourceMappingURL=Stepper.d.ts.map
243
+ //#endregion
244
+ //#region src/components/NumberInput/IncrementStepper.d.ts
245
+ /** @category NumberInput */
246
+ interface IncrementStepperProps {
247
+ size?: number;
248
+ children?: ReactNode;
249
+ }
250
+ /** @category NumberInput */
251
+ declare function IncrementStepper({
252
+ size,
253
+ children,
254
+ className,
255
+ ...props
256
+ }: IncrementStepperProps & Omit<ComponentPropsWithoutRef<'div'>, keyof IncrementStepperProps>): react_jsx_runtime6.JSX.Element;
257
+ //# sourceMappingURL=IncrementStepper.d.ts.map
258
+ //#endregion
259
+ //#region src/components/NumberInput/DecrementStepper.d.ts
260
+ /** @category NumberInput */
261
+ interface DecrementStepperProps {
262
+ size?: number;
263
+ children?: ReactNode;
264
+ }
265
+ /** @category NumberInput */
266
+ declare function DecrementStepper({
267
+ size,
268
+ children,
269
+ className,
270
+ ...props
271
+ }: DecrementStepperProps & Omit<ComponentPropsWithoutRef<'div'>, keyof DecrementStepperProps>): react_jsx_runtime4.JSX.Element;
272
+ //# sourceMappingURL=DecrementStepper.d.ts.map
273
+ //#endregion
274
+ //#region src/components/NumberInput/index.d.ts
275
+ /** @category NumberInput */
276
+ interface NumberInputProps {
277
+ value: number | string;
278
+ /**
279
+ * @default Number.MIN_SAFE_INTEGER
280
+ */
281
+ min?: number;
282
+ /**
283
+ * @default Number.MAX_SAFE_INTEGER
284
+ */
285
+ max?: number;
286
+ step?: number;
287
+ /**
288
+ * @example
289
+ * units='Hz'
290
+ * units={[['Hz', 1], ['kHz', 1000]]}
291
+ * units={[['ms', 1], ['s', 1000]]}
292
+ */
293
+ units?: string | Units;
294
+ /**
295
+ * Digits for rounding numbers.
296
+ * @example
297
+ * with:
298
+ * units={[['Hz', 1], ['kHz', 1000]]}
299
+ * digit={3}
300
+ * results:
301
+ * value=100 -> 100Hz, value=1600 -> 1.60Hz
302
+ */
303
+ digit?: number;
304
+ readonly?: boolean;
305
+ variant?: 'outline' | 'filled' | 'flushed' | 'unstyled';
306
+ selectWithFocus?: 'all' | 'number' | 'none';
307
+ blurOnEnter?: boolean;
308
+ keepWithinRange?: boolean;
309
+ clampValueOnBlur?: boolean;
310
+ /**
311
+ * wheel control option
312
+ */
313
+ wheel?: InputEventOption | null;
314
+ /**
315
+ * keyboard control option
316
+ */
317
+ keyboard?: InputEventOption | null;
318
+ activeColor?: string;
319
+ wrapperClassName?: string;
320
+ onChange?: (value: number, text: string) => void;
321
+ onFocus?: (value: number, text: string, event: React.FocusEvent<HTMLInputElement, Element>) => void;
322
+ onBlur?: (value: number, text: string, event: React.FocusEvent<HTMLInputElement, Element>) => void;
323
+ children?: ReactNode;
324
+ }
325
+ /**
326
+ * @category NumberInput
327
+ */
328
+ interface NumberInputMethods {
329
+ focus: () => void;
330
+ blur: () => void;
331
+ }
332
+ /**
333
+ * Input with some useful functions for entering numerical values.
334
+ * @category NumberInput
335
+ */
336
+ declare const NumberInput: react2.ForwardRefExoticComponent<NumberInputProps & Omit<Omit<react2.DetailedHTMLProps<react2.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "type" | keyof NumberInputProps> & react2.RefAttributes<NumberInputMethods>>;
337
+ //#endregion
338
+ //#region src/components/Piano/context.d.ts
339
+ /** @category Piano */
340
+ type NoteRange = {
341
+ first: number;
342
+ last: number;
343
+ };
344
+ //#endregion
345
+ //#region src/components/Piano/keyboardShortcuts.d.ts
346
+ /** @category Piano */
347
+ type KeyboardShortcuts = {
348
+ keys: string[];
349
+ flags?: {
350
+ naturalOnly?: boolean;
351
+ };
352
+ };
353
+ /** @category Piano */
354
+ declare const SHORTCUTS: {
355
+ HOME_ROW: {
356
+ keys: string[];
357
+ };
358
+ };
359
+ //# sourceMappingURL=keyboardShortcuts.d.ts.map
360
+ //#endregion
361
+ //#region src/components/Piano/key.d.ts
362
+ /**
363
+ * @category Piano
364
+ */
365
+ interface KeyProps {
366
+ noteNumber: number;
367
+ width?: number;
368
+ height?: number | `${number}%`;
369
+ bg?: string;
370
+ color?: string;
371
+ activeBg?: string;
372
+ activeColor?: string;
373
+ style?: CSSProperties;
374
+ /**
375
+ * \<KeyLabel />
376
+ */
377
+ children?: ReactElement;
378
+ /** @internal */
379
+ __width?: number;
380
+ }
381
+ /**
382
+ * @category Piano
383
+ */
384
+ interface KeyMethods {
385
+ play: () => void;
386
+ stop: () => void;
387
+ played: () => boolean;
388
+ }
389
+ /** @category Piano */
390
+
391
+ /** @category Piano */
392
+ declare const WhiteKey: React$1.ForwardRefExoticComponent<KeyProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof KeyProps> & React$1.RefAttributes<KeyMethods>>;
393
+ /** @category Piano */
394
+ declare const BlackKey: React$1.ForwardRefExoticComponent<KeyProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof KeyProps> & React$1.RefAttributes<KeyMethods>>;
395
+ //# sourceMappingURL=key.d.ts.map
396
+ //#endregion
397
+ //#region src/components/Piano/KeyLabel.d.ts
398
+ /** @category Piano */
399
+ interface KeyLabelProps {
400
+ /**
401
+ * override Piano.label
402
+ */
403
+ label?: (note: number, index: number) => ReactNode;
404
+ wrapperClassName?: string;
405
+ wrapperStyle?: CSSProperties;
406
+ /** @internal */
407
+ __note?: number;
408
+ /** @internal */
409
+ __label?: (note: number, index: number) => ReactNode;
410
+ }
411
+ /** @category Piano */
412
+ declare function KeyLabel({
413
+ label,
414
+ className,
415
+ wrapperClassName,
416
+ wrapperStyle,
417
+ __note,
418
+ __label,
419
+ ...props
420
+ }: KeyLabelProps & Omit<ComponentPropsWithoutRef<'div'>, keyof KeyLabelProps>): false | react_jsx_runtime3.JSX.Element;
421
+ //# sourceMappingURL=KeyLabel.d.ts.map
422
+ //#endregion
423
+ //#region src/components/Piano/index.d.ts
424
+ /**
425
+ * Piano component
426
+ *
427
+ * TODO:
428
+ * - add scale highlight
429
+ */
430
+ /** @category Piano */
431
+ declare function getNoteRangeArray(noteRange: NoteRange): number[];
432
+ /** @category Piano */
433
+ interface PianoProps {
434
+ noteRange: NoteRange;
435
+ glissando?: boolean;
436
+ midiMax?: number;
437
+ keyboardShortcuts?: KeyboardShortcuts;
438
+ fill?: boolean;
439
+ whiteNoteWidth?: number;
440
+ blackNoteWidth?: number;
441
+ height?: number | string;
442
+ style?: CSSProperties;
443
+ onPlayNote?: (noteNumber: number) => void;
444
+ onStopNote?: (noteNumber: number) => void;
445
+ label?: (note: number, index: number) => ReactNode;
446
+ /**
447
+ * \<WhiteKey /> | \<BlackKey />
448
+ */
449
+ children?: ReactElement | ReactElement[];
450
+ }
451
+ /**
452
+ * Customizable piano component.
453
+ * @category Piano
454
+ */
455
+ declare function Piano({
456
+ noteRange,
457
+ glissando,
458
+ midiMax,
459
+ keyboardShortcuts,
460
+ fill,
461
+ height,
462
+ whiteNoteWidth: _whiteNoteWidth,
463
+ style,
464
+ className,
465
+ onPlayNote,
466
+ onStopNote,
467
+ label,
468
+ children,
469
+ onPointerDown,
470
+ ...props
471
+ }: PianoProps & Omit<ComponentPropsWithoutRef<'div'>, keyof PianoProps>): react_jsx_runtime0.JSX.Element;
472
+ //#endregion
473
+ //#region src/components/Slider/context.d.ts
474
+ type State = {
475
+ min: number;
476
+ max: number;
477
+ step: number;
478
+ skew: number;
479
+ vertical: boolean;
480
+ reverse: boolean;
481
+ disabled: boolean;
482
+ readonly: boolean;
483
+ };
484
+ /** @category Slider */
485
+ declare function useSliderContext<T>(selector: (state: State) => T): T;
486
+ //#endregion
487
+ //#region src/components/Slider/Thumb.d.ts
488
+ /** @category Slider */
489
+ interface SliderThumbProps {
490
+ size?: number | string;
491
+ width?: number | string;
492
+ height?: number | string;
493
+ color?: string;
494
+ className?: string;
495
+ style?: CSSProperties;
496
+ children?: ReactNode;
497
+ /** @internal */
498
+ __percent?: number;
499
+ }
500
+ /** @category Slider */
501
+ interface SliderThumbMethods {
502
+ focus: () => void;
503
+ blur: () => void;
504
+ }
505
+ /** @category Slider */
506
+
507
+ /** @category Slider */
508
+ declare const SliderThumb: react6.ForwardRefExoticComponent<SliderThumbProps & react6.RefAttributes<SliderThumbMethods>>;
509
+ //# sourceMappingURL=Thumb.d.ts.map
510
+ //#endregion
511
+ //#region src/components/Slider/Track.d.ts
512
+ /** @category Slider */
513
+ interface SliderTrackProps {
514
+ length?: number | string;
515
+ thickness?: number | string;
516
+ active?: string;
517
+ inactive?: string;
518
+ defaultStyle?: boolean;
519
+ className?: string;
520
+ style?: CSSProperties;
521
+ children?: ReactElement;
522
+ /** @internal */
523
+ __thumb?: ReactElement;
524
+ /** @internal */
525
+ __percent?: number;
526
+ }
527
+ /** @category Slider */
528
+ declare function SliderTrack({
529
+ length,
530
+ thickness,
531
+ active,
532
+ inactive,
533
+ children,
534
+ className,
535
+ style,
536
+ defaultStyle,
537
+ __thumb,
538
+ __percent,
539
+ ...props
540
+ }: SliderTrackProps & Omit<ComponentPropsWithoutRef<'div'>, keyof SliderTrackProps>): react_jsx_runtime9.JSX.Element;
541
+ //# sourceMappingURL=Track.d.ts.map
542
+ //#endregion
543
+ //#region src/components/Slider/Scale.d.ts
544
+ /** @category Slider */
545
+ interface ScaleProps {
546
+ gap?: number | string;
547
+ options?: ScaleOptions;
548
+ children?: ReactNode;
549
+ }
550
+ /** @category Slider */
551
+ declare function Scale({
552
+ gap,
553
+ options,
554
+ children,
555
+ className,
556
+ style,
557
+ ...props
558
+ }: ScaleProps & Omit<ComponentPropsWithoutRef<'div'>, keyof ScaleProps>): react_jsx_runtime8.JSX.Element;
559
+ //# sourceMappingURL=Scale.d.ts.map
560
+ //#endregion
561
+ //#region src/components/Slider/ScaleOption.d.ts
562
+ /** @category Slider */
563
+ interface ScaleOptionProps {
564
+ value: number;
565
+ type?: ScaleType;
566
+ /** Display text instead of value. */
567
+ label?: string;
568
+ /** mark thickness */
569
+ thickness?: number | string;
570
+ /** mark length */
571
+ length?: number | string;
572
+ /** Gap between mark and label. */
573
+ gap?: number | string;
574
+ labelWidth?: number | string;
575
+ classes?: {
576
+ mark?: string;
577
+ label?: string;
578
+ };
579
+ styles?: {
580
+ mark?: CSSProperties;
581
+ label?: CSSProperties;
582
+ };
583
+ }
584
+ /** @category Slider */
585
+ declare function ScaleOption({
586
+ value,
587
+ type,
588
+ label,
589
+ thickness,
590
+ length,
591
+ gap,
592
+ labelWidth,
593
+ classes,
594
+ styles,
595
+ className,
596
+ style,
597
+ ...props
598
+ }: ScaleOptionProps & Omit<ComponentPropsWithoutRef<'div'>, keyof ScaleOptionProps>): react_jsx_runtime10.JSX.Element;
599
+ //# sourceMappingURL=ScaleOption.d.ts.map
600
+ //#endregion
601
+ //#region src/components/Slider/index.d.ts
602
+ /** @category Slider */
603
+ interface SliderProps {
604
+ value: number;
605
+ min: number;
606
+ max: number;
607
+ step?: number;
608
+ skew?: number;
609
+ vertical?: boolean;
610
+ reverse?: boolean;
611
+ bodyNoSelect?: boolean;
612
+ /**
613
+ * wheel control option
614
+ */
615
+ wheel?: InputEventOption | null;
616
+ /**
617
+ * keyboard control option
618
+ */
619
+ keyboard?: InputEventOption | null;
620
+ /**
621
+ * Only the appearance will change.
622
+ * Please consider using with readonly.
623
+ */
624
+ disabled?: boolean;
625
+ /**
626
+ * Make the value unchangeable.
627
+ */
628
+ readonly?: boolean;
629
+ className?: string;
630
+ style?: CSSProperties;
631
+ onChange?: (value: number) => void;
632
+ onDragStart?: (value: number) => void;
633
+ onDragEnd?: (value: number) => void;
634
+ /** \<SliderThumb /> | \<SliderTrack /> */
635
+ children?: ReactElement | ReactElement[];
636
+ }
637
+ /**
638
+ * @category Slider
639
+ */
640
+ interface SliderMethods {
641
+ focus: () => void;
642
+ blur: () => void;
643
+ }
644
+ /**
645
+ * Customizable slider
646
+ * @category Slider
647
+ */
648
+ declare const Slider: React$1.ForwardRefExoticComponent<SliderProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof SliderProps> & React$1.RefAttributes<SliderMethods>>;
649
+ //#endregion
650
+ //#region src/components/WheelObserver/index.d.ts
651
+ /**
652
+ * @example
653
+ * <WheelObserver
654
+ * onWheel={(event) => {
655
+ * event.preventDefault()
656
+ * console.log(event.deltaY)
657
+ * }
658
+ * >
659
+ * <div>Wheel here</div>
660
+ * </WheelObserver>
661
+ */
662
+ /** @category WheelObserver */
663
+ interface WheelObserverProps<T extends ElementType> {
664
+ /**
665
+ * React.ElementType
666
+ * @default div
667
+ */
668
+ as?: T;
669
+ children?: ReactNode;
670
+ onWheel?: (event: WheelEvent) => void;
671
+ }
672
+ /** @category WheelObserver */
673
+ declare function WheelObserver<T extends ElementType = 'div'>(props: WheelObserverProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof WheelObserverProps<T>>): react_jsx_runtime1.JSX.Element;
674
+ //# sourceMappingURL=index.d.ts.map
675
+ //#endregion
676
+ //#region src/components/XYPad/Thumb.d.ts
677
+ /** @category XYPad */
678
+ interface ThumbProps {
679
+ size?: number | string;
680
+ width?: number | string;
681
+ height?: number | string;
682
+ color?: string;
683
+ wrapperClassName?: string;
684
+ wrapperStyle?: CSSProperties;
685
+ children?: ReactNode;
686
+ /** @internal */
687
+ __disabled?: boolean;
688
+ /** @internal */
689
+ __css?: CSSProperties;
690
+ }
691
+ /** @category XYPad */
692
+ interface XYPadThumbMethods {
693
+ focus: () => void;
694
+ blur: () => void;
695
+ }
696
+ /** @category XYPad */
697
+ declare const XYPadThumb: react8.ForwardRefExoticComponent<ThumbProps & Omit<Omit<react8.DetailedHTMLProps<react8.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof ThumbProps> & react8.RefAttributes<XYPadThumbMethods>>;
698
+ //# sourceMappingURL=Thumb.d.ts.map
699
+ //#endregion
700
+ //#region src/components/XYPad/Area.d.ts
701
+ /** @category XYPad */
702
+ interface AreaProps {
703
+ width?: number | string;
704
+ height?: number | string;
705
+ color?: string;
706
+ className?: string;
707
+ style?: CSSProperties;
708
+ children?: ReactElement;
709
+ /** inherit */
710
+ __thumb?: ReactElement;
711
+ }
712
+ /** @category XYPad */
713
+ declare function XYPadArea({
714
+ width,
715
+ height,
716
+ color,
717
+ children,
718
+ className,
719
+ style,
720
+ __thumb,
721
+ ...props
722
+ }: AreaProps & Omit<ComponentPropsWithoutRef<'div'>, keyof AreaProps>): react_jsx_runtime11.JSX.Element;
723
+ //# sourceMappingURL=Area.d.ts.map
724
+ //#endregion
725
+ //#region src/components/XYPad/index.d.ts
726
+ /**
727
+ * Two-dimensional slider component.
728
+ * @category XYPad
729
+ */
730
+ interface ValueOptions {
731
+ value: number;
732
+ min: number;
733
+ max: number;
734
+ step?: number;
735
+ skew?: number;
736
+ reverse?: boolean;
737
+ /**
738
+ * wheel control option
739
+ */
740
+ wheel?: InputEventOption | null;
741
+ /**
742
+ * keyboard control option
743
+ */
744
+ keyboard?: InputEventOption | null;
745
+ }
746
+ /** @category XYPad */
747
+ interface XYPadProps {
748
+ x: ValueOptions;
749
+ y: ValueOptions;
750
+ bodyNoSelect?: boolean;
751
+ disabled?: boolean;
752
+ readonly?: boolean;
753
+ onChange?: (valueX: number, valueY: number) => void;
754
+ onDragStart?: (valueX: number, valueY: number) => void;
755
+ onDragEnd?: (valueX: number, valueY: number) => void;
756
+ /** \<XYPadThumb /> | \<XYPadArea /> */
757
+ children?: ReactElement | ReactElement[];
758
+ }
759
+ /** @category XYPad */
760
+ interface XYPadMethods {
761
+ focus: () => void;
762
+ blur: () => void;
763
+ }
764
+ /**
765
+ * Simple XYPad
766
+ * @category XYPad
767
+ */
768
+ declare const XYPad: React$1.ForwardRefExoticComponent<XYPadProps & Omit<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, keyof XYPadProps> & React$1.RefAttributes<XYPadMethods>>;
769
+ //#endregion
770
+ //#region src/hooks/useAnimationFrame.d.ts
771
+ declare function useAnimationFrame(callback?: () => void, deps?: DependencyList): void;
772
+ //# sourceMappingURL=useAnimationFrame.d.ts.map
773
+ //#endregion
774
+ //#region src/hooks/useDrag.d.ts
775
+ interface UseDragProps {
776
+ threshold?: number;
777
+ onDrag: (x: number, y: number, deltaX: number, deltaY: number) => void;
778
+ onDragStart?: () => void;
779
+ onDragEnd?: () => void;
780
+ }
781
+ /**
782
+ * @returns [refCallback, pointerDownHandler]
783
+ */
784
+ declare function useDrag<T extends Element>({
785
+ threshold,
786
+ onDrag,
787
+ onDragStart,
788
+ onDragEnd
789
+ }: UseDragProps): [(div: EventTarget | null) => void, (event: React.PointerEvent<T>) => void];
790
+ //# sourceMappingURL=useDrag.d.ts.map
791
+ //#endregion
792
+ //#region src/hooks/useDragWithElement.d.ts
793
+ interface UseDragWithElementProps<T extends Element> {
794
+ baseElementRef: RefObject<T | null>;
795
+ onDrag: (normalizedX: number, normalizedY: number) => void;
796
+ onDragStart?: (normalizedX: number, normalizedY: number) => void;
797
+ onDragEnd?: (normalizedX: number, normalizedY: number) => void;
798
+ }
799
+ /**
800
+ * @returns [refCallback, pointerDownHandler]
801
+ */
802
+ declare function useDragWithElement<T extends Element>({
803
+ baseElementRef,
804
+ onDrag,
805
+ onDragStart,
806
+ onDragEnd
807
+ }: UseDragWithElementProps<T>): [(div: EventTarget | null) => void, (event: React.PointerEvent<T>) => void];
808
+ //# sourceMappingURL=useDragWithElement.d.ts.map
809
+ //#endregion
810
+ //#region src/hooks/useEventListener.d.ts
811
+ type Target = EventTarget | null | (() => EventTarget | null);
812
+ type Options = boolean | AddEventListenerOptions;
813
+ declare function useEventListener<K extends keyof DocumentEventMap>(target: Target, event: K, handler?: (event: DocumentEventMap[K]) => void, options?: Options): VoidFunction;
814
+ declare function useEventListener<K extends keyof WindowEventMap>(target: Target, event: K, handler?: (event: WindowEventMap[K]) => void, options?: Options): VoidFunction;
815
+ declare function useEventListener<K extends keyof GlobalEventHandlersEventMap>(target: Target, event: K, handler?: (event: GlobalEventHandlersEventMap[K]) => void, options?: Options): VoidFunction;
816
+ //#endregion
817
+ //#region src/hooks/useInterval.d.ts
818
+ declare function useInterval(callback: () => void, delay: number | null): void;
819
+ //# sourceMappingURL=useInterval.d.ts.map
820
+ //#endregion
821
+ //#region src/hooks/useLongPress.d.ts
822
+ declare function useLongPress(callback: () => void, initialDelay?: number, interval?: number): () => void;
823
+ //# sourceMappingURL=useLongPress.d.ts.map
824
+
825
+ //#endregion
826
+ export { type AbsoluteSizingProps, AnimationCanvas, type AnimationCanvasProps, AnimationKnob, type AnimationKnobMethods, type AnimationKnobProps, type AreaProps, BlackKey, type CommonProps, DecrementStepper, type DecrementStepperProps, DragObserver, type DragObserverProps, type DrawFunction, IncrementStepper, type IncrementStepperProps, type InitFunction, KeyLabel, type KeyLabelProps, type KeyMethods, type KeyProps, type KeyboardShortcuts, Knob, type KnobMethods, type KnobProps, NumberInput, type NumberInputMethods, type NumberInputProps, Piano, type PianoProps, type RelativeSizingProps, SHORTCUTS, Scale, ScaleOption, type ScaleOptionProps, type ScaleProps, Slider, type SliderMethods, type SliderProps, SliderThumb, type SliderThumbMethods, type SliderThumbProps, SliderTrack, type SliderTrackProps, Stepper, type StepperProps, type ThumbProps, type UseDragProps, type UseDragWithElementProps, type ValueOptions, WheelObserver, type WheelObserverProps, WhiteKey, XYPad, XYPadArea, type XYPadMethods, type XYPadProps, XYPadThumb, type XYPadThumbMethods, getNoteRangeArray, useAnimationFrame, useDrag, useDragWithElement, useEventListener, useInterval, useLongPress, useSliderContext };
827
+ //# sourceMappingURL=index.d.ts.map