@tremolo-ui/svelte 0.7.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 (198) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -0
  3. package/dist/actions/drag-value.d.ts +22 -0
  4. package/dist/actions/drag-value.d.ts.map +1 -0
  5. package/dist/actions/drag-value.js +30 -0
  6. package/dist/actions/drag.d.ts +14 -0
  7. package/dist/actions/drag.d.ts.map +1 -0
  8. package/dist/actions/drag.js +22 -0
  9. package/dist/actions/drop-zone.d.ts +12 -0
  10. package/dist/actions/drop-zone.d.ts.map +1 -0
  11. package/dist/actions/drop-zone.js +20 -0
  12. package/dist/actions/long-press.d.ts +11 -0
  13. package/dist/actions/long-press.d.ts.map +1 -0
  14. package/dist/actions/long-press.js +24 -0
  15. package/dist/actions/wheel.d.ts +15 -0
  16. package/dist/actions/wheel.d.ts.map +1 -0
  17. package/dist/actions/wheel.js +32 -0
  18. package/dist/components/AnimationCanvas/AnimationCanvas.svelte +69 -0
  19. package/dist/components/AnimationCanvas/AnimationCanvas.svelte.d.ts +7 -0
  20. package/dist/components/AnimationCanvas/AnimationCanvas.svelte.d.ts.map +1 -0
  21. package/dist/components/AnimationCanvas/types.d.ts +46 -0
  22. package/dist/components/AnimationCanvas/types.d.ts.map +1 -0
  23. package/dist/components/AnimationCanvas/types.js +1 -0
  24. package/dist/components/DropZone/Root.svelte +47 -0
  25. package/dist/components/DropZone/Root.svelte.d.ts +7 -0
  26. package/dist/components/DropZone/Root.svelte.d.ts.map +1 -0
  27. package/dist/components/DropZone/index.d.ts +2 -0
  28. package/dist/components/DropZone/index.d.ts.map +1 -0
  29. package/dist/components/DropZone/index.js +1 -0
  30. package/dist/components/DropZone/types.d.ts +26 -0
  31. package/dist/components/DropZone/types.d.ts.map +1 -0
  32. package/dist/components/DropZone/types.js +1 -0
  33. package/dist/components/FileInput/Root.svelte +68 -0
  34. package/dist/components/FileInput/Root.svelte.d.ts +7 -0
  35. package/dist/components/FileInput/Root.svelte.d.ts.map +1 -0
  36. package/dist/components/FileInput/Trigger.svelte +28 -0
  37. package/dist/components/FileInput/Trigger.svelte.d.ts +11 -0
  38. package/dist/components/FileInput/Trigger.svelte.d.ts.map +1 -0
  39. package/dist/components/FileInput/context.d.ts +10 -0
  40. package/dist/components/FileInput/context.d.ts.map +1 -0
  41. package/dist/components/FileInput/context.js +5 -0
  42. package/dist/components/FileInput/index.d.ts +3 -0
  43. package/dist/components/FileInput/index.d.ts.map +1 -0
  44. package/dist/components/FileInput/index.js +2 -0
  45. package/dist/components/FileInput/types.d.ts +28 -0
  46. package/dist/components/FileInput/types.d.ts.map +1 -0
  47. package/dist/components/FileInput/types.js +1 -0
  48. package/dist/components/Knob/ActiveLine.svelte +29 -0
  49. package/dist/components/Knob/ActiveLine.svelte.d.ts +6 -0
  50. package/dist/components/Knob/ActiveLine.svelte.d.ts.map +1 -0
  51. package/dist/components/Knob/InactiveLine.svelte +41 -0
  52. package/dist/components/Knob/InactiveLine.svelte.d.ts +6 -0
  53. package/dist/components/Knob/InactiveLine.svelte.d.ts.map +1 -0
  54. package/dist/components/Knob/Root.svelte +189 -0
  55. package/dist/components/Knob/Root.svelte.d.ts +10 -0
  56. package/dist/components/Knob/Root.svelte.d.ts.map +1 -0
  57. package/dist/components/Knob/SVGRoot.svelte +28 -0
  58. package/dist/components/Knob/SVGRoot.svelte.d.ts +13 -0
  59. package/dist/components/Knob/SVGRoot.svelte.d.ts.map +1 -0
  60. package/dist/components/Knob/Thumb.svelte +43 -0
  61. package/dist/components/Knob/Thumb.svelte.d.ts +7 -0
  62. package/dist/components/Knob/Thumb.svelte.d.ts.map +1 -0
  63. package/dist/components/Knob/context.d.ts +22 -0
  64. package/dist/components/Knob/context.d.ts.map +1 -0
  65. package/dist/components/Knob/context.js +5 -0
  66. package/dist/components/Knob/index.d.ts +6 -0
  67. package/dist/components/Knob/index.d.ts.map +1 -0
  68. package/dist/components/Knob/index.js +5 -0
  69. package/dist/components/Knob/types.d.ts +139 -0
  70. package/dist/components/Knob/types.d.ts.map +1 -0
  71. package/dist/components/Knob/types.js +1 -0
  72. package/dist/components/NumberInput/DecrementStepper.svelte +11 -0
  73. package/dist/components/NumberInput/DecrementStepper.svelte.d.ts +9 -0
  74. package/dist/components/NumberInput/DecrementStepper.svelte.d.ts.map +1 -0
  75. package/dist/components/NumberInput/IncrementStepper.svelte +11 -0
  76. package/dist/components/NumberInput/IncrementStepper.svelte.d.ts +9 -0
  77. package/dist/components/NumberInput/IncrementStepper.svelte.d.ts.map +1 -0
  78. package/dist/components/NumberInput/InputField.svelte +134 -0
  79. package/dist/components/NumberInput/InputField.svelte.d.ts +8 -0
  80. package/dist/components/NumberInput/InputField.svelte.d.ts.map +1 -0
  81. package/dist/components/NumberInput/Root.svelte +209 -0
  82. package/dist/components/NumberInput/Root.svelte.d.ts +10 -0
  83. package/dist/components/NumberInput/Root.svelte.d.ts.map +1 -0
  84. package/dist/components/NumberInput/Stepper.svelte +61 -0
  85. package/dist/components/NumberInput/Stepper.svelte.d.ts +10 -0
  86. package/dist/components/NumberInput/Stepper.svelte.d.ts.map +1 -0
  87. package/dist/components/NumberInput/StepperButton.svelte +63 -0
  88. package/dist/components/NumberInput/StepperButton.svelte.d.ts +10 -0
  89. package/dist/components/NumberInput/StepperButton.svelte.d.ts.map +1 -0
  90. package/dist/components/NumberInput/context.d.ts +48 -0
  91. package/dist/components/NumberInput/context.d.ts.map +1 -0
  92. package/dist/components/NumberInput/context.js +8 -0
  93. package/dist/components/NumberInput/index.d.ts +6 -0
  94. package/dist/components/NumberInput/index.d.ts.map +1 -0
  95. package/dist/components/NumberInput/index.js +5 -0
  96. package/dist/components/NumberInput/types.d.ts +104 -0
  97. package/dist/components/NumberInput/types.d.ts.map +1 -0
  98. package/dist/components/NumberInput/types.js +1 -0
  99. package/dist/components/Piano/Root.svelte +177 -0
  100. package/dist/components/Piano/Root.svelte.d.ts +10 -0
  101. package/dist/components/Piano/Root.svelte.d.ts.map +1 -0
  102. package/dist/components/Piano/index.d.ts +2 -0
  103. package/dist/components/Piano/index.d.ts.map +1 -0
  104. package/dist/components/Piano/index.js +1 -0
  105. package/dist/components/Piano/types.d.ts +90 -0
  106. package/dist/components/Piano/types.d.ts.map +1 -0
  107. package/dist/components/Piano/types.js +1 -0
  108. package/dist/components/PointsEditor/Background.svelte +14 -0
  109. package/dist/components/PointsEditor/Background.svelte.d.ts +9 -0
  110. package/dist/components/PointsEditor/Background.svelte.d.ts.map +1 -0
  111. package/dist/components/PointsEditor/Container.svelte +82 -0
  112. package/dist/components/PointsEditor/Container.svelte.d.ts +10 -0
  113. package/dist/components/PointsEditor/Container.svelte.d.ts.map +1 -0
  114. package/dist/components/PointsEditor/Point.svelte +213 -0
  115. package/dist/components/PointsEditor/Point.svelte.d.ts +7 -0
  116. package/dist/components/PointsEditor/Point.svelte.d.ts.map +1 -0
  117. package/dist/components/PointsEditor/Root.svelte +107 -0
  118. package/dist/components/PointsEditor/Root.svelte.d.ts +7 -0
  119. package/dist/components/PointsEditor/Root.svelte.d.ts.map +1 -0
  120. package/dist/components/PointsEditor/SelectionBox.svelte +32 -0
  121. package/dist/components/PointsEditor/SelectionBox.svelte.d.ts +9 -0
  122. package/dist/components/PointsEditor/SelectionBox.svelte.d.ts.map +1 -0
  123. package/dist/components/PointsEditor/context.d.ts +28 -0
  124. package/dist/components/PointsEditor/context.d.ts.map +1 -0
  125. package/dist/components/PointsEditor/context.js +5 -0
  126. package/dist/components/PointsEditor/index.d.ts +6 -0
  127. package/dist/components/PointsEditor/index.d.ts.map +1 -0
  128. package/dist/components/PointsEditor/index.js +5 -0
  129. package/dist/components/PointsEditor/types.d.ts +84 -0
  130. package/dist/components/PointsEditor/types.d.ts.map +1 -0
  131. package/dist/components/PointsEditor/types.js +1 -0
  132. package/dist/components/Slider/Marks.svelte +42 -0
  133. package/dist/components/Slider/Marks.svelte.d.ts +7 -0
  134. package/dist/components/Slider/Marks.svelte.d.ts.map +1 -0
  135. package/dist/components/Slider/MarksOption.svelte +63 -0
  136. package/dist/components/Slider/MarksOption.svelte.d.ts +7 -0
  137. package/dist/components/Slider/MarksOption.svelte.d.ts.map +1 -0
  138. package/dist/components/Slider/Root.svelte +217 -0
  139. package/dist/components/Slider/Root.svelte.d.ts +10 -0
  140. package/dist/components/Slider/Root.svelte.d.ts.map +1 -0
  141. package/dist/components/Slider/Thumb.svelte +84 -0
  142. package/dist/components/Slider/Thumb.svelte.d.ts +10 -0
  143. package/dist/components/Slider/Thumb.svelte.d.ts.map +1 -0
  144. package/dist/components/Slider/Track.svelte +51 -0
  145. package/dist/components/Slider/Track.svelte.d.ts +7 -0
  146. package/dist/components/Slider/Track.svelte.d.ts.map +1 -0
  147. package/dist/components/Slider/context.d.ts +28 -0
  148. package/dist/components/Slider/context.d.ts.map +1 -0
  149. package/dist/components/Slider/context.js +5 -0
  150. package/dist/components/Slider/index.d.ts +6 -0
  151. package/dist/components/Slider/index.d.ts.map +1 -0
  152. package/dist/components/Slider/index.js +5 -0
  153. package/dist/components/Slider/types.d.ts +138 -0
  154. package/dist/components/Slider/types.d.ts.map +1 -0
  155. package/dist/components/Slider/types.js +1 -0
  156. package/dist/components/XYPad/Area.svelte +29 -0
  157. package/dist/components/XYPad/Area.svelte.d.ts +10 -0
  158. package/dist/components/XYPad/Area.svelte.d.ts.map +1 -0
  159. package/dist/components/XYPad/Root.svelte +238 -0
  160. package/dist/components/XYPad/Root.svelte.d.ts +10 -0
  161. package/dist/components/XYPad/Root.svelte.d.ts.map +1 -0
  162. package/dist/components/XYPad/Thumb.svelte +109 -0
  163. package/dist/components/XYPad/Thumb.svelte.d.ts +10 -0
  164. package/dist/components/XYPad/Thumb.svelte.d.ts.map +1 -0
  165. package/dist/components/XYPad/context.d.ts +25 -0
  166. package/dist/components/XYPad/context.d.ts.map +1 -0
  167. package/dist/components/XYPad/context.js +5 -0
  168. package/dist/components/XYPad/index.d.ts +4 -0
  169. package/dist/components/XYPad/index.d.ts.map +1 -0
  170. package/dist/components/XYPad/index.js +3 -0
  171. package/dist/components/XYPad/types.d.ts +80 -0
  172. package/dist/components/XYPad/types.d.ts.map +1 -0
  173. package/dist/components/XYPad/types.js +1 -0
  174. package/dist/components/_util/VisuallyHiddenRangeInput.svelte +17 -0
  175. package/dist/components/_util/VisuallyHiddenRangeInput.svelte.d.ts +8 -0
  176. package/dist/components/_util/VisuallyHiddenRangeInput.svelte.d.ts.map +1 -0
  177. package/dist/components/_util/check-steps.svelte.d.ts +10 -0
  178. package/dist/components/_util/check-steps.svelte.d.ts.map +1 -0
  179. package/dist/components/_util/check-steps.svelte.js +17 -0
  180. package/dist/components/_util/placement.d.ts +15 -0
  181. package/dist/components/_util/placement.d.ts.map +1 -0
  182. package/dist/components/_util/placement.js +30 -0
  183. package/dist/components/_util/style.d.ts +5 -0
  184. package/dist/components/_util/style.d.ts.map +1 -0
  185. package/dist/components/_util/style.js +9 -0
  186. package/dist/hooks/useMIDIAccess.svelte.d.ts +29 -0
  187. package/dist/hooks/useMIDIAccess.svelte.d.ts.map +1 -0
  188. package/dist/hooks/useMIDIAccess.svelte.js +62 -0
  189. package/dist/hooks/useMIDIInput.svelte.d.ts +18 -0
  190. package/dist/hooks/useMIDIInput.svelte.d.ts.map +1 -0
  191. package/dist/hooks/useMIDIInput.svelte.js +31 -0
  192. package/dist/hooks/useMIDIMessage.svelte.d.ts +9 -0
  193. package/dist/hooks/useMIDIMessage.svelte.d.ts.map +1 -0
  194. package/dist/hooks/useMIDIMessage.svelte.js +23 -0
  195. package/dist/index.d.ts +33 -0
  196. package/dist/index.d.ts.map +1 -0
  197. package/dist/index.js +26 -0
  198. package/package.json +72 -0
@@ -0,0 +1,29 @@
1
+ import { type MIDIAccessOptions } from '@tremolo-ui/dom';
2
+ /**
3
+ * Request MIDI access in the browser. Call it while a component is being
4
+ * initialised: the access is created when the component mounts and let go
5
+ * when it is destroyed.
6
+ *
7
+ * The returned object is reactive: `midiAccess`, `error` and `inputs` update
8
+ * as access is granted and devices come and go.
9
+ *
10
+ * @param requestOnMount ask for access as soon as the component mounts. Leave
11
+ * it off to ask from a click instead, so that opening a page does not bring
12
+ * up a permission prompt. Pass a getter to ask once it turns true later.
13
+ *
14
+ * @example
15
+ * const midi = useMIDIAccess(false)
16
+ * // <button onclick={() => midi.request()}>Connect</button>
17
+ * // {#each midi.inputs as input}{input.name}{/each}
18
+ */
19
+ export declare function useMIDIAccess(requestOnMount?: boolean | (() => boolean)): {
20
+ readonly midiAccess: MIDIAccess | null;
21
+ readonly error: import("@tremolo-ui/dom").MIDIAccessError | null;
22
+ readonly inputs: readonly MIDIInput[];
23
+ /**
24
+ * Ask for access. Takes `{ sysex: true }` when the app needs system
25
+ * exclusive messages, which browsers treat as a separate permission.
26
+ */
27
+ request: (options?: MIDIAccessOptions) => void | undefined;
28
+ };
29
+ //# sourceMappingURL=useMIDIAccess.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMIDIAccess.svelte.d.ts","sourceRoot":"","sources":["../../src/hooks/useMIDIAccess.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AAQxB;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAC3B,cAAc,GAAE,OAAO,GAAG,CAAC,MAAM,OAAO,CAAQ;;;;IAoC9C;;;OAGG;wBACiB,iBAAiB;EAExC"}
@@ -0,0 +1,62 @@
1
+ import { createMIDIAccess, } from '@tremolo-ui/dom';
2
+ const INITIAL_STATE = {
3
+ midiAccess: null,
4
+ error: null,
5
+ inputs: [],
6
+ };
7
+ /**
8
+ * Request MIDI access in the browser. Call it while a component is being
9
+ * initialised: the access is created when the component mounts and let go
10
+ * when it is destroyed.
11
+ *
12
+ * The returned object is reactive: `midiAccess`, `error` and `inputs` update
13
+ * as access is granted and devices come and go.
14
+ *
15
+ * @param requestOnMount ask for access as soon as the component mounts. Leave
16
+ * it off to ask from a click instead, so that opening a page does not bring
17
+ * up a permission prompt. Pass a getter to ask once it turns true later.
18
+ *
19
+ * @example
20
+ * const midi = useMIDIAccess(false)
21
+ * // <button onclick={() => midi.request()}>Connect</button>
22
+ * // {#each midi.inputs as input}{input.name}{/each}
23
+ */
24
+ export function useMIDIAccess(requestOnMount = true) {
25
+ let state = $state.raw(INITIAL_STATE);
26
+ let instance = null;
27
+ $effect(() => {
28
+ const current = createMIDIAccess();
29
+ instance = current;
30
+ state = current.getState();
31
+ const unsubscribe = current.subscribe(() => {
32
+ state = current.getState();
33
+ });
34
+ return () => {
35
+ unsubscribe();
36
+ current.destroy();
37
+ instance = null;
38
+ state = INITIAL_STATE;
39
+ };
40
+ });
41
+ $effect(() => {
42
+ const request = typeof requestOnMount === 'function' ? requestOnMount() : requestOnMount;
43
+ if (request)
44
+ instance === null || instance === void 0 ? void 0 : instance.request();
45
+ });
46
+ return {
47
+ get midiAccess() {
48
+ return state.midiAccess;
49
+ },
50
+ get error() {
51
+ return state.error;
52
+ },
53
+ get inputs() {
54
+ return state.inputs;
55
+ },
56
+ /**
57
+ * Ask for access. Takes `{ sysex: true }` when the app needs system
58
+ * exclusive messages, which browsers treat as a separate permission.
59
+ */
60
+ request: (options) => instance === null || instance === void 0 ? void 0 : instance.request(options),
61
+ };
62
+ }
@@ -0,0 +1,18 @@
1
+ import { type MIDIInputHandlers } from '@tremolo-ui/dom';
2
+ /**
3
+ * Handle the channel voice messages of every connected input. Call it while
4
+ * a component is being initialised. See `createMIDIInput` in
5
+ * `@tremolo-ui/dom` for the handlers.
6
+ *
7
+ * Both arguments are functions, so that the access and the handlers are read
8
+ * reactively: the listeners follow the access as it is granted, and new
9
+ * handlers replace the old ones without re-subscribing.
10
+ *
11
+ * @example
12
+ * const midi = useMIDIAccess()
13
+ * useMIDIInput(() => midi.midiAccess, () => ({
14
+ * onNoteOnEvent: (note, velocity) => play(note, velocity / 127),
15
+ * }))
16
+ */
17
+ export declare function useMIDIInput(midiAccess: () => MIDIAccess | null, handlers: () => MIDIInputHandlers): void;
18
+ //# sourceMappingURL=useMIDIInput.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMIDIInput.svelte.d.ts","sourceRoot":"","sources":["../../src/hooks/useMIDIInput.svelte.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,iBAAiB,CAAA;AAExB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,UAAU,GAAG,IAAI,EACnC,QAAQ,EAAE,MAAM,iBAAiB,QAgBlC"}
@@ -0,0 +1,31 @@
1
+ import { untrack } from 'svelte';
2
+ import { createMIDIInput, } from '@tremolo-ui/dom';
3
+ /**
4
+ * Handle the channel voice messages of every connected input. Call it while
5
+ * a component is being initialised. See `createMIDIInput` in
6
+ * `@tremolo-ui/dom` for the handlers.
7
+ *
8
+ * Both arguments are functions, so that the access and the handlers are read
9
+ * reactively: the listeners follow the access as it is granted, and new
10
+ * handlers replace the old ones without re-subscribing.
11
+ *
12
+ * @example
13
+ * const midi = useMIDIAccess()
14
+ * useMIDIInput(() => midi.midiAccess, () => ({
15
+ * onNoteOnEvent: (note, velocity) => play(note, velocity / 127),
16
+ * }))
17
+ */
18
+ export function useMIDIInput(midiAccess, handlers) {
19
+ let instance = null;
20
+ $effect(() => {
21
+ const current = createMIDIInput(midiAccess(), untrack(handlers));
22
+ instance = current;
23
+ return () => {
24
+ current.destroy();
25
+ instance = null;
26
+ };
27
+ });
28
+ $effect(() => {
29
+ instance === null || instance === void 0 ? void 0 : instance.update(handlers());
30
+ });
31
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Listen to raw `midimessage` events on every input. Call it while a
3
+ * component is being initialised. For note and controller events,
4
+ * `useMIDIInput` decodes the message for you.
5
+ *
6
+ * Both arguments are functions, read reactively as in `useMIDIInput`.
7
+ */
8
+ export declare function useMIDIMessage(midiAccess: () => MIDIAccess | null, onMIDIMessage: () => (event: MIDIMessageEvent) => void): void;
9
+ //# sourceMappingURL=useMIDIMessage.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMIDIMessage.svelte.d.ts","sourceRoot":"","sources":["../../src/hooks/useMIDIMessage.svelte.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,UAAU,GAAG,IAAI,EACnC,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,QAgBvD"}
@@ -0,0 +1,23 @@
1
+ import { untrack } from 'svelte';
2
+ import { createMIDIMessage } from '@tremolo-ui/dom';
3
+ /**
4
+ * Listen to raw `midimessage` events on every input. Call it while a
5
+ * component is being initialised. For note and controller events,
6
+ * `useMIDIInput` decodes the message for you.
7
+ *
8
+ * Both arguments are functions, read reactively as in `useMIDIInput`.
9
+ */
10
+ export function useMIDIMessage(midiAccess, onMIDIMessage) {
11
+ let instance = null;
12
+ $effect(() => {
13
+ const current = createMIDIMessage(midiAccess(), untrack(onMIDIMessage));
14
+ instance = current;
15
+ return () => {
16
+ current.destroy();
17
+ instance = null;
18
+ };
19
+ });
20
+ $effect(() => {
21
+ instance === null || instance === void 0 ? void 0 : instance.update(onMIDIMessage());
22
+ });
23
+ }
@@ -0,0 +1,33 @@
1
+ export { drag } from './actions/drag.js';
2
+ export { dragValue } from './actions/drag-value.js';
3
+ export { dropZone } from './actions/drop-zone.js';
4
+ export { longPress } from './actions/long-press.js';
5
+ export { wheel, type WheelActionOptions } from './actions/wheel.js';
6
+ export { default as AnimationCanvas } from './components/AnimationCanvas/AnimationCanvas.svelte';
7
+ export type { AnimationCanvasProps, DrawFunction, InitFunction, } from './components/AnimationCanvas/types.js';
8
+ export * as DropZone from './components/DropZone/index.js';
9
+ export type { DropZoneProps } from './components/DropZone/types.js';
10
+ export * as FileInput from './components/FileInput/index.js';
11
+ export { useFileInputContext, type FileInputContextValue, } from './components/FileInput/context.js';
12
+ export type { FileInputProps } from './components/FileInput/types.js';
13
+ export * as Knob from './components/Knob/index.js';
14
+ export { useKnobContext, type KnobContextValue, } from './components/Knob/context.js';
15
+ export type { KnobProps, KnobThumbProps } from './components/Knob/types.js';
16
+ export * as NumberInput from './components/NumberInput/index.js';
17
+ export { useNumberInputContext, type NumberInputContextValue, } from './components/NumberInput/context.js';
18
+ export type { NumberInputProps } from './components/NumberInput/types.js';
19
+ export * as Piano from './components/Piano/index.js';
20
+ export type { KeyAttributes, KeyState, PianoProps, } from './components/Piano/types.js';
21
+ export * as PointsEditor from './components/PointsEditor/index.js';
22
+ export { usePointsEditorContext, type PointsEditorContextValue, } from './components/PointsEditor/context.js';
23
+ export type { PointsEditorPointProps, PointsEditorProps, } from './components/PointsEditor/types.js';
24
+ export * as Slider from './components/Slider/index.js';
25
+ export { useSliderContext, type SliderContextValue, } from './components/Slider/context.js';
26
+ export type { SliderMarksOptionProps, SliderMarksProps, SliderProps, SliderThumbProps, SliderTrackProps, } from './components/Slider/types.js';
27
+ export * as XYPad from './components/XYPad/index.js';
28
+ export { useXYPadContext, type XYPadContextValue, } from './components/XYPad/context.js';
29
+ export type { XYPadProps, XYPadThumbProps } from './components/XYPad/types.js';
30
+ export { useMIDIAccess } from './hooks/useMIDIAccess.svelte.js';
31
+ export { useMIDIInput } from './hooks/useMIDIInput.svelte.js';
32
+ export { useMIDIMessage } from './hooks/useMIDIMessage.svelte.js';
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAGnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,qDAAqD,CAAA;AAChG,YAAY,EACV,oBAAoB,EACpB,YAAY,EACZ,YAAY,GACb,MAAM,uCAAuC,CAAA;AAC9C,OAAO,KAAK,QAAQ,MAAM,gCAAgC,CAAA;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AACnE,OAAO,KAAK,SAAS,MAAM,iCAAiC,CAAA;AAC5D,OAAO,EACL,mBAAmB,EACnB,KAAK,qBAAqB,GAC3B,MAAM,mCAAmC,CAAA;AAC1C,YAAY,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AACrE,OAAO,KAAK,IAAI,MAAM,4BAA4B,CAAA;AAClD,OAAO,EACL,cAAc,EACd,KAAK,gBAAgB,GACtB,MAAM,8BAA8B,CAAA;AACrC,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,KAAK,WAAW,MAAM,mCAAmC,CAAA;AAChE,OAAO,EACL,qBAAqB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,qCAAqC,CAAA;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAA;AACzE,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,YAAY,EACV,aAAa,EACb,QAAQ,EACR,UAAU,GACX,MAAM,6BAA6B,CAAA;AACpC,OAAO,KAAK,YAAY,MAAM,oCAAoC,CAAA;AAClE,OAAO,EACL,sBAAsB,EACtB,KAAK,wBAAwB,GAC9B,MAAM,sCAAsC,CAAA;AAC7C,YAAY,EACV,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,8BAA8B,CAAA;AACtD,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,GACxB,MAAM,gCAAgC,CAAA;AACvC,YAAY,EACV,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,8BAA8B,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,6BAA6B,CAAA;AACpD,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,GACvB,MAAM,+BAA+B,CAAA;AACtC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAG9E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAA;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ // actions
2
+ export { drag } from './actions/drag.js';
3
+ export { dragValue } from './actions/drag-value.js';
4
+ export { dropZone } from './actions/drop-zone.js';
5
+ export { longPress } from './actions/long-press.js';
6
+ export { wheel } from './actions/wheel.js';
7
+ // components
8
+ export { default as AnimationCanvas } from './components/AnimationCanvas/AnimationCanvas.svelte';
9
+ export * as DropZone from './components/DropZone/index.js';
10
+ export * as FileInput from './components/FileInput/index.js';
11
+ export { useFileInputContext, } from './components/FileInput/context.js';
12
+ export * as Knob from './components/Knob/index.js';
13
+ export { useKnobContext, } from './components/Knob/context.js';
14
+ export * as NumberInput from './components/NumberInput/index.js';
15
+ export { useNumberInputContext, } from './components/NumberInput/context.js';
16
+ export * as Piano from './components/Piano/index.js';
17
+ export * as PointsEditor from './components/PointsEditor/index.js';
18
+ export { usePointsEditorContext, } from './components/PointsEditor/context.js';
19
+ export * as Slider from './components/Slider/index.js';
20
+ export { useSliderContext, } from './components/Slider/context.js';
21
+ export * as XYPad from './components/XYPad/index.js';
22
+ export { useXYPadContext, } from './components/XYPad/context.js';
23
+ // hooks
24
+ export { useMIDIAccess } from './hooks/useMIDIAccess.svelte.js';
25
+ export { useMIDIInput } from './hooks/useMIDIInput.svelte.js';
26
+ export { useMIDIMessage } from './hooks/useMIDIMessage.svelte.js';
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@tremolo-ui/svelte",
3
+ "version": "0.7.0",
4
+ "description": "Svelte component library for audio app",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "svelte": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "scripts": {
10
+ "sb": "storybook dev",
11
+ "build:sb": "storybook build -o storybook-static/i/storybook-svelte && cp .storybook/_headers storybook-static/_headers",
12
+ "typecheck": "svelte-check --tsconfig ./tsconfig.json && svelte-check --workspace ../../site/examples/svelte --tsconfig ./tsconfig.json",
13
+ "test": "vitest run",
14
+ "test:watch": "vitest",
15
+ "build:package": "npm run typecheck && svelte-package -i src -o dist",
16
+ "clean": "npm run clean:build && npm run clean:sb",
17
+ "clean:build": "rimraf ./dist",
18
+ "clean:sb": "rimraf ./storybook-static"
19
+ },
20
+ "devDependencies": {
21
+ "@storybook/addon-a11y": "10.6.0",
22
+ "@storybook/addon-docs": "10.6.0",
23
+ "@storybook/addon-svelte-csf": "5.1.3",
24
+ "@storybook/svelte-vite": "10.6.0",
25
+ "@sveltejs/package": "2.5.8",
26
+ "@sveltejs/vite-plugin-svelte": "7.3.0",
27
+ "@testing-library/jest-dom": "7.0.1",
28
+ "@testing-library/svelte": "5.4.2",
29
+ "svelte": "5.57.1",
30
+ "storybook": "10.6.0",
31
+ "svelte-check": "4.7.6"
32
+ },
33
+ "peerDependencies": {
34
+ "svelte": "^5.40.0"
35
+ },
36
+ "dependencies": {
37
+ "@tremolo-ui/dom": "^0.7.0",
38
+ "@tremolo-ui/functions": "^0.7.0",
39
+ "esm-env": "^1.2.2"
40
+ },
41
+ "files": [
42
+ "dist"
43
+ ],
44
+ "publishConfig": {
45
+ "access": "public"
46
+ },
47
+ "author": {
48
+ "name": "mimoz",
49
+ "email": "contact.m1m0zzz@gmail.com"
50
+ },
51
+ "license": "MIT",
52
+ "homepage": "https://github.com/m1m0zzz/tremolo-ui",
53
+ "repository": {
54
+ "type": "git",
55
+ "url": "git+https://github.com/m1m0zzz/tremolo-ui.git",
56
+ "directory": "packages/svelte"
57
+ },
58
+ "keywords": [
59
+ "svelte",
60
+ "svelte-components",
61
+ "ui",
62
+ "components",
63
+ "web-audio"
64
+ ],
65
+ "exports": {
66
+ ".": {
67
+ "types": "./dist/index.d.ts",
68
+ "svelte": "./dist/index.js",
69
+ "default": "./dist/index.js"
70
+ }
71
+ }
72
+ }