@moises.ai/design-system 3.11.21 → 3.12.1
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/{MinusIcon-BS8c20DV.js → UpgradeUpIcon-DQGpL9A5.js} +2012 -1756
- package/dist/colors/custom-styles.css +2 -0
- package/dist/icons.js +616 -588
- package/dist/index.js +3915 -3837
- package/package.json +1 -1
- package/src/colors/custom-styles.css +2 -0
- package/src/components/InputLevelMeter/InputLevelMeter.jsx +65 -2
- package/src/components/InputLevelMeter/InputLevelMeter.module.css +27 -3
- package/src/components/PanControl/PanControl.jsx +66 -3
- package/src/components/PanControl/PanControl.module.css +6 -1
- package/src/components/TrackControlButton/TrackControlButton.module.css +28 -8
- package/src/components/TrackControlsToggle/TrackControlsToggle.jsx +4 -0
- package/src/components/TrackControlsToggle/TrackControlsToggle.stories.jsx +22 -0
- package/src/icons/ArrowEnterIcon.jsx +13 -0
- package/src/icons/CloudUploadErrorIcon.jsx +10 -0
- package/src/icons/CommandIcon.jsx +10 -0
- package/src/icons/FunctionIcon.jsx +7 -0
- package/src/icons/MagicWandIcon.jsx +5 -63
- package/src/icons/MinusIcon.jsx +1 -1
- package/src/icons/NoSendIcon.jsx +8 -0
- package/src/icons/NoSmartphoneIcon.jsx +7 -0
- package/src/icons/OptionIcon.jsx +7 -0
- package/src/icons/QrCodeIcon.jsx +9 -0
- package/src/icons/SendIcon.jsx +16 -0
- package/src/icons/Settings2Icon.jsx +14 -0
- package/src/icons/ShapesIcon.jsx +9 -0
- package/src/icons/Share2Icon.jsx +6 -13
- package/src/icons/ShareAndroidIcon.jsx +11 -0
- package/src/icons/ShareIosIcon.jsx +13 -0
- package/src/icons/ShareWebIcon.jsx +11 -0
- package/src/icons/ShieldIcon.jsx +7 -0
- package/src/icons/ShoppingBagIcon.jsx +9 -0
- package/src/icons/SkillsIcon.jsx +8 -0
- package/src/icons/SmartphoneIcon.jsx +8 -0
- package/src/icons/SparklesIcon.jsx +11 -0
- package/src/icons/SunIcon.jsx +8 -0
- package/src/icons/TextFileIcon.jsx +8 -0
- package/src/icons/TicketIcon.jsx +8 -0
- package/src/icons/TimeControlIcon.jsx +8 -0
- package/src/icons/TouchIdPersonalIcon.jsx +8 -0
- package/src/icons/TrophyIcon.jsx +8 -0
- package/src/icons/UpgradeUpIcon.jsx +9 -0
- package/src/icons/UserErrorIcon.jsx +8 -0
- package/src/icons/UserIcon.jsx +4 -18
- package/src/icons/UserVoiceIcon.jsx +10 -0
- package/src/icons/ZipIcon.jsx +9 -0
- package/src/icons.jsx +29 -0
package/package.json
CHANGED
|
@@ -101,6 +101,8 @@
|
|
|
101
101
|
--Colors-Neutral-Neutral-Alpha-3: var(--colors-neutral-neutral-alpha-3);
|
|
102
102
|
--Colors-Neutral-Neutral-Alpha-4: var(--colors-neutral-neutral-alpha-4);
|
|
103
103
|
--Colors-Neutral-Neutral-Alpha-5: var(--colors-neutral-neutral-alpha-5);
|
|
104
|
+
--Colors-Neutral-Neutral-Alpha-7: var(--neutral-alpha-7);
|
|
105
|
+
--Colors-Neutral-Neutral-Alpha-8: var(--neutral-alpha-8);
|
|
104
106
|
--Colors-Neutral-Neutral-Alpha-10: var(--colors-neutral-neutral-alpha-10);
|
|
105
107
|
--Colors-Neutral-Neutral-1: var(--colors-neutral-neutral-1);
|
|
106
108
|
|
|
@@ -6,6 +6,7 @@ const SEGMENT_MIN = 5
|
|
|
6
6
|
const SEGMENT_RANGE = 25
|
|
7
7
|
const UNITY_GAIN_POS = 0.667
|
|
8
8
|
const MAX_BOOST_DB = 6
|
|
9
|
+
const FADER_KEYBOARD_STEP = 0.02
|
|
9
10
|
|
|
10
11
|
function linearToMeterLevel(linear) {
|
|
11
12
|
const peakDb = 20 * Math.log10(Math.max(linear, 1e-6))
|
|
@@ -101,6 +102,9 @@ export const InputLevelMeter = memo(function InputLevelMeter({
|
|
|
101
102
|
const [peakHoldPct, setPeakHoldPct] = useState(0)
|
|
102
103
|
const [peakRising, setPeakRising] = useState(false)
|
|
103
104
|
|
|
105
|
+
const [thumbFocused, setThumbFocused] = useState(false)
|
|
106
|
+
const [hoverOpen, setHoverOpen] = useState(false)
|
|
107
|
+
|
|
104
108
|
useEffect(() => {
|
|
105
109
|
peakHoldRef.current = 0
|
|
106
110
|
setPeakHoldPct(0)
|
|
@@ -184,6 +188,49 @@ export const InputLevelMeter = memo(function InputLevelMeter({
|
|
|
184
188
|
document.body.style.cursor = ''
|
|
185
189
|
}, [])
|
|
186
190
|
|
|
191
|
+
const handleThumbKeyDown = useCallback(
|
|
192
|
+
(e) => {
|
|
193
|
+
if (!onVolumeChange) return
|
|
194
|
+
const pos = gainToFaderPosition(volume)
|
|
195
|
+
let nextPos = pos
|
|
196
|
+
switch (e.key) {
|
|
197
|
+
case 'ArrowRight':
|
|
198
|
+
case 'ArrowUp':
|
|
199
|
+
e.preventDefault()
|
|
200
|
+
nextPos = Math.min(1, pos + FADER_KEYBOARD_STEP)
|
|
201
|
+
onVolumeChange([faderPositionToGain(nextPos)])
|
|
202
|
+
break
|
|
203
|
+
case 'ArrowLeft':
|
|
204
|
+
case 'ArrowDown':
|
|
205
|
+
e.preventDefault()
|
|
206
|
+
nextPos = Math.max(0, pos - FADER_KEYBOARD_STEP)
|
|
207
|
+
onVolumeChange([faderPositionToGain(nextPos)])
|
|
208
|
+
break
|
|
209
|
+
case 'Home':
|
|
210
|
+
e.preventDefault()
|
|
211
|
+
onVolumeChange([faderPositionToGain(0)])
|
|
212
|
+
break
|
|
213
|
+
case 'End':
|
|
214
|
+
e.preventDefault()
|
|
215
|
+
onVolumeChange([faderPositionToGain(1)])
|
|
216
|
+
break
|
|
217
|
+
case 'PageUp':
|
|
218
|
+
e.preventDefault()
|
|
219
|
+
nextPos = Math.min(1, pos + FADER_KEYBOARD_STEP * 4)
|
|
220
|
+
onVolumeChange([faderPositionToGain(nextPos)])
|
|
221
|
+
break
|
|
222
|
+
case 'PageDown':
|
|
223
|
+
e.preventDefault()
|
|
224
|
+
nextPos = Math.max(0, pos - FADER_KEYBOARD_STEP * 4)
|
|
225
|
+
onVolumeChange([faderPositionToGain(nextPos)])
|
|
226
|
+
break
|
|
227
|
+
default:
|
|
228
|
+
break
|
|
229
|
+
}
|
|
230
|
+
},
|
|
231
|
+
[onVolumeChange, volume],
|
|
232
|
+
)
|
|
233
|
+
|
|
187
234
|
const hasHandler = onVolumeChange && showHandler
|
|
188
235
|
|
|
189
236
|
const meterClassName = [
|
|
@@ -194,6 +241,11 @@ export const InputLevelMeter = memo(function InputLevelMeter({
|
|
|
194
241
|
.filter(Boolean)
|
|
195
242
|
.join(' ')
|
|
196
243
|
|
|
244
|
+
const tooltipOpen = isPressed || thumbFocused || hoverOpen
|
|
245
|
+
|
|
246
|
+
const gainDbForAria =
|
|
247
|
+
volume <= 0 ? -96 : 20 * Math.log10(Math.max(volume, 1e-6))
|
|
248
|
+
|
|
197
249
|
return (
|
|
198
250
|
<div
|
|
199
251
|
className={styles.container}
|
|
@@ -211,15 +263,26 @@ export const InputLevelMeter = memo(function InputLevelMeter({
|
|
|
211
263
|
{hasHandler && (
|
|
212
264
|
<Tooltip
|
|
213
265
|
content={formatGainDb(volume)}
|
|
214
|
-
open={
|
|
266
|
+
open={tooltipOpen}
|
|
267
|
+
onOpenChange={setHoverOpen}
|
|
215
268
|
side="bottom"
|
|
216
269
|
align="center"
|
|
217
|
-
sideOffset={
|
|
270
|
+
sideOffset={3}
|
|
218
271
|
delayDuration={0}
|
|
219
272
|
>
|
|
220
273
|
<div
|
|
274
|
+
role="slider"
|
|
275
|
+
tabIndex={0}
|
|
276
|
+
aria-label="Input gain"
|
|
277
|
+
aria-valuemin={-96}
|
|
278
|
+
aria-valuemax={MAX_BOOST_DB}
|
|
279
|
+
aria-valuenow={Math.round(gainDbForAria * 10) / 10}
|
|
280
|
+
aria-valuetext={formatGainDb(volume)}
|
|
221
281
|
className={`${styles.thumb} ${isPressed ? styles.pressed : hover ? styles.hovered : ''}`}
|
|
222
282
|
style={{ left: `${faderPercent}%` }}
|
|
283
|
+
onFocus={() => setThumbFocused(true)}
|
|
284
|
+
onBlur={() => setThumbFocused(false)}
|
|
285
|
+
onKeyDown={handleThumbKeyDown}
|
|
223
286
|
/>
|
|
224
287
|
</Tooltip>
|
|
225
288
|
)}
|
|
@@ -78,6 +78,11 @@
|
|
|
78
78
|
background: white;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
.thumb:focus-visible {
|
|
82
|
+
outline: 2px solid var(--neutral-alpha-8);
|
|
83
|
+
outline-offset: 2px;
|
|
84
|
+
}
|
|
85
|
+
|
|
81
86
|
.peakDot {
|
|
82
87
|
position: absolute;
|
|
83
88
|
width: 1px;
|
|
@@ -105,18 +110,37 @@
|
|
|
105
110
|
}
|
|
106
111
|
|
|
107
112
|
.zeroDbDot {
|
|
113
|
+
--zero-db-center-y: calc(2px + 3px + 1px + 3px + 2px + 4px);
|
|
114
|
+
|
|
108
115
|
position: absolute;
|
|
109
116
|
left: 66.7%;
|
|
110
|
-
top:
|
|
117
|
+
top: calc(var(--zero-db-center-y) - 1px);
|
|
111
118
|
width: 2px;
|
|
112
119
|
height: 2px;
|
|
113
|
-
|
|
114
|
-
|
|
120
|
+
box-sizing: border-box;
|
|
121
|
+
border-radius: 9999px;
|
|
122
|
+
aspect-ratio: 1;
|
|
123
|
+
background: var(
|
|
124
|
+
--Colors-Neutral-Neutral-Alpha-7,
|
|
125
|
+
rgba(217, 237, 255, 0.25)
|
|
126
|
+
);
|
|
115
127
|
pointer-events: none;
|
|
116
128
|
transform: translateX(-50%);
|
|
129
|
+
transform-origin: center center;
|
|
130
|
+
backface-visibility: hidden;
|
|
131
|
+
transition:
|
|
132
|
+
width 0.1s ease,
|
|
133
|
+
height 0.1s ease,
|
|
134
|
+
top 0.1s ease,
|
|
135
|
+
background-color 0.1s ease;
|
|
117
136
|
}
|
|
118
137
|
|
|
119
138
|
.zeroDbDot.pressed {
|
|
120
139
|
width: 3px;
|
|
121
140
|
height: 3px;
|
|
141
|
+
top: calc(var(--zero-db-center-y) - 1.5px);
|
|
142
|
+
background: var(
|
|
143
|
+
--Colors-Neutral-Neutral-Alpha-8,
|
|
144
|
+
rgba(217, 237, 255, 0.36)
|
|
145
|
+
);
|
|
122
146
|
}
|
|
@@ -2,13 +2,14 @@ import styles from './PanControl.module.css'
|
|
|
2
2
|
import classNames from 'classnames'
|
|
3
3
|
import { useRef, useCallback, useMemo, useState, useEffect } from 'react'
|
|
4
4
|
import { useEventListener } from '../../utils/useEventListener'
|
|
5
|
-
import { Tooltip } from '
|
|
5
|
+
import { Tooltip } from '../Tooltip/Tooltip'
|
|
6
6
|
|
|
7
7
|
const KNOB_CENTER_X = 10
|
|
8
8
|
const KNOB_CENTER_Y = 10
|
|
9
9
|
const KNOB_RADIUS = 9.5
|
|
10
10
|
const START_ANGLE = -Math.PI / 2
|
|
11
11
|
const STEP_SIZE = 0.01
|
|
12
|
+
const KEYBOARD_STEP = STEP_SIZE * 12
|
|
12
13
|
|
|
13
14
|
const clampNorm = (v) => Math.max(-1, Math.min(1, v))
|
|
14
15
|
const denormalize = (normalized, minValue, maxValue) =>
|
|
@@ -30,6 +31,16 @@ export const PanControl = ({
|
|
|
30
31
|
const pendingNormRef = useRef(value)
|
|
31
32
|
const rafRef = useRef(0)
|
|
32
33
|
|
|
34
|
+
const [knobFocused, setKnobFocused] = useState(false)
|
|
35
|
+
const [hoverOpen, setHoverOpen] = useState(false)
|
|
36
|
+
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (disabled) {
|
|
39
|
+
setHoverOpen(false)
|
|
40
|
+
setKnobFocused(false)
|
|
41
|
+
}
|
|
42
|
+
}, [disabled])
|
|
43
|
+
|
|
33
44
|
useEffect(() => {
|
|
34
45
|
if (isDragging) {
|
|
35
46
|
const style = document.createElement('style')
|
|
@@ -111,6 +122,38 @@ export const PanControl = ({
|
|
|
111
122
|
[scheduleEmit],
|
|
112
123
|
)
|
|
113
124
|
|
|
125
|
+
const handleKnobKeyDown = useCallback(
|
|
126
|
+
(e) => {
|
|
127
|
+
if (disabled) return
|
|
128
|
+
let next = value
|
|
129
|
+
switch (e.key) {
|
|
130
|
+
case 'ArrowUp':
|
|
131
|
+
case 'ArrowRight':
|
|
132
|
+
e.preventDefault()
|
|
133
|
+
next = value + KEYBOARD_STEP
|
|
134
|
+
scheduleEmit(next)
|
|
135
|
+
break
|
|
136
|
+
case 'ArrowDown':
|
|
137
|
+
case 'ArrowLeft':
|
|
138
|
+
e.preventDefault()
|
|
139
|
+
next = value - KEYBOARD_STEP
|
|
140
|
+
scheduleEmit(next)
|
|
141
|
+
break
|
|
142
|
+
case 'Home':
|
|
143
|
+
e.preventDefault()
|
|
144
|
+
scheduleEmit(-1)
|
|
145
|
+
break
|
|
146
|
+
case 'End':
|
|
147
|
+
e.preventDefault()
|
|
148
|
+
scheduleEmit(1)
|
|
149
|
+
break
|
|
150
|
+
default:
|
|
151
|
+
break
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
[disabled, value, scheduleEmit],
|
|
155
|
+
)
|
|
156
|
+
|
|
114
157
|
const { arcPath, pointerRotation, arcColor, pointerColor } = useMemo(() => {
|
|
115
158
|
const actual = denormalize(value, minValue, maxValue)
|
|
116
159
|
const displayNorm = clampNorm(actual)
|
|
@@ -138,6 +181,12 @@ export const PanControl = ({
|
|
|
138
181
|
return `Pan: ${Math.abs(pct) < 1 ? 0 : pct}`
|
|
139
182
|
}, [value, minValue, maxValue])
|
|
140
183
|
|
|
184
|
+
const displayNorm = clampNorm(denormalize(value, minValue, maxValue))
|
|
185
|
+
const ariaPanPct = Math.round(displayNorm * 100)
|
|
186
|
+
|
|
187
|
+
const tooltipOpen =
|
|
188
|
+
!disabled && (isDragging || knobFocused || hoverOpen)
|
|
189
|
+
|
|
141
190
|
return (
|
|
142
191
|
<div
|
|
143
192
|
ref={containerRef}
|
|
@@ -148,13 +197,24 @@ export const PanControl = ({
|
|
|
148
197
|
>
|
|
149
198
|
<Tooltip
|
|
150
199
|
content={panValueText}
|
|
151
|
-
open={
|
|
200
|
+
open={tooltipOpen}
|
|
201
|
+
onOpenChange={(next) => {
|
|
202
|
+
if (!disabled) setHoverOpen(next)
|
|
203
|
+
}}
|
|
152
204
|
side="bottom"
|
|
153
205
|
align="center"
|
|
154
|
-
sideOffset={
|
|
206
|
+
sideOffset={3}
|
|
155
207
|
delayDuration={0}
|
|
156
208
|
>
|
|
157
209
|
<div
|
|
210
|
+
role="slider"
|
|
211
|
+
tabIndex={disabled ? -1 : 0}
|
|
212
|
+
aria-label="Pan"
|
|
213
|
+
aria-valuemin={-100}
|
|
214
|
+
aria-valuemax={100}
|
|
215
|
+
aria-valuenow={ariaPanPct}
|
|
216
|
+
aria-valuetext={panValueText}
|
|
217
|
+
aria-disabled={disabled}
|
|
158
218
|
className={classNames(
|
|
159
219
|
styles.pan,
|
|
160
220
|
isDragging && styles.active,
|
|
@@ -164,6 +224,9 @@ export const PanControl = ({
|
|
|
164
224
|
onPointerMove={onPointerMove}
|
|
165
225
|
onPointerUp={onPointerUp}
|
|
166
226
|
onPointerCancel={onPointerUp}
|
|
227
|
+
onFocus={() => setKnobFocused(true)}
|
|
228
|
+
onBlur={() => setKnobFocused(false)}
|
|
229
|
+
onKeyDown={handleKnobKeyDown}
|
|
167
230
|
>
|
|
168
231
|
<svg width={20} height={20} viewBox="0 0 20 20" fill="none">
|
|
169
232
|
<circle cx={KNOB_CENTER_X} cy={KNOB_CENTER_Y} r={10} />
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
box-sizing: border-box;
|
|
3
3
|
width: 20px;
|
|
4
4
|
min-width: 20px;
|
|
5
|
+
height: 20px;
|
|
5
6
|
min-height: 20px;
|
|
6
|
-
height: 100%;
|
|
7
7
|
margin: 0;
|
|
8
8
|
padding: 2px;
|
|
9
9
|
border: none;
|
|
@@ -38,15 +38,18 @@
|
|
|
38
38
|
opacity: 0.5;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
/* Auto Mute inativo — Figma */
|
|
42
41
|
.button.autoMute:not(.active) {
|
|
43
42
|
background: var(--Colors-Neutral-Neutral-Alpha-2, rgba(216, 244, 246, 0.04));
|
|
44
|
-
color: var(--
|
|
43
|
+
color: var(--warning-alpha-12);
|
|
45
44
|
}
|
|
46
45
|
|
|
47
46
|
.button.autoMute:not(.active):hover:not(:disabled) {
|
|
48
47
|
background: var(--Colors-Neutral-Neutral-Alpha-3, rgba(221, 234, 248, 0.08));
|
|
49
|
-
color: var(--colors-semantic-warning-alpha-9);
|
|
48
|
+
color: color-mix(in srgb, var(--warning-alpha-12) 88%, var(--colors-semantic-warning-alpha-9));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.button.autoMute:not(.active):active:not(:disabled) {
|
|
52
|
+
background: var(--Colors-Neutral-Neutral-Alpha-4, rgba(211, 237, 248, 0.11));
|
|
50
53
|
}
|
|
51
54
|
|
|
52
55
|
.button.active.record {
|
|
@@ -59,18 +62,35 @@
|
|
|
59
62
|
color: var(--colors-neutral-neutral-1);
|
|
60
63
|
}
|
|
61
64
|
|
|
62
|
-
.button.active.mute
|
|
63
|
-
.button.active.autoMute {
|
|
65
|
+
.button.active.mute {
|
|
64
66
|
background-color: var(--colors-semantic-warning-alpha-9);
|
|
65
67
|
color: var(--colors-neutral-neutral-1);
|
|
66
68
|
}
|
|
67
69
|
|
|
68
|
-
.button.active.mute:hover:not(:disabled)
|
|
69
|
-
.button.active.autoMute:hover:not(:disabled) {
|
|
70
|
+
.button.active.mute:hover:not(:disabled) {
|
|
70
71
|
background-color: var(--colors-semantic-warning-alpha-9);
|
|
71
72
|
color: var(--colors-neutral-neutral-1);
|
|
72
73
|
}
|
|
73
74
|
|
|
75
|
+
.button.active.mute:active:not(:disabled) {
|
|
76
|
+
filter: brightness(0.92);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.button.active.autoMute {
|
|
80
|
+
background-color: var(--warning-alpha-12);
|
|
81
|
+
color: var(--colors-neutral-neutral-1);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.button.active.autoMute:hover:not(:disabled) {
|
|
85
|
+
background-color: color-mix(in srgb, var(--warning-alpha-12) 78%, var(--colors-semantic-warning-alpha-9));
|
|
86
|
+
color: var(--colors-neutral-neutral-1);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.button.active.autoMute:active:not(:disabled) {
|
|
90
|
+
background-color: color-mix(in srgb, var(--warning-alpha-12) 62%, var(--colors-semantic-warning-alpha-9));
|
|
91
|
+
color: var(--colors-neutral-neutral-1);
|
|
92
|
+
}
|
|
93
|
+
|
|
74
94
|
.button.active.solo {
|
|
75
95
|
background-color: var(--colors-accent-accent-10);
|
|
76
96
|
color: var(--colors-neutral-neutral-1);
|
|
@@ -3,6 +3,10 @@ import { TrackControlButton } from '../TrackControlButton/TrackControlButton'
|
|
|
3
3
|
/**
|
|
4
4
|
* @deprecated Use `TrackControlButton` with `variant={type}` and `isActive={selected}`.
|
|
5
5
|
* Maintained for backward compatibility.
|
|
6
|
+
*
|
|
7
|
+
* @param {Object} props
|
|
8
|
+
* @param {'record' | 'mute' | 'autoMute' | 'solo'} props.type
|
|
9
|
+
* @param {boolean} [props.selected]
|
|
6
10
|
*/
|
|
7
11
|
export const TrackControlsToggle = ({
|
|
8
12
|
type,
|
|
@@ -98,6 +98,28 @@ export const MuteSelected = {
|
|
|
98
98
|
},
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
export const AutoMuteSelected = {
|
|
102
|
+
args: {
|
|
103
|
+
type: 'autoMute',
|
|
104
|
+
selected: true,
|
|
105
|
+
tooltipContent: {
|
|
106
|
+
text: 'Muted by solo',
|
|
107
|
+
shortcut: 'M',
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export const AutoMuteInactive = {
|
|
113
|
+
args: {
|
|
114
|
+
type: 'autoMute',
|
|
115
|
+
selected: false,
|
|
116
|
+
tooltipContent: {
|
|
117
|
+
text: 'Muted by solo (inactive)',
|
|
118
|
+
shortcut: 'M',
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
}
|
|
122
|
+
|
|
101
123
|
export const AllStates = {
|
|
102
124
|
parameters: {
|
|
103
125
|
docs: {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const ArrowEnterIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 24 24" fill="none" className={className} {...props}>
|
|
3
|
+
<path
|
|
4
|
+
d="M9.14096 7.0576L2.89832 13.3002M2.89832 13.3002L9.14096 19.5429M2.89832 13.3002L17.1017 13.3003C19.3109 13.3003 21.1018 11.5094 21.1017 9.30025L21.1017 4.45715"
|
|
5
|
+
stroke="currentColor"
|
|
6
|
+
strokeWidth="1.5"
|
|
7
|
+
strokeLinecap="round"
|
|
8
|
+
strokeLinejoin="round"
|
|
9
|
+
/>
|
|
10
|
+
</svg>
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
ArrowEnterIcon.displayName = 'ArrowEnterIcon'
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const CloudUploadErrorIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
3
|
+
width={width} height={height} viewBox="0 0 24 24" fill="none" className={className} {...props}>
|
|
4
|
+
<path
|
|
5
|
+
d="M9.32809 14.6719L7.99997 16M12 17V21M19.5 19C19.5 19 21.8452 17.6832 22.5798 15.9986C23.0239 14.9804 23.1162 13.8432 22.8422 12.7667C22.5682 11.6902 21.9434 10.7355 21.0666 10.0535C20.1898 9.3714 19.1108 9.00075 18 9.00001H16.74C16.4373 7.82926 15.8731 6.74235 15.0899 5.82101C14.3067 4.89967 13.3248 4.16786 12.2181 3.68062C11.1113 3.19338 9.90851 2.96337 8.70008 3.0079C7.49164 3.05242 6 3.50003 5 4.50003M2.99996 16.3C2.1992 15.3939 1.61428 14.318 1.28917 13.1533C0.964065 11.9885 0.90723 10.7653 1.12294 9.57541C1.28765 8.66685 1.608 7.79584 2.06783 7.00003M2.99997 3L21 21"
|
|
6
|
+
stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
|
|
7
|
+
</svg>
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
CloudUploadErrorIcon.displayName = 'CloudUploadErrorIcon'
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const CommandIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 24 24" fill="none" className={className} {...props}>
|
|
3
|
+
<path
|
|
4
|
+
d="M9 9V6C9 4.34315 7.65685 3 6 3C4.34315 3 3 4.34315 3 6C3 7.65685 4.34315 9 6 9H9ZM9 9V15M9 9H15M15 9V6C15 4.34315 16.3431 3 18 3C19.6569 3 21 4.34315 21 6C21 7.65685 19.6569 9 18 9H15ZM15 9V15M9 15V18C9 19.6569 7.65685 21 6 21C4.34315 21 3 19.6569 3 18C3 16.3431 4.34315 15 6 15H9ZM9 15H15M15 15V18C15 19.6569 16.3431 21 18 21C19.6569 21 21 19.6569 21 18C21 16.3431 19.6569 15 18 15H15Z"
|
|
5
|
+
stroke="currentColor"
|
|
6
|
+
strokeWidth="1.5" />
|
|
7
|
+
</svg>
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
CommandIcon.displayName = 'CommandIcon'
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const FunctionIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 24 24" fill="none" className={className} {...props}>
|
|
3
|
+
<path d="M5.57248 20.4999V10.0602M5.57248 10.0602V5.66871C5.57248 4.47097 6.54345 3.5 7.7412 3.5C8.38723 3.5 9.02759 3.62052 9.62941 3.85538L10 4M5.57248 10.0602H2.51178M5.57248 10.0602H10M14.1424 20.4999V15.125M14.1424 15.125C14.1424 12.0523 15.219 11.3223 16.1875 10.8125C18.4852 9.60317 21.4881 9.84375 21.4881 14.2188V20.4999M14.1424 15.125V10.0602" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" />
|
|
4
|
+
</svg>
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
FunctionIcon.displayName = 'FunctionIcon'
|
|
@@ -1,69 +1,11 @@
|
|
|
1
|
-
export const MagicWandIcon = ({ width, height, className, ...props }) => (
|
|
2
|
-
<svg
|
|
3
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
4
|
-
width={width}
|
|
5
|
-
height={height}
|
|
6
|
-
viewBox="0 0 16 16"
|
|
7
|
-
fill="none"
|
|
8
|
-
className={className}
|
|
9
|
-
{...props}
|
|
10
|
-
>
|
|
1
|
+
export const MagicWandIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 24 24" fill="none" className={className} {...props}>
|
|
11
3
|
<path
|
|
12
|
-
d="
|
|
4
|
+
d="M19.3777 13.5788V16.3419M19.3777 16.3419V19.1051M19.3777 16.3419H22.1277M19.3777 16.3419H16.6277M14.2666 5.421L17.4999 8.66974M9.49993 5.42105C7.37965 5.42028 5.65952 3.69608 5.64637 1.56422C5.63324 3.69364 3.91687 5.41636 1.79993 5.42106C3.92455 5.42578 5.64553 7.16097 5.6463 9.30106C5.64707 7.15854 7.37197 5.42183 9.49993 5.42105ZM2.13661 19.1051L4.31785 21.2967C4.74742 21.7284 5.44391 21.7284 5.87348 21.2967L21.5589 5.53624C21.9885 5.10461 21.9885 4.40479 21.5589 3.97316L19.3777 1.78149C18.9481 1.34986 18.2517 1.34986 17.8221 1.78149L2.13661 17.542C1.70704 17.9736 1.70703 18.6734 2.13661 19.1051Z"
|
|
13
5
|
stroke="currentColor"
|
|
14
|
-
strokeWidth="1.
|
|
6
|
+
strokeWidth="1.5"
|
|
15
7
|
strokeLinecap="round"
|
|
16
|
-
strokeLinejoin="round"
|
|
17
|
-
/>
|
|
18
|
-
<path
|
|
19
|
-
d="M8.33301 7.66699L10.333 5.66699"
|
|
20
|
-
stroke="currentColor"
|
|
21
|
-
strokeWidth="1.13"
|
|
22
|
-
strokeLinecap="round"
|
|
23
|
-
strokeLinejoin="round"
|
|
24
|
-
/>
|
|
25
|
-
<path
|
|
26
|
-
d="M11.667 1.33301V4.33301"
|
|
27
|
-
stroke="currentColor"
|
|
28
|
-
strokeWidth="1.13"
|
|
29
|
-
strokeLinecap="round"
|
|
30
|
-
strokeLinejoin="round"
|
|
31
|
-
/>
|
|
32
|
-
<path
|
|
33
|
-
d="M13.167 2.83301H10.167"
|
|
34
|
-
stroke="currentColor"
|
|
35
|
-
strokeWidth="1.13"
|
|
36
|
-
strokeLinecap="round"
|
|
37
|
-
strokeLinejoin="round"
|
|
38
|
-
/>
|
|
39
|
-
<path
|
|
40
|
-
d="M5.33301 2.33301V4.33301"
|
|
41
|
-
stroke="currentColor"
|
|
42
|
-
strokeWidth="1.13"
|
|
43
|
-
strokeLinecap="round"
|
|
44
|
-
strokeLinejoin="round"
|
|
45
|
-
/>
|
|
46
|
-
<path
|
|
47
|
-
d="M6.33301 3.33301H4.33301"
|
|
48
|
-
stroke="currentColor"
|
|
49
|
-
strokeWidth="1.13"
|
|
50
|
-
strokeLinecap="round"
|
|
51
|
-
strokeLinejoin="round"
|
|
52
|
-
/>
|
|
53
|
-
<path
|
|
54
|
-
d="M13.333 9.33301V11.333"
|
|
55
|
-
stroke="currentColor"
|
|
56
|
-
strokeWidth="1.13"
|
|
57
|
-
strokeLinecap="round"
|
|
58
|
-
strokeLinejoin="round"
|
|
59
|
-
/>
|
|
60
|
-
<path
|
|
61
|
-
d="M14.333 10.333H12.333"
|
|
62
|
-
stroke="currentColor"
|
|
63
|
-
strokeWidth="1.13"
|
|
64
|
-
strokeLinecap="round"
|
|
65
|
-
strokeLinejoin="round"
|
|
66
|
-
/>
|
|
8
|
+
strokeLinejoin="round" />
|
|
67
9
|
</svg>
|
|
68
10
|
)
|
|
69
11
|
|
package/src/icons/MinusIcon.jsx
CHANGED
|
@@ -7,7 +7,7 @@ export const MinusIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
|
7
7
|
fill="none"
|
|
8
8
|
className={className} {...props}>
|
|
9
9
|
<g >
|
|
10
|
-
<path d="M3.33325 8H12.6666" stroke="currentColor"
|
|
10
|
+
<path d="M3.33325 8H12.6666" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
|
|
11
11
|
</g>
|
|
12
12
|
</svg>
|
|
13
13
|
)
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const NoSendIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 24 24" fill="none" className={className} {...props}>
|
|
3
|
+
<path d="M22 3L22.6568 3.36207C22.7849 3.12973 22.7807 2.84702 22.6458 2.61859C22.5109 2.39016 22.2653 2.25 22 2.25V3ZM14.2811 18.5562C14.481 18.1934 14.3491 17.7373 13.9863 17.5373C13.6236 17.3373 13.1674 17.4693 12.9675 17.832L14.2811 18.5562ZM12.0775 21L11.3659 21.2367C11.4599 21.5194 11.7124 21.7197 12.0091 21.7469C12.3058 21.7741 12.5905 21.623 12.7343 21.3621L12.0775 21ZM10.5858 14.1386C10.4551 13.7455 10.0305 13.5329 9.63745 13.6636C9.24441 13.7943 9.03175 14.2189 9.16248 14.612L10.5858 14.1386ZM2.03033 0.96967C1.73744 0.676777 1.26256 0.676777 0.96967 0.96967C0.676777 1.26256 0.676777 1.73744 0.96967 2.03033L2.03033 0.96967ZM19.9697 21.0303C20.2626 21.3232 20.7374 21.3232 21.0303 21.0303C21.3232 20.7374 21.3232 20.2626 21.0303 19.9697L19.9697 21.0303ZM2.875 3V3.75H22V3V2.25H2.875V3ZM22 3L21.613 2.35755L9.79164 9.47811L10.1786 10.1206L10.5656 10.763L22.387 3.64245L22 3ZM13.6243 18.1941L12.9675 17.832L11.4207 20.6379L12.0775 21L12.7343 21.3621L14.2811 18.5562L13.6243 18.1941ZM12.0775 21L12.7892 20.7633L10.5858 14.1386L9.87415 14.3753L9.16248 14.612L11.3659 21.2367L12.0775 21ZM1.5 1.5L0.96967 2.03033L19.9697 21.0303L20.5 20.5L21.0303 19.9697L2.03033 0.96967L1.5 1.5ZM22 3L21.3432 2.63793L14.6747 14.735L15.3315 15.0971L15.9883 15.4591L22.6568 3.36207L22 3Z"
|
|
4
|
+
fill="currentColor" />
|
|
5
|
+
</svg>
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
NoSendIcon.displayName = 'NoSendIcon'
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const NoSmartphoneIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 24 24" fill="none" className={className} {...props}>
|
|
3
|
+
<path d="M17.5 23.75C17.9142 23.75 18.25 23.4142 18.25 23C18.25 22.5858 17.9142 22.25 17.5 22.25V23.75ZM4.25 4.85742C4.25 5.27164 4.58579 5.60742 5 5.60742C5.41421 5.60742 5.75 5.27164 5.75 4.85742H4.25ZM5.75 9.85742C5.75 9.44321 5.41421 9.10742 5 9.10742C4.58579 9.10742 4.25 9.44321 4.25 9.85742H5.75ZM18.25 18.8574C18.25 19.2716 18.5858 19.6074 19 19.6074C19.4142 19.6074 19.75 19.2716 19.75 18.8574H18.25ZM14.25 2.25V3C14.6642 3 15 2.66421 15 2.25H14.25ZM9.75 2.25H9C9 2.66421 9.33579 3 9.75 3V2.25ZM2.03033 0.887752C1.73744 0.594859 1.26256 0.594859 0.96967 0.887752C0.676777 1.18065 0.676777 1.65552 0.96967 1.94841L2.03033 0.887752ZM21.909 22.8878C22.2019 23.1806 22.6768 23.1806 22.9697 22.8878C23.2626 22.5949 23.2626 22.12 22.9697 21.8271L21.909 22.8878ZM7 23.75H17.5V22.25H7V23.75ZM4.25 21C4.25 22.5188 5.48122 23.75 7 23.75V22.25C6.30964 22.25 5.75 21.6904 5.75 21H4.25ZM7 0.25C5.48122 0.25 4.25 1.48122 4.25 3H5.75C5.75 2.30964 6.30964 1.75 7 1.75V0.25ZM17 1.75C17.6904 1.75 18.25 2.30964 18.25 3H19.75C19.75 1.48122 18.5188 0.25 17 0.25V1.75ZM4.25 3V4.85742H5.75V3H4.25ZM4.25 9.85742V21H5.75V9.85742H4.25ZM19.75 18.8574V3H18.25V18.8574H19.75ZM14.25 1.5H9.75V3H14.25V1.5ZM0.96967 1.94841L21.909 22.8878L22.9697 21.8271L2.03033 0.887752L0.96967 1.94841ZM17 0.25H14.25V1.75H17V0.25ZM15 2.25V1H13.5V2.25H15ZM14.25 0.25H9.75V1.75H14.25V0.25ZM9.75 0.25H7V1.75H9.75V0.25ZM10.5 2.25V1H9V2.25H10.5Z" fill="white" />
|
|
4
|
+
</svg>
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
NoSmartphoneIcon.displayName = 'NoSmartphoneIcon'
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export const OptionIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 24 24" fill="none" className={className} {...props}>
|
|
3
|
+
<path d="M1.99994 5.22729H8.08822L15.9077 18.771L22 18.7728M16 5.22732H22" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" />
|
|
4
|
+
</svg>
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
OptionIcon.displayName = 'OptionIcon'
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const QrCodeIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 24 24" fill="none" className={className} {...props}>
|
|
3
|
+
<path
|
|
4
|
+
d="M14.75 14H14V14.75M16.75 16H16V16.75M18.75 18H18V18.75M18.75 14H18V14.75M14.75 18H14V18.75M8 2H2V8M22 8V2L16 2M16 22H22V16M2 16L2 22H8M6 6H10V10H6V6ZM14 6H18V10H14V6ZM6 14H10V18H6V14Z"
|
|
5
|
+
stroke="currentColor" strokeWidth="1.5" />
|
|
6
|
+
</svg>
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
QrCodeIcon.displayName = 'QrCodeIcon'
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const SendIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg"
|
|
3
|
+
width={width}
|
|
4
|
+
height={height}
|
|
5
|
+
viewBox="0 0 24 24"
|
|
6
|
+
fill="none"
|
|
7
|
+
className={className} {...props}>
|
|
8
|
+
<path
|
|
9
|
+
d="M22 3L12.0775 21L8.74605 10.9835L2 3H22ZM22 3L8.74008 10.9871"
|
|
10
|
+
stroke="currentColor"
|
|
11
|
+
strokeWidth="1.5"
|
|
12
|
+
strokeLinejoin="round" />
|
|
13
|
+
</svg>
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
SendIcon.displayName = 'SendIcon'
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const Settings2Icon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 24 24" fill="none" className={className} {...props}>
|
|
3
|
+
<path
|
|
4
|
+
d="M16 12C16 14.2091 14.2091 16 12 16C9.79086 16 8 14.2091 8 12C8 9.79086 9.79086 8 12 8C14.2091 8 16 9.79086 16 12Z"
|
|
5
|
+
stroke="currentColor"
|
|
6
|
+
strokeWidth="1.5" />
|
|
7
|
+
<path
|
|
8
|
+
d="M10.9214 23C10.5939 23 10.3197 22.911 10.099 22.733C9.88544 22.555 9.73948 22.2951 9.66117 21.9534L9.1699 19.8175L8.42233 19.5505L6.56408 20.7146C6.27929 20.9068 5.9945 20.9851 5.70971 20.9495C5.43204 20.921 5.17573 20.7893 4.94078 20.5544L3.43495 19.0592C3.19288 18.8243 3.05761 18.5644 3.02913 18.2796C3.00065 17.9948 3.07896 17.71 3.26408 17.4252L4.43884 15.567L4.16117 14.8408L2.0466 14.3388C1.70485 14.2605 1.44498 14.1146 1.26699 13.901C1.089 13.6803 1 13.4061 1 13.0786V10.932C1 10.6045 1.089 10.334 1.26699 10.1204C1.44498 9.89968 1.70485 9.75016 2.0466 9.67184L4.16117 9.1699L4.43884 8.43301L3.26408 6.58544C3.07896 6.29353 3.00065 6.00874 3.02913 5.73107C3.05761 5.44628 3.19288 5.18641 3.43495 4.95146L4.94078 3.44563C5.17573 3.21068 5.43204 3.07896 5.70971 3.05049C5.98738 3.02201 6.27217 3.10032 6.56408 3.28544L8.42233 4.46019L9.1699 4.18252L9.66117 2.0466C9.73948 1.70485 9.88544 1.44498 10.099 1.26699C10.3197 1.089 10.5939 1 10.9214 1H13.0786C13.4133 1 13.6874 1.089 13.901 1.26699C14.1146 1.44498 14.2605 1.70485 14.3388 2.0466L14.8301 4.18252L15.567 4.46019L17.4359 3.28544C17.7207 3.10032 18.0019 3.02201 18.2796 3.05049C18.5573 3.07896 18.8136 3.21068 19.0485 3.44563L20.565 4.95146C20.8 5.18641 20.9317 5.44628 20.9602 5.73107C20.9958 6.00874 20.921 6.29353 20.7359 6.58544L19.5505 8.43301L19.8282 9.1699L21.9534 9.67184C22.2951 9.75016 22.555 9.89968 22.733 10.1204C22.911 10.334 23 10.6045 23 10.932V13.0786C23 13.4061 22.911 13.6803 22.733 13.901C22.555 14.1146 22.2951 14.2605 21.9534 14.3388L19.8282 14.8408L19.5505 15.567L20.7252 17.4252C20.9104 17.71 20.9851 17.9948 20.9495 18.2796C20.921 18.5644 20.7893 18.8243 20.5544 19.0592L19.0485 20.5544C18.8136 20.7893 18.5537 20.921 18.2689 20.9495C17.9913 20.9851 17.71 20.9068 17.4252 20.7146L15.567 19.5505L14.8301 19.8175L14.3388 21.9534C14.2605 22.2951 14.1146 22.555 13.901 22.733C13.6874 22.911 13.4133 23 13.0786 23H10.9214Z"
|
|
9
|
+
stroke="currentColor"
|
|
10
|
+
strokeWidth="1.5" />
|
|
11
|
+
</svg>
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
Settings2Icon.displayName = 'Settings2Icon'
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export const ShapesIcon = ({ width = 16, height = 16, className, ...props }) => (
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" width={width} height={height} viewBox="0 0 24 24" fill="none" className={className} {...props}>
|
|
3
|
+
<path
|
|
4
|
+
d="M16.4982 8.20641H17.2482V8.17012L17.2447 8.134L16.4982 8.20641ZM11 9.75H20V8.25H11V9.75ZM20 9.75C20.6904 9.75 21.25 10.3096 21.25 11H22.75C22.75 9.48122 21.5188 8.25 20 8.25V9.75ZM21.25 11V20H22.75V11H21.25ZM21.25 20C21.25 20.6904 20.6904 21.25 20 21.25V22.75C21.5188 22.75 22.75 21.5188 22.75 20H21.25ZM20 21.25H11V22.75H20V21.25ZM11 21.25C10.3096 21.25 9.75 20.6904 9.75 20H8.25C8.25 21.5188 9.48122 22.75 11 22.75V21.25ZM9.75 20V11H8.25V20H9.75ZM9.75 11C9.75 10.3096 10.3096 9.75 11 9.75V8.25C9.48122 8.25 8.25 9.48122 8.25 11H9.75ZM2.24817 8.93961C2.24817 5.20725 5.27739 2.18018 9.01586 2.18018V0.680176C4.45052 0.680176 0.748169 4.37727 0.748169 8.93961H2.24817ZM9.01586 2.18018C12.5309 2.18018 15.4197 4.85685 15.7517 8.27882L17.2447 8.134C16.8387 3.94945 13.3094 0.680176 9.01586 0.680176V2.18018ZM8.53162 15.682C5.01961 15.4344 2.24817 12.5094 2.24817 8.93961H0.748169C0.748169 13.3038 4.13557 16.8758 8.42614 17.1783L8.53162 15.682ZM15.7482 8.20641V8.93018H17.2482V8.20641H15.7482Z"
|
|
5
|
+
fill="currentColor" />
|
|
6
|
+
</svg>
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
ShapesIcon.displayName = 'ShapesIcon'
|