@moises.ai/design-system 3.11.7 → 3.11.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ChevronDownFilledIcon-qgjYUwMz.js → Share2Icon-Bxgx9Zfv.js} +2214 -2370
- package/dist/icons.js +1 -1
- package/dist/index.js +740 -720
- package/package.json +1 -1
- package/src/components/InputLevelMeter/InputLevelMeter.jsx +29 -7
- package/src/components/InputLevelMeter/InputLevelMeter.module.css +4 -0
- package/src/components/InputLevelMeter/InputLevelMeter.stories.jsx +290 -3
- package/src/components/TrackHeader/TrackHeader.module.css +8 -2
- package/src/components/TrackHeader/TrackHeader.stories.jsx +40 -21
- package/src/icons/AlertIcon.jsx +2 -7
- package/src/icons/BarsIcon.jsx +1 -6
- package/src/icons/CameraRollIcon.jsx +1 -6
- package/src/icons/CartIcon.jsx +2 -7
- package/src/icons/ClipIcon.jsx +2 -7
- package/src/icons/CloudDownloadGradientIcon.jsx +2 -5
- package/src/icons/CodeIcon.jsx +2 -7
- package/src/icons/CountdownIcon.jsx +2 -7
- package/src/icons/CropIcon.jsx +2 -7
- package/src/icons/DialogueIcon.jsx +2 -7
- package/src/icons/DotsVerticalIcon.jsx +2 -7
- package/src/icons/FolderIcon.jsx +2 -7
- package/src/icons/GoalsIcon.jsx +2 -7
- package/src/icons/IsolateDrumsGradientIcon.jsx +2 -5
- package/src/icons/IsolateDrumsIcon.jsx +2 -7
- package/src/icons/Knob2Icon.jsx +2 -7
- package/src/icons/Knob3Icon.jsx +2 -7
- package/src/icons/KnobIcon.jsx +2 -7
- package/src/icons/LibraryIcon.jsx +2 -7
- package/src/icons/LockIcon.jsx +2 -7
- package/src/icons/LoopIcon.jsx +2 -7
- package/src/icons/MoreIcon.jsx +2 -7
- package/src/icons/MusicIcon.jsx +1 -6
- package/src/icons/NoInternetSignalIcon.jsx +2 -7
- package/src/icons/NoKeysIcon.jsx +2 -7
- package/src/icons/NoMusicIcon.jsx +2 -7
- package/src/icons/NoPianoIcon.jsx +2 -7
- package/src/icons/NoSoundtrackIcon.jsx +2 -7
- package/src/icons/PianoIcon.jsx +1 -6
- package/src/icons/PlayBackSpeedIcon.jsx +2 -7
- package/src/icons/PlayCircleIcon.jsx +2 -7
- package/src/icons/RadioIcon.jsx +2 -7
- package/src/icons/RedoIcon.jsx +2 -7
- package/src/icons/RefreshBackIcon.jsx +2 -7
- package/src/icons/RocketIcon.jsx +2 -7
- package/src/icons/SearchIcon.jsx +2 -7
- package/src/icons/Share2Icon.jsx +30 -0
- package/src/icons/SoundtrackGradientIcon.jsx +2 -5
- package/src/icons/SparkleIcon.jsx +2 -7
- package/src/icons/SparklesGradientIcon.jsx +2 -5
- package/src/icons/SpatialAudioIcon.jsx +2 -7
- package/src/icons/SpeakerLoudIcon.jsx +2 -7
- package/src/icons/SpeedChangerIcon.jsx +2 -7
- package/src/icons/SpliterGradientIcon.jsx +2 -5
- package/src/icons/StringsIcon.jsx +1 -11
- package/src/icons/TargetIcon.jsx +2 -7
- package/src/icons/TrimIcon.jsx +2 -7
- package/src/icons/UndoIcon.jsx +2 -7
- package/src/icons/UnlockIcon.jsx +2 -7
- package/src/icons/UploadIcon.jsx +2 -7
- package/src/icons/UserIcon.jsx +2 -7
- package/src/icons/VocalsBackgroundIcon.jsx +2 -7
- package/src/icons/VocalsIcon.jsx +1 -6
- package/src/icons/ZoomCloseIcon.jsx +2 -7
- package/src/icons/ZoomInIcon.jsx +2 -7
- package/src/icons.jsx +1 -0
package/package.json
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { memo, useCallback, useRef, useState } from 'react'
|
|
2
|
+
import { Tooltip } from '../Tooltip/Tooltip'
|
|
2
3
|
import styles from './InputLevelMeter.module.css'
|
|
3
4
|
|
|
4
5
|
const SEGMENT_MIN = 5
|
|
@@ -56,6 +57,13 @@ function faderPositionToGain(pos) {
|
|
|
56
57
|
return 10 ** (db / 20)
|
|
57
58
|
}
|
|
58
59
|
|
|
60
|
+
function formatGainDb(gain) {
|
|
61
|
+
if (gain <= 0) return '-∞ dB'
|
|
62
|
+
const db = 20 * Math.log10(gain)
|
|
63
|
+
if (db <= -96) return '-∞ dB'
|
|
64
|
+
return `${db >= 0 ? '+' : ''}${db.toFixed(1)} dB`
|
|
65
|
+
}
|
|
66
|
+
|
|
59
67
|
function MeterRow({ level }) {
|
|
60
68
|
const pct = getNormalizedLevel(level)
|
|
61
69
|
return (
|
|
@@ -114,6 +122,7 @@ export const InputLevelMeter = memo(function InputLevelMeter({
|
|
|
114
122
|
e.currentTarget.setPointerCapture(e.pointerId)
|
|
115
123
|
isPressedRef.current = true
|
|
116
124
|
setIsPressed(true)
|
|
125
|
+
document.body.style.cursor = 'ew-resize'
|
|
117
126
|
const rect = meterRef.current?.getBoundingClientRect()
|
|
118
127
|
if (rect) {
|
|
119
128
|
const pos = Math.max(
|
|
@@ -144,14 +153,19 @@ export const InputLevelMeter = memo(function InputLevelMeter({
|
|
|
144
153
|
const handlePointerUp = useCallback(() => {
|
|
145
154
|
isPressedRef.current = false
|
|
146
155
|
setIsPressed(false)
|
|
156
|
+
document.body.style.cursor = ''
|
|
147
157
|
}, [])
|
|
148
158
|
|
|
149
|
-
const
|
|
159
|
+
const hasHandler = onVolumeChange && showHandler
|
|
160
|
+
|
|
161
|
+
const meterClassName = [
|
|
162
|
+
styles.bars,
|
|
163
|
+
hasHandler ? styles.interactive : '',
|
|
164
|
+
isPressed ? styles.pressed : '',
|
|
165
|
+
]
|
|
150
166
|
.filter(Boolean)
|
|
151
167
|
.join(' ')
|
|
152
168
|
|
|
153
|
-
const hasHandler = onVolumeChange && showHandler
|
|
154
|
-
|
|
155
169
|
return (
|
|
156
170
|
<div
|
|
157
171
|
className={styles.container}
|
|
@@ -167,10 +181,18 @@ export const InputLevelMeter = memo(function InputLevelMeter({
|
|
|
167
181
|
<MeterRow level={rightLevel} />
|
|
168
182
|
|
|
169
183
|
{hasHandler && (
|
|
170
|
-
<
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
184
|
+
<Tooltip
|
|
185
|
+
content={formatGainDb(volume)}
|
|
186
|
+
open={isPressed}
|
|
187
|
+
side="top"
|
|
188
|
+
sideOffset={8}
|
|
189
|
+
delayDuration={0}
|
|
190
|
+
>
|
|
191
|
+
<div
|
|
192
|
+
className={`${styles.thumb} ${isPressed ? styles.pressed : ''}`}
|
|
193
|
+
style={{ left: `${faderPercent}%` }}
|
|
194
|
+
/>
|
|
195
|
+
</Tooltip>
|
|
174
196
|
)}
|
|
175
197
|
|
|
176
198
|
{showPeakHold && (
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useState, useEffect, useRef, useCallback } from 'react'
|
|
1
2
|
import { InputLevelMeter } from './InputLevelMeter'
|
|
2
3
|
import { useSimulatedInputLevel } from './useSimulatedInputLevel'
|
|
3
4
|
|
|
@@ -10,18 +11,304 @@ export default {
|
|
|
10
11
|
},
|
|
11
12
|
decorators: [
|
|
12
13
|
(Story) => (
|
|
13
|
-
<div style={{ padding: '16px', background: '#1d1d1d', width: '
|
|
14
|
+
<div style={{ padding: '16px', background: '#1d1d1d', width: '240px' }}>
|
|
14
15
|
<Story />
|
|
15
16
|
</div>
|
|
16
17
|
),
|
|
17
18
|
],
|
|
19
|
+
argTypes: {
|
|
20
|
+
linear: { control: false },
|
|
21
|
+
volume: {
|
|
22
|
+
control: { type: 'range', min: 0, max: 2, step: 0.01 },
|
|
23
|
+
},
|
|
24
|
+
showHandler: { control: 'boolean' },
|
|
25
|
+
showMeter: { control: 'boolean' },
|
|
26
|
+
onVolumeChange: { action: 'volumeChanged' },
|
|
27
|
+
},
|
|
18
28
|
}
|
|
19
29
|
|
|
20
|
-
function AnimatedMeter() {
|
|
30
|
+
function AnimatedMeter(props) {
|
|
21
31
|
const linear = useSimulatedInputLevel()
|
|
22
|
-
return <InputLevelMeter linear={linear} />
|
|
32
|
+
return <InputLevelMeter linear={linear} {...props} />
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function InteractiveMeter({ initialVolume = 1, ...props }) {
|
|
36
|
+
const [volume, setVolume] = useState(initialVolume)
|
|
37
|
+
const linear = useSimulatedInputLevel()
|
|
38
|
+
|
|
39
|
+
const handleVolumeChange = useCallback(([v]) => {
|
|
40
|
+
setVolume(v)
|
|
41
|
+
}, [])
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '8px' }}>
|
|
45
|
+
<InputLevelMeter
|
|
46
|
+
linear={linear}
|
|
47
|
+
volume={volume}
|
|
48
|
+
onVolumeChange={handleVolumeChange}
|
|
49
|
+
{...props}
|
|
50
|
+
/>
|
|
51
|
+
<span
|
|
52
|
+
style={{ color: 'rgba(255,255,255,0.5)', fontSize: '11px', fontFamily: 'monospace' }}
|
|
53
|
+
>
|
|
54
|
+
gain: {volume.toFixed(3)} | dB: {volume > 0 ? (20 * Math.log10(volume)).toFixed(1) : '-∞'}
|
|
55
|
+
</span>
|
|
56
|
+
</div>
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function useFixedLevel(left, right) {
|
|
61
|
+
const [linear, setLinear] = useState([left, right])
|
|
62
|
+
useEffect(() => {
|
|
63
|
+
setLinear([left, right])
|
|
64
|
+
}, [left, right])
|
|
65
|
+
return linear
|
|
23
66
|
}
|
|
24
67
|
|
|
25
68
|
export const Default = {
|
|
26
69
|
render: () => <AnimatedMeter />,
|
|
27
70
|
}
|
|
71
|
+
|
|
72
|
+
export const WithVolumeControl = {
|
|
73
|
+
render: () => <InteractiveMeter />,
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export const Silent = {
|
|
77
|
+
render: () => <InputLevelMeter linear={[0, 0]} />,
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export const LowLevel = {
|
|
81
|
+
render: () => {
|
|
82
|
+
function LowLevelMeter() {
|
|
83
|
+
const linear = useFixedLevel(0.01, 0.008)
|
|
84
|
+
return <InputLevelMeter linear={linear} />
|
|
85
|
+
}
|
|
86
|
+
return <LowLevelMeter />
|
|
87
|
+
},
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export const MediumLevel = {
|
|
91
|
+
render: () => {
|
|
92
|
+
function MediumLevelMeter() {
|
|
93
|
+
const linear = useFixedLevel(0.15, 0.12)
|
|
94
|
+
return <InputLevelMeter linear={linear} />
|
|
95
|
+
}
|
|
96
|
+
return <MediumLevelMeter />
|
|
97
|
+
},
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export const HotLevel = {
|
|
101
|
+
render: () => {
|
|
102
|
+
function HotLevelMeter() {
|
|
103
|
+
const linear = useFixedLevel(0.7, 0.65)
|
|
104
|
+
return <InputLevelMeter linear={linear} />
|
|
105
|
+
}
|
|
106
|
+
return <HotLevelMeter />
|
|
107
|
+
},
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
export const Clipping = {
|
|
111
|
+
render: () => {
|
|
112
|
+
function ClippingMeter() {
|
|
113
|
+
const linear = useFixedLevel(1.0, 0.95)
|
|
114
|
+
return <InputLevelMeter linear={linear} />
|
|
115
|
+
}
|
|
116
|
+
return <ClippingMeter />
|
|
117
|
+
},
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export const MonoLeft = {
|
|
121
|
+
render: () => {
|
|
122
|
+
function MonoLeftMeter() {
|
|
123
|
+
const linear = useFixedLevel(0.5, 0)
|
|
124
|
+
return <InputLevelMeter linear={linear} />
|
|
125
|
+
}
|
|
126
|
+
return <MonoLeftMeter />
|
|
127
|
+
},
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export const MonoRight = {
|
|
131
|
+
render: () => {
|
|
132
|
+
function MonoRightMeter() {
|
|
133
|
+
const linear = useFixedLevel(0, 0.5)
|
|
134
|
+
return <InputLevelMeter linear={linear} />
|
|
135
|
+
}
|
|
136
|
+
return <MonoRightMeter />
|
|
137
|
+
},
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export const AsymmetricLevels = {
|
|
141
|
+
render: () => {
|
|
142
|
+
function AsymmetricMeter() {
|
|
143
|
+
const linear = useFixedLevel(0.8, 0.2)
|
|
144
|
+
return <InputLevelMeter linear={linear} />
|
|
145
|
+
}
|
|
146
|
+
return <AsymmetricMeter />
|
|
147
|
+
},
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
export const WithoutHandler = {
|
|
151
|
+
render: () => <AnimatedMeter showHandler={false} />,
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export const WithoutMeterDot = {
|
|
155
|
+
render: () => <AnimatedMeter showMeter={false} />,
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
export const MeterOnly = {
|
|
159
|
+
render: () => <AnimatedMeter showHandler={false} showMeter={false} />,
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export const VolumeAtZero = {
|
|
163
|
+
render: () => <InteractiveMeter initialVolume={0} />,
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
export const VolumeAtUnity = {
|
|
167
|
+
render: () => <InteractiveMeter initialVolume={1} />,
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export const VolumeBoosted = {
|
|
171
|
+
render: () => <InteractiveMeter initialVolume={1.5} />,
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export const MaxBoost = {
|
|
175
|
+
render: () => <InteractiveMeter initialVolume={2} />,
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
export const PulsingSignal = {
|
|
179
|
+
render: () => {
|
|
180
|
+
function PulsingMeter() {
|
|
181
|
+
const [linear, setLinear] = useState([0, 0])
|
|
182
|
+
const frameRef = useRef(null)
|
|
183
|
+
|
|
184
|
+
useEffect(() => {
|
|
185
|
+
let t = 0
|
|
186
|
+
function animate() {
|
|
187
|
+
t += 0.04
|
|
188
|
+
const val = Math.abs(Math.sin(t)) * 0.9
|
|
189
|
+
setLinear([val, val * 0.85])
|
|
190
|
+
frameRef.current = requestAnimationFrame(animate)
|
|
191
|
+
}
|
|
192
|
+
frameRef.current = requestAnimationFrame(animate)
|
|
193
|
+
return () => cancelAnimationFrame(frameRef.current)
|
|
194
|
+
}, [])
|
|
195
|
+
|
|
196
|
+
return <InputLevelMeter linear={linear} />
|
|
197
|
+
}
|
|
198
|
+
return <PulsingMeter />
|
|
199
|
+
},
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
export const SpikeAndDecay = {
|
|
203
|
+
render: () => {
|
|
204
|
+
function SpikeDecayMeter() {
|
|
205
|
+
const [linear, setLinear] = useState([0, 0])
|
|
206
|
+
const frameRef = useRef(null)
|
|
207
|
+
const currentRef = useRef([0, 0])
|
|
208
|
+
const tickRef = useRef(0)
|
|
209
|
+
|
|
210
|
+
useEffect(() => {
|
|
211
|
+
function animate() {
|
|
212
|
+
tickRef.current++
|
|
213
|
+
|
|
214
|
+
if (tickRef.current % 90 === 0) {
|
|
215
|
+
currentRef.current = [0.95, 0.9]
|
|
216
|
+
} else {
|
|
217
|
+
currentRef.current = currentRef.current.map((v) =>
|
|
218
|
+
Math.max(0, v * 0.97),
|
|
219
|
+
)
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
setLinear([...currentRef.current])
|
|
223
|
+
frameRef.current = requestAnimationFrame(animate)
|
|
224
|
+
}
|
|
225
|
+
frameRef.current = requestAnimationFrame(animate)
|
|
226
|
+
return () => cancelAnimationFrame(frameRef.current)
|
|
227
|
+
}, [])
|
|
228
|
+
|
|
229
|
+
return <InputLevelMeter linear={linear} />
|
|
230
|
+
}
|
|
231
|
+
return <SpikeDecayMeter />
|
|
232
|
+
},
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
export const MultipleMeters = {
|
|
236
|
+
render: () => {
|
|
237
|
+
function MultiMeter() {
|
|
238
|
+
const linear = useSimulatedInputLevel()
|
|
239
|
+
const [volumes, setVolumes] = useState([1, 0.7, 0.4, 0.1])
|
|
240
|
+
|
|
241
|
+
const makeHandler = (idx) => ([v]) => {
|
|
242
|
+
setVolumes((prev) => {
|
|
243
|
+
const next = [...prev]
|
|
244
|
+
next[idx] = v
|
|
245
|
+
return next
|
|
246
|
+
})
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
const labels = ['Master', 'Vocals', 'Guitar', 'Drums']
|
|
250
|
+
|
|
251
|
+
return (
|
|
252
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '12px' }}>
|
|
253
|
+
{volumes.map((vol, i) => (
|
|
254
|
+
<div key={i}>
|
|
255
|
+
<span
|
|
256
|
+
style={{
|
|
257
|
+
color: 'rgba(255,255,255,0.5)',
|
|
258
|
+
fontSize: '10px',
|
|
259
|
+
fontFamily: 'monospace',
|
|
260
|
+
marginBottom: '4px',
|
|
261
|
+
display: 'block',
|
|
262
|
+
}}
|
|
263
|
+
>
|
|
264
|
+
{labels[i]}
|
|
265
|
+
</span>
|
|
266
|
+
<InputLevelMeter
|
|
267
|
+
linear={linear.map((l) => l * vol)}
|
|
268
|
+
volume={vol}
|
|
269
|
+
onVolumeChange={makeHandler(i)}
|
|
270
|
+
/>
|
|
271
|
+
</div>
|
|
272
|
+
))}
|
|
273
|
+
</div>
|
|
274
|
+
)
|
|
275
|
+
}
|
|
276
|
+
return <MultiMeter />
|
|
277
|
+
},
|
|
278
|
+
decorators: [
|
|
279
|
+
(Story) => (
|
|
280
|
+
<div style={{ padding: '16px', background: '#1d1d1d', width: '240px' }}>
|
|
281
|
+
<Story />
|
|
282
|
+
</div>
|
|
283
|
+
),
|
|
284
|
+
],
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
export const Playground = {
|
|
288
|
+
args: {
|
|
289
|
+
volume: 1,
|
|
290
|
+
showHandler: true,
|
|
291
|
+
showMeter: true,
|
|
292
|
+
},
|
|
293
|
+
render: (args) => {
|
|
294
|
+
function PlaygroundMeter() {
|
|
295
|
+
const linear = useSimulatedInputLevel()
|
|
296
|
+
const [volume, setVolume] = useState(args.volume)
|
|
297
|
+
|
|
298
|
+
useEffect(() => {
|
|
299
|
+
setVolume(args.volume)
|
|
300
|
+
}, [args.volume])
|
|
301
|
+
|
|
302
|
+
return (
|
|
303
|
+
<InputLevelMeter
|
|
304
|
+
linear={linear}
|
|
305
|
+
volume={volume}
|
|
306
|
+
onVolumeChange={([v]) => setVolume(v)}
|
|
307
|
+
showHandler={args.showHandler}
|
|
308
|
+
showMeter={args.showMeter}
|
|
309
|
+
/>
|
|
310
|
+
)
|
|
311
|
+
}
|
|
312
|
+
return <PlaygroundMeter />
|
|
313
|
+
},
|
|
314
|
+
}
|
|
@@ -173,13 +173,19 @@ background-color: rgba(17, 17, 19);
|
|
|
173
173
|
|
|
174
174
|
.trackContent {
|
|
175
175
|
padding-left: 0;
|
|
176
|
-
|
|
176
|
+
background-color: var(--neutral-alpha-2);
|
|
177
|
+
border-left-style: solid;
|
|
178
|
+
border-left-color: var(--neutral-alpha-3);
|
|
179
|
+
border-left-width: 1px;
|
|
177
180
|
.toggleOpenButton {
|
|
178
181
|
display: none;
|
|
179
182
|
}
|
|
183
|
+
.line {
|
|
184
|
+
padding-left: var(--space-4);
|
|
185
|
+
}
|
|
180
186
|
|
|
181
187
|
.name {
|
|
182
|
-
padding-left: var(--space-4);
|
|
188
|
+
/* padding-left: var(--space-4); */
|
|
183
189
|
background: linear-gradient(
|
|
184
190
|
90deg,
|
|
185
191
|
var(--neutral-alpha-11) 95%,
|
|
@@ -123,10 +123,10 @@ export const Default = {
|
|
|
123
123
|
isAutoMuted: false,
|
|
124
124
|
compact: false,
|
|
125
125
|
menuOptions,
|
|
126
|
-
onVolumeChange: () => {},
|
|
127
|
-
onPanChange: () => {},
|
|
128
|
-
onMutedChange: () => {},
|
|
129
|
-
onSoloChange: () => {},
|
|
126
|
+
onVolumeChange: () => { },
|
|
127
|
+
onPanChange: () => { },
|
|
128
|
+
onMutedChange: () => { },
|
|
129
|
+
onSoloChange: () => { },
|
|
130
130
|
instrumentOptions,
|
|
131
131
|
instrumentSelected: instrumentOptions[0],
|
|
132
132
|
},
|
|
@@ -177,17 +177,20 @@ export const Group = {
|
|
|
177
177
|
isAutoMuted: false,
|
|
178
178
|
compact: false,
|
|
179
179
|
menuOptions,
|
|
180
|
-
onVolumeChange: () => {},
|
|
181
|
-
onPanChange: () => {},
|
|
182
|
-
onMutedChange: () => {},
|
|
183
|
-
onSoloChange: () => {},
|
|
180
|
+
onVolumeChange: () => { },
|
|
181
|
+
onPanChange: () => { },
|
|
182
|
+
onMutedChange: () => { },
|
|
183
|
+
onSoloChange: () => { },
|
|
184
|
+
instrumentOptions,
|
|
185
|
+
instrumentSelected: instrumentOptions[0],
|
|
186
|
+
onInstrumentChange: () => { },
|
|
184
187
|
},
|
|
185
188
|
render: (args) => {
|
|
186
189
|
const [isOpen, setIsOpen] = useState(true)
|
|
187
190
|
const [pan, setPan] = useState(-0.3)
|
|
188
191
|
const [pan2, setPan2] = useState(-0.3)
|
|
189
192
|
return (
|
|
190
|
-
<TrackHeader {...args} isOpen={isOpen} onOpenChange={setIsOpen}>
|
|
193
|
+
<TrackHeader {...args} isOpen={isOpen} onOpenChange={setIsOpen} instrumentSelected={args.instrumentSelected} onInstrumentChange={args.onInstrumentChange}>
|
|
191
194
|
<TrackHeader
|
|
192
195
|
title="Grouped Track"
|
|
193
196
|
isGrouped
|
|
@@ -197,11 +200,14 @@ export const Group = {
|
|
|
197
200
|
pan={pan}
|
|
198
201
|
isMuted={false}
|
|
199
202
|
isSolo={false}
|
|
200
|
-
onVolumeChange={() => {}}
|
|
203
|
+
onVolumeChange={() => { }}
|
|
201
204
|
onPanChange={setPan}
|
|
202
|
-
onMutedChange={() => {}}
|
|
203
|
-
onSoloChange={() => {}}
|
|
205
|
+
onMutedChange={() => { }}
|
|
206
|
+
onSoloChange={() => { }}
|
|
204
207
|
menuOptions={menuOptions}
|
|
208
|
+
instrumentOptions={args.instrumentOptions}
|
|
209
|
+
instrumentSelected={args.instrumentSelected}
|
|
210
|
+
onInstrumentChange={args.onInstrumentChange}
|
|
205
211
|
/>
|
|
206
212
|
<TrackHeader
|
|
207
213
|
title="Grouped Track"
|
|
@@ -212,11 +218,14 @@ export const Group = {
|
|
|
212
218
|
pan={pan2}
|
|
213
219
|
isMuted={false}
|
|
214
220
|
isSolo={false}
|
|
215
|
-
onVolumeChange={() => {}}
|
|
221
|
+
onVolumeChange={() => { }}
|
|
216
222
|
onPanChange={setPan2}
|
|
217
|
-
onMutedChange={() => {}}
|
|
218
|
-
onSoloChange={() => {}}
|
|
223
|
+
onMutedChange={() => { }}
|
|
224
|
+
onSoloChange={() => { }}
|
|
219
225
|
menuOptions={menuOptions}
|
|
226
|
+
instrumentOptions={args.instrumentOptions}
|
|
227
|
+
instrumentSelected={args.instrumentSelected}
|
|
228
|
+
onInstrumentChange={args.onInstrumentChange}
|
|
220
229
|
/>
|
|
221
230
|
</TrackHeader>
|
|
222
231
|
)
|
|
@@ -236,20 +245,27 @@ export const Takelanes = {
|
|
|
236
245
|
isSolo: false,
|
|
237
246
|
compact: false,
|
|
238
247
|
menuOptions,
|
|
239
|
-
onVolumeChange: () => {},
|
|
240
|
-
onPanChange: () => {},
|
|
241
|
-
onMutedChange: () => {},
|
|
242
|
-
onSoloChange: () => {},
|
|
243
|
-
onOpenChange: () => {},
|
|
248
|
+
onVolumeChange: () => { },
|
|
249
|
+
onPanChange: () => { },
|
|
250
|
+
onMutedChange: () => { },
|
|
251
|
+
onSoloChange: () => { },
|
|
252
|
+
onOpenChange: () => { },
|
|
253
|
+
instrumentOptions,
|
|
254
|
+
instrumentSelected: instrumentOptions[0],
|
|
255
|
+
onInstrumentChange: () => { },
|
|
256
|
+
|
|
244
257
|
},
|
|
245
258
|
render: (args) => (
|
|
246
|
-
<TrackHeader {...args}>
|
|
259
|
+
<TrackHeader {...args} instrumentSelected={args.instrumentSelected} onInstrumentChange={args.onInstrumentChange}>
|
|
247
260
|
<TrackHeader
|
|
248
261
|
title="Take Lane 1"
|
|
249
262
|
showPan={false}
|
|
250
263
|
showVolumeControls={false}
|
|
251
264
|
isGrouped
|
|
252
265
|
menuOptions={menuOptions}
|
|
266
|
+
instrumentOptions={args.instrumentOptions}
|
|
267
|
+
instrumentSelected={args.instrumentSelected}
|
|
268
|
+
onInstrumentChange={args.onInstrumentChange}
|
|
253
269
|
/>
|
|
254
270
|
<TrackHeader
|
|
255
271
|
title="Take Lane 1"
|
|
@@ -257,6 +273,9 @@ export const Takelanes = {
|
|
|
257
273
|
showVolumeControls={false}
|
|
258
274
|
isGrouped
|
|
259
275
|
menuOptions={menuOptions}
|
|
276
|
+
instrumentOptions={args.instrumentOptions}
|
|
277
|
+
instrumentSelected={args.instrumentSelected}
|
|
278
|
+
onInstrumentChange={args.onInstrumentChange}
|
|
260
279
|
/>
|
|
261
280
|
</TrackHeader>
|
|
262
281
|
),
|
package/src/icons/AlertIcon.jsx
CHANGED
|
@@ -8,7 +8,7 @@ export const AlertIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
|
8
8
|
className={className}
|
|
9
9
|
{...props}
|
|
10
10
|
>
|
|
11
|
-
<g
|
|
11
|
+
<g>
|
|
12
12
|
<path
|
|
13
13
|
d="M13.9999 9.33356V15.7501M13.9999 19.8336H14.0116M12.0049 4.50357L2.12324 21.0002C1.9195 21.3531 1.8117 21.7531 1.81056 22.1605C1.80942 22.5679 1.91497 22.9686 2.11673 23.3225C2.31849 23.6765 2.60942 23.9714 2.96056 24.1781C3.31171 24.3847 3.71083 24.4958 4.11824 24.5002H23.8816C24.289 24.4958 24.6881 24.3847 25.0392 24.1781C25.3904 23.9714 25.6813 23.6765 25.8831 23.3225C26.0848 22.9686 26.1904 22.5679 26.1893 22.1605C26.1881 21.7531 26.0803 21.3531 25.8766 21.0002L15.9949 4.50357C15.7869 4.1607 15.4941 3.87721 15.1446 3.68047C14.7952 3.48373 14.4009 3.38037 13.9999 3.38037C13.5989 3.38037 13.2046 3.48373 12.8552 3.68047C12.5057 3.87721 12.2129 4.1607 12.0049 4.50357Z"
|
|
14
14
|
stroke="currentColor"
|
|
@@ -17,12 +17,7 @@ export const AlertIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
|
17
17
|
strokeLinejoin="round"
|
|
18
18
|
/>
|
|
19
19
|
</g>
|
|
20
|
-
|
|
21
|
-
<clipPath id="clip0_556_1304">
|
|
22
|
-
<rect width="28" height="28" fill="currentColor" />
|
|
23
|
-
</clipPath>
|
|
24
|
-
</defs>
|
|
25
|
-
</svg>
|
|
20
|
+
</svg>
|
|
26
21
|
)
|
|
27
22
|
|
|
28
23
|
AlertIcon.displayName = 'AlertIcon'
|
package/src/icons/BarsIcon.jsx
CHANGED
|
@@ -8,7 +8,7 @@ export const BarsIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
|
8
8
|
className={className}
|
|
9
9
|
{...props}
|
|
10
10
|
>
|
|
11
|
-
<g
|
|
11
|
+
<g>
|
|
12
12
|
<path
|
|
13
13
|
d="M12 8L12 15M17 5V19M7 5V19M22 10V14M2 10L2 14"
|
|
14
14
|
stroke="currentColor"
|
|
@@ -16,11 +16,6 @@ export const BarsIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
|
16
16
|
strokeLinecap="round"
|
|
17
17
|
/>
|
|
18
18
|
</g>
|
|
19
|
-
<defs>
|
|
20
|
-
<clipPath id="clip0_6797_209">
|
|
21
|
-
<rect width="24" height="24" fill="currentColor" />
|
|
22
|
-
</clipPath>
|
|
23
|
-
</defs>
|
|
24
19
|
</svg>
|
|
25
20
|
)
|
|
26
21
|
|
|
@@ -13,18 +13,13 @@ export const CameraRollIcon = ({
|
|
|
13
13
|
className={className}
|
|
14
14
|
{...props}
|
|
15
15
|
>
|
|
16
|
-
<g
|
|
16
|
+
<g>
|
|
17
17
|
<path
|
|
18
18
|
d="M16 10.5V5C16 3.89543 15.1046 3 14 3H5C3.89543 3 3 3.89543 3 5V21C3 22.1046 3.89543 23 5 23H14C15.1046 23 16 22.1046 16 21V15.5M7.5 0.5H11.5M12 10.5V8.5M20 10.5V8.5M12 17.5V15.5M20 17.5V15.5M9 8.5H23V17.5H9V8.5Z"
|
|
19
19
|
stroke="currentColor"
|
|
20
20
|
strokeWidth="1.5"
|
|
21
21
|
/>
|
|
22
22
|
</g>
|
|
23
|
-
<defs>
|
|
24
|
-
<clipPath id="clip0_2280_66">
|
|
25
|
-
<rect width="24" height="24" fill="currentColor" />
|
|
26
|
-
</clipPath>
|
|
27
|
-
</defs>
|
|
28
23
|
</svg>
|
|
29
24
|
)
|
|
30
25
|
|
package/src/icons/CartIcon.jsx
CHANGED
|
@@ -8,7 +8,7 @@ export const CartIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
|
8
8
|
className={className}
|
|
9
9
|
{...props}
|
|
10
10
|
>
|
|
11
|
-
<g
|
|
11
|
+
<g>
|
|
12
12
|
<path
|
|
13
13
|
d="M1 1.71472H5L7.68 15.1047C7.77144 15.5651 8.02191 15.9787 8.38755 16.273C8.75318 16.5674 9.2107 16.7237 9.68 16.7147H19.4C19.8693 16.7237 20.3268 16.5674 20.6925 16.273C21.0581 15.9787 21.3086 15.5651 21.4 15.1047L23 6.71472H6M20.949 21.5353C20.949 21.9495 20.6132 22.2853 20.199 22.2853C19.7848 22.2853 19.449 21.9495 19.449 21.5353C19.449 21.1211 19.7848 20.7853 20.199 20.7853C20.6132 20.7853 20.949 21.1211 20.949 21.5353ZM8.91854 21.5353C8.91854 21.9495 8.58275 22.2853 8.16854 22.2853C7.75433 22.2853 7.41854 21.9495 7.41854 21.5353C7.41854 21.1211 7.75433 20.7853 8.16854 20.7853C8.58275 20.7853 8.91854 21.1211 8.91854 21.5353Z"
|
|
14
14
|
stroke="currentColor"
|
|
@@ -17,12 +17,7 @@ export const CartIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
|
17
17
|
strokeLinejoin="round"
|
|
18
18
|
/>
|
|
19
19
|
</g>
|
|
20
|
-
|
|
21
|
-
<clipPath id="clip0_2034_986">
|
|
22
|
-
<rect width="24" height="24" fill="currentColor" />
|
|
23
|
-
</clipPath>
|
|
24
|
-
</defs>
|
|
25
|
-
</svg>
|
|
20
|
+
</svg>
|
|
26
21
|
)
|
|
27
22
|
|
|
28
23
|
CartIcon.displayName = 'CartIcon'
|
package/src/icons/ClipIcon.jsx
CHANGED
|
@@ -8,7 +8,7 @@ export const ClipIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
|
8
8
|
className={className}
|
|
9
9
|
{...props}
|
|
10
10
|
>
|
|
11
|
-
<g
|
|
11
|
+
<g>
|
|
12
12
|
<path
|
|
13
13
|
d="M14.2011 7.28133L8.07441 13.408C7.32385 14.1586 6.30587 14.5802 5.24441 14.5802C4.18296 14.5802 3.16497 14.1586 2.41441 13.408C1.66385 12.6574 1.24219 11.6394 1.24219 10.578C1.24219 9.51654 1.66385 8.49856 2.41441 7.74799L8.54108 1.62133C9.04145 1.12095 9.72011 0.839844 10.4277 0.839844C11.1354 0.839844 11.814 1.12095 12.3144 1.62133C12.8148 2.1217 13.0959 2.80036 13.0959 3.50799C13.0959 4.21563 12.8148 4.89428 12.3144 5.39466L6.18108 11.5213C5.93089 11.7715 5.59156 11.9121 5.23775 11.9121C4.88393 11.9121 4.5446 11.7715 4.29441 11.5213C4.04422 11.2711 3.90367 10.9318 3.90367 10.578C3.90367 10.2242 4.04422 9.88485 4.29441 9.63466L9.95441 3.98133"
|
|
14
14
|
stroke="currentColor"
|
|
@@ -16,12 +16,7 @@ export const ClipIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
|
16
16
|
strokeLinejoin="round"
|
|
17
17
|
/>
|
|
18
18
|
</g>
|
|
19
|
-
|
|
20
|
-
<clipPath id="clip0_24070_6111">
|
|
21
|
-
<rect width={width} height={height} fill="currentColor" />
|
|
22
|
-
</clipPath>
|
|
23
|
-
</defs>
|
|
24
|
-
</svg>
|
|
19
|
+
</svg>
|
|
25
20
|
)
|
|
26
21
|
|
|
27
22
|
ClipIcon.displayName = 'ClipIcon'
|
|
@@ -13,7 +13,7 @@ export const CloudDownloadGradientIcon = ({
|
|
|
13
13
|
{...props}
|
|
14
14
|
className={className}
|
|
15
15
|
>
|
|
16
|
-
<g
|
|
16
|
+
<g>
|
|
17
17
|
<path
|
|
18
18
|
d="M67.9668 61.3001C71.2179 59.5277 73.7862 56.7231 75.2664 53.3289C76.7465 49.9347 77.0542 46.1442 76.1408 42.5557C75.2274 38.9673 73.1451 35.7851 70.2223 33.5116C67.2996 31.238 63.703 30.0026 60.0001 30.0001H55.8001C54.7912 26.0976 52.9106 22.4746 50.2999 19.4034C47.6892 16.3323 44.4163 13.8929 40.7271 12.2688C37.038 10.6447 33.0286 9.87797 29.0005 10.0264C24.9724 10.1748 21.0303 11.2344 17.4707 13.1257C13.9111 15.0169 10.8265 17.6905 8.44885 20.9454C6.07122 24.2003 4.46241 27.9519 3.74338 31.9181C3.02434 35.8843 3.2138 39.9619 4.29749 43.8443C5.38118 47.7267 7.33092 51.313 10.0001 54.3334M26.6669 56.6668L40.0002 70.0002M40.0002 70.0002L53.3336 56.6668M40.0002 70.0002L40.0002 40.0002"
|
|
19
19
|
stroke="url(#paint0_linear_29446_178301)"
|
|
@@ -34,10 +34,7 @@ export const CloudDownloadGradientIcon = ({
|
|
|
34
34
|
<stop stopColor="#0AFFA7" />
|
|
35
35
|
<stop offset="1" stopColor="#00DAE8" />
|
|
36
36
|
</linearGradient>
|
|
37
|
-
|
|
38
|
-
<rect width="80" height="80" fill="white" />
|
|
39
|
-
</clipPath>
|
|
40
|
-
</defs>
|
|
37
|
+
</defs>
|
|
41
38
|
</svg>
|
|
42
39
|
)
|
|
43
40
|
|