@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.css CHANGED
@@ -1,28 +1,47 @@
1
- .tremolo-no-select {
1
+ .tremolo-user-select-none {
2
2
  user-select: none;
3
3
  }
4
4
 
5
+ .tremolo-cursor-pointer {
6
+ cursor: pointer;
7
+ }
8
+
9
+ .tremolo-cursor-move {
10
+ cursor: move;
11
+ }
12
+
13
+ .tremolo-cursor-grabbing {
14
+ cursor: grabbing;
15
+ }
16
+
17
+ .tremolo-cursor-none {
18
+ cursor: none;
19
+ }
5
20
  .tremolo-knob {
21
+ cursor: grab;
22
+ outline: 0;
6
23
  display: inline-block;
7
- cursor: pointer;
8
24
  overflow: visible;
9
- outline: 0;
10
25
 
11
- &[aria-readonly='true'] {
26
+ &[aria-readonly="true"] {
12
27
  cursor: not-allowed;
13
28
  }
29
+
30
+ &[data-dragging="true"] {
31
+ cursor: inherit;
32
+ }
14
33
  }
15
34
 
16
35
  .tremolo-knob-active-line {
36
+ color: oklch(69.2% .17548 266.373);
17
37
  overflow: visible;
18
- color: oklch(69.2% 0.17548 266.373);
19
38
 
20
39
  :where(.tremolo-knob:focus, .tremolo-knob:hover) & {
21
- color: oklch(59.5% 0.17548 266.373);
40
+ color: oklch(59.5% .17548 266.373);
22
41
  }
23
42
 
24
- :where(.tremolo-knob[aria-disabled='true']) & {
25
- color: oklch(50.5% 0.03307 270.021);
43
+ :where(.tremolo-knob[aria-disabled="true"]) & {
44
+ color: oklch(50.5% .03307 270.021);
26
45
  }
27
46
  }
28
47
 
@@ -46,16 +65,16 @@
46
65
  color: oklch(94.2% 0 0);
47
66
  }
48
67
 
49
- :where(.dark, [data-theme='dark']) {
50
- .tremolo-knob-active-line {
51
- color: oklch(59.5% 0.17548 266.373);
68
+ :where(.dark, [data-theme="dark"]) {
69
+ & .tremolo-knob-active-line {
70
+ color: oklch(59.5% .17548 266.373);
52
71
 
53
72
  :where(.tremolo-knob:focus, .tremolo-knob:hover) & {
54
- color: oklch(65.2% 0.17548 266.373);
73
+ color: oklch(65.2% .17548 266.373);
55
74
  }
56
75
  }
57
76
 
58
- .tremolo-knob-inactive-line {
77
+ & .tremolo-knob-inactive-line {
59
78
  color: oklch(41.7% 0 0);
60
79
 
61
80
  :where(.tremolo-knob:focus, .tremolo-knob:hover) & {
@@ -63,7 +82,7 @@
63
82
  }
64
83
  }
65
84
 
66
- .tremolo-knob-thumb {
85
+ & .tremolo-knob-thumb {
67
86
  color: oklch(48.6% 0 0);
68
87
 
69
88
  :where(.tremolo-knob:focus, .tremolo-knob:hover) & {
@@ -71,35 +90,33 @@
71
90
  }
72
91
  }
73
92
 
74
- .tremolo-knob-thumb-line {
93
+ & .tremolo-knob-thumb-line {
75
94
  color: oklch(84.2% 0 0);
76
95
  }
77
96
  }
78
-
79
97
  .tremolo-number-input-wrapper {
80
98
  --border-radius: 4px;
81
99
  --stepper-width: 20px;
82
- --active-color: oklch(59.5% 0.17548 266.373);
100
+ --active-color: oklch(59.5% .17548 266.373);
83
101
  --border-color: oklch(81% 0 0);
84
-
85
- display: inline-flex;
86
- flex-direction: row;
87
- position: relative;
88
- width: 140px;
89
- height: min-content;
90
102
  border-style: solid;
91
103
  border-color: var(--border-color);
92
- border-width: 0px;
104
+ border-width: 0;
93
105
  outline: none;
94
- transition: all 0.1s;
106
+ flex-direction: row;
107
+ width: 140px;
108
+ height: min-content;
109
+ transition: all .1s;
110
+ display: inline-flex;
111
+ position: relative;
95
112
 
96
- &:not(:focus-within):has(> .tremolo-number-input[data-error='true']) {
97
- border-color: oklch(64.245% 0.21266 25.499);
113
+ &:not(:focus-within):has( > .tremolo-number-input[data-error="true"]) {
114
+ border-color: oklch(64.245% .21266 25.499);
98
115
  }
99
116
 
100
- &[data-variant='outline'] {
101
- border-width: 1px;
117
+ &[data-variant="outline"] {
102
118
  border-radius: var(--border-radius);
119
+ border-width: 1px;
103
120
 
104
121
  &:hover {
105
122
  --border-color: oklch(65.335% 0 0);
@@ -112,12 +129,12 @@
112
129
  }
113
130
  }
114
131
 
115
- &[data-variant='filled'] {
132
+ &[data-variant="filled"] {
116
133
  --bg: oklch(95.88% 0 0);
117
- border-width: 1px;
118
134
  border-radius: var(--border-radius);
119
- border-color: transparent;
120
135
  background-color: var(--bg);
136
+ border-width: 1px;
137
+ border-color: #0000;
121
138
 
122
139
  &:hover {
123
140
  --bg: oklch(93.166% 0 0);
@@ -131,7 +148,7 @@
131
148
  }
132
149
  }
133
150
 
134
- &[data-variant='flushed'] {
151
+ &[data-variant="flushed"] {
135
152
  border-bottom-width: 1px;
136
153
 
137
154
  &:hover {
@@ -145,114 +162,97 @@
145
162
  }
146
163
  }
147
164
 
148
- &[data-stepper='false'] {
165
+ &[data-stepper="false"] {
149
166
  --stepper-width: 0px;
150
167
  }
151
168
  }
152
169
 
153
170
  .tremolo-number-input {
154
- display: block;
155
171
  color: inherit;
156
172
  width: calc(100% - 20px - var(--stepper-width));
157
173
  background-color: inherit;
158
174
  font: inherit;
159
- padding: 6px 10px;
160
-
161
- margin: 0;
175
+ appearance: none;
162
176
  border: none;
163
177
  outline: none;
164
- appearance: none;
178
+ margin: 0;
179
+ padding: 6px 10px;
180
+ display: block;
165
181
 
166
- &[aria-readonly='true'] {
182
+ &[aria-readonly="true"] {
167
183
  cursor: not-allowed;
168
184
  }
169
185
  }
170
186
 
171
187
  .tremolo-number-input-stepper {
172
- display: flex;
173
- flex-direction: column;
174
188
  height: 100%;
189
+ width: var(--stepper-width);
190
+ flex-direction: column;
191
+ transition: all .1s linear;
192
+ display: flex;
175
193
  position: absolute;
176
194
  top: 0;
177
195
  right: 0;
178
- width: var(--stepper-width);
179
- transition: all 0.1s linear;
180
196
 
181
- &[data-dynamic='true'] {
197
+ &[data-dynamic="true"] {
182
198
  opacity: 0;
183
199
  transform: translateX(40%);
184
200
  }
185
201
  }
186
202
 
187
- :is(
188
- .tremolo-number-input-wrapper:hover,
189
- .tremolo-number-input-wrapper:focus-within
190
- )
191
- .tremolo-number-input-stepper {
203
+ :is(.tremolo-number-input-wrapper:hover, .tremolo-number-input-wrapper:focus-within) .tremolo-number-input-stepper {
192
204
  opacity: 1;
193
205
  transform: translateX(0);
194
206
  }
195
207
 
196
208
  .tremolo-number-input-increment-stepper {
197
- border-inline-start-width: 1px;
198
- border-inline-start-style: solid;
199
- border-inline-start-color: oklch(84.522% 0 0);
200
- font-size: calc(0.75rem);
201
- display: flex;
202
- justify-content: center;
203
- align-items: center;
204
- flex: 1 1 0%;
205
- max-height: 50%;
206
209
  user-select: none;
207
210
  cursor: pointer;
208
211
  border-top-right-radius: var(--border-radius);
212
+ border-inline-start: 1px solid oklch(84.522% 0 0);
213
+ flex: 1;
214
+ justify-content: center;
215
+ align-items: center;
216
+ max-height: 50%;
217
+ font-size: .75rem;
218
+ display: flex;
209
219
 
210
- &[aria-disabled='false']:active {
211
- background-color: oklch(37.798% 0.03812 254.612 / 0.055);
212
- }
213
-
214
- &[aria-disabled='true'] {
215
- cursor: not-allowed;
220
+ &[aria-disabled="false"]:active {
221
+ background-color: oklch(37.798% .03812 254.612 / .055);
216
222
  }
217
223
 
218
- &[aria-readonly='true'] {
224
+ &[aria-disabled="true"], &[aria-readonly="true"] {
219
225
  cursor: not-allowed;
220
226
  }
221
227
  }
222
228
 
223
229
  .tremolo-number-input-decrement-stepper {
224
- border-inline-start-width: 1px;
225
- border-inline-start-style: solid;
226
- border-inline-start-color: oklch(84.522% 0 0);
230
+ border-inline-start: 1px solid oklch(84.522% 0 0);
231
+ user-select: none;
232
+ cursor: pointer;
233
+ border-bottom-right-radius: var(--border-radius);
227
234
  border-top: 1px solid oklch(84.522% 0 0);
228
- font-size: calc(0.75rem);
229
- display: flex;
235
+ flex: 1;
230
236
  justify-content: center;
231
237
  align-items: center;
232
- flex: 1 1 0%;
233
238
  max-height: 50%;
234
- user-select: none;
235
- cursor: pointer;
236
- border-bottom-right-radius: var(--border-radius);
237
-
238
- &[aria-disabled='false']:active {
239
- background-color: oklch(37.798% 0.03812 254.612 / 0.055);
240
- }
239
+ font-size: .75rem;
240
+ display: flex;
241
241
 
242
- &[aria-disabled='true'] {
243
- cursor: not-allowed;
242
+ &[aria-disabled="false"]:active {
243
+ background-color: oklch(37.798% .03812 254.612 / .055);
244
244
  }
245
245
 
246
- &[aria-readonly='true'] {
246
+ &[aria-disabled="true"], &[aria-readonly="true"] {
247
247
  cursor: not-allowed;
248
248
  }
249
249
  }
250
250
 
251
- :where(.dark, [data-theme='dark']) {
252
- .tremolo-number-input-wrapper {
251
+ :where(.dark, [data-theme="dark"]) {
252
+ & .tremolo-number-input-wrapper {
253
253
  --border-color: oklch(52% 0 0);
254
254
 
255
- &[data-variant='filled'] {
255
+ &[data-variant="filled"] {
256
256
  --bg: oklch(43.5% 0 0);
257
257
 
258
258
  &:hover {
@@ -261,12 +261,11 @@
261
261
  }
262
262
  }
263
263
  }
264
-
265
264
  .tremolo-piano {
266
- display: inline-block;
267
265
  box-sizing: border-box;
268
266
  user-select: none;
269
267
  touch-action: none;
268
+ display: inline-block;
270
269
  position: relative;
271
270
  }
272
271
 
@@ -275,23 +274,22 @@
275
274
  --color: oklch(0% 0 0);
276
275
  --active-bg: oklch(92% 0 0);
277
276
  --active-color: oklch(0% 0 0);
278
-
279
277
  box-sizing: border-box;
280
- position: absolute;
281
278
  background-color: var(--bg);
282
279
  -webkit-tap-highlight-color: transparent;
283
280
  color: var(--color);
284
- border: 1px solid #555;
285
- border-radius: 0px 0px 8px 8px;
286
281
  cursor: pointer;
287
282
  z-index: 1;
283
+ border: 1px solid #555;
284
+ border-radius: 0 0 8px 8px;
285
+ position: absolute;
288
286
 
289
- &[data-active='true'] {
287
+ &[data-active="true"] {
290
288
  background-color: var(--active-bg);
291
289
  color: var(--active-color);
292
290
  }
293
291
 
294
- &[aria-disabled='true'] {
292
+ &[aria-disabled="true"] {
295
293
  cursor: not-allowed;
296
294
  }
297
295
  }
@@ -301,114 +299,139 @@
301
299
  --bg: oklch(32% 0 0);
302
300
  --active-color: oklch(100% 0 0);
303
301
  --active-bg: oklch(44% 0 0);
304
-
305
302
  box-sizing: border-box;
306
- position: absolute;
307
303
  background-color: var(--bg);
308
304
  -webkit-tap-highlight-color: transparent;
309
305
  color: var(--color);
310
- border: 1px solid #555;
311
- border-radius: 0px 0px 8px 8px;
312
306
  cursor: pointer;
313
307
  z-index: 2;
308
+ border: 1px solid #555;
309
+ border-radius: 0 0 8px 8px;
310
+ position: absolute;
314
311
 
315
- &[data-active='true'] {
312
+ &[data-active="true"] {
316
313
  background-color: var(--active-bg);
317
314
  color: var(--active-color);
318
315
  }
319
316
 
320
- &[aria-disabled='true'] {
317
+ &[aria-disabled="true"] {
321
318
  cursor: not-allowed;
322
319
  }
323
320
  }
324
321
 
325
322
  .tremolo-piano-key-label-wrapper {
326
- display: flex;
327
323
  justify-content: center;
328
324
  align-items: end;
329
325
  height: 100%;
326
+ display: flex;
330
327
  }
331
328
 
332
329
  .tremolo-piano-key-label {
333
330
  box-sizing: content-box;
334
- display: flex;
331
+ aspect-ratio: 1;
332
+ border: 1px solid #888;
333
+ border-radius: 4px;
335
334
  justify-content: center;
336
335
  align-items: center;
337
- font-size: 0.6rem;
336
+ max-width: calc(100% - 16px);
338
337
  height: 10px;
339
338
  margin-bottom: 10px;
340
339
  padding: 4px;
341
- border-radius: 4px;
342
- border: 1px solid #888;
343
- aspect-ratio: 1;
344
- max-width: calc(100% - 16px);
340
+ font-size: .6rem;
341
+ display: flex;
345
342
  }
346
343
 
347
- :where(.dark, [data-theme='dark']) {
348
- .tremolo-piano-white-key {
344
+ :where(.dark, [data-theme="dark"]) {
345
+ & .tremolo-piano-white-key {
349
346
  --bg: oklch(80% 0 0);
350
347
  --color: oklch(0% 0 0);
351
348
  --active-bg: oklch(72% 0 0);
352
349
  --active-color: oklch(0% 0 0);
353
350
  }
354
351
  }
352
+ .tremolo-points-editor {
353
+ position: relative;
354
+ }
355
+
356
+ .tremolo-points-editor-background {
357
+ z-index: 0;
358
+ position: absolute;
359
+ inset: 0;
360
+ }
361
+
362
+ .tremolo-points-editor-container {
363
+ z-index: 10;
364
+ position: absolute;
365
+ inset: 0;
366
+ }
355
367
 
368
+ .tremolo-points-editor-point {
369
+ --color: oklch(59.5% .17548 266.373);
370
+ cursor: grab;
371
+ background-color: var(--color);
372
+ border-radius: 50%;
373
+ outline: none;
374
+ position: absolute;
375
+ translate: -50% -50%;
376
+
377
+ &[data-dragging="true"] {
378
+ cursor: inherit;
379
+ }
380
+ }
356
381
  .tremolo-slider {
357
- display: inline-block;
358
382
  cursor: pointer;
359
- outline: 0;
360
383
  -webkit-tap-highlight-color: transparent;
384
+ outline: 0;
385
+ display: inline-block;
361
386
 
362
- &[aria-readonly='true'] {
387
+ &[aria-readonly="true"] {
363
388
  cursor: not-allowed;
364
389
  }
365
390
  }
366
391
 
367
392
  .tremolo-slider-thumb-wrapper {
393
+ z-index: 100;
368
394
  position: absolute;
369
395
  translate: -50% -50%;
370
- z-index: 100;
371
396
  }
372
397
 
373
398
  .tremolo-slider-thumb {
374
- --color: oklch(59.5% 0.17548 266.373);
375
-
399
+ --color: oklch(59.5% .17548 266.373);
376
400
  background: var(--color);
377
401
  border-radius: 50%;
378
402
  outline: none;
379
403
 
380
- &[aria-disabled='true'] {
381
- background: oklch(50.462% 0.03307 270.021);
404
+ &[aria-disabled="true"] {
405
+ background: oklch(50.462% .03307 270.021);
382
406
  }
383
407
 
384
- &[aria-readonly='false']:focus {
408
+ &[aria-readonly="false"]:focus {
385
409
  box-shadow: 0px 0px 0px 3px
386
410
  color-mix(in srgb, var(--color) 20%, transparent);
387
411
  }
388
412
  }
389
413
 
390
414
  .tremolo-slider-track {
391
- --active: oklch(69.212% 0.12903 267.633);
415
+ --active: oklch(69.212% .12903 267.633);
392
416
  --inactive: oklch(95% 0 0);
393
-
394
417
  position: relative;
395
418
 
396
- &[data-vertical='false'] {
419
+ &[data-vertical="false"] {
397
420
  min-width: 50px;
398
421
  }
399
422
 
400
- &[data-vertical='true'] {
423
+ &[data-vertical="true"] {
401
424
  min-height: 50px;
402
425
  }
403
426
 
404
427
  &:hover {
405
- --active: oklch(64.276% 0.15244 266.932);
428
+ --active: oklch(64.276% .15244 266.932);
406
429
  --inactive: #e0e0e0;
407
430
  }
408
431
 
409
- &[aria-disabled='true'] {
410
- --active: oklch(75.327% 0.01237 264.547);
411
- --inactive: oklch(89.755% 0.0001 271.152);
432
+ &[aria-disabled="true"] {
433
+ --active: oklch(75.327% .01237 264.547);
434
+ --inactive: oklch(89.755% .0001 271.152);
412
435
  }
413
436
  }
414
437
 
@@ -418,16 +441,16 @@
418
441
  }
419
442
 
420
443
  .tremolo-slider-scale-option {
421
- display: flex;
422
- color: oklch(25.197% 0.00003 271.152);
444
+ color: oklch(25.197% .00003 271.152);
445
+ z-index: 10;
423
446
  flex-direction: column;
424
447
  justify-content: center;
425
448
  align-items: center;
449
+ display: flex;
426
450
  position: absolute;
427
- translate: -50% 0;
428
- z-index: 10;
451
+ translate: -50%;
429
452
 
430
- &[data-vertical='true'] {
453
+ &[data-vertical="true"] {
431
454
  flex-direction: row;
432
455
  translate: 0 -50%;
433
456
  }
@@ -441,79 +464,73 @@
441
464
  text-align: right;
442
465
  }
443
466
 
444
- :where(.dark, [data-theme='dark']) {
445
- .tremolo-slider-thumb {
446
- --color: oklch(64.5% 0.17548 266.373);
467
+ :where(.dark, [data-theme="dark"]) {
468
+ & .tremolo-slider-thumb {
469
+ --color: oklch(64.5% .17548 266.373);
447
470
 
448
471
  &:hover {
449
- --color: oklch(67.5% 0.17548 266.373);
472
+ --color: oklch(67.5% .17548 266.373);
450
473
  }
451
474
  }
452
475
 
453
- .tremolo-slider-track {
454
- --active: oklch(59.5% 0.17548 266.373);
476
+ & .tremolo-slider-track {
477
+ --active: oklch(59.5% .17548 266.373);
455
478
  --inactive: oklch(41.7% 0 0);
456
479
 
457
480
  &:hover {
458
- --active: oklch(62.5% 0.17548 266.373);
481
+ --active: oklch(62.5% .17548 266.373);
459
482
  --inactive: oklch(44.7% 0 0);
460
483
  }
461
484
 
462
- &[aria-disabled='true'] {
463
- --active: oklch(75.327% 0.01237 264.547);
464
- --inactive: oklch(89.755% 0.0001 271.152);
485
+ &[aria-disabled="true"] {
486
+ --active: oklch(75.327% .01237 264.547);
487
+ --inactive: oklch(89.755% .0001 271.152);
465
488
  }
466
489
  }
467
490
  }
468
-
469
491
  .tremolo-xy-pad {
470
- display: inline-block;
471
492
  cursor: pointer;
493
+ display: inline-block;
472
494
  }
473
495
 
474
496
  .tremolo-xy-pad-area {
475
497
  --color: oklch(95% 0 0);
476
-
477
- position: relative;
478
498
  background-color: var(--color);
499
+ position: relative;
479
500
  }
480
501
 
481
502
  .tremolo-xy-pad-thumb-wrapper {
503
+ z-index: 100;
482
504
  position: absolute;
483
505
  translate: -50% -50%;
484
- z-index: 100;
485
506
  }
486
507
 
487
508
  .tremolo-xy-pad-thumb {
488
- --color: oklch(59.5% 0.17548 266.373);
489
-
509
+ --color: oklch(59.5% .17548 266.373);
510
+ background-color: var(--color);
490
511
  border-radius: 50%;
491
512
  outline: none;
492
- background-color: var(--color);
493
513
 
494
- &[aria-disabled='true'] {
495
- background-color: oklch(50.462% 0.03307 270.021);
514
+ &[aria-disabled="true"] {
515
+ background-color: oklch(50.462% .03307 270.021);
496
516
  }
497
517
 
498
- &[aria-readonly='false']:focus {
518
+ &[aria-readonly="false"]:focus {
499
519
  box-shadow: 0px 0px 0px 3px
500
520
  color-mix(in srgb, var(--color) 20%, transparent);
501
521
  }
502
522
  }
503
523
 
504
- :where(.dark, [data-theme='dark']) {
505
- .tremolo-xy-pad-area {
524
+ :where(.dark, [data-theme="dark"]) {
525
+ & .tremolo-xy-pad-area {
506
526
  --color: oklch(41.7% 0 0);
507
527
  }
508
528
 
509
- .tremolo-xy-pad-thumb {
510
- --color: oklch(64.5% 0.17548 266.373);
529
+ & .tremolo-xy-pad-thumb {
530
+ --color: oklch(64.5% .17548 266.373);
511
531
 
512
532
  &:hover {
513
- --color: oklch(67.5% 0.17548 266.373);
533
+ --color: oklch(67.5% .17548 266.373);
514
534
  }
515
535
  }
516
536
  }
517
-
518
-
519
- /*# sourceMappingURL=index.css.map*/