@vidtreo/recorder-react 0.8.0 → 0.8.2
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/README.md +279 -0
- package/dist/index.d.ts +112 -0
- package/dist/index.js +1 -99
- package/dist/recorder-react.css +1 -1
- package/package.json +14 -10
- package/dist/ssr.js +0 -1
package/README.md
CHANGED
|
@@ -55,6 +55,8 @@ import VidtreoRecorder from '@vidtreo/recorder-react';
|
|
|
55
55
|
| `enableMute` | `boolean` | No | `true` | Enable mute/unmute functionality |
|
|
56
56
|
| `enablePause` | `boolean` | No | `true` | Enable pause/resume functionality |
|
|
57
57
|
| `enableDeviceChange` | `boolean` | No | `true` | Enable camera/microphone selection |
|
|
58
|
+
| `lang` | `string` | No | `"en"` | Language code for UI text (`"en"` or `"es"`) |
|
|
59
|
+
| `texts` | `PartialTranslations` | No | - | Custom text overrides for localization |
|
|
58
60
|
| `onUploadComplete` | `(result: { recordingId: string; uploadUrl: string }) => void` | No | - | Callback when upload completes |
|
|
59
61
|
| `onUploadProgress` | `(progress: number) => void` | No | - | Callback for upload progress (0-1) |
|
|
60
62
|
| `onUploadError` | `(error: Error) => void` | No | - | Callback when upload fails |
|
|
@@ -231,6 +233,282 @@ This package contains:
|
|
|
231
233
|
|
|
232
234
|
The core SDK functionality is provided by the `@vidtreo/recorder` package.
|
|
233
235
|
|
|
236
|
+
## Internationalization (i18n)
|
|
237
|
+
|
|
238
|
+
The React component supports multiple languages and custom text overrides, making it easy to localize the recorder interface for your users.
|
|
239
|
+
|
|
240
|
+
### Supported Languages
|
|
241
|
+
|
|
242
|
+
- **English** (`en`) - Default
|
|
243
|
+
- **Spanish** (`es`)
|
|
244
|
+
|
|
245
|
+
### Basic Usage
|
|
246
|
+
|
|
247
|
+
#### Using Built-in Languages
|
|
248
|
+
|
|
249
|
+
```tsx
|
|
250
|
+
import VidtreoRecorder from '@vidtreo/recorder-react';
|
|
251
|
+
|
|
252
|
+
// English (default)
|
|
253
|
+
function App() {
|
|
254
|
+
return (
|
|
255
|
+
<VidtreoRecorder
|
|
256
|
+
backendUrl="https://your-backend.com"
|
|
257
|
+
apiKey="your-api-key"
|
|
258
|
+
/>
|
|
259
|
+
);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
// Spanish
|
|
263
|
+
function App() {
|
|
264
|
+
return (
|
|
265
|
+
<VidtreoRecorder
|
|
266
|
+
backendUrl="https://your-backend.com"
|
|
267
|
+
apiKey="your-api-key"
|
|
268
|
+
lang="es"
|
|
269
|
+
/>
|
|
270
|
+
);
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
#### Custom Text Overrides
|
|
275
|
+
|
|
276
|
+
Override any text by passing an object to the `texts` prop:
|
|
277
|
+
|
|
278
|
+
```tsx
|
|
279
|
+
import VidtreoRecorder from '@vidtreo/recorder-react';
|
|
280
|
+
|
|
281
|
+
function App() {
|
|
282
|
+
return (
|
|
283
|
+
<VidtreoRecorder
|
|
284
|
+
backendUrl="https://your-backend.com"
|
|
285
|
+
apiKey="your-api-key"
|
|
286
|
+
lang="en"
|
|
287
|
+
texts={{
|
|
288
|
+
record: 'Start Recording',
|
|
289
|
+
stop: 'End Recording',
|
|
290
|
+
settings: 'Options'
|
|
291
|
+
}}
|
|
292
|
+
/>
|
|
293
|
+
);
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
#### Complete Custom Translations (e.g., French)
|
|
298
|
+
|
|
299
|
+
```tsx
|
|
300
|
+
import VidtreoRecorder from '@vidtreo/recorder-react';
|
|
301
|
+
|
|
302
|
+
function App() {
|
|
303
|
+
const frenchTranslations = {
|
|
304
|
+
initializingCamera: 'Initialisation de la caméra...',
|
|
305
|
+
grantPermissions: 'Accordez les autorisations de caméra et de microphone',
|
|
306
|
+
switchingDevice: 'Changement d\'appareil...',
|
|
307
|
+
recordingStartsIn: 'L\'enregistrement commence dans...',
|
|
308
|
+
switchingSource: 'Changement de source...',
|
|
309
|
+
rec: 'ENREG',
|
|
310
|
+
settings: 'Paramètres',
|
|
311
|
+
record: 'Enregistrer',
|
|
312
|
+
stop: 'Arrêter',
|
|
313
|
+
pause: 'Pause',
|
|
314
|
+
resume: 'Reprendre',
|
|
315
|
+
mute: 'Muet',
|
|
316
|
+
unmute: 'Activer le son',
|
|
317
|
+
switchSource: 'Changer de Source',
|
|
318
|
+
camera: 'Caméra',
|
|
319
|
+
microphone: 'Microphone',
|
|
320
|
+
uploading: 'Téléchargement...',
|
|
321
|
+
};
|
|
322
|
+
|
|
323
|
+
return (
|
|
324
|
+
<VidtreoRecorder
|
|
325
|
+
backendUrl="https://your-backend.com"
|
|
326
|
+
apiKey="your-api-key"
|
|
327
|
+
lang="fr"
|
|
328
|
+
texts={frenchTranslations}
|
|
329
|
+
/>
|
|
330
|
+
);
|
|
331
|
+
}
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### Dynamic Language Change
|
|
335
|
+
|
|
336
|
+
```tsx
|
|
337
|
+
import { useState } from 'react';
|
|
338
|
+
import VidtreoRecorder from '@vidtreo/recorder-react';
|
|
339
|
+
|
|
340
|
+
function App() {
|
|
341
|
+
const [language, setLanguage] = useState('en');
|
|
342
|
+
|
|
343
|
+
return (
|
|
344
|
+
<div>
|
|
345
|
+
<select value={language} onChange={(e) => setLanguage(e.target.value)}>
|
|
346
|
+
<option value="en">English</option>
|
|
347
|
+
<option value="es">Español</option>
|
|
348
|
+
</select>
|
|
349
|
+
|
|
350
|
+
<VidtreoRecorder
|
|
351
|
+
backendUrl="https://your-backend.com"
|
|
352
|
+
apiKey="your-api-key"
|
|
353
|
+
lang={language}
|
|
354
|
+
/>
|
|
355
|
+
</div>
|
|
356
|
+
);
|
|
357
|
+
}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
### Available Translation Keys
|
|
361
|
+
|
|
362
|
+
| Key | English Default | Spanish Default |
|
|
363
|
+
|-----|----------------|-----------------|
|
|
364
|
+
| `initializingCamera` | Initializing camera... | Inicializando cámara... |
|
|
365
|
+
| `grantPermissions` | Grant camera and microphone permissions when prompted | Otorga permisos de cámara y micrófono cuando se solicite |
|
|
366
|
+
| `switchingDevice` | Switching device... | Cambiando dispositivo... |
|
|
367
|
+
| `recordingStartsIn` | Recording starts in... | La grabación comienza en... |
|
|
368
|
+
| `switchingSource` | Switching source... | Cambiando fuente... |
|
|
369
|
+
| `rec` | REC | GRAB |
|
|
370
|
+
| `settings` | Settings | Configuración |
|
|
371
|
+
| `record` | Record | Grabar |
|
|
372
|
+
| `stop` | Stop | Detener |
|
|
373
|
+
| `pause` | Pause | Pausar |
|
|
374
|
+
| `resume` | Resume | Reanudar |
|
|
375
|
+
| `mute` | Mute | Silenciar |
|
|
376
|
+
| `unmute` | Unmute | Activar sonido |
|
|
377
|
+
| `switchSource` | Switch Source | Cambiar Fuente |
|
|
378
|
+
| `camera` | Camera | Cámara |
|
|
379
|
+
| `microphone` | Microphone | Micrófono |
|
|
380
|
+
| `uploading` | Uploading... | Subiendo... |
|
|
381
|
+
|
|
382
|
+
### TypeScript Support
|
|
383
|
+
|
|
384
|
+
The package exports types for better type safety:
|
|
385
|
+
|
|
386
|
+
```tsx
|
|
387
|
+
import VidtreoRecorder from '@vidtreo/recorder-react';
|
|
388
|
+
import type { PartialTranslations } from '@vidtreo/recorder-react';
|
|
389
|
+
|
|
390
|
+
function App() {
|
|
391
|
+
const customTexts: PartialTranslations = {
|
|
392
|
+
record: 'Start Capture',
|
|
393
|
+
stop: 'End Capture',
|
|
394
|
+
};
|
|
395
|
+
|
|
396
|
+
return (
|
|
397
|
+
<VidtreoRecorder
|
|
398
|
+
backendUrl="https://your-backend.com"
|
|
399
|
+
apiKey="your-api-key"
|
|
400
|
+
texts={customTexts}
|
|
401
|
+
/>
|
|
402
|
+
);
|
|
403
|
+
}
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
### Multilingual Application with Context
|
|
407
|
+
|
|
408
|
+
```tsx
|
|
409
|
+
import { createContext, useContext, useState } from 'react';
|
|
410
|
+
import VidtreoRecorder from '@vidtreo/recorder-react';
|
|
411
|
+
|
|
412
|
+
const LanguageContext = createContext({
|
|
413
|
+
language: 'en',
|
|
414
|
+
setLanguage: (lang: string) => {}
|
|
415
|
+
});
|
|
416
|
+
|
|
417
|
+
function LanguageProvider({ children }: { children: React.ReactNode }) {
|
|
418
|
+
const [language, setLanguage] = useState('en');
|
|
419
|
+
|
|
420
|
+
return (
|
|
421
|
+
<LanguageContext.Provider value={{ language, setLanguage }}>
|
|
422
|
+
{children}
|
|
423
|
+
</LanguageContext.Provider>
|
|
424
|
+
);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
function RecorderComponent() {
|
|
428
|
+
const { language } = useContext(LanguageContext);
|
|
429
|
+
|
|
430
|
+
return (
|
|
431
|
+
<VidtreoRecorder
|
|
432
|
+
backendUrl="https://your-backend.com"
|
|
433
|
+
apiKey="your-api-key"
|
|
434
|
+
lang={language}
|
|
435
|
+
/>
|
|
436
|
+
);
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
function LanguageSelector() {
|
|
440
|
+
const { language, setLanguage } = useContext(LanguageContext);
|
|
441
|
+
|
|
442
|
+
return (
|
|
443
|
+
<select value={language} onChange={(e) => setLanguage(e.target.value)}>
|
|
444
|
+
<option value="en">English</option>
|
|
445
|
+
<option value="es">Español</option>
|
|
446
|
+
</select>
|
|
447
|
+
);
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
function App() {
|
|
451
|
+
return (
|
|
452
|
+
<LanguageProvider>
|
|
453
|
+
<LanguageSelector />
|
|
454
|
+
<RecorderComponent />
|
|
455
|
+
</LanguageProvider>
|
|
456
|
+
);
|
|
457
|
+
}
|
|
458
|
+
```
|
|
459
|
+
|
|
460
|
+
### Partial Override Example
|
|
461
|
+
|
|
462
|
+
Use a base language but override specific texts:
|
|
463
|
+
|
|
464
|
+
```tsx
|
|
465
|
+
import VidtreoRecorder from '@vidtreo/recorder-react';
|
|
466
|
+
|
|
467
|
+
function App() {
|
|
468
|
+
return (
|
|
469
|
+
<VidtreoRecorder
|
|
470
|
+
backendUrl="https://your-backend.com"
|
|
471
|
+
apiKey="your-api-key"
|
|
472
|
+
lang="en"
|
|
473
|
+
texts={{
|
|
474
|
+
record: '🔴 Start Capture',
|
|
475
|
+
stop: '⏹️ End Capture',
|
|
476
|
+
settings: 'Options'
|
|
477
|
+
}}
|
|
478
|
+
/>
|
|
479
|
+
);
|
|
480
|
+
}
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
### Loading Translations from API
|
|
484
|
+
|
|
485
|
+
```tsx
|
|
486
|
+
import { useState, useEffect } from 'react';
|
|
487
|
+
import VidtreoRecorder from '@vidtreo/recorder-react';
|
|
488
|
+
import type { PartialTranslations } from '@vidtreo/recorder-react';
|
|
489
|
+
|
|
490
|
+
function App() {
|
|
491
|
+
const [language, setLanguage] = useState('en');
|
|
492
|
+
const [translations, setTranslations] = useState<PartialTranslations>({});
|
|
493
|
+
|
|
494
|
+
useEffect(() => {
|
|
495
|
+
// Load translations from your API
|
|
496
|
+
fetch(`/api/translations/${language}`)
|
|
497
|
+
.then(res => res.json())
|
|
498
|
+
.then(data => setTranslations(data));
|
|
499
|
+
}, [language]);
|
|
500
|
+
|
|
501
|
+
return (
|
|
502
|
+
<VidtreoRecorder
|
|
503
|
+
backendUrl="https://your-backend.com"
|
|
504
|
+
apiKey="your-api-key"
|
|
505
|
+
lang={language}
|
|
506
|
+
texts={translations}
|
|
507
|
+
/>
|
|
508
|
+
);
|
|
509
|
+
}
|
|
510
|
+
```
|
|
511
|
+
|
|
234
512
|
## License
|
|
235
513
|
|
|
236
514
|
MIT
|
|
@@ -242,3 +520,4 @@ MIT
|
|
|
242
520
|
|
|
243
521
|
|
|
244
522
|
|
|
523
|
+
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { RecorderController, RecordingState, RecordingState as RecordingState$1, RecordingStopResult, RecordingStopResult as RecordingStopResult$1, SourceType, SourceType as SourceType$1 } from "@vidtreo/recorder";
|
|
3
|
+
|
|
4
|
+
//#region src/i18n/translations.d.ts
|
|
5
|
+
type TranslationKeys = {
|
|
6
|
+
initializingCamera: string;
|
|
7
|
+
grantPermissions: string;
|
|
8
|
+
switchingDevice: string;
|
|
9
|
+
recordingStartsIn: string;
|
|
10
|
+
switchingSource: string;
|
|
11
|
+
rec: string;
|
|
12
|
+
settings: string;
|
|
13
|
+
record: string;
|
|
14
|
+
stop: string;
|
|
15
|
+
pause: string;
|
|
16
|
+
resume: string;
|
|
17
|
+
mute: string;
|
|
18
|
+
unmute: string;
|
|
19
|
+
switchSource: string;
|
|
20
|
+
camera: string;
|
|
21
|
+
microphone: string;
|
|
22
|
+
uploading: string;
|
|
23
|
+
};
|
|
24
|
+
type PartialTranslations = Partial<TranslationKeys>;
|
|
25
|
+
//#endregion
|
|
26
|
+
//#region src/types/index.d.ts
|
|
27
|
+
type VidtreoRecorderProps = {
|
|
28
|
+
apiKey?: string;
|
|
29
|
+
backendUrl: string;
|
|
30
|
+
countdownDuration?: number;
|
|
31
|
+
maxRecordingTime?: number;
|
|
32
|
+
userMetadata?: Record<string, unknown>;
|
|
33
|
+
enableSourceSwitching?: boolean;
|
|
34
|
+
enableMute?: boolean;
|
|
35
|
+
enablePause?: boolean;
|
|
36
|
+
enableDeviceChange?: boolean;
|
|
37
|
+
lang?: string;
|
|
38
|
+
texts?: PartialTranslations;
|
|
39
|
+
onUploadComplete?: (result: {
|
|
40
|
+
recordingId: string;
|
|
41
|
+
uploadUrl: string;
|
|
42
|
+
}) => void;
|
|
43
|
+
onUploadProgress?: (progress: number) => void;
|
|
44
|
+
onUploadError?: (error: Error) => void;
|
|
45
|
+
onRecordingStart?: () => void;
|
|
46
|
+
onRecordingStop?: () => void;
|
|
47
|
+
onError?: (error: Error) => void;
|
|
48
|
+
};
|
|
49
|
+
type UseVidtreoRecorderConfig = {
|
|
50
|
+
apiKey: string;
|
|
51
|
+
backendUrl: string;
|
|
52
|
+
countdownDuration?: number;
|
|
53
|
+
maxRecordingTime?: number;
|
|
54
|
+
userMetadata?: Record<string, unknown>;
|
|
55
|
+
enableSourceSwitching?: boolean;
|
|
56
|
+
enableMute?: boolean;
|
|
57
|
+
enablePause?: boolean;
|
|
58
|
+
enableDeviceChange?: boolean;
|
|
59
|
+
proxyEndpoint?: string;
|
|
60
|
+
onUploadComplete?: (result: {
|
|
61
|
+
recordingId: string;
|
|
62
|
+
uploadUrl: string;
|
|
63
|
+
}) => void;
|
|
64
|
+
onUploadProgress?: (progress: number) => void;
|
|
65
|
+
onUploadError?: (error: Error) => void;
|
|
66
|
+
onRecordingStart?: () => void;
|
|
67
|
+
onRecordingStop?: () => void;
|
|
68
|
+
onError?: (error: Error) => void;
|
|
69
|
+
};
|
|
70
|
+
type VidtreoRecorderState = {
|
|
71
|
+
recordingState: RecordingState$1;
|
|
72
|
+
stream: MediaStream | null;
|
|
73
|
+
isMuted: boolean;
|
|
74
|
+
isPaused: boolean;
|
|
75
|
+
error: string | null;
|
|
76
|
+
countdown: number | null;
|
|
77
|
+
timer: string;
|
|
78
|
+
uploadProgress: number | null;
|
|
79
|
+
transitionMessage: string | null;
|
|
80
|
+
devices: {
|
|
81
|
+
cameras: MediaDeviceInfo[];
|
|
82
|
+
microphones: MediaDeviceInfo[];
|
|
83
|
+
selectedCamera: string | null;
|
|
84
|
+
selectedMic: string | null;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
type VidtreoRecorderActions = {
|
|
88
|
+
startRecording: (sourceType?: SourceType$1) => Promise<void>;
|
|
89
|
+
stopRecording: () => Promise<RecordingStopResult$1>;
|
|
90
|
+
pauseRecording: () => void;
|
|
91
|
+
resumeRecording: () => void;
|
|
92
|
+
toggleMute: () => void;
|
|
93
|
+
switchSource: (sourceType: SourceType$1) => Promise<void>;
|
|
94
|
+
changeCamera: (deviceId: string) => Promise<void>;
|
|
95
|
+
changeMic: (deviceId: string) => Promise<void>;
|
|
96
|
+
startPreview: (sourceType?: SourceType$1) => Promise<void>;
|
|
97
|
+
cleanup: () => void;
|
|
98
|
+
};
|
|
99
|
+
type UseVidtreoRecorderReturn = {
|
|
100
|
+
state: VidtreoRecorderState;
|
|
101
|
+
actions: VidtreoRecorderActions;
|
|
102
|
+
audioLevel: number;
|
|
103
|
+
controller: RecorderController | null;
|
|
104
|
+
};
|
|
105
|
+
//#endregion
|
|
106
|
+
//#region src/components/vidtreo-recorder.d.ts
|
|
107
|
+
declare function VidtreoRecorder(props: VidtreoRecorderProps): React.JSX.Element;
|
|
108
|
+
//#endregion
|
|
109
|
+
//#region src/hooks/use-vidtreo-recorder.d.ts
|
|
110
|
+
declare function useVidtreoRecorder(config: UseVidtreoRecorderConfig): UseVidtreoRecorderReturn;
|
|
111
|
+
//#endregion
|
|
112
|
+
export { type PartialTranslations, type RecordingState, type RecordingStopResult, type SourceType, type TranslationKeys, UseVidtreoRecorderConfig, UseVidtreoRecorderReturn, VidtreoRecorder, VidtreoRecorder as VidtreoRecorderSSR, VidtreoRecorderActions, VidtreoRecorderProps, VidtreoRecorderState, useVidtreoRecorder };
|
package/dist/index.js
CHANGED
|
@@ -1,99 +1 @@
|
|
|
1
|
-
import*as e from"react";import t,{createContext as a,useState as r,useRef as n,useCallback as o,useEffect as l,useMemo as c}from"react";import{VideoUploadService as i,extractErrorMessage as s,RecorderController as u,extractVideoDuration as d,calculateBarColor as m}from"@vidtreo/recorder";var p,g={exports:{}},h={};function f(){if(p)return h;p=1;var e=t,a=Symbol.for("react.element"),r=Symbol.for("react.fragment"),n={}.hasOwnProperty,o=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,r){var c,i={},s=null,u=null;for(c in void 0!==r&&(s=""+r),void 0!==t.key&&(s=""+t.key),void 0!==t.ref&&(u=t.ref),t)n.call(t,c)&&!l.hasOwnProperty(c)&&(i[c]=t[c]);if(e&&e.defaultProps)for(c in t=e.defaultProps)void 0===i[c]&&(i[c]=t[c]);return{$$typeof:a,type:e,key:s,ref:u,props:i,_owner:o.current}}return h.Fragment=r,h.jsx=c,h.jsxs=c,h}var v,y,A={};function E(){return v||(v=1,"production"!==process.env.NODE_ENV&&function(){var e,a=t,r=Symbol.for("react.element"),n=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),l=Symbol.for("react.strict_mode"),c=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),s=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),m=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),h=Symbol.for("react.offscreen"),f=Symbol.iterator,v=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function y(e){for(var t=arguments.length,a=Array(t>1?t-1:0),r=1;t>r;r++)a[r-1]=arguments[r];!function(e,t,a){var r=v.ReactDebugCurrentFrame.getStackAddendum();""!==r&&(t+="%s",a=a.concat([r]));var n=a.map(function(e){return e+""});n.unshift("Warning: "+t),function(){}.apply.call(console.error,console,n)}(0,e,a)}function E(e){return e.displayName||"Context"}function w(e){if(null==e)return null;if("number"==typeof e.tag&&y("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),"function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case o:return"Fragment";case n:return"Portal";case c:return"Profiler";case l:return"StrictMode";case d:return"Suspense";case m:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case s:return E(e)+".Consumer";case i:return E(e._context)+".Provider";case u:return function(e,t,a){var r=e.displayName;if(r)return r;var n=t.displayName||t.name||"";return""!==n?a+"("+n+")":a}(e,e.render,"ForwardRef");case p:var t=e.displayName||null;return null!==t?t:w(e.type)||"Memo";case g:var a=e,r=a._payload,h=a._init;try{return w(h(r))}catch(f){return null}}return null}e=Symbol.for("react.module.reference");var V,b,M,Z,S,L,H,x=Object.assign,j=0;function R(){}R.__reactDisabledLog=!0;var C,k=v.ReactCurrentDispatcher;function N(e,t,a){if(void 0===C)try{throw Error()}catch(n){var r=n.stack.trim().match(/\n( *(at )?)/);C=r&&r[1]||""}return"\n"+C+e}var P,F=!1,T="function"==typeof WeakMap?WeakMap:Map;function _(e,t){if(!e||F)return"";var a,r=P.get(e);if(void 0!==r)return r;F=!0;var n,o=Error.prepareStackTrace;Error.prepareStackTrace=void 0,n=k.current,k.current=null,function(){if(0===j){V=console.log,b=console.info,M=console.warn,Z=console.error,S=console.group,L=console.groupCollapsed,H=console.groupEnd;var e={configurable:!0,enumerable:!0,value:R,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}j++}();try{if(t){var l=function(){throw Error()};if(Object.defineProperty(l.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(l,[])}catch(g){a=g}Reflect.construct(e,[],l)}else{try{l()}catch(g){a=g}e.call(l.prototype)}}else{try{throw Error()}catch(g){a=g}e()}}catch(h){if(h&&a&&"string"==typeof h.stack){for(var c=h.stack.split("\n"),i=a.stack.split("\n"),s=c.length-1,u=i.length-1;s>=1&&u>=0&&c[s]!==i[u];)u--;for(;s>=1&&u>=0;s--,u--)if(c[s]!==i[u]){if(1!==s||1!==u)do{if(s--,0>--u||c[s]!==i[u]){var d="\n"+c[s].replace(" at new "," at ");return e.displayName&&d.includes("<anonymous>")&&(d=d.replace("<anonymous>",e.displayName)),"function"==typeof e&&P.set(e,d),d}}while(s>=1&&u>=0);break}}}finally{F=!1,k.current=n,function(){if(0===--j){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:x({},e,{value:V}),info:x({},e,{value:b}),warn:x({},e,{value:M}),error:x({},e,{value:Z}),group:x({},e,{value:S}),groupCollapsed:x({},e,{value:L}),groupEnd:x({},e,{value:H})})}0>j&&y("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}(),Error.prepareStackTrace=o}var m=e?e.displayName||e.name:"",p=m?N(m):"";return"function"==typeof e&&P.set(e,p),p}function I(e,t,a){if(null==e)return"";if("function"==typeof e)return _(e,function(e){var t=e.prototype;return!(!t||!t.isReactComponent)}(e));if("string"==typeof e)return N(e);switch(e){case d:return N("Suspense");case m:return N("SuspenseList")}if("object"==typeof e)switch(e.$$typeof){case u:return _(e.render,!1);case p:return I(e.type);case g:var r=e,n=r._payload,o=r._init;try{return I(o(n))}catch(l){}}return""}P=new T;var O={}.hasOwnProperty,D={},U=v.ReactDebugCurrentFrame;function q(e){if(e){var t=I(e.type);U.setExtraStackFrame(t)}else U.setExtraStackFrame(null)}var $=Array.isArray;function B(e){return $(e)}function z(e){if(function(){try{return!1}catch(e){return!0}}())return y("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",function(e){return"function"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object"}(e)),function(e){return""+e}(e)}var K,W,Y,Q=v.ReactCurrentOwner,G={key:!0,ref:!0,__self:!0,__source:!0},J=v.ReactCurrentOwner,X=v.ReactDebugCurrentFrame;function ee(e){if(e){var t=I(e.type);X.setExtraStackFrame(t)}else X.setExtraStackFrame(null)}function te(e){return"object"==typeof e&&null!==e&&e.$$typeof===r}function ae(){if(J.current){var e=w(J.current.type);if(e)return"\n\nCheck the render method of `"+e+"`."}return""}Y=!1;var re={};function ne(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var a=function(e){var t=ae();if(!t){var a="string"==typeof e?e:e.displayName||e.name;a&&(t="\n\nCheck the top-level render call using <"+a+">.")}return t}(t);if(!re[a]){re[a]=!0;var r="";e&&e._owner&&e._owner!==J.current&&(r=" It was passed a child from "+w(e._owner.type)+"."),ee(e),y('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',a,r),ee(null)}}}function oe(e,t){if("object"==typeof e)if(B(e))for(var a=0;a<e.length;a++){var r=e[a];te(r)&&ne(r,t)}else if(te(e))e._store&&(e._store.validated=!0);else if(e){var n=function(e){if(null===e||"object"!=typeof e)return null;var t=f&&e[f]||e["@@iterator"];return"function"==typeof t?t:null}(e);if("function"==typeof n&&n!==e.entries)for(var o,l=n.call(e);!(o=l.next()).done;)te(o.value)&&ne(o.value,t)}}var le={};function ce(t,a,n,f,v,A){var E=function(t){return"string"==typeof t||"function"==typeof t||t===o||t===c||t===l||t===d||t===m||t===h||"object"==typeof t&&null!==t&&(t.$$typeof===g||t.$$typeof===p||t.$$typeof===i||t.$$typeof===s||t.$$typeof===u||t.$$typeof===e||void 0!==t.getModuleId)}(t);if(!E){var V,b="";(void 0===t||"object"==typeof t&&null!==t&&0===Object.keys(t).length)&&(b+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports."),b+=ae(),null===t?V="null":B(t)?V="array":void 0!==t&&t.$$typeof===r?(V="<"+(w(t.type)||"Unknown")+" />",b=" Did you accidentally export a JSX literal instead of a component?"):V=typeof t,y("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",V,b)}var M=function(e,t,a,n,o){var l,c={},i=null,s=null;for(l in void 0!==a&&(z(a),i=""+a),function(e){if(O.call(e,"key")){var t=Object.getOwnPropertyDescriptor(e,"key").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}(t)&&(z(t.key),i=""+t.key),function(e){if(O.call(e,"ref")){var t=Object.getOwnPropertyDescriptor(e,"ref").get;if(t&&t.isReactWarning)return!1}return void 0!==e.ref}(t)&&(s=t.ref),t)O.call(t,l)&&!G.hasOwnProperty(l)&&(c[l]=t[l]);if(e&&e.defaultProps){var u=e.defaultProps;for(l in u)void 0===c[l]&&(c[l]=u[l])}if(i||s){var d="function"==typeof e?e.displayName||e.name||"Unknown":e;i&&function(e,t){var a=function(){K||(K=!0,y("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};a.isReactWarning=!0,Object.defineProperty(e,"key",{get:a,configurable:!0})}(c,d),s&&function(e,t){var a=function(){W||(W=!0,y("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",t))};a.isReactWarning=!0,Object.defineProperty(e,"ref",{get:a,configurable:!0})}(c,d)}return function(e,t,a,n,o,l,c){var i={$$typeof:r,type:e,key:t,ref:a,props:c,_owner:l,_store:{}};return Object.defineProperty(i._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(i,"_self",{configurable:!1,enumerable:!1,writable:!1,value:n}),Object.defineProperty(i,"_source",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.freeze&&(Object.freeze(i.props),Object.freeze(i)),i}(e,i,s,o,n,Q.current,c)}(t,a,n,v,A);if(null==M)return M;if(E){var Z=a.children;if(void 0!==Z)if(f)if(B(Z)){for(var S=0;S<Z.length;S++)oe(Z[S],t);Object.freeze&&Object.freeze(Z)}else y("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else oe(Z,t)}if(O.call(a,"key")){var L=w(t),H=Object.keys(a).filter(function(e){return"key"!==e}),x=H.length>0?"{key: someKey, "+H.join(": ..., ")+": ...}":"{key: someKey}";le[L+x]||(y('A props object containing a "key" prop is being spread into JSX:\n let props = %s;\n <%s {...props} />\nReact keys must be passed directly to JSX without using spread:\n let props = %s;\n <%s key={someKey} {...props} />',x,L,H.length>0?"{"+H.join(": ..., ")+": ...}":"{}",L),le[L+x]=!0)}return t===o?function(e){for(var t=Object.keys(e.props),a=0;a<t.length;a++){var r=t[a];if("children"!==r&&"key"!==r){ee(e),y("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",r),ee(null);break}}null!==e.ref&&(ee(e),y("Invalid attribute `ref` supplied to `React.Fragment`."),ee(null))}(M):function(e){var t,a=e.type;if(null!=a&&"string"!=typeof a){if("function"==typeof a)t=a.propTypes;else{if("object"!=typeof a||a.$$typeof!==u&&a.$$typeof!==p)return;t=a.propTypes}if(t){var r=w(a);!function(e,t,a,r,n){var o=Function.call.bind(O);for(var l in e)if(o(e,l)){var c=void 0;try{if("function"!=typeof e[l]){var i=Error((r||"React class")+": "+a+" type `"+l+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[l]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw i.name="Invariant Violation",i}c=e[l](t,l,r,a,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(s){c=s}!c||c instanceof Error||(q(n),y("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",r||"React class",a,l,typeof c),q(null)),c instanceof Error&&!(c.message in D)&&(D[c.message]=!0,q(n),y("Failed %s type: %s",a,c.message),q(null))}}(t,e.props,"prop",r,e)}else void 0===a.PropTypes||Y||(Y=!0,y("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",w(a)||"Unknown"));"function"!=typeof a.getDefaultProps||a.getDefaultProps.isReactClassApproved||y("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}(M),M}A.Fragment=o,A.jsx=function(e,t,a){return ce(e,t,a,!1)},A.jsxs=function(e,t,a){return ce(e,t,a,!0)}}()),A}function w(){return y||(y=1,"production"===process.env.NODE_ENV?g.exports=/* @__PURE__ */f():g.exports=/* @__PURE__ */E()),g.exports}var V=/* @__PURE__ */w();const b=/* @__PURE__ */new Map([["bold",
|
|
2
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,52H182.42L170,33.34A12,12,0,0,0,160,28H96a12,12,0,0,0-10,5.34L73.57,52H48A28,28,0,0,0,20,80V192a28,28,0,0,0,28,28H208a28,28,0,0,0,28-28V80A28,28,0,0,0,208,52Zm4,140a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V80a4,4,0,0,1,4-4H80a12,12,0,0,0,10-5.34L102.42,52h51.15L166,70.66A12,12,0,0,0,176,76h32a4,4,0,0,1,4,4ZM128,84a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,84Zm0,72a24,24,0,1,1,24-24A24,24,0,0,1,128,156Z"}))],["duotone",
|
|
3
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,64H176L160,40H96L80,64H48A16,16,0,0,0,32,80V192a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V80A16,16,0,0,0,208,64ZM128,168a36,36,0,1,1,36-36A36,36,0,0,1,128,168Z",opacity:"0.2"}),/* @__PURE__ */e.createElement("path",{d:"M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H80a8,8,0,0,0,6.66-3.56L100.28,48h55.43l13.63,20.44A8,8,0,0,0,176,72h32a8,8,0,0,1,8,8ZM128,88a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,88Zm0,72a28,28,0,1,1,28-28A28,28,0,0,1,128,160Z"}))],["fill",
|
|
4
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm-44,76a36,36,0,1,1-36-36A36,36,0,0,1,164,132Z"}))],["light",
|
|
5
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,58H179.21L165,36.67A6,6,0,0,0,160,34H96a6,6,0,0,0-5,2.67L76.78,58H48A22,22,0,0,0,26,80V192a22,22,0,0,0,22,22H208a22,22,0,0,0,22-22V80A22,22,0,0,0,208,58Zm10,134a10,10,0,0,1-10,10H48a10,10,0,0,1-10-10V80A10,10,0,0,1,48,70H80a6,6,0,0,0,5-2.67L99.21,46h57.57L171,67.33A6,6,0,0,0,176,70h32a10,10,0,0,1,10,10ZM128,90a42,42,0,1,0,42,42A42,42,0,0,0,128,90Zm0,72a30,30,0,1,1,30-30A30,30,0,0,1,128,162Z"}))],["regular",
|
|
6
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H80a8,8,0,0,0,6.66-3.56L100.28,48h55.43l13.63,20.44A8,8,0,0,0,176,72h32a8,8,0,0,1,8,8ZM128,88a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,88Zm0,72a28,28,0,1,1,28-28A28,28,0,0,1,128,160Z"}))],["thin",
|
|
7
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,60H178.13L163.32,37.78A4,4,0,0,0,160,36H96a4,4,0,0,0-3.32,1.78L77.85,60H48A20,20,0,0,0,28,80V192a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V80A20,20,0,0,0,208,60Zm12,132a12,12,0,0,1-12,12H48a12,12,0,0,1-12-12V80A12,12,0,0,1,48,68H80a4,4,0,0,0,3.33-1.78L98.13,44h59.72l14.82,22.22A4,4,0,0,0,176,68h32a12,12,0,0,1,12,12ZM128,92a40,40,0,1,0,40,40A40,40,0,0,0,128,92Zm0,72a32,32,0,1,1,32-32A32,32,0,0,1,128,164Z"}))]]),M=/* @__PURE__ */new Map([["bold",
|
|
8
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm0,192a84,84,0,1,1,84-84A84.09,84.09,0,0,1,128,212Z"}))],["duotone",
|
|
9
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z",opacity:"0.2"}),/* @__PURE__ */e.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Z"}))],["fill",
|
|
10
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M232,128A104,104,0,1,1,128,24,104.13,104.13,0,0,1,232,128Z"}))],["light",
|
|
11
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,26A102,102,0,1,0,230,128,102.12,102.12,0,0,0,128,26Zm0,192a90,90,0,1,1,90-90A90.1,90.1,0,0,1,128,218Z"}))],["regular",
|
|
12
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Z"}))],["thin",
|
|
13
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,28A100,100,0,1,0,228,128,100.11,100.11,0,0,0,128,28Zm0,192a92,92,0,1,1,92-92A92.1,92.1,0,0,1,128,220Z"}))]]),Z=/* @__PURE__ */new Map([["bold",
|
|
14
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,76a52,52,0,1,0,52,52A52.06,52.06,0,0,0,128,76Zm0,80a28,28,0,1,1,28-28A28,28,0,0,1,128,156Zm92-27.21v-1.58l14-17.51a12,12,0,0,0,2.23-10.59A111.75,111.75,0,0,0,225,71.89,12,12,0,0,0,215.89,66L193.61,63.5l-1.11-1.11L190,40.1A12,12,0,0,0,184.11,31a111.67,111.67,0,0,0-27.23-11.27A12,12,0,0,0,146.3,22L128.79,36h-1.58L109.7,22a12,12,0,0,0-10.59-2.23A111.75,111.75,0,0,0,71.89,31.05,12,12,0,0,0,66,40.11L63.5,62.39,62.39,63.5,40.1,66A12,12,0,0,0,31,71.89,111.67,111.67,0,0,0,19.77,99.12,12,12,0,0,0,22,109.7l14,17.51v1.58L22,146.3a12,12,0,0,0-2.23,10.59,111.75,111.75,0,0,0,11.29,27.22A12,12,0,0,0,40.11,190l22.28,2.48,1.11,1.11L66,215.9A12,12,0,0,0,71.89,225a111.67,111.67,0,0,0,27.23,11.27A12,12,0,0,0,109.7,234l17.51-14h1.58l17.51,14a12,12,0,0,0,10.59,2.23A111.75,111.75,0,0,0,184.11,225a12,12,0,0,0,5.91-9.06l2.48-22.28,1.11-1.11L215.9,190a12,12,0,0,0,9.06-5.91,111.67,111.67,0,0,0,11.27-27.23A12,12,0,0,0,234,146.3Zm-24.12-4.89a70.1,70.1,0,0,1,0,8.2,12,12,0,0,0,2.61,8.22l12.84,16.05A86.47,86.47,0,0,1,207,166.86l-20.43,2.27a12,12,0,0,0-7.65,4,69,69,0,0,1-5.8,5.8,12,12,0,0,0-4,7.65L166.86,207a86.47,86.47,0,0,1-10.49,4.35l-16.05-12.85a12,12,0,0,0-7.5-2.62c-.24,0-.48,0-.72,0a70.1,70.1,0,0,1-8.2,0,12.06,12.06,0,0,0-8.22,2.6L99.63,211.33A86.47,86.47,0,0,1,89.14,207l-2.27-20.43a12,12,0,0,0-4-7.65,69,69,0,0,1-5.8-5.8,12,12,0,0,0-7.65-4L49,166.86a86.47,86.47,0,0,1-4.35-10.49l12.84-16.05a12,12,0,0,0,2.61-8.22,70.1,70.1,0,0,1,0-8.2,12,12,0,0,0-2.61-8.22L44.67,99.63A86.47,86.47,0,0,1,49,89.14l20.43-2.27a12,12,0,0,0,7.65-4,69,69,0,0,1,5.8-5.8,12,12,0,0,0,4-7.65L89.14,49a86.47,86.47,0,0,1,10.49-4.35l16.05,12.85a12.06,12.06,0,0,0,8.22,2.6,70.1,70.1,0,0,1,8.2,0,12,12,0,0,0,8.22-2.6l16.05-12.85A86.47,86.47,0,0,1,166.86,49l2.27,20.43a12,12,0,0,0,4,7.65,69,69,0,0,1,5.8,5.8,12,12,0,0,0,7.65,4L207,89.14a86.47,86.47,0,0,1,4.35,10.49l-12.84,16.05A12,12,0,0,0,195.88,123.9Z"}))],["duotone",
|
|
15
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M207.86,123.18l16.78-21a99.14,99.14,0,0,0-10.07-24.29l-26.7-3a81,81,0,0,0-6.81-6.81l-3-26.71a99.43,99.43,0,0,0-24.3-10l-21,16.77a81.59,81.59,0,0,0-9.64,0l-21-16.78A99.14,99.14,0,0,0,77.91,41.43l-3,26.7a81,81,0,0,0-6.81,6.81l-26.71,3a99.43,99.43,0,0,0-10,24.3l16.77,21a81.59,81.59,0,0,0,0,9.64l-16.78,21a99.14,99.14,0,0,0,10.07,24.29l26.7,3a81,81,0,0,0,6.81,6.81l3,26.71a99.43,99.43,0,0,0,24.3,10l21-16.77a81.59,81.59,0,0,0,9.64,0l21,16.78a99.14,99.14,0,0,0,24.29-10.07l3-26.7a81,81,0,0,0,6.81-6.81l26.71-3a99.43,99.43,0,0,0,10-24.3l-16.77-21A81.59,81.59,0,0,0,207.86,123.18ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z",opacity:"0.2"}),/* @__PURE__ */e.createElement("path",{d:"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8.06,8.06,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8.06,8.06,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z"}))],["fill",
|
|
16
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M216,130.16q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z"}))],["light",
|
|
17
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,82a46,46,0,1,0,46,46A46.06,46.06,0,0,0,128,82Zm0,80a34,34,0,1,1,34-34A34,34,0,0,1,128,162ZM214,130.84c.06-1.89.06-3.79,0-5.68L229.33,106a6,6,0,0,0,1.11-5.29A105.34,105.34,0,0,0,219.76,74.9a6,6,0,0,0-4.53-3l-24.45-2.71q-1.93-2.07-4-4l-2.72-24.46a6,6,0,0,0-3-4.53,105.65,105.65,0,0,0-25.77-10.66A6,6,0,0,0,150,26.68l-19.2,15.37c-1.89-.06-3.79-.06-5.68,0L106,26.67a6,6,0,0,0-5.29-1.11A105.34,105.34,0,0,0,74.9,36.24a6,6,0,0,0-3,4.53L69.23,65.22q-2.07,1.94-4,4L40.76,72a6,6,0,0,0-4.53,3,105.65,105.65,0,0,0-10.66,25.77A6,6,0,0,0,26.68,106l15.37,19.2c-.06,1.89-.06,3.79,0,5.68L26.67,150.05a6,6,0,0,0-1.11,5.29A105.34,105.34,0,0,0,36.24,181.1a6,6,0,0,0,4.53,3l24.45,2.71q1.94,2.07,4,4L72,215.24a6,6,0,0,0,3,4.53,105.65,105.65,0,0,0,25.77,10.66,6,6,0,0,0,5.29-1.11L125.16,214c1.89.06,3.79.06,5.68,0l19.21,15.38a6,6,0,0,0,3.75,1.31,6.2,6.2,0,0,0,1.54-.2,105.34,105.34,0,0,0,25.76-10.68,6,6,0,0,0,3-4.53l2.71-24.45q2.07-1.93,4-4l24.46-2.72a6,6,0,0,0,4.53-3,105.49,105.49,0,0,0,10.66-25.77,6,6,0,0,0-1.11-5.29Zm-3.1,41.63-23.64,2.63a6,6,0,0,0-3.82,2,75.14,75.14,0,0,1-6.31,6.31,6,6,0,0,0-2,3.82l-2.63,23.63A94.28,94.28,0,0,1,155.14,218l-18.57-14.86a6,6,0,0,0-3.75-1.31h-.36a78.07,78.07,0,0,1-8.92,0,6,6,0,0,0-4.11,1.3L100.87,218a94.13,94.13,0,0,1-17.34-7.17L80.9,187.21a6,6,0,0,0-2-3.82,75.14,75.14,0,0,1-6.31-6.31,6,6,0,0,0-3.82-2l-23.63-2.63A94.28,94.28,0,0,1,38,155.14l14.86-18.57a6,6,0,0,0,1.3-4.11,78.07,78.07,0,0,1,0-8.92,6,6,0,0,0-1.3-4.11L38,100.87a94.13,94.13,0,0,1,7.17-17.34L68.79,80.9a6,6,0,0,0,3.82-2,75.14,75.14,0,0,1,6.31-6.31,6,6,0,0,0,2-3.82l2.63-23.63A94.28,94.28,0,0,1,100.86,38l18.57,14.86a6,6,0,0,0,4.11,1.3,78.07,78.07,0,0,1,8.92,0,6,6,0,0,0,4.11-1.3L155.13,38a94.13,94.13,0,0,1,17.34,7.17l2.63,23.64a6,6,0,0,0,2,3.82,75.14,75.14,0,0,1,6.31,6.31,6,6,0,0,0,3.82,2l23.63,2.63A94.28,94.28,0,0,1,218,100.86l-14.86,18.57a6,6,0,0,0-1.3,4.11,78.07,78.07,0,0,1,0,8.92,6,6,0,0,0,1.3,4.11L218,155.13A94.13,94.13,0,0,1,210.85,172.47Z"}))],["regular",
|
|
18
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.21,107.21,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.71,107.71,0,0,0-26.25-10.87,8,8,0,0,0-7.06,1.49L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.21,107.21,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8,8,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8,8,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z"}))],["thin",
|
|
19
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,84a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,84Zm0,80a36,36,0,1,1,36-36A36,36,0,0,1,128,164Zm83.93-32.49q.13-3.51,0-7l15.83-19.79a4,4,0,0,0,.75-3.53A103.64,103.64,0,0,0,218,75.9a4,4,0,0,0-3-2l-25.19-2.8c-1.58-1.71-3.24-3.37-4.95-4.95L182.07,41a4,4,0,0,0-2-3A104,104,0,0,0,154.82,27.5a4,4,0,0,0-3.53.74L131.51,44.07q-3.51-.14-7,0L104.7,28.24a4,4,0,0,0-3.53-.75A103.64,103.64,0,0,0,75.9,38a4,4,0,0,0-2,3l-2.8,25.19c-1.71,1.58-3.37,3.24-4.95,4.95L41,73.93a4,4,0,0,0-3,2A104,104,0,0,0,27.5,101.18a4,4,0,0,0,.74,3.53l15.83,19.78q-.14,3.51,0,7L28.24,151.3a4,4,0,0,0-.75,3.53A103.64,103.64,0,0,0,38,180.1a4,4,0,0,0,3,2l25.19,2.8c1.58,1.71,3.24,3.37,4.95,4.95l2.8,25.2a4,4,0,0,0,2,3,104,104,0,0,0,25.28,10.46,4,4,0,0,0,3.53-.74l19.78-15.83q3.51.13,7,0l19.79,15.83a4,4,0,0,0,2.5.88,4,4,0,0,0,1-.13A103.64,103.64,0,0,0,180.1,218a4,4,0,0,0,2-3l2.8-25.19c1.71-1.58,3.37-3.24,4.95-4.95l25.2-2.8a4,4,0,0,0,3-2,104,104,0,0,0,10.46-25.28,4,4,0,0,0-.74-3.53Zm.17,42.83-24.67,2.74a4,4,0,0,0-2.55,1.32,76.2,76.2,0,0,1-6.48,6.48,4,4,0,0,0-1.32,2.55l-2.74,24.66a95.45,95.45,0,0,1-19.64,8.15l-19.38-15.51a4,4,0,0,0-2.5-.87h-.24a73.67,73.67,0,0,1-9.16,0,4,4,0,0,0-2.74.87l-19.37,15.5a95.33,95.33,0,0,1-19.65-8.13l-2.74-24.67a4,4,0,0,0-1.32-2.55,76.2,76.2,0,0,1-6.48-6.48,4,4,0,0,0-2.55-1.32l-24.66-2.74a95.45,95.45,0,0,1-8.15-19.64l15.51-19.38a4,4,0,0,0,.87-2.74,77.76,77.76,0,0,1,0-9.16,4,4,0,0,0-.87-2.74l-15.5-19.37A95.33,95.33,0,0,1,43.9,81.66l24.67-2.74a4,4,0,0,0,2.55-1.32,76.2,76.2,0,0,1,6.48-6.48,4,4,0,0,0,1.32-2.55l2.74-24.66a95.45,95.45,0,0,1,19.64-8.15l19.38,15.51a4,4,0,0,0,2.74.87,73.67,73.67,0,0,1,9.16,0,4,4,0,0,0,2.74-.87l19.37-15.5a95.33,95.33,0,0,1,19.65,8.13l2.74,24.67a4,4,0,0,0,1.32,2.55,76.2,76.2,0,0,1,6.48,6.48,4,4,0,0,0,2.55,1.32l24.66,2.74a95.45,95.45,0,0,1,8.15,19.64l-15.51,19.38a4,4,0,0,0-.87,2.74,77.76,77.76,0,0,1,0,9.16,4,4,0,0,0,.87,2.74l15.5,19.37A95.33,95.33,0,0,1,212.1,174.34Z"}))]]),S=/* @__PURE__ */new Map([["bold",
|
|
20
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,180a52.06,52.06,0,0,0,52-52V64A52,52,0,0,0,76,64v64A52.06,52.06,0,0,0,128,180ZM100,64a28,28,0,0,1,56,0v64a28,28,0,0,1-56,0Zm40,155.22V240a12,12,0,0,1-24,0V219.22A92.14,92.14,0,0,1,36,128a12,12,0,0,1,24,0,68,68,0,0,0,136,0,12,12,0,0,1,24,0A92.14,92.14,0,0,1,140,219.22Z"}))],["duotone",
|
|
21
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M168,64v64a40,40,0,0,1-40,40h0a40,40,0,0,1-40-40V64a40,40,0,0,1,40-40h0A40,40,0,0,1,168,64Z",opacity:"0.2"}),/* @__PURE__ */e.createElement("path",{d:"M128,176a48.05,48.05,0,0,0,48-48V64a48,48,0,0,0-96,0v64A48.05,48.05,0,0,0,128,176ZM96,64a32,32,0,0,1,64,0v64a32,32,0,0,1-64,0Zm40,143.6V240a8,8,0,0,1-16,0V207.6A80.11,80.11,0,0,1,48,128a8,8,0,0,1,16,0,64,64,0,0,0,128,0,8,8,0,0,1,16,0A80.11,80.11,0,0,1,136,207.6Z"}))],["fill",
|
|
22
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M80,128V64a48,48,0,0,1,96,0v64a48,48,0,0,1-96,0Zm128,0a8,8,0,0,0-16,0,64,64,0,0,1-128,0,8,8,0,0,0-16,0,80.11,80.11,0,0,0,72,79.6V240a8,8,0,0,0,16,0V207.6A80.11,80.11,0,0,0,208,128Z"}))],["light",
|
|
23
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,174a46.06,46.06,0,0,0,46-46V64a46,46,0,0,0-92,0v64A46.06,46.06,0,0,0,128,174ZM94,64a34,34,0,0,1,68,0v64a34,34,0,0,1-68,0Zm40,141.75V240a6,6,0,0,1-12,0V205.75A78.09,78.09,0,0,1,50,128a6,6,0,0,1,12,0,66,66,0,0,0,132,0,6,6,0,0,1,12,0A78.09,78.09,0,0,1,134,205.75Z"}))],["regular",
|
|
24
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,176a48.05,48.05,0,0,0,48-48V64a48,48,0,0,0-96,0v64A48.05,48.05,0,0,0,128,176ZM96,64a32,32,0,0,1,64,0v64a32,32,0,0,1-64,0Zm40,143.6V240a8,8,0,0,1-16,0V207.6A80.11,80.11,0,0,1,48,128a8,8,0,0,1,16,0,64,64,0,0,0,128,0,8,8,0,0,1,16,0A80.11,80.11,0,0,1,136,207.6Z"}))],["thin",
|
|
25
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M128,172a44.05,44.05,0,0,0,44-44V64a44,44,0,0,0-88,0v64A44.05,44.05,0,0,0,128,172ZM92,64a36,36,0,0,1,72,0v64a36,36,0,0,1-72,0Zm40,139.89V240a4,4,0,0,1-8,0V203.89A76.09,76.09,0,0,1,52,128a4,4,0,0,1,8,0,68,68,0,0,0,136,0,4,4,0,0,1,8,0A76.09,76.09,0,0,1,132,203.89Z"}))]]),L=/* @__PURE__ */new Map([["bold",
|
|
26
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M56.88,39.93A12,12,0,1,0,39.12,56.07L76,96.64V128a52,52,0,0,0,72.11,48l11.26,12.39A67.34,67.34,0,0,1,128,196a68.07,68.07,0,0,1-68-68,12,12,0,0,0-24,0,92.14,92.14,0,0,0,80,91.22V240a12,12,0,0,0,24,0V219.23a90.39,90.39,0,0,0,35.92-12.68l23.2,25.52a12,12,0,0,0,17.76-16.14ZM128,156a28,28,0,0,1-28-28v-5l29.9,32.89C129.27,156,128.64,156,128,156Zm63-2.42A67.63,67.63,0,0,0,196,128a12,12,0,0,1,24,0,91.48,91.48,0,0,1-6.74,34.61,12,12,0,0,1-22.23-9ZM85.7,33.75A52,52,0,0,1,180,64v56.54a12,12,0,0,1-24,0V64a28,28,0,0,0-50.79-16.28,12,12,0,0,1-19.51-14Z"}))],["duotone",
|
|
27
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M168,64v64a40,40,0,0,1-40,40h0a40,40,0,0,1-40-40V64a40,40,0,0,1,40-40h0A40,40,0,0,1,168,64Z",opacity:"0.2"}),/* @__PURE__ */e.createElement("path",{d:"M213.92,218.62l-160-176A8,8,0,0,0,42.08,53.38L80,95.09V128a48,48,0,0,0,69.11,43.12l11.1,12.2A63.41,63.41,0,0,1,128,192a64.07,64.07,0,0,1-64-64,8,8,0,0,0-16,0,80.11,80.11,0,0,0,72,79.6V240a8,8,0,0,0,16,0V207.59a78.83,78.83,0,0,0,35.16-12.22l30.92,34a8,8,0,1,0,11.84-10.76ZM128,160a32,32,0,0,1-32-32V112.69l41.66,45.82A32,32,0,0,1,128,160Zm57.52-3.91A63.32,63.32,0,0,0,192,128a8,8,0,0,1,16,0,79.16,79.16,0,0,1-8.11,35.12,8,8,0,0,1-7.19,4.49,7.88,7.88,0,0,1-3.51-.82A8,8,0,0,1,185.52,156.09ZM84,44.87A48,48,0,0,1,176,64v64a49.19,49.19,0,0,1-.26,5,8,8,0,0,1-8,7.17,8.13,8.13,0,0,1-.84,0,8,8,0,0,1-7.12-8.79c.11-1.1.17-2.24.17-3.36V64A32,32,0,0,0,98.64,51.25,8,8,0,1,1,84,44.87Z"}))],["fill",
|
|
28
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M213.38,229.92a8,8,0,0,1-11.3-.54l-30.92-34A78.83,78.83,0,0,1,136,207.59V240a8,8,0,0,1-16,0V207.6A80.11,80.11,0,0,1,48,128a8,8,0,0,1,16,0,64.07,64.07,0,0,0,64,64,63.41,63.41,0,0,0,32.21-8.68l-11.1-12.2A48,48,0,0,1,80,128V95.09L42.08,53.38A8,8,0,0,1,53.92,42.62l160,176A8,8,0,0,1,213.38,229.92Zm-24.19-63.13a7.88,7.88,0,0,0,3.51.82,8,8,0,0,0,7.19-4.49A79.16,79.16,0,0,0,208,128a8,8,0,0,0-16,0,63.32,63.32,0,0,1-6.48,28.09A8,8,0,0,0,189.19,166.79Zm-27.33-29.22A8,8,0,0,0,175.74,133a49.49,49.49,0,0,0,.26-5V64A48,48,0,0,0,84,44.87a8,8,0,0,0,1.41,8.57Z"}))],["light",
|
|
29
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M212.44,220,52.44,44A6,6,0,0,0,43.56,52L82,94.32V128a46,46,0,0,0,67.56,40.64l13.75,15.12A65.26,65.26,0,0,1,128,194a66.08,66.08,0,0,1-66-66,6,6,0,0,0-12,0,78.09,78.09,0,0,0,72,77.75V240a6,6,0,0,0,12,0V205.77a76.93,76.93,0,0,0,37.48-13L203.56,228a6,6,0,0,0,8.88-8.08ZM128,162a34,34,0,0,1-34-34V107.52l47.12,51.84A33.82,33.82,0,0,1,128,162Zm59.32-5A65.38,65.38,0,0,0,194,128a6,6,0,0,1,12,0,77.33,77.33,0,0,1-7.9,34.25A6,6,0,1,1,187.32,157ZM85.8,45.67A46,46,0,0,1,174,64v64a45.17,45.17,0,0,1-.25,4.81,6,6,0,0,1-6,5.38q-.31,0-.63,0a6,6,0,0,1-5.34-6.59A35.41,35.41,0,0,0,162,128V64A34,34,0,0,0,96.8,50.45a6,6,0,0,1-11-4.78Z"}))],["regular",
|
|
30
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M213.92,218.62l-160-176A8,8,0,0,0,42.08,53.38L80,95.09V128a48,48,0,0,0,69.11,43.12l11.1,12.2A63.41,63.41,0,0,1,128,192a64.07,64.07,0,0,1-64-64,8,8,0,0,0-16,0,80.11,80.11,0,0,0,72,79.6V240a8,8,0,0,0,16,0V207.59a78.83,78.83,0,0,0,35.16-12.22l30.92,34a8,8,0,1,0,11.84-10.76ZM128,160a32,32,0,0,1-32-32V112.69l41.66,45.82A32,32,0,0,1,128,160Zm57.52-3.91A63.32,63.32,0,0,0,192,128a8,8,0,0,1,16,0,79.16,79.16,0,0,1-8.11,35.12,8,8,0,0,1-7.19,4.49,7.88,7.88,0,0,1-3.51-.82A8,8,0,0,1,185.52,156.09ZM84,44.87A48,48,0,0,1,176,64v64a49.19,49.19,0,0,1-.26,5,8,8,0,0,1-8,7.17,8.13,8.13,0,0,1-.84,0,8,8,0,0,1-7.12-8.79c.11-1.1.17-2.24.17-3.36V64A32,32,0,0,0,98.64,51.25,8,8,0,1,1,84,44.87Z"}))],["thin",
|
|
31
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M211,221.31,51,45.31A4,4,0,0,0,45,50.69L84,93.55V128a44,44,0,0,0,66,38.12l16.38,18A67.21,67.21,0,0,1,128,196a68.07,68.07,0,0,1-68-68,4,4,0,0,0-8,0,76.09,76.09,0,0,0,72,75.89V240a4,4,0,0,0,8,0V203.89a75.1,75.1,0,0,0,39.79-13.77L205,226.69a4,4,0,1,0,5.92-5.38ZM128,164a36,36,0,0,1-36-36V102.35L144.43,160A35.83,35.83,0,0,1,128,164Zm61.12-6.15A67.44,67.44,0,0,0,196,128a4,4,0,0,1,8,0,75.28,75.28,0,0,1-7.7,33.37,4,4,0,0,1-7.18-3.52ZM87.63,46.46A44,44,0,0,1,172,64v64a44.2,44.2,0,0,1-.24,4.61,4,4,0,0,1-4,3.58l-.42,0a4,4,0,0,1-3.57-4.39A36.67,36.67,0,0,0,164,128V64A36,36,0,0,0,95,49.66a4,4,0,0,1-7.34-3.2Z"}))]]),H=/* @__PURE__ */new Map([["bold",
|
|
32
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,36H48A28,28,0,0,0,20,64V176a28,28,0,0,0,28,28H208a28,28,0,0,0,28-28V64A28,28,0,0,0,208,36Zm4,140a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V64a4,4,0,0,1,4-4H208a4,4,0,0,1,4,4Zm-40,52a12,12,0,0,1-12,12H96a12,12,0,0,1,0-24h64A12,12,0,0,1,172,228Z"}))],["duotone",
|
|
33
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M224,64V176a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V64A16,16,0,0,1,48,48H208A16,16,0,0,1,224,64Z",opacity:"0.2"}),/* @__PURE__ */e.createElement("path",{d:"M208,40H48A24,24,0,0,0,24,64V176a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V64A24,24,0,0,0,208,40Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8Zm-48,48a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,224Z"}))],["fill",
|
|
34
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M232,64V176a24,24,0,0,1-24,24H48a24,24,0,0,1-24-24V64A24,24,0,0,1,48,40H208A24,24,0,0,1,232,64ZM160,216H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Z"}))],["light",
|
|
35
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,42H48A22,22,0,0,0,26,64V176a22,22,0,0,0,22,22H208a22,22,0,0,0,22-22V64A22,22,0,0,0,208,42Zm10,134a10,10,0,0,1-10,10H48a10,10,0,0,1-10-10V64A10,10,0,0,1,48,54H208a10,10,0,0,1,10,10Zm-52,48a6,6,0,0,1-6,6H96a6,6,0,0,1,0-12h64A6,6,0,0,1,166,224Z"}))],["regular",
|
|
36
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,40H48A24,24,0,0,0,24,64V176a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V64A24,24,0,0,0,208,40Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8Zm-48,48a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,224Z"}))],["thin",
|
|
37
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,44H48A20,20,0,0,0,28,64V176a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V64A20,20,0,0,0,208,44Zm12,132a12,12,0,0,1-12,12H48a12,12,0,0,1-12-12V64A12,12,0,0,1,48,52H208a12,12,0,0,1,12,12Zm-56,48a4,4,0,0,1-4,4H96a4,4,0,0,1,0-8h64A4,4,0,0,1,164,224Z"}))]]),x=/* @__PURE__ */new Map([["bold",
|
|
38
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M200,28H160a20,20,0,0,0-20,20V208a20,20,0,0,0,20,20h40a20,20,0,0,0,20-20V48A20,20,0,0,0,200,28Zm-4,176H164V52h32ZM96,28H56A20,20,0,0,0,36,48V208a20,20,0,0,0,20,20H96a20,20,0,0,0,20-20V48A20,20,0,0,0,96,28ZM92,204H60V52H92Z"}))],["duotone",
|
|
39
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,48V208a8,8,0,0,1-8,8H160a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h40A8,8,0,0,1,208,48ZM96,40H56a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8H96a8,8,0,0,0,8-8V48A8,8,0,0,0,96,40Z",opacity:"0.2"}),/* @__PURE__ */e.createElement("path",{d:"M200,32H160a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,200,32Zm0,176H160V48h40ZM96,32H56A16,16,0,0,0,40,48V208a16,16,0,0,0,16,16H96a16,16,0,0,0,16-16V48A16,16,0,0,0,96,32Zm0,176H56V48H96Z"}))],["fill",
|
|
40
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M216,48V208a16,16,0,0,1-16,16H160a16,16,0,0,1-16-16V48a16,16,0,0,1,16-16h40A16,16,0,0,1,216,48ZM96,32H56A16,16,0,0,0,40,48V208a16,16,0,0,0,16,16H96a16,16,0,0,0,16-16V48A16,16,0,0,0,96,32Z"}))],["light",
|
|
41
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M200,34H160a14,14,0,0,0-14,14V208a14,14,0,0,0,14,14h40a14,14,0,0,0,14-14V48A14,14,0,0,0,200,34Zm2,174a2,2,0,0,1-2,2H160a2,2,0,0,1-2-2V48a2,2,0,0,1,2-2h40a2,2,0,0,1,2,2ZM96,34H56A14,14,0,0,0,42,48V208a14,14,0,0,0,14,14H96a14,14,0,0,0,14-14V48A14,14,0,0,0,96,34Zm2,174a2,2,0,0,1-2,2H56a2,2,0,0,1-2-2V48a2,2,0,0,1,2-2H96a2,2,0,0,1,2,2Z"}))],["regular",
|
|
42
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M200,32H160a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,200,32Zm0,176H160V48h40ZM96,32H56A16,16,0,0,0,40,48V208a16,16,0,0,0,16,16H96a16,16,0,0,0,16-16V48A16,16,0,0,0,96,32Zm0,176H56V48H96Z"}))],["thin",
|
|
43
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M200,36H160a12,12,0,0,0-12,12V208a12,12,0,0,0,12,12h40a12,12,0,0,0,12-12V48A12,12,0,0,0,200,36Zm4,172a4,4,0,0,1-4,4H160a4,4,0,0,1-4-4V48a4,4,0,0,1,4-4h40a4,4,0,0,1,4,4ZM96,36H56A12,12,0,0,0,44,48V208a12,12,0,0,0,12,12H96a12,12,0,0,0,12-12V48A12,12,0,0,0,96,36Zm4,172a4,4,0,0,1-4,4H56a4,4,0,0,1-4-4V48a4,4,0,0,1,4-4H96a4,4,0,0,1,4,4Z"}))]]),j=/* @__PURE__ */new Map([["bold",
|
|
44
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M234.49,111.07,90.41,22.94A20,20,0,0,0,60,39.87V216.13a20,20,0,0,0,30.41,16.93l144.08-88.13a19.82,19.82,0,0,0,0-33.86ZM84,208.85V47.15L216.16,128Z"}))],["duotone",
|
|
45
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M228.23,134.69,84.15,222.81A8,8,0,0,1,72,216.12V39.88a8,8,0,0,1,12.15-6.69l144.08,88.12A7.82,7.82,0,0,1,228.23,134.69Z",opacity:"0.2"}),/* @__PURE__ */e.createElement("path",{d:"M232.4,114.49,88.32,26.35a16,16,0,0,0-16.2-.3A15.86,15.86,0,0,0,64,39.87V216.13A15.94,15.94,0,0,0,80,232a16.07,16.07,0,0,0,8.36-2.35L232.4,141.51a15.81,15.81,0,0,0,0-27ZM80,215.94V40l143.83,88Z"}))],["fill",
|
|
46
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M240,128a15.74,15.74,0,0,1-7.6,13.51L88.32,229.65a16,16,0,0,1-16.2.3A15.86,15.86,0,0,1,64,216.13V39.87a15.86,15.86,0,0,1,8.12-13.82,16,16,0,0,1,16.2.3L232.4,114.49A15.74,15.74,0,0,1,240,128Z"}))],["light",
|
|
47
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M231.36,116.19,87.28,28.06a14,14,0,0,0-14.18-.27A13.69,13.69,0,0,0,66,39.87V216.13a13.69,13.69,0,0,0,7.1,12.08,14,14,0,0,0,14.18-.27l144.08-88.13a13.82,13.82,0,0,0,0-23.62Zm-6.26,13.38L81,217.7a2,2,0,0,1-2.06,0,1.78,1.78,0,0,1-1-1.61V39.87a1.78,1.78,0,0,1,1-1.61A2.06,2.06,0,0,1,80,38a2,2,0,0,1,1,.31L225.1,126.43a1.82,1.82,0,0,1,0,3.14Z"}))],["regular",
|
|
48
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M232.4,114.49,88.32,26.35a16,16,0,0,0-16.2-.3A15.86,15.86,0,0,0,64,39.87V216.13A15.94,15.94,0,0,0,80,232a16.07,16.07,0,0,0,8.36-2.35L232.4,141.51a15.81,15.81,0,0,0,0-27ZM80,215.94V40l143.83,88Z"}))],["thin",
|
|
49
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M230.32,117.9,86.24,29.79a11.91,11.91,0,0,0-12.17-.23A11.71,11.71,0,0,0,68,39.89V216.11a11.71,11.71,0,0,0,6.07,10.33,11.91,11.91,0,0,0,12.17-.23L230.32,138.1a11.82,11.82,0,0,0,0-20.2Zm-4.18,13.37L82.06,219.39a4,4,0,0,1-4.07.07,3.77,3.77,0,0,1-2-3.35V39.89a3.77,3.77,0,0,1,2-3.35,4,4,0,0,1,4.07.07l144.08,88.12a3.8,3.8,0,0,1,0,6.54Z"}))]]),R=/* @__PURE__ */new Map([["bold",
|
|
50
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,28H48A20,20,0,0,0,28,48V208a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V48A20,20,0,0,0,208,28Zm-4,176H52V52H204Z"}))],["duotone",
|
|
51
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M216,48V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208A8,8,0,0,1,216,48Z",opacity:"0.2"}),/* @__PURE__ */e.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm0,176H48V48H208V208Z"}))],["fill",
|
|
52
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M224,48V208a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32H208A16,16,0,0,1,224,48Z"}))],["light",
|
|
53
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,34H48A14,14,0,0,0,34,48V208a14,14,0,0,0,14,14H208a14,14,0,0,0,14-14V48A14,14,0,0,0,208,34Zm2,174a2,2,0,0,1-2,2H48a2,2,0,0,1-2-2V48a2,2,0,0,1,2-2H208a2,2,0,0,1,2,2Z"}))],["regular",
|
|
54
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm0,176H48V48H208V208Z"}))],["thin",
|
|
55
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M208,36H48A12,12,0,0,0,36,48V208a12,12,0,0,0,12,12H208a12,12,0,0,0,12-12V48A12,12,0,0,0,208,36Zm4,172a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V48a4,4,0,0,1,4-4H208a4,4,0,0,1,4,4Z"}))]]),C=/* @__PURE__ */new Map([["bold",
|
|
56
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M249.45,69.31a12,12,0,0,0-12.51,1L212,88.43V72a20,20,0,0,0-20-20H32A20,20,0,0,0,12,72V184a20,20,0,0,0,20,20H192a20,20,0,0,0,20-20V167.57l24.94,18.14A12,12,0,0,0,256,176V80A12,12,0,0,0,249.45,69.31ZM188,180H36V76H188Zm44-27.57-20-14.54V118.11l20-14.54Z"}))],["duotone",
|
|
57
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M200,72V184a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H192A8,8,0,0,1,200,72Z",opacity:"0.2"}),/* @__PURE__ */e.createElement("path",{d:"M251.77,73a8,8,0,0,0-8.21.39L208,97.05V72a16,16,0,0,0-16-16H32A16,16,0,0,0,16,72V184a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V159l35.56,23.71A8,8,0,0,0,248,184a8,8,0,0,0,8-8V80A8,8,0,0,0,251.77,73ZM192,184H32V72H192V184Zm48-22.95-32-21.33V116.28L240,95Z"}))],["fill",
|
|
58
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M192,72V184a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V72A16,16,0,0,1,32,56H176A16,16,0,0,1,192,72Zm58,.25a8.23,8.23,0,0,0-6.63,1.22L209.78,95.86A4,4,0,0,0,208,99.19v57.62a4,4,0,0,0,1.78,3.33l33.78,22.52a8,8,0,0,0,8.58.19,8.33,8.33,0,0,0,3.86-7.17V80A8,8,0,0,0,250,72.25Z"}))],["light",
|
|
59
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M250.83,74.71a6,6,0,0,0-6.16.3L206,100.79V72a14,14,0,0,0-14-14H32A14,14,0,0,0,18,72V184a14,14,0,0,0,14,14H192a14,14,0,0,0,14-14V155.21L244.67,181a6,6,0,0,0,9.33-5V80A6,6,0,0,0,250.83,74.71ZM194,184a2,2,0,0,1-2,2H32a2,2,0,0,1-2-2V72a2,2,0,0,1,2-2H192a2,2,0,0,1,2,2Zm48-19.21-36-24V115.21l36-24Z"}))],["regular",
|
|
60
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M251.77,73a8,8,0,0,0-8.21.39L208,97.05V72a16,16,0,0,0-16-16H32A16,16,0,0,0,16,72V184a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V159l35.56,23.71A8,8,0,0,0,248,184a8,8,0,0,0,8-8V80A8,8,0,0,0,251.77,73ZM192,184H32V72H192V184Zm48-22.95-32-21.33V116.28L240,95Z"}))],["thin",
|
|
61
|
-
/* @__PURE__ */e.createElement(e.Fragment,null,/* @__PURE__ */e.createElement("path",{d:"M249.89,76.47a4,4,0,0,0-4.11.2L204,104.53V72a12,12,0,0,0-12-12H32A12,12,0,0,0,20,72V184a12,12,0,0,0,12,12H192a12,12,0,0,0,12-12V151.47l41.78,27.86A4,4,0,0,0,252,176V80A4,4,0,0,0,249.89,76.47ZM196,184a4,4,0,0,1-4,4H32a4,4,0,0,1-4-4V72a4,4,0,0,1,4-4H192a4,4,0,0,1,4,4Zm48-15.47-40-26.67V114.14l40-26.67Z"}))]]),k=a({color:"currentColor",size:"1em",weight:"regular",mirrored:!1}),N=e.forwardRef((t,a)=>{const{alt:r,color:n,size:o,weight:l,mirrored:c,children:i,weights:s,...u}=t,{color:d="currentColor",size:m,weight:p="regular",mirrored:g=!1,...h}=e.useContext(k);/* @__PURE__ */
|
|
62
|
-
return e.createElement("svg",{ref:a,xmlns:"http://www.w3.org/2000/svg",width:null!=o?o:m,height:null!=o?o:m,fill:null!=n?n:d,viewBox:"0 0 256 256",transform:c||g?"scale(-1, 1)":void 0,...h,...u},!!r&&/* @__PURE__ */e.createElement("title",null,r),i,s.get(null!=l?l:p))});N.displayName="IconBase";const P=e.forwardRef((t,a)=>/* @__PURE__ */e.createElement(N,{ref:a,...t,weights:b}));P.displayName="CameraIcon";const F=e.forwardRef((t,a)=>/* @__PURE__ */e.createElement(N,{ref:a,...t,weights:M}));F.displayName="CircleIcon";const T=e.forwardRef((t,a)=>/* @__PURE__ */e.createElement(N,{ref:a,...t,weights:Z}));T.displayName="GearIcon";const _=e.forwardRef((t,a)=>/* @__PURE__ */e.createElement(N,{ref:a,...t,weights:S}));_.displayName="MicrophoneIcon";const I=e.forwardRef((t,a)=>/* @__PURE__ */e.createElement(N,{ref:a,...t,weights:L}));I.displayName="MicrophoneSlashIcon";const O=e.forwardRef((t,a)=>/* @__PURE__ */e.createElement(N,{ref:a,...t,weights:H}));O.displayName="MonitorIcon";const D=e.forwardRef((t,a)=>/* @__PURE__ */e.createElement(N,{ref:a,...t,weights:x}));D.displayName="PauseIcon";const U=e.forwardRef((t,a)=>/* @__PURE__ */e.createElement(N,{ref:a,...t,weights:j}));U.displayName="PlayIcon";const q=e.forwardRef((t,a)=>/* @__PURE__ */e.createElement(N,{ref:a,...t,weights:R}));q.displayName="SquareIcon";const $=e.forwardRef((t,a)=>/* @__PURE__ */e.createElement(N,{ref:a,...t,weights:C}));$.displayName="VideoCameraIcon";class B{constructor(e){if(this.proxyEndpoint=e.proxyEndpoint,this.proxyEndpoint)throw Error("Proxy mode not yet implemented");this.service=new i}uploadVideo(e,t){if(this.proxyEndpoint)throw Error("Proxy mode not yet implemented");return this.service.uploadVideo(e,t)}}const z=/^https?:\/\//i,K=/* @__PURE__ */new Map;function W(e){const[t,a]=r("idle"),[i,m]=r(null),[p,g]=r(!1),[h,f]=r(!1),[v,y]=r(null),[A,E]=r(null),[w,V]=r(""),[b,M]=r(null),[Z,S]=r(0),[L,H]=r(null),[x,j]=r({cameras:[],microphones:[],selectedCamera:null,selectedMic:null}),R=n(null),C=n(null),k=n(!1),N=n(!1),P=n(e);P.current=e;const F=o(e=>{const t=s(e);y(t),P.current.onError&&P.current.onError(e instanceof Error?e:Error(t))},[]),T=o(async e=>{R.current&&0!==e.getAudioTracks().length&&(R.current.stopAudioLevelTracking(),await R.current.startAudioLevelTracking(e,{onLevelUpdate:(e,t)=>{S(e),g(t)}}))},[]),_=o(async()=>{if(!R.current||!i)return;const e=await R.current.getDeviceManager().getAvailableDevices(),t=R.current.getDeviceManager();j({cameras:e.videoinput,microphones:e.audioinput,selectedCamera:t.getSelectedCameraDeviceId(),selectedMic:t.getSelectedMicDeviceId()})},[i]);l(()=>{_()},[_]),l(()=>{R.current&&i&&R.current.getStream()===i&&(g(R.current.getIsMuted()),f(R.current.isPaused()))},[i]),l(()=>{const t=`${e.apiKey}:${e.backendUrl}`,r=P.current.apiKey!==e.apiKey,n=P.current.backendUrl!==e.backendUrl;if(!r&&!n&&k.current&&R.current)return;const o=K.get(t);if(o)return R.current=o.controller,void o.promise.then(()=>{k.current=!0,N.current=!1}).catch(()=>{k.current=!1,N.current=!1});if(N.current)return;if(R.current&&!r&&!n)return;N.current=!0,R.current&&(R.current.cleanup(),R.current.getStreamManager().destroy(),R.current=null),k.current=!1,P.current=e;const l=function(e,t){const a={apiKey:t,backendUrl:(r=e.backendUrl,r?z.test(r)?r:"https://"+r:"https://api.vidtreo.com")};var r;return void 0!==e.countdownDuration&&(a.countdownDuration=e.countdownDuration),void 0!==e.maxRecordingTime&&(a.maxRecordingTime=e.maxRecordingTime),e.userMetadata&&(a.userMetadata=e.userMetadata),void 0!==e.enableSourceSwitching&&(a.enableSourceSwitching=e.enableSourceSwitching),void 0!==e.enableMute&&(a.enableMute=e.enableMute),void 0!==e.enablePause&&(a.enablePause=e.enablePause),void 0!==e.enableDeviceChange&&(a.enableDeviceChange=e.enableDeviceChange),a}({backendUrl:e.backendUrl,countdownDuration:e.countdownDuration,maxRecordingTime:e.maxRecordingTime,userMetadata:e.userMetadata,enableSourceSwitching:e.enableSourceSwitching,enableMute:e.enableMute,enablePause:e.enablePause,enableDeviceChange:e.enableDeviceChange},e.apiKey),c=new B({apiKey:e.apiKey,backendUrl:e.backendUrl,proxyEndpoint:e.proxyEndpoint});C.current=c;const i=new u({recording:{onStateChange:e=>{a(e),"recording"===e&&P.current.onRecordingStart&&P.current.onRecordingStart(),"idle"===e&&P.current.onRecordingStop&&P.current.onRecordingStop()},onCountdownUpdate:(e,t)=>{E(t),a(e)},onTimerUpdate:e=>{V(e)},onError:F,onRecordingComplete:()=>{E(null)},onClearUploadStatus:()=>{M(null)},onStopAudioTracking:()=>{},onGetConfig:()=>{if(!R.current)throw Error("Controller not initialized");return R.current.getConfig()}},upload:{onProgress:e=>{M(e),P.current.onUploadProgress&&P.current.onUploadProgress(e)},onSuccess:e=>{M(null),P.current.onUploadComplete&&P.current.onUploadComplete({recordingId:e.videoId,uploadUrl:e.uploadUrl})},onError:e=>{M(null),P.current.onUploadError&&P.current.onUploadError(e)},onClearStatus:()=>{M(null)}},stream:{onStreamStart:async e=>{m(e),y(null),await T(e)},onStreamStop:()=>{R.current&&R.current.stopAudioLevelTracking(),m(null),S(0)},onError:F},sourceSwitch:{onSourceChange:()=>{},onPreviewUpdate:e=>{m(e)},onError:F,onTransitionStart:e=>{H(e)},onTransitionEnd:()=>{H(null)}}});R.current=i;const s=i.initialize(l).then(()=>{k.current=!0,N.current=!1});return K.set(t,{promise:s,controller:i}),s.catch(e=>{F(e),k.current=!1,N.current=!1,K.delete(t)}),()=>{const e=K.get(t);e&&e.controller===R.current&&K.delete(t),R.current&&(R.current.cleanup(),R.current.getStreamManager().destroy(),R.current=null),k.current=!1,N.current=!1}},[e,T,F]);const I=o(async(e="camera")=>{if(!R.current||!k.current)throw Error("Controller not initialized");await R.current.startStream();const t=R.current.getStream();t&&(m(t),y(null),await T(t)),"screen"===e&&await R.current.switchSource("screen")},[T]),O=o(e=>""===e||"default"===e?null:e,[]),D=c(()=>({startRecording:async(e="camera")=>{if(!R.current)throw Error("Controller not initialized");R.current.isActive()||await I(e),e!==R.current.getCurrentSourceType()&&await R.current.switchSource(e),await R.current.startRecording()},stopRecording:async()=>{if(!R.current)throw Error("Controller not initialized");if(!C.current)throw Error("Upload service not initialized");const e=await R.current.stopRecording(),t=await d(e),a=`recording-${Date.now()}.mp4`,r=await C.current.uploadVideo(e,{apiKey:P.current.apiKey,backendUrl:P.current.backendUrl,filename:a,duration:t,userMetadata:P.current.userMetadata,onProgress:P.current.onUploadProgress});return{recordingId:r.videoId,uploadUrl:r.uploadUrl,blob:e}},pauseRecording:()=>{R.current&&(R.current.pauseRecording(),f(R.current.isPaused()))},resumeRecording:()=>{R.current&&(R.current.resumeRecording(),f(R.current.isPaused()))},toggleMute:()=>{R.current&&(R.current.toggleMute(),g(R.current.getIsMuted()))},switchSource:async e=>{if(!R.current)throw Error("Controller not initialized");await R.current.switchSource(e)},changeCamera:async e=>{if(!R.current)throw Error("Controller not initialized");const t=O(e);R.current.setCameraDevice(t);const a=await R.current.switchVideoDevice(t);m(a),y(null),await T(a);const r=R.current.getDeviceManager();j(e=>({...e,selectedCamera:r.getSelectedCameraDeviceId()}))},changeMic:async e=>{if(!R.current)throw Error("Controller not initialized");const t=O(e);R.current.setMicDevice(t);const a=await R.current.switchAudioDevice(t);m(a),y(null),await T(a);const r=R.current.getDeviceManager();j(e=>({...e,selectedMic:r.getSelectedMicDeviceId()}))},startPreview:I,cleanup:()=>{R.current&&(R.current.cleanup(),R.current.getStreamManager().destroy(),R.current=null),k.current=!1}}),[O,T,I]);return{state:c(()=>({recordingState:t,stream:i,isMuted:p,isPaused:h,error:v,countdown:A,timer:w,uploadProgress:b,transitionMessage:L,devices:x}),[t,i,p,h,v,A,w,b,L,x]),actions:D,audioLevel:Z,controller:R.current}}function Y({audioLevel:e,isMuted:t}){const a=Array.from({length:15},(a,r)=>{let n="15%",o="",l="1";if(e>=(r+1)/15*100&&!t){n=30+r/15*70+"%";const e=.7+r/15*(1-.7);o=m(r/15),l=e+""}const c="audio-bar-"+r;/* @__PURE__ */
|
|
63
|
-
return V.jsx("div",{className:"audio-level-bar",style:{height:n,backgroundColor:o,opacity:l}},c)});/* @__PURE__ */
|
|
64
|
-
return V.jsx(V.Fragment,{children:a})}function Q({buttonVisibility:e,recordingState:t,isMuted:a,currentSourceType:r,onToggleSettings:n,onStartRecording:o,onStopRecording:l,onToggleMute:c,onPause:i,onResume:s,onSwitchSource:u}){/* @__PURE__ */
|
|
65
|
-
return V.jsx("div",{className:"recording-controls",children:/* @__PURE__ */V.jsx("div",{className:"recording-controls-row",children:/* @__PURE__ */V.jsxs("div",{className:"control-buttons-row",children:[e.showSettingsButton&&/* @__PURE__ */V.jsx("button",{className:"control-button",id:"settingsButton",onClick:n,title:"Settings",type:"button",children:/* @__PURE__ */V.jsx(T,{height:20,weight:"regular",width:20})}),"idle"===t&&/* @__PURE__ */V.jsxs("button",{className:"record-button",id:"startButton",onClick:o,type:"button",children:[
|
|
66
|
-
/* @__PURE__ */V.jsx(F,{fill:"currentColor",height:24,style:{marginRight:"0.375rem"},weight:"fill",width:24}),"Record"]}),e.showMuteButton&&/* @__PURE__ */V.jsx("button",{className:"control-button "+(a?"muted":""),id:"muteButton",onClick:c,title:a?"Unmute":"Mute",type:"button",children:a?/* @__PURE__ */V.jsx(I,{height:24,weight:"regular",width:24}):/* @__PURE__ */V.jsx(_,{height:24,weight:"regular",width:24})}),e.showPauseButton&&/* @__PURE__ */V.jsx("button",{className:"control-button",id:"pauseButton",onClick:i,title:"Pause",type:"button",children:/* @__PURE__ */V.jsx(D,{height:24,weight:"regular",width:24})}),e.showResumeButton&&/* @__PURE__ */V.jsx("button",{className:"control-button",id:"resumeButton",onClick:s,title:"Resume",type:"button",children:/* @__PURE__ */V.jsx(U,{height:24,weight:"regular",width:24})}),e.showStopButton&&/* @__PURE__ */V.jsxs("button",{className:"record-button",id:"stopButton",onClick:l,type:"button",children:[
|
|
67
|
-
/* @__PURE__ */V.jsx(q,{fill:"currentColor",height:24,style:{marginRight:"0.375rem"},weight:"fill",width:24}),"Stop"]}),e.showSwitchSourceButton&&/* @__PURE__ */V.jsx("button",{className:"control-button",id:"switchSourceButton",onClick:u,title:"Switch Source",type:"button",children:"camera"===r?/* @__PURE__ */V.jsx(O,{height:24,weight:"regular",width:24}):/* @__PURE__ */V.jsx(P,{height:24,weight:"regular",width:24})})]})})})}function G({devices:e,onCameraChange:t,onMicChange:a}){/* @__PURE__ */
|
|
68
|
-
return V.jsxs("div",{className:"settings-panel active",id:"settingsPanel",children:[
|
|
69
|
-
/* @__PURE__ */V.jsx("h3",{className:"settings-title",children:"Settings"}),
|
|
70
|
-
/* @__PURE__ */V.jsxs("div",{className:"device-selects-container",children:[
|
|
71
|
-
/* @__PURE__ */V.jsxs("div",{className:"device-select-group",children:[
|
|
72
|
-
/* @__PURE__ */V.jsxs("div",{className:"device-select-label",children:[
|
|
73
|
-
/* @__PURE__ */V.jsx($,{height:20,weight:"regular",width:20}),
|
|
74
|
-
/* @__PURE__ */V.jsx("span",{children:"Camera"})]}),
|
|
75
|
-
/* @__PURE__ */V.jsx("select",{className:"device-select",id:"cameraSelect",onChange:e=>{t(e.target.value)},value:e.selectedCamera||"",children:e.cameras.filter(e=>e.deviceId&&""!==e.deviceId.trim()).map(e=>/* @__PURE__ */V.jsx("option",{value:e.deviceId,children:e.label||"Camera "+e.deviceId.slice(0,8)},e.deviceId))})]}),
|
|
76
|
-
/* @__PURE__ */V.jsxs("div",{className:"device-select-group",children:[
|
|
77
|
-
/* @__PURE__ */V.jsxs("div",{className:"device-select-label",children:[
|
|
78
|
-
/* @__PURE__ */V.jsx(_,{height:20,weight:"regular",width:20}),
|
|
79
|
-
/* @__PURE__ */V.jsx("span",{children:"Microphone"})]}),
|
|
80
|
-
/* @__PURE__ */V.jsx("select",{className:"device-select",id:"micSelect",onChange:e=>{a(e.target.value)},value:e.selectedMic||"",children:e.microphones.filter(e=>e.deviceId&&""!==e.deviceId.trim()).map(e=>/* @__PURE__ */V.jsx("option",{value:e.deviceId,children:e.label||"Microphone "+e.deviceId.slice(0,8)},e.deviceId))})]})]})]})}function J(e){e.pause(),e.srcObject=null}function X(e,t,a){if(!t)return!1;if(!function(e,t){const a=e.getVideoTracks();return 0===a.length||"live"!==a[0].readyState?(J(t),!1):!!e.active||(J(t),!1)}(t,e))return!1;const r=t.getVideoTracks()[0];return r.enabled||(r.enabled=!0),e.pause(),e.srcObject=t,a&&a(!1),e.play().catch(()=>{}),!0}function ee({controller:e,stream:t,transitionMessage:a,className:o="",onLoadedChange:c}){const i=n(null),[s,u]=r(null),[d,m]=r("camera"),p=n(!1);return l(()=>{const a=i.current;if(!a)return;if(!e)return a.pause(),a.srcObject=null,void(c&&c(!1));const r=t||e.getStream(),n=e.getCurrentSourceType();if((r?.id!==s||n!==d)&&r&&!p.current)return void function(e){const{videoElement:t,currentStream:a,currentSourceType:r,isUpdatingRef:n,setStreamId:o,setSourceType:l,onLoadedChange:c}=e;n.current=!0,o(a.id),l(r),c&&c(!1),async function(e,t,a,r){e.srcObject&&e.srcObject!==t&&e.pause(),e.srcObject=null,"screen"===a?e.classList.add("screen-share"):e.classList.remove("screen-share"),await new Promise(e=>{setTimeout(()=>e(),100)}),e.srcObject=t;const n=t.getVideoTracks();n.length>0&&!n[0].enabled&&(n[0].enabled=!0),await async function(e){try{await e.play()}catch(t){(function(e){const t=e instanceof Error?e.message:e+"";return t.includes("interrupted")||t.includes("abort")})(t)&&await async function(e){await new Promise(e=>{setTimeout(()=>e(),200)});try{await e.play()}catch{}}(e)}}(e),r.current=!1}(t,a,r,n).then(()=>{2>t.readyState||t.paused||!c||c(!0)}).catch(()=>{n.current=!1})}({videoElement:a,currentStream:r,currentSourceType:n,isUpdatingRef:p,setStreamId:u,setSourceType:m,onLoadedChange:c});const o=t||e.getStream();return X(a,o,c)?void 0:function(e,t,a){let r=0;const n=setInterval(()=>{r+=1,!X(e,t,a)&&10>r||clearInterval(n)},100);return()=>{clearInterval(n)}}(a,o,c)},[e,t,s,d,c]),l(()=>{const r=i.current;if(!r||!e||a)return;const n=t||e.getStream();n&&r.srcObject===n&&r.paused&&r.readyState>=2&&r.play().catch(()=>{})},[e,t,a]),l(()=>{const e=i.current;if(!e)return;const t=()=>{2>e.readyState||e.paused||!c||c(!0)},a=()=>{e.readyState>=2&&c&&c(!0)},r=()=>{c&&c(!1)};return e.addEventListener("loadedmetadata",t),e.addEventListener("playing",a),e.addEventListener("loadstart",r),()=>{e.removeEventListener("loadedmetadata",t),e.removeEventListener("playing",a),e.removeEventListener("loadstart",r)}},[c]),/* @__PURE__ */V.jsx("video",{autoPlay:!0,className:o,muted:!0,playsInline:!0,ref:i})}function te({className:e=""}){/* @__PURE__ */
|
|
81
|
-
return V.jsx("div",{className:"video-preview-skeleton "+e,children:/* @__PURE__ */V.jsx("div",{className:"skeleton-shimmer"})})}function ae(e,t){t&&t(e instanceof Error?e:Error(e+""))}function re({state:e,isVideoLoaded:t,isRecording:a,controller:r,audioLevel:n,buttonVisibility:o,currentSourceType:l,onStartRecording:c,onStopRecording:i,onSwitchSource:s,onToggleSettings:u,onToggleMute:d,onPause:m,onResume:p,onLoadedChange:g}){/* @__PURE__ */
|
|
82
|
-
return V.jsxs("div",{className:"preview-container",children:[!e.stream&&/* @__PURE__ */V.jsxs("div",{className:"start-camera-area",id:"startCameraArea",children:[
|
|
83
|
-
/* @__PURE__ */V.jsx("div",{className:"camera-icon",children:/* @__PURE__ */V.jsx(P,{color:"currentColor",height:48,weight:"regular",width:48})}),
|
|
84
|
-
/* @__PURE__ */V.jsx("div",{className:"camera-text",children:"Initializing camera..."}),
|
|
85
|
-
/* @__PURE__ */V.jsx("div",{className:"camera-hint",children:"Grant camera and microphone permissions when prompted"})]}),e.transitionMessage&&/* @__PURE__ */V.jsxs("div",{className:"preview-skeleton",id:"previewSkeleton",children:[
|
|
86
|
-
/* @__PURE__ */V.jsx("div",{className:"skeleton-spinner"}),
|
|
87
|
-
/* @__PURE__ */V.jsx("div",{className:"skeleton-text",children:"Switching device..."})]}),e.stream&&!(t||e.transitionMessage)&&/* @__PURE__ */V.jsx(te,{}),e.stream&&/* @__PURE__ */V.jsx(ee,{className:"video-preview",controller:r,onLoadedChange:g,stream:e.stream,transitionMessage:e.transitionMessage}),"countdown"===e.recordingState&&null!==e.countdown&&/* @__PURE__ */V.jsx("div",{className:"countdown-overlay active",id:"countdownOverlay",children:/* @__PURE__ */V.jsxs("div",{className:"countdown-content",children:[
|
|
88
|
-
/* @__PURE__ */V.jsx("div",{className:"countdown-number",id:"countdownNumber",children:e.countdown}),
|
|
89
|
-
/* @__PURE__ */V.jsx("p",{className:"countdown-text",children:"Recording starts in..."})]})}),a&&/* @__PURE__ */V.jsxs("div",{className:"rec-indicator-top",id:"recIndicatorTop",style:{display:"flex"},children:[
|
|
90
|
-
/* @__PURE__ */V.jsx("div",{className:"recording-dot-small"}),
|
|
91
|
-
/* @__PURE__ */V.jsx("span",{children:"REC"})]}),a&&/* @__PURE__ */V.jsxs("div",{className:"recording-timer-badge",id:"recordingTimerRow",style:{display:"flex"},children:[
|
|
92
|
-
/* @__PURE__ */V.jsx("div",{className:"recording-dot-small"}),
|
|
93
|
-
/* @__PURE__ */V.jsx("span",{className:"recording-timer-text",id:"recordingTimer",children:e.timer})]}),a&&/* @__PURE__ */V.jsx("div",{className:"audio-level-bars",id:"audioLevelBars",style:{display:"flex"},children:/* @__PURE__ */V.jsx(Y,{audioLevel:n,isMuted:e.isMuted})}),e.stream&&/* @__PURE__ */V.jsx(Q,{buttonVisibility:o,currentSourceType:l,isMuted:e.isMuted,onPause:m,onResume:p,onStartRecording:c,onStopRecording:i,onSwitchSource:s,onToggleMute:d,onToggleSettings:u,recordingState:e.recordingState})]})}function ne(e){const t=function(e){if(e)return e;if("undefined"!=typeof process&&process.env&&"string"==typeof process.env.VIDTREO_API_KEY)return process.env.VIDTREO_API_KEY;throw Error("apiKey is required. Provide it as a prop or set VIDTREO_API_KEY environment variable.")}(e.apiKey),[a,n]=r(!1),[o,c]=r(!1),i=W({apiKey:t,backendUrl:e.backendUrl,countdownDuration:e.countdownDuration,maxRecordingTime:e.maxRecordingTime,userMetadata:e.userMetadata,enableSourceSwitching:e.enableSourceSwitching,enableMute:e.enableMute,enablePause:e.enablePause,enableDeviceChange:e.enableDeviceChange,onUploadComplete:e.onUploadComplete,onUploadProgress:e.onUploadProgress,onUploadError:e.onUploadError,onRecordingStart:e.onRecordingStart,onRecordingStop:e.onRecordingStop,onError:e.onError}),{state:s,actions:u,audioLevel:d,controller:m}=i;l(()=>{if(s.stream||!u.startPreview)return;const t=setTimeout(()=>{u.startPreview("camera").catch(t=>{ae(t,e.onError)})},100);return()=>{clearTimeout(t)}},[s.stream,u.startPreview,e.onError]),l(()=>{"recording"===s.recordingState&&a&&n(!1)},[s.recordingState,a]);const p="recording"===s.recordingState||s.isPaused,g=m?.getCurrentSourceType()||"camera",h=function(e,t,a,r){return{showSettingsButton:!e&&!1!==r.enableDeviceChange,showMuteButton:e&&!1!==r.enableMute,showPauseButton:e&&!1!==r.enablePause&&"recording"===t&&!a,showResumeButton:e&&!1!==r.enablePause&&a,showStopButton:e,showSwitchSourceButton:e&&!1!==r.enableSourceSwitching}}(p,s.recordingState,s.isPaused,e);/* @__PURE__ */
|
|
94
|
-
return V.jsxs(V.Fragment,{children:[
|
|
95
|
-
/* @__PURE__ */V.jsxs("div",{className:"camera-area active",id:"cameraArea",children:[re({state:s,isVideoLoaded:o,isRecording:p,controller:m,audioLevel:d,buttonVisibility:h,currentSourceType:g,onStartRecording:()=>{u.startRecording("camera").catch(t=>{ae(t,e.onError)})},onStopRecording:()=>{u.stopRecording().catch(t=>{ae(t,e.onError)})},onSwitchSource:()=>{const t=m?.getCurrentSourceType()||"camera";u.switchSource("camera"===t?"screen":"camera").catch(t=>{ae(t,e.onError)})},onToggleSettings:()=>{!1!==e.enableDeviceChange&&n(!a)},onToggleMute:u.toggleMute,onPause:u.pauseRecording,onResume:u.resumeRecording,onLoadedChange:c}),s.transitionMessage&&/* @__PURE__ */V.jsxs("div",{className:"source-transition-overlay active",id:"sourceTransitionOverlay",children:[
|
|
96
|
-
/* @__PURE__ */V.jsx("div",{className:"transition-spinner"}),
|
|
97
|
-
/* @__PURE__ */V.jsx("div",{className:"transition-message",children:s.transitionMessage})]}),s.stream&&a&&/* @__PURE__ */V.jsx(G,{devices:s.devices,onCameraChange:t=>{u.changeCamera(t).catch(t=>{ae(t,e.onError)})},onMicChange:t=>{u.changeMic(t).catch(t=>{ae(t,e.onError)})}})]}),s.error&&/* @__PURE__ */V.jsx("div",{className:"error active",id:"error",children:s.error}),null!==s.uploadProgress&&/* @__PURE__ */V.jsxs("div",{className:"upload-progress active",id:"uploadProgress",children:[
|
|
98
|
-
/* @__PURE__ */V.jsx("div",{className:"progress-bar",children:/* @__PURE__ */V.jsx("div",{className:"progress-fill",id:"uploadProgressFill",style:{width:Math.round(100*s.uploadProgress)+"%"}})}),
|
|
99
|
-
/* @__PURE__ */V.jsxs("div",{className:"progress-text",id:"uploadProgressText",children:["Uploading... ",Math.round(100*s.uploadProgress),"%"]})]})]})}export{ne as VidtreoRecorder,W as useVidtreoRecorder};
|
|
1
|
+
(function(){if(typeof document!=='undefined'){const style=document.createElement('style');style.textContent=`:root{--background:0 0% 100%;--foreground:0 0% 3.9%;--card:0 0% 100%;--card-foreground:0 0% 3.9%;--primary:0 0% 9%;--primary-foreground:0 0% 98%;--secondary:0 0% 96.1%;--secondary-foreground:0 0% 9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--accent:0 0% 96.1%;--accent-foreground:0 0% 9%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:0 0% 89.8%;--input:0 0% 89.8%;--ring:0 0% 3.9%;--radius:0.5rem;--preview-bg:0 0% 98%}.preview-container{position:relative;width:100%;aspect-ratio:9 / 16;border-radius:1rem;overflow:hidden;background:hsl(var(--preview-bg));display:flex;align-items:center;justify-content:center}.preview-container::before{content:"";position:absolute;inset:0;border-radius:1rem;border:1px solid hsl(var(--border));pointer-events:none;z-index:1}@media (min-width:768px){.preview-container{aspect-ratio:16 / 9}}.camera-area{display:none;position:relative;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.source-transition-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.7);display:none;align-items:center;justify-content:center;flex-direction:column;border-radius:1rem;z-index:100;backdrop-filter:blur(4px);transition:opacity 0.3s ease}.source-transition-overlay.active{display:flex;animation:fadeIn 0.2s ease}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.transition-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,0.3);border-top-color:#667eea;border-radius:50%;animation:spin 0.8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.transition-message{color:white;font-size:14px;font-weight:500;text-align:center}.camera-area.active{display:block}.preview-container{position:relative;width:100%;height:100%}.preview-skeleton{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:hsl(var(--background) / 0.95);border-radius:1rem;z-index:10;gap:1rem}.skeleton-spinner{width:40px;height:40px;border:4px solid hsl(var(--muted) / 0.3);border-top-color:hsl(var(--primary));border-radius:50%;animation:spin 0.8s linear infinite}.skeleton-text{color:hsl(var(--muted-foreground));font-size:0.875rem;font-weight:500}.video-preview{width:100%;height:100%;border-radius:1rem;background:#000;display:block;object-fit:contain;transition:opacity 0.3s ease,transform 0.3s ease;position:absolute;inset:0}.video-preview-skeleton{position:absolute;inset:0;width:100%;height:100%;border-radius:1rem;background:hsl(var(--muted));overflow:hidden;z-index:2}.skeleton-shimmer{position:absolute;inset:0;background:linear-gradient( 90deg,hsl(var(--muted)) 0%,hsl(var(--muted) / 0.5) 50%,hsl(var(--muted)) 100% );background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.video-preview-skeleton.hidden{opacity:0;pointer-events:none;transition:opacity 0.3s ease}.video-preview.screen-share{object-fit:cover}.video-preview.transitioning{opacity:0.5;transform:scale(0.98)}.countdown-overlay{position:absolute;inset:0;background:hsl(var(--background) / 0.95);display:none;align-items:center;justify-content:center;border-radius:0.5rem;z-index:20}.countdown-overlay.active{display:flex}.countdown-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.countdown-number{font-size:9rem;font-weight:bold;color:hsl(var(--foreground));animation:zoomIn 0.3s ease}@keyframes zoomIn{from{transform:scale(0.5);opacity:0}to{transform:scale(1);opacity:1}}.countdown-text{font-size:0.875rem;color:hsl(var(--muted-foreground));margin-top:1rem;font-weight:500}.settings-panel{margin-top:1rem;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:1rem;padding:1.25rem;display:none;flex-direction:column;animation:slideIn 0.3s ease}.settings-panel.active{display:flex}@keyframes slideIn{from{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}.settings-title{font-size:0.875rem;font-weight:600;margin-bottom:1rem}.device-selects-container{display:flex;flex-direction:row;gap:0.75rem}.device-select-group{flex:1;display:flex;flex-direction:column}.device-select-label{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:hsl(var(--muted-foreground));font-weight:500;margin-bottom:0.5rem}.device-select{width:100%;height:2.25rem;border-radius:0.5rem;border:1px solid hsl(var(--input));background:hsl(var(--background));padding:0 0.75rem;font-size:0.875rem;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0.75rem center;background-size:12px;padding-right:2.25rem}.audio-level-bars{position:absolute;bottom:0.75rem;right:0.75rem;display:flex;align-items:center;gap:0.125rem;height:1rem;z-index:10}@media (min-width:768px){.audio-level-bars{height:1.25rem}}.audio-level-bar{width:0.125rem;border-radius:9999px;background:hsl(var(--border));transition:all 0.1s ease;align-self:flex-end}.recording-controls{display:flex;gap:12px;align-items:center;justify-content:center}.recording-indicator{display:flex;align-items:center;gap:8px;color:#c33;font-weight:600;display:none}.recording-indicator.active{display:flex}.recording-dot{width:12px;height:12px;background:#c33;border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.3}}.recording-timer{font-family:monospace;font-size:18px;color:#333}.start-camera-area{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #667eea;border-radius:1rem;padding:40px;text-align:center;background:#f8f9ff;transition:all 0.3s ease;cursor:pointer;z-index:1}.start-camera-area:hover:not(.loading){border-color:#764ba2;background:#f0f2ff}.start-camera-area.loading{cursor:wait;opacity:0.7}.start-camera-area.loading .camera-text{color:#999}.camera-icon{font-size:48px;margin-bottom:16px;display:flex;justify-content:center;color:#667eea}.camera-text{color:#667eea;font-weight:600;margin-bottom:8px}.camera-hint{color:#999;font-size:12px}.recording-info{margin-top:20px;padding:16px;background:#f5f5f5;border-radius:8px;display:none}.recording-info.active{display:block}.recording-size{color:#666;font-size:14px}button{width:100%;padding:16px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:white;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;margin-top:20px}button:disabled{opacity:0.6;cursor:not-allowed}.recording-controls{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);z-index:10}.recording-controls-row{display:flex;align-items:center;justify-content:center;gap:0.5rem}.recording-timer-row{display:flex;align-items:center;justify-content:space-between;gap:0.5rem}.recording-timer-badge{position:absolute;top:0.75rem;right:0.75rem;display:flex;align-items:center;gap:0.375rem;background:hsl(var(--background) / 0.9);border:1px solid hsl(var(--border));padding:0.25rem 0.5rem;border-radius:9999px;box-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1),0 1px 2px -1px rgb(0 0 0 / 0.1);z-index:10}.recording-dot-small{width:0.375rem;height:0.375rem;background:hsl(var(--destructive));border-radius:50%;animation:pulse 1.5s ease-in-out infinite}.recording-timer-text{font-size:0.75rem;font-family:monospace;font-weight:500;color:hsl(var(--foreground))}.control-buttons-row{display:flex;align-items:center;justify-content:center;gap:0.375rem;height:auto;min-height:2rem}@media (min-width:768px){.control-buttons-row{min-height:2.25rem}}.control-button{width:2rem;height:2rem;min-height:2rem;max-height:2rem;border-radius:9999px;border:1px solid hsl(var(--border));background:hsl(var(--background) / 0.9);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color 0.2s ease,filter 0.2s ease;color:hsl(var(--foreground));padding:0;margin:0;flex-shrink:0;box-sizing:border-box;vertical-align:top}.control-button svg{width:24px !important;height:24px !important;color:inherit;flex-shrink:0}@media (min-width:768px){.control-button svg{width:26px !important;height:26px !important}}@media (min-width:768px){.control-button{width:2.25rem;height:2.25rem;min-height:2.25rem;max-height:2.25rem}}.control-button:hover:not(:disabled){filter:brightness(0.85)}.control-button:disabled{opacity:0.5;cursor:not-allowed}.control-button.muted{background:hsl(var(--muted));color:hsl(var(--foreground))}.control-button.muted:hover:not(:disabled){filter:brightness(0.85)}.record-button{height:2rem;min-height:2rem;max-height:2rem;padding:0 0.75rem;border-radius:9999px;font-weight:500;font-size:0.75rem;background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));border:none;display:inline-flex;align-items:center;justify-content:center;gap:0.375rem;transition:background-color 0.2s ease,filter 0.2s ease;width:auto;margin:0;line-height:1;flex-shrink:0;box-sizing:border-box;vertical-align:top}@media (min-width:768px){.record-button{height:2.25rem;min-height:2.25rem;max-height:2.25rem;font-size:0.875rem}}.record-button:hover:not(:disabled){filter:brightness(0.85)}.rec-indicator-top{position:absolute;top:0.75rem;left:0.75rem;display:flex;align-items:center;gap:0.375rem;background:hsl(var(--background) / 0.9);border:1px solid hsl(var(--border));padding:0.25rem 0.5rem;border-radius:9999px;box-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1),0 1px 2px -1px rgb(0 0 0 / 0.1)}.rec-indicator-top span{font-size:0.75rem;font-weight:500}.progress{margin-top:20px;display:none}.progress.active{display:block}.progress-bar{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea 0%,#764ba2 100%);width:0%;transition:width 0.3s ease}.progress-text{text-align:center;color:#666;font-size:14px}.result{margin-top:20px;padding:20px;background:#f0f9ff;border:2px solid #667eea;border-radius:8px;display:none}.result.active{display:block}.result-title{font-weight:600;color:#333;margin-bottom:12px}.result-info{color:#666;font-size:14px;margin-bottom:12px}.result-actions{display:flex;gap:12px}.result-actions button{flex:1;margin-top:0;padding:12px;font-size:14px}.error{margin-top:20px;padding:16px;background:#fee;border:2px solid #fcc;border-radius:8px;color:#c33;display:none}.error.active{display:block}.upload-progress{margin-top:20px;display:none}.upload-progress.active{display:block}.upload-status{margin-top:20px;padding:16px;border-radius:8px;display:none}.upload-status.active{display:block}.upload-status.success{background:#f0f9ff;border:2px solid #48bb78;color:#22543d}.upload-status.error{background:#fee;border:2px solid #fcc;color:#c33}.upload-status-text{font-size:14px;font-weight:500}`;document.head.appendChild(style);}})();import*as e from"react";import{createContext as t,useCallback as n,useEffect as r,useMemo as i,useRef as a,useState as o}from"react";import{RecorderController as s,VideoUploadService as c,calculateBarColor as l,extractErrorMessage as u,extractVideoDuration as d}from"@vidtreo/recorder";import{Fragment as f,jsx as p,jsxs as m}from"react/jsx-runtime";const h=new Map([[`bold`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,52H182.42L170,33.34A12,12,0,0,0,160,28H96a12,12,0,0,0-10,5.34L73.57,52H48A28,28,0,0,0,20,80V192a28,28,0,0,0,28,28H208a28,28,0,0,0,28-28V80A28,28,0,0,0,208,52Zm4,140a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V80a4,4,0,0,1,4-4H80a12,12,0,0,0,10-5.34L102.42,52h51.15L166,70.66A12,12,0,0,0,176,76h32a4,4,0,0,1,4,4ZM128,84a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,84Zm0,72a24,24,0,1,1,24-24A24,24,0,0,1,128,156Z`}))],[`duotone`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,64H176L160,40H96L80,64H48A16,16,0,0,0,32,80V192a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V80A16,16,0,0,0,208,64ZM128,168a36,36,0,1,1,36-36A36,36,0,0,1,128,168Z`,opacity:`0.2`}),e.createElement(`path`,{d:`M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H80a8,8,0,0,0,6.66-3.56L100.28,48h55.43l13.63,20.44A8,8,0,0,0,176,72h32a8,8,0,0,1,8,8ZM128,88a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,88Zm0,72a28,28,0,1,1,28-28A28,28,0,0,1,128,160Z`}))],[`fill`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm-44,76a36,36,0,1,1-36-36A36,36,0,0,1,164,132Z`}))],[`light`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,58H179.21L165,36.67A6,6,0,0,0,160,34H96a6,6,0,0,0-5,2.67L76.78,58H48A22,22,0,0,0,26,80V192a22,22,0,0,0,22,22H208a22,22,0,0,0,22-22V80A22,22,0,0,0,208,58Zm10,134a10,10,0,0,1-10,10H48a10,10,0,0,1-10-10V80A10,10,0,0,1,48,70H80a6,6,0,0,0,5-2.67L99.21,46h57.57L171,67.33A6,6,0,0,0,176,70h32a10,10,0,0,1,10,10ZM128,90a42,42,0,1,0,42,42A42,42,0,0,0,128,90Zm0,72a30,30,0,1,1,30-30A30,30,0,0,1,128,162Z`}))],[`regular`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,56H180.28L166.65,35.56A8,8,0,0,0,160,32H96a8,8,0,0,0-6.65,3.56L75.71,56H48A24,24,0,0,0,24,80V192a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V80A24,24,0,0,0,208,56Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V80a8,8,0,0,1,8-8H80a8,8,0,0,0,6.66-3.56L100.28,48h55.43l13.63,20.44A8,8,0,0,0,176,72h32a8,8,0,0,1,8,8ZM128,88a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,88Zm0,72a28,28,0,1,1,28-28A28,28,0,0,1,128,160Z`}))],[`thin`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,60H178.13L163.32,37.78A4,4,0,0,0,160,36H96a4,4,0,0,0-3.32,1.78L77.85,60H48A20,20,0,0,0,28,80V192a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V80A20,20,0,0,0,208,60Zm12,132a12,12,0,0,1-12,12H48a12,12,0,0,1-12-12V80A12,12,0,0,1,48,68H80a4,4,0,0,0,3.33-1.78L98.13,44h59.72l14.82,22.22A4,4,0,0,0,176,68h32a12,12,0,0,1,12,12ZM128,92a40,40,0,1,0,40,40A40,40,0,0,0,128,92Zm0,72a32,32,0,1,1,32-32A32,32,0,0,1,128,164Z`}))]]),g=new Map([[`bold`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,20A108,108,0,1,0,236,128,108.12,108.12,0,0,0,128,20Zm0,192a84,84,0,1,1,84-84A84.09,84.09,0,0,1,128,212Z`}))],[`duotone`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M224,128a96,96,0,1,1-96-96A96,96,0,0,1,224,128Z`,opacity:`0.2`}),e.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Z`}))],[`fill`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M232,128A104,104,0,1,1,128,24,104.13,104.13,0,0,1,232,128Z`}))],[`light`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,26A102,102,0,1,0,230,128,102.12,102.12,0,0,0,128,26Zm0,192a90,90,0,1,1,90-90A90.1,90.1,0,0,1,128,218Z`}))],[`regular`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Z`}))],[`thin`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,28A100,100,0,1,0,228,128,100.11,100.11,0,0,0,128,28Zm0,192a92,92,0,1,1,92-92A92.1,92.1,0,0,1,128,220Z`}))]]),_=new Map([[`bold`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,76a52,52,0,1,0,52,52A52.06,52.06,0,0,0,128,76Zm0,80a28,28,0,1,1,28-28A28,28,0,0,1,128,156Zm92-27.21v-1.58l14-17.51a12,12,0,0,0,2.23-10.59A111.75,111.75,0,0,0,225,71.89,12,12,0,0,0,215.89,66L193.61,63.5l-1.11-1.11L190,40.1A12,12,0,0,0,184.11,31a111.67,111.67,0,0,0-27.23-11.27A12,12,0,0,0,146.3,22L128.79,36h-1.58L109.7,22a12,12,0,0,0-10.59-2.23A111.75,111.75,0,0,0,71.89,31.05,12,12,0,0,0,66,40.11L63.5,62.39,62.39,63.5,40.1,66A12,12,0,0,0,31,71.89,111.67,111.67,0,0,0,19.77,99.12,12,12,0,0,0,22,109.7l14,17.51v1.58L22,146.3a12,12,0,0,0-2.23,10.59,111.75,111.75,0,0,0,11.29,27.22A12,12,0,0,0,40.11,190l22.28,2.48,1.11,1.11L66,215.9A12,12,0,0,0,71.89,225a111.67,111.67,0,0,0,27.23,11.27A12,12,0,0,0,109.7,234l17.51-14h1.58l17.51,14a12,12,0,0,0,10.59,2.23A111.75,111.75,0,0,0,184.11,225a12,12,0,0,0,5.91-9.06l2.48-22.28,1.11-1.11L215.9,190a12,12,0,0,0,9.06-5.91,111.67,111.67,0,0,0,11.27-27.23A12,12,0,0,0,234,146.3Zm-24.12-4.89a70.1,70.1,0,0,1,0,8.2,12,12,0,0,0,2.61,8.22l12.84,16.05A86.47,86.47,0,0,1,207,166.86l-20.43,2.27a12,12,0,0,0-7.65,4,69,69,0,0,1-5.8,5.8,12,12,0,0,0-4,7.65L166.86,207a86.47,86.47,0,0,1-10.49,4.35l-16.05-12.85a12,12,0,0,0-7.5-2.62c-.24,0-.48,0-.72,0a70.1,70.1,0,0,1-8.2,0,12.06,12.06,0,0,0-8.22,2.6L99.63,211.33A86.47,86.47,0,0,1,89.14,207l-2.27-20.43a12,12,0,0,0-4-7.65,69,69,0,0,1-5.8-5.8,12,12,0,0,0-7.65-4L49,166.86a86.47,86.47,0,0,1-4.35-10.49l12.84-16.05a12,12,0,0,0,2.61-8.22,70.1,70.1,0,0,1,0-8.2,12,12,0,0,0-2.61-8.22L44.67,99.63A86.47,86.47,0,0,1,49,89.14l20.43-2.27a12,12,0,0,0,7.65-4,69,69,0,0,1,5.8-5.8,12,12,0,0,0,4-7.65L89.14,49a86.47,86.47,0,0,1,10.49-4.35l16.05,12.85a12.06,12.06,0,0,0,8.22,2.6,70.1,70.1,0,0,1,8.2,0,12,12,0,0,0,8.22-2.6l16.05-12.85A86.47,86.47,0,0,1,166.86,49l2.27,20.43a12,12,0,0,0,4,7.65,69,69,0,0,1,5.8,5.8,12,12,0,0,0,7.65,4L207,89.14a86.47,86.47,0,0,1,4.35,10.49l-12.84,16.05A12,12,0,0,0,195.88,123.9Z`}))],[`duotone`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M207.86,123.18l16.78-21a99.14,99.14,0,0,0-10.07-24.29l-26.7-3a81,81,0,0,0-6.81-6.81l-3-26.71a99.43,99.43,0,0,0-24.3-10l-21,16.77a81.59,81.59,0,0,0-9.64,0l-21-16.78A99.14,99.14,0,0,0,77.91,41.43l-3,26.7a81,81,0,0,0-6.81,6.81l-26.71,3a99.43,99.43,0,0,0-10,24.3l16.77,21a81.59,81.59,0,0,0,0,9.64l-16.78,21a99.14,99.14,0,0,0,10.07,24.29l26.7,3a81,81,0,0,0,6.81,6.81l3,26.71a99.43,99.43,0,0,0,24.3,10l21-16.77a81.59,81.59,0,0,0,9.64,0l21,16.78a99.14,99.14,0,0,0,24.29-10.07l3-26.7a81,81,0,0,0,6.81-6.81l26.71-3a99.43,99.43,0,0,0,10-24.3l-16.77-21A81.59,81.59,0,0,0,207.86,123.18ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z`,opacity:`0.2`}),e.createElement(`path`,{d:`M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8.06,8.06,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8.06,8.06,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z`}))],[`fill`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M216,130.16q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.6,107.6,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.29,107.29,0,0,0-26.25-10.86,8,8,0,0,0-7.06,1.48L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.6,107.6,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06ZM128,168a40,40,0,1,1,40-40A40,40,0,0,1,128,168Z`}))],[`light`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,82a46,46,0,1,0,46,46A46.06,46.06,0,0,0,128,82Zm0,80a34,34,0,1,1,34-34A34,34,0,0,1,128,162ZM214,130.84c.06-1.89.06-3.79,0-5.68L229.33,106a6,6,0,0,0,1.11-5.29A105.34,105.34,0,0,0,219.76,74.9a6,6,0,0,0-4.53-3l-24.45-2.71q-1.93-2.07-4-4l-2.72-24.46a6,6,0,0,0-3-4.53,105.65,105.65,0,0,0-25.77-10.66A6,6,0,0,0,150,26.68l-19.2,15.37c-1.89-.06-3.79-.06-5.68,0L106,26.67a6,6,0,0,0-5.29-1.11A105.34,105.34,0,0,0,74.9,36.24a6,6,0,0,0-3,4.53L69.23,65.22q-2.07,1.94-4,4L40.76,72a6,6,0,0,0-4.53,3,105.65,105.65,0,0,0-10.66,25.77A6,6,0,0,0,26.68,106l15.37,19.2c-.06,1.89-.06,3.79,0,5.68L26.67,150.05a6,6,0,0,0-1.11,5.29A105.34,105.34,0,0,0,36.24,181.1a6,6,0,0,0,4.53,3l24.45,2.71q1.94,2.07,4,4L72,215.24a6,6,0,0,0,3,4.53,105.65,105.65,0,0,0,25.77,10.66,6,6,0,0,0,5.29-1.11L125.16,214c1.89.06,3.79.06,5.68,0l19.21,15.38a6,6,0,0,0,3.75,1.31,6.2,6.2,0,0,0,1.54-.2,105.34,105.34,0,0,0,25.76-10.68,6,6,0,0,0,3-4.53l2.71-24.45q2.07-1.93,4-4l24.46-2.72a6,6,0,0,0,4.53-3,105.49,105.49,0,0,0,10.66-25.77,6,6,0,0,0-1.11-5.29Zm-3.1,41.63-23.64,2.63a6,6,0,0,0-3.82,2,75.14,75.14,0,0,1-6.31,6.31,6,6,0,0,0-2,3.82l-2.63,23.63A94.28,94.28,0,0,1,155.14,218l-18.57-14.86a6,6,0,0,0-3.75-1.31h-.36a78.07,78.07,0,0,1-8.92,0,6,6,0,0,0-4.11,1.3L100.87,218a94.13,94.13,0,0,1-17.34-7.17L80.9,187.21a6,6,0,0,0-2-3.82,75.14,75.14,0,0,1-6.31-6.31,6,6,0,0,0-3.82-2l-23.63-2.63A94.28,94.28,0,0,1,38,155.14l14.86-18.57a6,6,0,0,0,1.3-4.11,78.07,78.07,0,0,1,0-8.92,6,6,0,0,0-1.3-4.11L38,100.87a94.13,94.13,0,0,1,7.17-17.34L68.79,80.9a6,6,0,0,0,3.82-2,75.14,75.14,0,0,1,6.31-6.31,6,6,0,0,0,2-3.82l2.63-23.63A94.28,94.28,0,0,1,100.86,38l18.57,14.86a6,6,0,0,0,4.11,1.3,78.07,78.07,0,0,1,8.92,0,6,6,0,0,0,4.11-1.3L155.13,38a94.13,94.13,0,0,1,17.34,7.17l2.63,23.64a6,6,0,0,0,2,3.82,75.14,75.14,0,0,1,6.31,6.31,6,6,0,0,0,3.82,2l23.63,2.63A94.28,94.28,0,0,1,218,100.86l-14.86,18.57a6,6,0,0,0-1.3,4.11,78.07,78.07,0,0,1,0,8.92,6,6,0,0,0,1.3,4.11L218,155.13A94.13,94.13,0,0,1,210.85,172.47Z`}))],[`regular`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,80a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Zm88-29.84q.06-2.16,0-4.32l14.92-18.64a8,8,0,0,0,1.48-7.06,107.21,107.21,0,0,0-10.88-26.25,8,8,0,0,0-6-3.93l-23.72-2.64q-1.48-1.56-3-3L186,40.54a8,8,0,0,0-3.94-6,107.71,107.71,0,0,0-26.25-10.87,8,8,0,0,0-7.06,1.49L130.16,40Q128,40,125.84,40L107.2,25.11a8,8,0,0,0-7.06-1.48A107.6,107.6,0,0,0,73.89,34.51a8,8,0,0,0-3.93,6L67.32,64.27q-1.56,1.49-3,3L40.54,70a8,8,0,0,0-6,3.94,107.71,107.71,0,0,0-10.87,26.25,8,8,0,0,0,1.49,7.06L40,125.84Q40,128,40,130.16L25.11,148.8a8,8,0,0,0-1.48,7.06,107.21,107.21,0,0,0,10.88,26.25,8,8,0,0,0,6,3.93l23.72,2.64q1.49,1.56,3,3L70,215.46a8,8,0,0,0,3.94,6,107.71,107.71,0,0,0,26.25,10.87,8,8,0,0,0,7.06-1.49L125.84,216q2.16.06,4.32,0l18.64,14.92a8,8,0,0,0,7.06,1.48,107.21,107.21,0,0,0,26.25-10.88,8,8,0,0,0,3.93-6l2.64-23.72q1.56-1.48,3-3L215.46,186a8,8,0,0,0,6-3.94,107.71,107.71,0,0,0,10.87-26.25,8,8,0,0,0-1.49-7.06Zm-16.1-6.5a73.93,73.93,0,0,1,0,8.68,8,8,0,0,0,1.74,5.48l14.19,17.73a91.57,91.57,0,0,1-6.23,15L187,173.11a8,8,0,0,0-5.1,2.64,74.11,74.11,0,0,1-6.14,6.14,8,8,0,0,0-2.64,5.1l-2.51,22.58a91.32,91.32,0,0,1-15,6.23l-17.74-14.19a8,8,0,0,0-5-1.75h-.48a73.93,73.93,0,0,1-8.68,0,8,8,0,0,0-5.48,1.74L100.45,215.8a91.57,91.57,0,0,1-15-6.23L82.89,187a8,8,0,0,0-2.64-5.1,74.11,74.11,0,0,1-6.14-6.14,8,8,0,0,0-5.1-2.64L46.43,170.6a91.32,91.32,0,0,1-6.23-15l14.19-17.74a8,8,0,0,0,1.74-5.48,73.93,73.93,0,0,1,0-8.68,8,8,0,0,0-1.74-5.48L40.2,100.45a91.57,91.57,0,0,1,6.23-15L69,82.89a8,8,0,0,0,5.1-2.64,74.11,74.11,0,0,1,6.14-6.14A8,8,0,0,0,82.89,69L85.4,46.43a91.32,91.32,0,0,1,15-6.23l17.74,14.19a8,8,0,0,0,5.48,1.74,73.93,73.93,0,0,1,8.68,0,8,8,0,0,0,5.48-1.74L155.55,40.2a91.57,91.57,0,0,1,15,6.23L173.11,69a8,8,0,0,0,2.64,5.1,74.11,74.11,0,0,1,6.14,6.14,8,8,0,0,0,5.1,2.64l22.58,2.51a91.32,91.32,0,0,1,6.23,15l-14.19,17.74A8,8,0,0,0,199.87,123.66Z`}))],[`thin`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,84a44,44,0,1,0,44,44A44.05,44.05,0,0,0,128,84Zm0,80a36,36,0,1,1,36-36A36,36,0,0,1,128,164Zm83.93-32.49q.13-3.51,0-7l15.83-19.79a4,4,0,0,0,.75-3.53A103.64,103.64,0,0,0,218,75.9a4,4,0,0,0-3-2l-25.19-2.8c-1.58-1.71-3.24-3.37-4.95-4.95L182.07,41a4,4,0,0,0-2-3A104,104,0,0,0,154.82,27.5a4,4,0,0,0-3.53.74L131.51,44.07q-3.51-.14-7,0L104.7,28.24a4,4,0,0,0-3.53-.75A103.64,103.64,0,0,0,75.9,38a4,4,0,0,0-2,3l-2.8,25.19c-1.71,1.58-3.37,3.24-4.95,4.95L41,73.93a4,4,0,0,0-3,2A104,104,0,0,0,27.5,101.18a4,4,0,0,0,.74,3.53l15.83,19.78q-.14,3.51,0,7L28.24,151.3a4,4,0,0,0-.75,3.53A103.64,103.64,0,0,0,38,180.1a4,4,0,0,0,3,2l25.19,2.8c1.58,1.71,3.24,3.37,4.95,4.95l2.8,25.2a4,4,0,0,0,2,3,104,104,0,0,0,25.28,10.46,4,4,0,0,0,3.53-.74l19.78-15.83q3.51.13,7,0l19.79,15.83a4,4,0,0,0,2.5.88,4,4,0,0,0,1-.13A103.64,103.64,0,0,0,180.1,218a4,4,0,0,0,2-3l2.8-25.19c1.71-1.58,3.37-3.24,4.95-4.95l25.2-2.8a4,4,0,0,0,3-2,104,104,0,0,0,10.46-25.28,4,4,0,0,0-.74-3.53Zm.17,42.83-24.67,2.74a4,4,0,0,0-2.55,1.32,76.2,76.2,0,0,1-6.48,6.48,4,4,0,0,0-1.32,2.55l-2.74,24.66a95.45,95.45,0,0,1-19.64,8.15l-19.38-15.51a4,4,0,0,0-2.5-.87h-.24a73.67,73.67,0,0,1-9.16,0,4,4,0,0,0-2.74.87l-19.37,15.5a95.33,95.33,0,0,1-19.65-8.13l-2.74-24.67a4,4,0,0,0-1.32-2.55,76.2,76.2,0,0,1-6.48-6.48,4,4,0,0,0-2.55-1.32l-24.66-2.74a95.45,95.45,0,0,1-8.15-19.64l15.51-19.38a4,4,0,0,0,.87-2.74,77.76,77.76,0,0,1,0-9.16,4,4,0,0,0-.87-2.74l-15.5-19.37A95.33,95.33,0,0,1,43.9,81.66l24.67-2.74a4,4,0,0,0,2.55-1.32,76.2,76.2,0,0,1,6.48-6.48,4,4,0,0,0,1.32-2.55l2.74-24.66a95.45,95.45,0,0,1,19.64-8.15l19.38,15.51a4,4,0,0,0,2.74.87,73.67,73.67,0,0,1,9.16,0,4,4,0,0,0,2.74-.87l19.37-15.5a95.33,95.33,0,0,1,19.65,8.13l2.74,24.67a4,4,0,0,0,1.32,2.55,76.2,76.2,0,0,1,6.48,6.48,4,4,0,0,0,2.55,1.32l24.66,2.74a95.45,95.45,0,0,1,8.15,19.64l-15.51,19.38a4,4,0,0,0-.87,2.74,77.76,77.76,0,0,1,0,9.16,4,4,0,0,0,.87,2.74l15.5,19.37A95.33,95.33,0,0,1,212.1,174.34Z`}))]]),v=new Map([[`bold`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,180a52.06,52.06,0,0,0,52-52V64A52,52,0,0,0,76,64v64A52.06,52.06,0,0,0,128,180ZM100,64a28,28,0,0,1,56,0v64a28,28,0,0,1-56,0Zm40,155.22V240a12,12,0,0,1-24,0V219.22A92.14,92.14,0,0,1,36,128a12,12,0,0,1,24,0,68,68,0,0,0,136,0,12,12,0,0,1,24,0A92.14,92.14,0,0,1,140,219.22Z`}))],[`duotone`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M168,64v64a40,40,0,0,1-40,40h0a40,40,0,0,1-40-40V64a40,40,0,0,1,40-40h0A40,40,0,0,1,168,64Z`,opacity:`0.2`}),e.createElement(`path`,{d:`M128,176a48.05,48.05,0,0,0,48-48V64a48,48,0,0,0-96,0v64A48.05,48.05,0,0,0,128,176ZM96,64a32,32,0,0,1,64,0v64a32,32,0,0,1-64,0Zm40,143.6V240a8,8,0,0,1-16,0V207.6A80.11,80.11,0,0,1,48,128a8,8,0,0,1,16,0,64,64,0,0,0,128,0,8,8,0,0,1,16,0A80.11,80.11,0,0,1,136,207.6Z`}))],[`fill`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M80,128V64a48,48,0,0,1,96,0v64a48,48,0,0,1-96,0Zm128,0a8,8,0,0,0-16,0,64,64,0,0,1-128,0,8,8,0,0,0-16,0,80.11,80.11,0,0,0,72,79.6V240a8,8,0,0,0,16,0V207.6A80.11,80.11,0,0,0,208,128Z`}))],[`light`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,174a46.06,46.06,0,0,0,46-46V64a46,46,0,0,0-92,0v64A46.06,46.06,0,0,0,128,174ZM94,64a34,34,0,0,1,68,0v64a34,34,0,0,1-68,0Zm40,141.75V240a6,6,0,0,1-12,0V205.75A78.09,78.09,0,0,1,50,128a6,6,0,0,1,12,0,66,66,0,0,0,132,0,6,6,0,0,1,12,0A78.09,78.09,0,0,1,134,205.75Z`}))],[`regular`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,176a48.05,48.05,0,0,0,48-48V64a48,48,0,0,0-96,0v64A48.05,48.05,0,0,0,128,176ZM96,64a32,32,0,0,1,64,0v64a32,32,0,0,1-64,0Zm40,143.6V240a8,8,0,0,1-16,0V207.6A80.11,80.11,0,0,1,48,128a8,8,0,0,1,16,0,64,64,0,0,0,128,0,8,8,0,0,1,16,0A80.11,80.11,0,0,1,136,207.6Z`}))],[`thin`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M128,172a44.05,44.05,0,0,0,44-44V64a44,44,0,0,0-88,0v64A44.05,44.05,0,0,0,128,172ZM92,64a36,36,0,0,1,72,0v64a36,36,0,0,1-72,0Zm40,139.89V240a4,4,0,0,1-8,0V203.89A76.09,76.09,0,0,1,52,128a4,4,0,0,1,8,0,68,68,0,0,0,136,0,4,4,0,0,1,8,0A76.09,76.09,0,0,1,132,203.89Z`}))]]),y=new Map([[`bold`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M56.88,39.93A12,12,0,1,0,39.12,56.07L76,96.64V128a52,52,0,0,0,72.11,48l11.26,12.39A67.34,67.34,0,0,1,128,196a68.07,68.07,0,0,1-68-68,12,12,0,0,0-24,0,92.14,92.14,0,0,0,80,91.22V240a12,12,0,0,0,24,0V219.23a90.39,90.39,0,0,0,35.92-12.68l23.2,25.52a12,12,0,0,0,17.76-16.14ZM128,156a28,28,0,0,1-28-28v-5l29.9,32.89C129.27,156,128.64,156,128,156Zm63-2.42A67.63,67.63,0,0,0,196,128a12,12,0,0,1,24,0,91.48,91.48,0,0,1-6.74,34.61,12,12,0,0,1-22.23-9ZM85.7,33.75A52,52,0,0,1,180,64v56.54a12,12,0,0,1-24,0V64a28,28,0,0,0-50.79-16.28,12,12,0,0,1-19.51-14Z`}))],[`duotone`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M168,64v64a40,40,0,0,1-40,40h0a40,40,0,0,1-40-40V64a40,40,0,0,1,40-40h0A40,40,0,0,1,168,64Z`,opacity:`0.2`}),e.createElement(`path`,{d:`M213.92,218.62l-160-176A8,8,0,0,0,42.08,53.38L80,95.09V128a48,48,0,0,0,69.11,43.12l11.1,12.2A63.41,63.41,0,0,1,128,192a64.07,64.07,0,0,1-64-64,8,8,0,0,0-16,0,80.11,80.11,0,0,0,72,79.6V240a8,8,0,0,0,16,0V207.59a78.83,78.83,0,0,0,35.16-12.22l30.92,34a8,8,0,1,0,11.84-10.76ZM128,160a32,32,0,0,1-32-32V112.69l41.66,45.82A32,32,0,0,1,128,160Zm57.52-3.91A63.32,63.32,0,0,0,192,128a8,8,0,0,1,16,0,79.16,79.16,0,0,1-8.11,35.12,8,8,0,0,1-7.19,4.49,7.88,7.88,0,0,1-3.51-.82A8,8,0,0,1,185.52,156.09ZM84,44.87A48,48,0,0,1,176,64v64a49.19,49.19,0,0,1-.26,5,8,8,0,0,1-8,7.17,8.13,8.13,0,0,1-.84,0,8,8,0,0,1-7.12-8.79c.11-1.1.17-2.24.17-3.36V64A32,32,0,0,0,98.64,51.25,8,8,0,1,1,84,44.87Z`}))],[`fill`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M213.38,229.92a8,8,0,0,1-11.3-.54l-30.92-34A78.83,78.83,0,0,1,136,207.59V240a8,8,0,0,1-16,0V207.6A80.11,80.11,0,0,1,48,128a8,8,0,0,1,16,0,64.07,64.07,0,0,0,64,64,63.41,63.41,0,0,0,32.21-8.68l-11.1-12.2A48,48,0,0,1,80,128V95.09L42.08,53.38A8,8,0,0,1,53.92,42.62l160,176A8,8,0,0,1,213.38,229.92Zm-24.19-63.13a7.88,7.88,0,0,0,3.51.82,8,8,0,0,0,7.19-4.49A79.16,79.16,0,0,0,208,128a8,8,0,0,0-16,0,63.32,63.32,0,0,1-6.48,28.09A8,8,0,0,0,189.19,166.79Zm-27.33-29.22A8,8,0,0,0,175.74,133a49.49,49.49,0,0,0,.26-5V64A48,48,0,0,0,84,44.87a8,8,0,0,0,1.41,8.57Z`}))],[`light`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M212.44,220,52.44,44A6,6,0,0,0,43.56,52L82,94.32V128a46,46,0,0,0,67.56,40.64l13.75,15.12A65.26,65.26,0,0,1,128,194a66.08,66.08,0,0,1-66-66,6,6,0,0,0-12,0,78.09,78.09,0,0,0,72,77.75V240a6,6,0,0,0,12,0V205.77a76.93,76.93,0,0,0,37.48-13L203.56,228a6,6,0,0,0,8.88-8.08ZM128,162a34,34,0,0,1-34-34V107.52l47.12,51.84A33.82,33.82,0,0,1,128,162Zm59.32-5A65.38,65.38,0,0,0,194,128a6,6,0,0,1,12,0,77.33,77.33,0,0,1-7.9,34.25A6,6,0,1,1,187.32,157ZM85.8,45.67A46,46,0,0,1,174,64v64a45.17,45.17,0,0,1-.25,4.81,6,6,0,0,1-6,5.38q-.31,0-.63,0a6,6,0,0,1-5.34-6.59A35.41,35.41,0,0,0,162,128V64A34,34,0,0,0,96.8,50.45a6,6,0,0,1-11-4.78Z`}))],[`regular`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M213.92,218.62l-160-176A8,8,0,0,0,42.08,53.38L80,95.09V128a48,48,0,0,0,69.11,43.12l11.1,12.2A63.41,63.41,0,0,1,128,192a64.07,64.07,0,0,1-64-64,8,8,0,0,0-16,0,80.11,80.11,0,0,0,72,79.6V240a8,8,0,0,0,16,0V207.59a78.83,78.83,0,0,0,35.16-12.22l30.92,34a8,8,0,1,0,11.84-10.76ZM128,160a32,32,0,0,1-32-32V112.69l41.66,45.82A32,32,0,0,1,128,160Zm57.52-3.91A63.32,63.32,0,0,0,192,128a8,8,0,0,1,16,0,79.16,79.16,0,0,1-8.11,35.12,8,8,0,0,1-7.19,4.49,7.88,7.88,0,0,1-3.51-.82A8,8,0,0,1,185.52,156.09ZM84,44.87A48,48,0,0,1,176,64v64a49.19,49.19,0,0,1-.26,5,8,8,0,0,1-8,7.17,8.13,8.13,0,0,1-.84,0,8,8,0,0,1-7.12-8.79c.11-1.1.17-2.24.17-3.36V64A32,32,0,0,0,98.64,51.25,8,8,0,1,1,84,44.87Z`}))],[`thin`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M211,221.31,51,45.31A4,4,0,0,0,45,50.69L84,93.55V128a44,44,0,0,0,66,38.12l16.38,18A67.21,67.21,0,0,1,128,196a68.07,68.07,0,0,1-68-68,4,4,0,0,0-8,0,76.09,76.09,0,0,0,72,75.89V240a4,4,0,0,0,8,0V203.89a75.1,75.1,0,0,0,39.79-13.77L205,226.69a4,4,0,1,0,5.92-5.38ZM128,164a36,36,0,0,1-36-36V102.35L144.43,160A35.83,35.83,0,0,1,128,164Zm61.12-6.15A67.44,67.44,0,0,0,196,128a4,4,0,0,1,8,0,75.28,75.28,0,0,1-7.7,33.37,4,4,0,0,1-7.18-3.52ZM87.63,46.46A44,44,0,0,1,172,64v64a44.2,44.2,0,0,1-.24,4.61,4,4,0,0,1-4,3.58l-.42,0a4,4,0,0,1-3.57-4.39A36.67,36.67,0,0,0,164,128V64A36,36,0,0,0,95,49.66a4,4,0,0,1-7.34-3.2Z`}))]]),b=new Map([[`bold`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,36H48A28,28,0,0,0,20,64V176a28,28,0,0,0,28,28H208a28,28,0,0,0,28-28V64A28,28,0,0,0,208,36Zm4,140a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V64a4,4,0,0,1,4-4H208a4,4,0,0,1,4,4Zm-40,52a12,12,0,0,1-12,12H96a12,12,0,0,1,0-24h64A12,12,0,0,1,172,228Z`}))],[`duotone`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M224,64V176a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V64A16,16,0,0,1,48,48H208A16,16,0,0,1,224,64Z`,opacity:`0.2`}),e.createElement(`path`,{d:`M208,40H48A24,24,0,0,0,24,64V176a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V64A24,24,0,0,0,208,40Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8Zm-48,48a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,224Z`}))],[`fill`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M232,64V176a24,24,0,0,1-24,24H48a24,24,0,0,1-24-24V64A24,24,0,0,1,48,40H208A24,24,0,0,1,232,64ZM160,216H96a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Z`}))],[`light`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,42H48A22,22,0,0,0,26,64V176a22,22,0,0,0,22,22H208a22,22,0,0,0,22-22V64A22,22,0,0,0,208,42Zm10,134a10,10,0,0,1-10,10H48a10,10,0,0,1-10-10V64A10,10,0,0,1,48,54H208a10,10,0,0,1,10,10Zm-52,48a6,6,0,0,1-6,6H96a6,6,0,0,1,0-12h64A6,6,0,0,1,166,224Z`}))],[`regular`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,40H48A24,24,0,0,0,24,64V176a24,24,0,0,0,24,24H208a24,24,0,0,0,24-24V64A24,24,0,0,0,208,40Zm8,136a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V64a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8Zm-48,48a8,8,0,0,1-8,8H96a8,8,0,0,1,0-16h64A8,8,0,0,1,168,224Z`}))],[`thin`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,44H48A20,20,0,0,0,28,64V176a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V64A20,20,0,0,0,208,44Zm12,132a12,12,0,0,1-12,12H48a12,12,0,0,1-12-12V64A12,12,0,0,1,48,52H208a12,12,0,0,1,12,12Zm-56,48a4,4,0,0,1-4,4H96a4,4,0,0,1,0-8h64A4,4,0,0,1,164,224Z`}))]]),x=new Map([[`bold`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M200,28H160a20,20,0,0,0-20,20V208a20,20,0,0,0,20,20h40a20,20,0,0,0,20-20V48A20,20,0,0,0,200,28Zm-4,176H164V52h32ZM96,28H56A20,20,0,0,0,36,48V208a20,20,0,0,0,20,20H96a20,20,0,0,0,20-20V48A20,20,0,0,0,96,28ZM92,204H60V52H92Z`}))],[`duotone`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,48V208a8,8,0,0,1-8,8H160a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8h40A8,8,0,0,1,208,48ZM96,40H56a8,8,0,0,0-8,8V208a8,8,0,0,0,8,8H96a8,8,0,0,0,8-8V48A8,8,0,0,0,96,40Z`,opacity:`0.2`}),e.createElement(`path`,{d:`M200,32H160a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,200,32Zm0,176H160V48h40ZM96,32H56A16,16,0,0,0,40,48V208a16,16,0,0,0,16,16H96a16,16,0,0,0,16-16V48A16,16,0,0,0,96,32Zm0,176H56V48H96Z`}))],[`fill`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M216,48V208a16,16,0,0,1-16,16H160a16,16,0,0,1-16-16V48a16,16,0,0,1,16-16h40A16,16,0,0,1,216,48ZM96,32H56A16,16,0,0,0,40,48V208a16,16,0,0,0,16,16H96a16,16,0,0,0,16-16V48A16,16,0,0,0,96,32Z`}))],[`light`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M200,34H160a14,14,0,0,0-14,14V208a14,14,0,0,0,14,14h40a14,14,0,0,0,14-14V48A14,14,0,0,0,200,34Zm2,174a2,2,0,0,1-2,2H160a2,2,0,0,1-2-2V48a2,2,0,0,1,2-2h40a2,2,0,0,1,2,2ZM96,34H56A14,14,0,0,0,42,48V208a14,14,0,0,0,14,14H96a14,14,0,0,0,14-14V48A14,14,0,0,0,96,34Zm2,174a2,2,0,0,1-2,2H56a2,2,0,0,1-2-2V48a2,2,0,0,1,2-2H96a2,2,0,0,1,2,2Z`}))],[`regular`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M200,32H160a16,16,0,0,0-16,16V208a16,16,0,0,0,16,16h40a16,16,0,0,0,16-16V48A16,16,0,0,0,200,32Zm0,176H160V48h40ZM96,32H56A16,16,0,0,0,40,48V208a16,16,0,0,0,16,16H96a16,16,0,0,0,16-16V48A16,16,0,0,0,96,32Zm0,176H56V48H96Z`}))],[`thin`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M200,36H160a12,12,0,0,0-12,12V208a12,12,0,0,0,12,12h40a12,12,0,0,0,12-12V48A12,12,0,0,0,200,36Zm4,172a4,4,0,0,1-4,4H160a4,4,0,0,1-4-4V48a4,4,0,0,1,4-4h40a4,4,0,0,1,4,4ZM96,36H56A12,12,0,0,0,44,48V208a12,12,0,0,0,12,12H96a12,12,0,0,0,12-12V48A12,12,0,0,0,96,36Zm4,172a4,4,0,0,1-4,4H56a4,4,0,0,1-4-4V48a4,4,0,0,1,4-4H96a4,4,0,0,1,4,4Z`}))]]),S=new Map([[`bold`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M234.49,111.07,90.41,22.94A20,20,0,0,0,60,39.87V216.13a20,20,0,0,0,30.41,16.93l144.08-88.13a19.82,19.82,0,0,0,0-33.86ZM84,208.85V47.15L216.16,128Z`}))],[`duotone`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M228.23,134.69,84.15,222.81A8,8,0,0,1,72,216.12V39.88a8,8,0,0,1,12.15-6.69l144.08,88.12A7.82,7.82,0,0,1,228.23,134.69Z`,opacity:`0.2`}),e.createElement(`path`,{d:`M232.4,114.49,88.32,26.35a16,16,0,0,0-16.2-.3A15.86,15.86,0,0,0,64,39.87V216.13A15.94,15.94,0,0,0,80,232a16.07,16.07,0,0,0,8.36-2.35L232.4,141.51a15.81,15.81,0,0,0,0-27ZM80,215.94V40l143.83,88Z`}))],[`fill`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M240,128a15.74,15.74,0,0,1-7.6,13.51L88.32,229.65a16,16,0,0,1-16.2.3A15.86,15.86,0,0,1,64,216.13V39.87a15.86,15.86,0,0,1,8.12-13.82,16,16,0,0,1,16.2.3L232.4,114.49A15.74,15.74,0,0,1,240,128Z`}))],[`light`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M231.36,116.19,87.28,28.06a14,14,0,0,0-14.18-.27A13.69,13.69,0,0,0,66,39.87V216.13a13.69,13.69,0,0,0,7.1,12.08,14,14,0,0,0,14.18-.27l144.08-88.13a13.82,13.82,0,0,0,0-23.62Zm-6.26,13.38L81,217.7a2,2,0,0,1-2.06,0,1.78,1.78,0,0,1-1-1.61V39.87a1.78,1.78,0,0,1,1-1.61A2.06,2.06,0,0,1,80,38a2,2,0,0,1,1,.31L225.1,126.43a1.82,1.82,0,0,1,0,3.14Z`}))],[`regular`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M232.4,114.49,88.32,26.35a16,16,0,0,0-16.2-.3A15.86,15.86,0,0,0,64,39.87V216.13A15.94,15.94,0,0,0,80,232a16.07,16.07,0,0,0,8.36-2.35L232.4,141.51a15.81,15.81,0,0,0,0-27ZM80,215.94V40l143.83,88Z`}))],[`thin`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M230.32,117.9,86.24,29.79a11.91,11.91,0,0,0-12.17-.23A11.71,11.71,0,0,0,68,39.89V216.11a11.71,11.71,0,0,0,6.07,10.33,11.91,11.91,0,0,0,12.17-.23L230.32,138.1a11.82,11.82,0,0,0,0-20.2Zm-4.18,13.37L82.06,219.39a4,4,0,0,1-4.07.07,3.77,3.77,0,0,1-2-3.35V39.89a3.77,3.77,0,0,1,2-3.35,4,4,0,0,1,4.07.07l144.08,88.12a3.8,3.8,0,0,1,0,6.54Z`}))]]),C=new Map([[`bold`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,28H48A20,20,0,0,0,28,48V208a20,20,0,0,0,20,20H208a20,20,0,0,0,20-20V48A20,20,0,0,0,208,28Zm-4,176H52V52H204Z`}))],[`duotone`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M216,48V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208A8,8,0,0,1,216,48Z`,opacity:`0.2`}),e.createElement(`path`,{d:`M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm0,176H48V48H208V208Z`}))],[`fill`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M224,48V208a16,16,0,0,1-16,16H48a16,16,0,0,1-16-16V48A16,16,0,0,1,48,32H208A16,16,0,0,1,224,48Z`}))],[`light`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,34H48A14,14,0,0,0,34,48V208a14,14,0,0,0,14,14H208a14,14,0,0,0,14-14V48A14,14,0,0,0,208,34Zm2,174a2,2,0,0,1-2,2H48a2,2,0,0,1-2-2V48a2,2,0,0,1,2-2H208a2,2,0,0,1,2,2Z`}))],[`regular`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32Zm0,176H48V48H208V208Z`}))],[`thin`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M208,36H48A12,12,0,0,0,36,48V208a12,12,0,0,0,12,12H208a12,12,0,0,0,12-12V48A12,12,0,0,0,208,36Zm4,172a4,4,0,0,1-4,4H48a4,4,0,0,1-4-4V48a4,4,0,0,1,4-4H208a4,4,0,0,1,4,4Z`}))]]),w=new Map([[`bold`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M249.45,69.31a12,12,0,0,0-12.51,1L212,88.43V72a20,20,0,0,0-20-20H32A20,20,0,0,0,12,72V184a20,20,0,0,0,20,20H192a20,20,0,0,0,20-20V167.57l24.94,18.14A12,12,0,0,0,256,176V80A12,12,0,0,0,249.45,69.31ZM188,180H36V76H188Zm44-27.57-20-14.54V118.11l20-14.54Z`}))],[`duotone`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M200,72V184a8,8,0,0,1-8,8H32a8,8,0,0,1-8-8V72a8,8,0,0,1,8-8H192A8,8,0,0,1,200,72Z`,opacity:`0.2`}),e.createElement(`path`,{d:`M251.77,73a8,8,0,0,0-8.21.39L208,97.05V72a16,16,0,0,0-16-16H32A16,16,0,0,0,16,72V184a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V159l35.56,23.71A8,8,0,0,0,248,184a8,8,0,0,0,8-8V80A8,8,0,0,0,251.77,73ZM192,184H32V72H192V184Zm48-22.95-32-21.33V116.28L240,95Z`}))],[`fill`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M192,72V184a16,16,0,0,1-16,16H32a16,16,0,0,1-16-16V72A16,16,0,0,1,32,56H176A16,16,0,0,1,192,72Zm58,.25a8.23,8.23,0,0,0-6.63,1.22L209.78,95.86A4,4,0,0,0,208,99.19v57.62a4,4,0,0,0,1.78,3.33l33.78,22.52a8,8,0,0,0,8.58.19,8.33,8.33,0,0,0,3.86-7.17V80A8,8,0,0,0,250,72.25Z`}))],[`light`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M250.83,74.71a6,6,0,0,0-6.16.3L206,100.79V72a14,14,0,0,0-14-14H32A14,14,0,0,0,18,72V184a14,14,0,0,0,14,14H192a14,14,0,0,0,14-14V155.21L244.67,181a6,6,0,0,0,9.33-5V80A6,6,0,0,0,250.83,74.71ZM194,184a2,2,0,0,1-2,2H32a2,2,0,0,1-2-2V72a2,2,0,0,1,2-2H192a2,2,0,0,1,2,2Zm48-19.21-36-24V115.21l36-24Z`}))],[`regular`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M251.77,73a8,8,0,0,0-8.21.39L208,97.05V72a16,16,0,0,0-16-16H32A16,16,0,0,0,16,72V184a16,16,0,0,0,16,16H192a16,16,0,0,0,16-16V159l35.56,23.71A8,8,0,0,0,248,184a8,8,0,0,0,8-8V80A8,8,0,0,0,251.77,73ZM192,184H32V72H192V184Zm48-22.95-32-21.33V116.28L240,95Z`}))],[`thin`,e.createElement(e.Fragment,null,e.createElement(`path`,{d:`M249.89,76.47a4,4,0,0,0-4.11.2L204,104.53V72a12,12,0,0,0-12-12H32A12,12,0,0,0,20,72V184a12,12,0,0,0,12,12H192a12,12,0,0,0,12-12V151.47l41.78,27.86A4,4,0,0,0,252,176V80A4,4,0,0,0,249.89,76.47ZM196,184a4,4,0,0,1-4,4H32a4,4,0,0,1-4-4V72a4,4,0,0,1,4-4H192a4,4,0,0,1,4,4Zm48-15.47-40-26.67V114.14l40-26.67Z`}))]]),T=t({color:`currentColor`,size:`1em`,weight:`regular`,mirrored:!1}),E=e.forwardRef((t,n)=>{let{alt:r,color:i,size:a,weight:o,mirrored:s,children:c,weights:l,...u}=t,{color:d=`currentColor`,size:f,weight:p=`regular`,mirrored:m=!1,...h}=e.useContext(T);return e.createElement(`svg`,{ref:n,xmlns:`http://www.w3.org/2000/svg`,width:a??f,height:a??f,fill:i??d,viewBox:`0 0 256 256`,transform:s||m?`scale(-1, 1)`:void 0,...h,...u},!!r&&e.createElement(`title`,null,r),c,l.get(o??p))});E.displayName=`IconBase`;const D=e.forwardRef((t,n)=>e.createElement(E,{ref:n,...t,weights:h}));D.displayName=`CameraIcon`;const O=e.forwardRef((t,n)=>e.createElement(E,{ref:n,...t,weights:g}));O.displayName=`CircleIcon`;const k=e.forwardRef((t,n)=>e.createElement(E,{ref:n,...t,weights:_}));k.displayName=`GearIcon`;const A=e.forwardRef((t,n)=>e.createElement(E,{ref:n,...t,weights:v}));A.displayName=`MicrophoneIcon`;const j=e.forwardRef((t,n)=>e.createElement(E,{ref:n,...t,weights:y}));j.displayName=`MicrophoneSlashIcon`;const M=e.forwardRef((t,n)=>e.createElement(E,{ref:n,...t,weights:b}));M.displayName=`MonitorIcon`;const N=e.forwardRef((t,n)=>e.createElement(E,{ref:n,...t,weights:x}));N.displayName=`PauseIcon`;const P=e.forwardRef((t,n)=>e.createElement(E,{ref:n,...t,weights:S}));P.displayName=`PlayIcon`;const F=e.forwardRef((t,n)=>e.createElement(E,{ref:n,...t,weights:C}));F.displayName=`SquareIcon`;const I=e.forwardRef((t,n)=>e.createElement(E,{ref:n,...t,weights:w}));I.displayName=`VideoCameraIcon`;var ee=class{constructor(e){if(this.proxyEndpoint=e.proxyEndpoint,this.proxyEndpoint)throw Error(`Proxy mode not yet implemented`);this.service=new c}uploadVideo(e,t){if(this.proxyEndpoint)throw Error(`Proxy mode not yet implemented`);return this.service.uploadVideo(e,t)}};const L=/^https?:\/\//i;function R(e){return e?L.test(e)?e:`https://${e}`:`https://api.vidtreo.com`}function te(e,t){let n={apiKey:t,backendUrl:R(e.backendUrl)};return e.countdownDuration!==void 0&&(n.countdownDuration=e.countdownDuration),e.maxRecordingTime!==void 0&&(n.maxRecordingTime=e.maxRecordingTime),e.userMetadata&&(n.userMetadata=e.userMetadata),e.enableSourceSwitching!==void 0&&(n.enableSourceSwitching=e.enableSourceSwitching),e.enableMute!==void 0&&(n.enableMute=e.enableMute),e.enablePause!==void 0&&(n.enablePause=e.enablePause),e.enableDeviceChange!==void 0&&(n.enableDeviceChange=e.enableDeviceChange),n}const z=new Map;function ne(e,t){return`${e}:${t}`}function B(e){let[t,c]=o(`idle`),[l,f]=o(null),[p,m]=o(!1),[h,g]=o(!1),[_,v]=o(null),[y,b]=o(null),[x,S]=o(``),[C,w]=o(null),[T,E]=o(0),[D,O]=o(null),[k,A]=o({cameras:[],microphones:[],selectedCamera:null,selectedMic:null}),j=a(null),M=a(null),N=a(!1),P=a(!1),F=a(e);F.current=e;let I=n(e=>{let t=u(e);v(t),F.current.onError&&F.current.onError(e instanceof Error?e:Error(t))},[]),L=n(async e=>{j.current&&e.getAudioTracks().length!==0&&(j.current.stopAudioLevelTracking(),await j.current.startAudioLevelTracking(e,{onLevelUpdate:(e,t)=>{E(e),m(t)}}))},[]),R=n(async()=>{if(!(j.current&&l))return;let e=await j.current.getDeviceManager().getAvailableDevices(),t=j.current.getDeviceManager();A({cameras:e.videoinput,microphones:e.audioinput,selectedCamera:t.getSelectedCameraDeviceId(),selectedMic:t.getSelectedMicDeviceId()})},[l]);r(()=>{R()},[R]),r(()=>{j.current&&l&&j.current.getStream()===l&&(m(j.current.getIsMuted()),g(j.current.isPaused()))},[l]),r(()=>{let t=ne(e.apiKey,e.backendUrl),n=F.current.apiKey!==e.apiKey,r=F.current.backendUrl!==e.backendUrl;if(!(n||r)&&N.current&&j.current)return;let i=z.get(t);if(i){j.current=i.controller,i.promise.then(()=>{N.current=!0,P.current=!1}).catch(()=>{N.current=!1,P.current=!1});return}if(P.current||j.current&&!n&&!r)return;P.current=!0,j.current&&=(j.current.cleanup(),j.current.getStreamManager().destroy(),null),N.current=!1,F.current=e;let a=te({backendUrl:e.backendUrl,countdownDuration:e.countdownDuration,maxRecordingTime:e.maxRecordingTime,userMetadata:e.userMetadata,enableSourceSwitching:e.enableSourceSwitching,enableMute:e.enableMute,enablePause:e.enablePause,enableDeviceChange:e.enableDeviceChange},e.apiKey);M.current=new ee({apiKey:e.apiKey,backendUrl:e.backendUrl,proxyEndpoint:e.proxyEndpoint});let o=new s({recording:{onStateChange:e=>{c(e),e===`recording`&&F.current.onRecordingStart&&F.current.onRecordingStart(),e===`idle`&&F.current.onRecordingStop&&F.current.onRecordingStop()},onCountdownUpdate:(e,t)=>{b(t),c(e)},onTimerUpdate:e=>{S(e)},onError:I,onRecordingComplete:()=>{b(null)},onClearUploadStatus:()=>{w(null)},onStopAudioTracking:()=>{},onGetConfig:()=>{if(!j.current)throw Error(`Controller not initialized`);return j.current.getConfig()}},upload:{onProgress:e=>{w(e),F.current.onUploadProgress&&F.current.onUploadProgress(e)},onSuccess:e=>{w(null),F.current.onUploadComplete&&F.current.onUploadComplete({recordingId:e.videoId,uploadUrl:e.uploadUrl})},onError:e=>{w(null),F.current.onUploadError&&F.current.onUploadError(e)},onClearStatus:()=>{w(null)}},stream:{onStreamStart:async e=>{f(e),v(null),await L(e)},onStreamStop:()=>{j.current&&j.current.stopAudioLevelTracking(),f(null),E(0)},onError:I},sourceSwitch:{onSourceChange:()=>{},onPreviewUpdate:e=>{f(e)},onError:I,onTransitionStart:e=>{O(e)},onTransitionEnd:()=>{O(null)}}});j.current=o;let l=o.initialize(a).then(()=>{N.current=!0,P.current=!1});return z.set(t,{promise:l,controller:o}),l.catch(e=>{I(e),N.current=!1,P.current=!1,z.delete(t)}),()=>{let e=z.get(t);e&&e.controller===j.current&&z.delete(t),j.current&&=(j.current.cleanup(),j.current.getStreamManager().destroy(),null),N.current=!1,P.current=!1}},[e.apiKey,e.backendUrl,e.countdownDuration,e.maxRecordingTime,e.userMetadata,e.enableSourceSwitching,e.enableMute,e.enablePause,e.enableDeviceChange,e.proxyEndpoint,L,I]);let B=n(async(e=`camera`)=>{if(!(j.current&&N.current))throw Error(`Controller not initialized`);await j.current.startStream();let t=j.current.getStream();t&&(f(t),v(null),await L(t)),e===`screen`&&await j.current.switchSource(`screen`)},[L]),V=n(e=>e===``||e===`default`?null:e,[]),H=i(()=>({startRecording:async(e=`camera`)=>{if(!j.current)throw Error(`Controller not initialized`);j.current.isActive()||await B(e),e!==j.current.getCurrentSourceType()&&await j.current.switchSource(e),await j.current.startRecording()},stopRecording:async()=>{if(!j.current)throw Error(`Controller not initialized`);if(!M.current)throw Error(`Upload service not initialized`);let e=await j.current.stopRecording(),t=await d(e),n=`recording-${Date.now()}.mp4`,r=await M.current.uploadVideo(e,{apiKey:F.current.apiKey,backendUrl:F.current.backendUrl,filename:n,duration:t,userMetadata:F.current.userMetadata,onProgress:F.current.onUploadProgress});return{recordingId:r.videoId,uploadUrl:r.uploadUrl,blob:e}},pauseRecording:()=>{j.current&&(j.current.pauseRecording(),g(j.current.isPaused()))},resumeRecording:()=>{j.current&&(j.current.resumeRecording(),g(j.current.isPaused()))},toggleMute:()=>{j.current&&(j.current.toggleMute(),m(j.current.getIsMuted()))},switchSource:async e=>{if(!j.current)throw Error(`Controller not initialized`);await j.current.switchSource(e)},changeCamera:async e=>{if(!j.current)throw Error(`Controller not initialized`);let t=V(e);j.current.setCameraDevice(t);let n=await j.current.switchVideoDevice(t);f(n),v(null),await L(n);let r=j.current.getDeviceManager();A(e=>({...e,selectedCamera:r.getSelectedCameraDeviceId()}))},changeMic:async e=>{if(!j.current)throw Error(`Controller not initialized`);let t=V(e);j.current.setMicDevice(t);let n=await j.current.switchAudioDevice(t);f(n),v(null),await L(n);let r=j.current.getDeviceManager();A(e=>({...e,selectedMic:r.getSelectedMicDeviceId()}))},startPreview:B,cleanup:()=>{j.current&&=(j.current.cleanup(),j.current.getStreamManager().destroy(),null),N.current=!1}}),[V,L,B]);return{state:i(()=>({recordingState:t,stream:l,isMuted:p,isPaused:h,error:_,countdown:y,timer:x,uploadProgress:C,transitionMessage:D,devices:k}),[t,l,p,h,_,y,x,C,D,k]),actions:H,audioLevel:T,controller:j.current}}const V={en:{initializingCamera:`Initializing camera...`,grantPermissions:`Grant camera and microphone permissions when prompted`,switchingDevice:`Switching device...`,recordingStartsIn:`Recording starts in...`,switchingSource:`Switching source...`,rec:`REC`,settings:`Settings`,record:`Record`,stop:`Stop`,pause:`Pause`,resume:`Resume`,mute:`Mute`,unmute:`Unmute`,switchSource:`Switch Source`,camera:`Camera`,microphone:`Microphone`,uploading:`Uploading...`},es:{initializingCamera:`Inicializando cámara...`,grantPermissions:`Otorga permisos de cámara y micrófono cuando se solicite`,switchingDevice:`Cambiando dispositivo...`,recordingStartsIn:`La grabación comienza en...`,switchingSource:`Cambiando fuente...`,rec:`GRAB`,settings:`Configuración`,record:`Grabar`,stop:`Detener`,pause:`Pausar`,resume:`Reanudar`,mute:`Silenciar`,unmute:`Activar sonido`,switchSource:`Cambiar Fuente`,camera:`Cámara`,microphone:`Micrófono`,uploading:`Subiendo...`}};function H(e=`en`,t={}){return{...V[e]||V.en,...t}}function re(e){if(e)return e;if(typeof process<`u`&&process.env&&typeof process.env.VIDTREO_API_KEY==`string`)return process.env.VIDTREO_API_KEY;throw Error(`apiKey is required. Provide it as a prop or set VIDTREO_API_KEY environment variable.`)}const U=.7;function W({audioLevel:e,isMuted:t}){return p(f,{children:Array.from({length:15},(n,r)=>{let i=e>=(r+1)/15*100&&!t,a=`15%`,o=``,s=`1`;if(i){a=`${30+r/15*70}%`;let e=r/15,t=U+r/15*(1-U);o=l(e),s=String(t)}let c=`audio-bar-${r}`;return p(`div`,{className:`audio-level-bar`,style:{height:a,backgroundColor:o,opacity:s}},c)})})}function G({buttonVisibility:e,recordingState:t,isMuted:n,currentSourceType:r,onToggleSettings:i,onStartRecording:a,onStopRecording:o,onToggleMute:s,onPause:c,onResume:l,onSwitchSource:u,translations:d={settings:`Settings`,record:`Record`,stop:`Stop`,pause:`Pause`,resume:`Resume`,mute:`Mute`,unmute:`Unmute`,switchSource:`Switch Source`}}){return p(`div`,{className:`recording-controls`,children:p(`div`,{className:`recording-controls-row`,children:m(`div`,{className:`control-buttons-row`,children:[e.showSettingsButton&&p(`button`,{className:`control-button`,id:`settingsButton`,onClick:i,title:d.settings,type:`button`,children:p(k,{height:20,weight:`regular`,width:20})}),t===`idle`&&m(`button`,{className:`record-button`,id:`startButton`,onClick:a,type:`button`,children:[p(O,{fill:`currentColor`,height:24,style:{marginRight:`0.375rem`},weight:`fill`,width:24}),d.record]}),e.showMuteButton&&p(`button`,{className:`control-button ${n?`muted`:``}`,id:`muteButton`,onClick:s,title:n?d.unmute:d.mute,type:`button`,children:p(n?j:A,{height:24,weight:`regular`,width:24})}),e.showPauseButton&&p(`button`,{className:`control-button`,id:`pauseButton`,onClick:c,title:d.pause,type:`button`,children:p(N,{height:24,weight:`regular`,width:24})}),e.showResumeButton&&p(`button`,{className:`control-button`,id:`resumeButton`,onClick:l,title:d.resume,type:`button`,children:p(P,{height:24,weight:`regular`,width:24})}),e.showStopButton&&m(`button`,{className:`record-button`,id:`stopButton`,onClick:o,type:`button`,children:[p(F,{fill:`currentColor`,height:24,style:{marginRight:`0.375rem`},weight:`fill`,width:24}),d.stop]}),e.showSwitchSourceButton&&p(`button`,{className:`control-button`,id:`switchSourceButton`,onClick:u,title:d.switchSource,type:`button`,children:p(r===`camera`?M:D,{height:24,weight:`regular`,width:24})})]})})})}function K({devices:e,onCameraChange:t,onMicChange:n,translations:r={settings:`Settings`,camera:`Camera`,microphone:`Microphone`}}){return m(`div`,{className:`settings-panel active`,id:`settingsPanel`,children:[p(`h3`,{className:`settings-title`,children:r.settings}),m(`div`,{className:`device-selects-container`,children:[m(`div`,{className:`device-select-group`,children:[m(`div`,{className:`device-select-label`,children:[p(I,{height:20,weight:`regular`,width:20}),p(`span`,{children:r.camera})]}),p(`select`,{className:`device-select`,id:`cameraSelect`,onChange:e=>{t(e.target.value)},value:e.selectedCamera||``,children:e.cameras.filter(e=>e.deviceId&&e.deviceId.trim()!==``).map(e=>p(`option`,{value:e.deviceId,children:e.label||`Camera ${e.deviceId.slice(0,8)}`},e.deviceId))})]}),m(`div`,{className:`device-select-group`,children:[m(`div`,{className:`device-select-label`,children:[p(A,{height:20,weight:`regular`,width:20}),p(`span`,{children:r.microphone})]}),p(`select`,{className:`device-select`,id:`micSelect`,onChange:e=>{n(e.target.value)},value:e.selectedMic||``,children:e.microphones.filter(e=>e.deviceId&&e.deviceId.trim()!==``).map(e=>p(`option`,{value:e.deviceId,children:e.label||`Microphone ${e.deviceId.slice(0,8)}`},e.deviceId))})]})]})]})}function q(e){e.pause(),e.srcObject=null}function J(e,t){let n=e.getVideoTracks();return n.length===0||n[0].readyState!==`live`||!e.active?(q(t),!1):!0}function Y(e){let t=e instanceof Error?e.message:String(e);return t.includes(`interrupted`)||t.includes(`abort`)}async function ie(e){await new Promise(e=>{setTimeout(()=>e(),200)});try{await e.play()}catch{}}async function ae(e){try{await e.play()}catch(t){Y(t)&&await ie(e)}}async function oe(e,t,n,r){e.srcObject&&e.srcObject!==t&&e.pause(),e.srcObject=null,n===`screen`?e.classList.add(`screen-share`):e.classList.remove(`screen-share`),await new Promise(e=>{setTimeout(()=>e(),100)}),e.srcObject=t;let i=t.getVideoTracks();i.length>0&&!i[0].enabled&&(i[0].enabled=!0),await ae(e),r.current=!1}function X(e,t,n){if(!t||!J(t,e))return!1;let r=t.getVideoTracks()[0];return r.enabled||=!0,e.pause(),e.srcObject=t,n&&n(!1),e.play().catch(()=>{}),!0}function Z(e){let{videoElement:t,currentStream:n,currentSourceType:r,isUpdatingRef:i,setStreamId:a,setSourceType:o,onLoadedChange:s}=e;i.current=!0,a(n.id),o(r),s&&s(!1),oe(t,n,r,i).then(()=>{t.readyState>=2&&!t.paused&&s&&s(!0)}).catch(()=>{i.current=!1})}function se(e,t,n){let r=0,i=setInterval(()=>{r+=1,(X(e,t,n)||r>=10)&&clearInterval(i)},100);return()=>{clearInterval(i)}}function ce({controller:e,stream:t,transitionMessage:n,className:i=``,onLoadedChange:s}){let c=a(null),[l,u]=o(null),[d,f]=o(`camera`),m=a(!1);return r(()=>{let n=c.current;if(!n)return;if(!e){n.pause(),n.srcObject=null,s&&s(!1);return}let r=t||e.getStream(),i=e.getCurrentSourceType();if((r?.id!==l||i!==d)&&r&&!m.current){Z({videoElement:n,currentStream:r,currentSourceType:i,isUpdatingRef:m,setStreamId:u,setSourceType:f,onLoadedChange:s});return}let a=t||e.getStream();if(!X(n,a,s))return se(n,a,s)},[e,t,l,d,s]),r(()=>{let r=c.current;if(!(r&&e)||n)return;let i=t||e.getStream();i&&r.srcObject===i&&r.paused&&r.readyState>=2&&r.play().catch(()=>{})},[e,t,n]),r(()=>{let e=c.current;if(!e)return;let t=()=>{e.readyState>=2&&!e.paused&&s&&s(!0)},n=()=>{e.readyState>=2&&s&&s(!0)},r=()=>{s&&s(!1)};return e.addEventListener(`loadedmetadata`,t),e.addEventListener(`playing`,n),e.addEventListener(`loadstart`,r),()=>{e.removeEventListener(`loadedmetadata`,t),e.removeEventListener(`playing`,n),e.removeEventListener(`loadstart`,r)}},[s]),p(`video`,{autoPlay:!0,className:i,muted:!0,playsInline:!0,ref:c})}function le({className:e=``}){return p(`div`,{className:`video-preview-skeleton ${e}`,children:p(`div`,{className:`skeleton-shimmer`})})}function ue(e,t,n,r){return{showSettingsButton:!e&&r.enableDeviceChange!==!1,showMuteButton:e&&r.enableMute!==!1,showPauseButton:e&&r.enablePause!==!1&&t===`recording`&&!n,showResumeButton:e&&r.enablePause!==!1&&n,showStopButton:e,showSwitchSourceButton:e&&r.enableSourceSwitching!==!1}}function Q(e,t){t&&t(e instanceof Error?e:Error(String(e)))}function de({state:e,isVideoLoaded:t,isRecording:n,controller:r,audioLevel:i,buttonVisibility:a,currentSourceType:o,onStartRecording:s,onStopRecording:c,onSwitchSource:l,onToggleSettings:u,onToggleMute:d,onPause:f,onResume:h,onLoadedChange:g,translations:_,buttonTranslations:v}){return m(`div`,{className:`preview-container`,children:[!e.stream&&m(`div`,{className:`start-camera-area`,id:`startCameraArea`,children:[p(`div`,{className:`camera-icon`,children:p(D,{color:`currentColor`,height:48,weight:`regular`,width:48})}),p(`div`,{className:`camera-text`,children:_.initializingCamera}),p(`div`,{className:`camera-hint`,children:_.grantPermissions})]}),e.transitionMessage&&m(`div`,{className:`preview-skeleton`,id:`previewSkeleton`,children:[p(`div`,{className:`skeleton-spinner`}),p(`div`,{className:`skeleton-text`,children:_.switchingDevice})]}),e.stream&&!(t||e.transitionMessage)&&p(le,{}),e.stream&&p(ce,{className:`video-preview`,controller:r,onLoadedChange:g,stream:e.stream,transitionMessage:e.transitionMessage}),e.recordingState===`countdown`&&e.countdown!==null&&p(`div`,{className:`countdown-overlay active`,id:`countdownOverlay`,children:m(`div`,{className:`countdown-content`,children:[p(`div`,{className:`countdown-number`,id:`countdownNumber`,children:e.countdown}),p(`p`,{className:`countdown-text`,children:_.recordingStartsIn})]})}),n&&m(`div`,{className:`rec-indicator-top`,id:`recIndicatorTop`,style:{display:`flex`},children:[p(`div`,{className:`recording-dot-small`}),p(`span`,{children:_.rec})]}),n&&m(`div`,{className:`recording-timer-badge`,id:`recordingTimerRow`,style:{display:`flex`},children:[p(`div`,{className:`recording-dot-small`}),p(`span`,{className:`recording-timer-text`,id:`recordingTimer`,children:e.timer})]}),n&&p(`div`,{className:`audio-level-bars`,id:`audioLevelBars`,style:{display:`flex`},children:p(W,{audioLevel:i,isMuted:e.isMuted})}),e.stream&&p(G,{buttonVisibility:a,currentSourceType:o,isMuted:e.isMuted,onPause:f,onResume:h,onStartRecording:s,onStopRecording:c,onSwitchSource:l,onToggleMute:d,onToggleSettings:u,recordingState:e.recordingState,translations:v})]})}function $(e){let t=re(e.apiKey),[n,i]=o(!1),[a,s]=o(!1),c=H(e.lang||`en`,e.texts||{}),{state:l,actions:u,audioLevel:d,controller:h}=B({apiKey:t,backendUrl:e.backendUrl,countdownDuration:e.countdownDuration,maxRecordingTime:e.maxRecordingTime,userMetadata:e.userMetadata,enableSourceSwitching:e.enableSourceSwitching,enableMute:e.enableMute,enablePause:e.enablePause,enableDeviceChange:e.enableDeviceChange,onUploadComplete:e.onUploadComplete,onUploadProgress:e.onUploadProgress,onUploadError:e.onUploadError,onRecordingStart:e.onRecordingStart,onRecordingStop:e.onRecordingStop,onError:e.onError});r(()=>{if(l.stream||!u.startPreview)return;let t=setTimeout(()=>{u.startPreview(`camera`).catch(t=>{Q(t,e.onError)})},100);return()=>{clearTimeout(t)}},[l.stream,u.startPreview,e.onError]),r(()=>{l.recordingState===`recording`&&n&&i(!1)},[l.recordingState,n]);let g=()=>{u.startRecording(`camera`).catch(t=>{Q(t,e.onError)})},_=()=>{u.stopRecording().catch(t=>{Q(t,e.onError)})},v=()=>{e.enableDeviceChange!==!1&&i(!n)},y=t=>{u.changeCamera(t).catch(t=>{Q(t,e.onError)})},b=t=>{u.changeMic(t).catch(t=>{Q(t,e.onError)})},x=()=>{let t=h?.getCurrentSourceType()||`camera`;u.switchSource(t===`camera`?`screen`:`camera`).catch(t=>{Q(t,e.onError)})},S=l.recordingState===`recording`||l.isPaused,C=h?.getCurrentSourceType()||`camera`;return m(f,{children:[m(`div`,{className:`camera-area active`,id:`cameraArea`,children:[de({state:l,isVideoLoaded:a,isRecording:S,controller:h,audioLevel:d,buttonVisibility:ue(S,l.recordingState,l.isPaused,e),currentSourceType:C,onStartRecording:g,onStopRecording:_,onSwitchSource:x,onToggleSettings:v,onToggleMute:u.toggleMute,onPause:u.pauseRecording,onResume:u.resumeRecording,onLoadedChange:s,translations:{initializingCamera:c.initializingCamera,grantPermissions:c.grantPermissions,switchingDevice:c.switchingDevice,recordingStartsIn:c.recordingStartsIn,rec:c.rec},buttonTranslations:{settings:c.settings,record:c.record,stop:c.stop,pause:c.pause,resume:c.resume,mute:c.mute,unmute:c.unmute,switchSource:c.switchSource}}),l.transitionMessage&&m(`div`,{className:`source-transition-overlay active`,id:`sourceTransitionOverlay`,children:[p(`div`,{className:`transition-spinner`}),p(`div`,{className:`transition-message`,children:l.transitionMessage})]}),l.stream&&n&&p(K,{devices:l.devices,onCameraChange:y,onMicChange:b,translations:{settings:c.settings,camera:c.camera,microphone:c.microphone}})]}),l.error&&p(`div`,{className:`error active`,id:`error`,children:l.error}),l.uploadProgress!==null&&m(`div`,{className:`upload-progress active`,id:`uploadProgress`,children:[p(`div`,{className:`progress-bar`,children:p(`div`,{className:`progress-fill`,id:`uploadProgressFill`,style:{width:`${Math.round(l.uploadProgress*100)}%`}})}),m(`div`,{className:`progress-text`,id:`uploadProgressText`,children:[c.uploading,` `,Math.round(l.uploadProgress*100),`%`]})]})]})}export{$ as VidtreoRecorder,$ as VidtreoRecorderSSR,B as useVidtreoRecorder};
|
package/dist/recorder-react.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--background: 0 0% 100%;--foreground: 0 0% 3.9%;--card: 0 0% 100%;--card-foreground: 0 0% 3.9%;--primary: 0 0% 9%;--primary-foreground: 0 0% 98%;--secondary: 0 0% 96.1%;--secondary-foreground: 0 0% 9%;--muted: 0 0% 96.1%;--muted-foreground: 0 0% 45.1%;--accent: 0 0% 96.1%;--accent-foreground: 0 0% 9%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 0 0% 89.8%;--input: 0 0% 89.8%;--ring: 0 0% 3.9%;--radius: .5rem;--preview-bg: 0 0% 98%}.preview-container{position:relative;width:100%;aspect-ratio:9 / 16;border-radius:1rem;overflow:hidden;background:hsl(var(--preview-bg));display:flex;align-items:center;justify-content:center}.preview-container:before{content:"";position:absolute;inset:0;border-radius:1rem;border:1px solid hsl(var(--border));pointer-events:none;z-index:1}@media(min-width:768px){.preview-container{aspect-ratio:16 / 9}}.camera-area{display:none;position:relative;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.source-transition-overlay{position:absolute;inset:0;background:#000000b3;display:none;align-items:center;justify-content:center;flex-direction:column;border-radius:1rem;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .3s ease}.source-transition-overlay.active{display:flex;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.transition-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.3);border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.transition-message{color:#fff;font-size:14px;font-weight:500;text-align:center}.camera-area.active{display:block}.preview-container{position:relative;width:100%;height:100%}.preview-skeleton{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:hsl(var(--background) / .95);border-radius:1rem;z-index:10;gap:1rem}.skeleton-spinner{width:40px;height:40px;border:4px solid hsl(var(--muted) / .3);border-top-color:hsl(var(--primary));border-radius:50%;animation:spin .8s linear infinite}.skeleton-text{color:hsl(var(--muted-foreground));font-size:.875rem;font-weight:500}.video-preview{width:100%;height:100%;border-radius:1rem;background:#000;display:block;-o-object-fit:contain;object-fit:contain;transition:opacity .3s ease,transform .3s ease;position:absolute;inset:0}.video-preview-skeleton{position:absolute;inset:0;width:100%;height:100%;border-radius:1rem;background:hsl(var(--muted));overflow:hidden;z-index:2}.skeleton-shimmer{position:absolute;inset:0;background:linear-gradient(90deg,hsl(var(--muted)),hsl(var(--muted) / .5),hsl(var(--muted)));background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.video-preview-skeleton.hidden{opacity:0;pointer-events:none;transition:opacity .3s ease}.video-preview.screen-share{-o-object-fit:cover;object-fit:cover}.video-preview.transitioning{opacity:.5;transform:scale(.98)}.countdown-overlay{position:absolute;inset:0;background:hsl(var(--background) / .95);display:none;align-items:center;justify-content:center;border-radius:.5rem;z-index:20}.countdown-overlay.active{display:flex}.countdown-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.countdown-number{font-size:9rem;font-weight:700;color:hsl(var(--foreground));animation:zoomIn .3s ease}@keyframes zoomIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.countdown-text{font-size:.875rem;color:hsl(var(--muted-foreground));margin-top:1rem;font-weight:500}.settings-panel{margin-top:1rem;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:1rem;padding:1.25rem;display:none;flex-direction:column;animation:slideIn .3s ease}.settings-panel.active{display:flex}@keyframes slideIn{0%{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}.settings-title{font-size:.875rem;font-weight:600;margin-bottom:1rem}.device-selects-container{display:flex;flex-direction:row;gap:.75rem}.device-select-group{flex:1;display:flex;flex-direction:column}.device-select-label{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:hsl(var(--muted-foreground));font-weight:500;margin-bottom:.5rem}.device-select{width:100%;height:2.25rem;border-radius:.5rem;border:1px solid hsl(var(--input));background:hsl(var(--background));padding:0 2.25rem 0 .75rem;font-size:.875rem;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:12px}.audio-level-bars{position:absolute;bottom:.75rem;right:.75rem;display:flex;align-items:center;gap:.125rem;height:1rem;z-index:10}@media(min-width:768px){.audio-level-bars{height:1.25rem}}.audio-level-bar{width:.125rem;border-radius:9999px;background:hsl(var(--border));transition:all .1s ease;align-self:flex-end}.recording-controls{display:flex;gap:12px;align-items:center;justify-content:center}.recording-indicator{display:flex;align-items:center;gap:8px;color:#c33;font-weight:600;display:none}.recording-indicator.active{display:flex}.recording-dot{width:12px;height:12px;background:#c33;border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.recording-timer{font-family:monospace;font-size:18px;color:#333}.start-camera-area{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #667eea;border-radius:1rem;padding:40px;text-align:center;background:#f8f9ff;transition:all .3s ease;cursor:pointer;z-index:1}.start-camera-area:hover:not(.loading){border-color:#764ba2;background:#f0f2ff}.start-camera-area.loading{cursor:wait;opacity:.7}.start-camera-area.loading .camera-text{color:#999}.camera-icon{font-size:48px;margin-bottom:16px;display:flex;justify-content:center;color:#667eea}.camera-text{color:#667eea;font-weight:600;margin-bottom:8px}.camera-hint{color:#999;font-size:12px}.recording-info{margin-top:20px;padding:16px;background:#f5f5f5;border-radius:8px;display:none}.recording-info.active{display:block}.recording-size{color:#666;font-size:14px}button{width:100%;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;margin-top:20px}button:disabled{opacity:.6;cursor:not-allowed}.recording-controls{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:10}.recording-controls-row{display:flex;align-items:center;justify-content:center;gap:.5rem}.recording-timer-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.recording-timer-badge{position:absolute;top:.75rem;right:.75rem;display:flex;align-items:center;gap:.375rem;background:hsl(var(--background) / .9);border:1px solid hsl(var(--border));padding:.25rem .5rem;border-radius:9999px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a;z-index:10}.recording-dot-small{width:.375rem;height:.375rem;background:hsl(var(--destructive));border-radius:50%;animation:pulse 1.5s ease-in-out infinite}.recording-timer-text{font-size:.75rem;font-family:monospace;font-weight:500;color:hsl(var(--foreground))}.control-buttons-row{display:flex;align-items:center;justify-content:center;gap:.375rem;height:auto;min-height:2rem}@media(min-width:768px){.control-buttons-row{min-height:2.25rem}}.control-button{width:2rem;height:2rem;min-height:2rem;max-height:2rem;border-radius:9999px;border:1px solid hsl(var(--border));background:hsl(var(--background) / .9);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s ease,filter .2s ease;color:hsl(var(--foreground));padding:0;margin:0;flex-shrink:0;box-sizing:border-box;vertical-align:top}.control-button svg{width:24px!important;height:24px!important;color:inherit;flex-shrink:0}@media(min-width:768px){.control-button svg{width:26px!important;height:26px!important}}@media(min-width:768px){.control-button{width:2.25rem;height:2.25rem;min-height:2.25rem;max-height:2.25rem}}.control-button:hover:not(:disabled){filter:brightness(.85)}.control-button:disabled{opacity:.5;cursor:not-allowed}.control-button.muted{background:hsl(var(--muted));color:hsl(var(--foreground))}.control-button.muted:hover:not(:disabled){filter:brightness(.85)}.record-button{height:2rem;min-height:2rem;max-height:2rem;padding:0 .75rem;border-radius:9999px;font-weight:500;font-size:.75rem;background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));border:none;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;transition:background-color .2s ease,filter .2s ease;width:auto;margin:0;line-height:1;flex-shrink:0;box-sizing:border-box;vertical-align:top}@media(min-width:768px){.record-button{height:2.25rem;min-height:2.25rem;max-height:2.25rem;font-size:.875rem}}.record-button:hover:not(:disabled){filter:brightness(.85)}.rec-indicator-top{position:absolute;top:.75rem;left:.75rem;display:flex;align-items:center;gap:.375rem;background:hsl(var(--background) / .9);border:1px solid hsl(var(--border));padding:.25rem .5rem;border-radius:9999px;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a}.rec-indicator-top span{font-size:.75rem;font-weight:500}.progress{margin-top:20px;display:none}.progress.active{display:block}.progress-bar{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);width:0%;transition:width .3s ease}.progress-text{text-align:center;color:#666;font-size:14px}.result{margin-top:20px;padding:20px;background:#f0f9ff;border:2px solid #667eea;border-radius:8px;display:none}.result.active{display:block}.result-title{font-weight:600;color:#333;margin-bottom:12px}.result-info{color:#666;font-size:14px;margin-bottom:12px}.result-actions{display:flex;gap:12px}.result-actions button{flex:1;margin-top:0;padding:12px;font-size:14px}.error{margin-top:20px;padding:16px;background:#fee;border:2px solid #fcc;border-radius:8px;color:#c33;display:none}.error.active{display:block}.upload-progress{margin-top:20px;display:none}.upload-progress.active{display:block}.upload-status{margin-top:20px;padding:16px;border-radius:8px;display:none}.upload-status.active{display:block}.upload-status.success{background:#f0f9ff;border:2px solid #48bb78;color:#22543d}.upload-status.error{background:#fee;border:2px solid #fcc;color:#c33}.upload-status-text{font-size:14px;font-weight:500}
|
|
1
|
+
:root{--background:0 0% 100%;--foreground:0 0% 3.9%;--card:0 0% 100%;--card-foreground:0 0% 3.9%;--primary:0 0% 9%;--primary-foreground:0 0% 98%;--secondary:0 0% 96.1%;--secondary-foreground:0 0% 9%;--muted:0 0% 96.1%;--muted-foreground:0 0% 45.1%;--accent:0 0% 96.1%;--accent-foreground:0 0% 9%;--destructive:0 84.2% 60.2%;--destructive-foreground:0 0% 98%;--border:0 0% 89.8%;--input:0 0% 89.8%;--ring:0 0% 3.9%;--radius:0.5rem;--preview-bg:0 0% 98%}.preview-container{position:relative;width:100%;aspect-ratio:9 / 16;border-radius:1rem;overflow:hidden;background:hsl(var(--preview-bg));display:flex;align-items:center;justify-content:center}.preview-container::before{content:"";position:absolute;inset:0;border-radius:1rem;border:1px solid hsl(var(--border));pointer-events:none;z-index:1}@media (min-width:768px){.preview-container{aspect-ratio:16 / 9}}.camera-area{display:none;position:relative;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.source-transition-overlay{position:absolute;inset:0;background:rgba(0,0,0,0.7);display:none;align-items:center;justify-content:center;flex-direction:column;border-radius:1rem;z-index:100;backdrop-filter:blur(4px);transition:opacity 0.3s ease}.source-transition-overlay.active{display:flex;animation:fadeIn 0.2s ease}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.transition-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,0.3);border-top-color:#667eea;border-radius:50%;animation:spin 0.8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.transition-message{color:white;font-size:14px;font-weight:500;text-align:center}.camera-area.active{display:block}.preview-container{position:relative;width:100%;height:100%}.preview-skeleton{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:hsl(var(--background) / 0.95);border-radius:1rem;z-index:10;gap:1rem}.skeleton-spinner{width:40px;height:40px;border:4px solid hsl(var(--muted) / 0.3);border-top-color:hsl(var(--primary));border-radius:50%;animation:spin 0.8s linear infinite}.skeleton-text{color:hsl(var(--muted-foreground));font-size:0.875rem;font-weight:500}.video-preview{width:100%;height:100%;border-radius:1rem;background:#000;display:block;object-fit:contain;transition:opacity 0.3s ease,transform 0.3s ease;position:absolute;inset:0}.video-preview-skeleton{position:absolute;inset:0;width:100%;height:100%;border-radius:1rem;background:hsl(var(--muted));overflow:hidden;z-index:2}.skeleton-shimmer{position:absolute;inset:0;background:linear-gradient( 90deg,hsl(var(--muted)) 0%,hsl(var(--muted) / 0.5) 50%,hsl(var(--muted)) 100% );background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.video-preview-skeleton.hidden{opacity:0;pointer-events:none;transition:opacity 0.3s ease}.video-preview.screen-share{object-fit:cover}.video-preview.transitioning{opacity:0.5;transform:scale(0.98)}.countdown-overlay{position:absolute;inset:0;background:hsl(var(--background) / 0.95);display:none;align-items:center;justify-content:center;border-radius:0.5rem;z-index:20}.countdown-overlay.active{display:flex}.countdown-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.countdown-number{font-size:9rem;font-weight:bold;color:hsl(var(--foreground));animation:zoomIn 0.3s ease}@keyframes zoomIn{from{transform:scale(0.5);opacity:0}to{transform:scale(1);opacity:1}}.countdown-text{font-size:0.875rem;color:hsl(var(--muted-foreground));margin-top:1rem;font-weight:500}.settings-panel{margin-top:1rem;background:hsl(var(--background));border:1px solid hsl(var(--border));border-radius:1rem;padding:1.25rem;display:none;flex-direction:column;animation:slideIn 0.3s ease}.settings-panel.active{display:flex}@keyframes slideIn{from{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}.settings-title{font-size:0.875rem;font-weight:600;margin-bottom:1rem}.device-selects-container{display:flex;flex-direction:row;gap:0.75rem}.device-select-group{flex:1;display:flex;flex-direction:column}.device-select-label{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:hsl(var(--muted-foreground));font-weight:500;margin-bottom:0.5rem}.device-select{width:100%;height:2.25rem;border-radius:0.5rem;border:1px solid hsl(var(--input));background:hsl(var(--background));padding:0 0.75rem;font-size:0.875rem;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0.75rem center;background-size:12px;padding-right:2.25rem}.audio-level-bars{position:absolute;bottom:0.75rem;right:0.75rem;display:flex;align-items:center;gap:0.125rem;height:1rem;z-index:10}@media (min-width:768px){.audio-level-bars{height:1.25rem}}.audio-level-bar{width:0.125rem;border-radius:9999px;background:hsl(var(--border));transition:all 0.1s ease;align-self:flex-end}.recording-controls{display:flex;gap:12px;align-items:center;justify-content:center}.recording-indicator{display:flex;align-items:center;gap:8px;color:#c33;font-weight:600;display:none}.recording-indicator.active{display:flex}.recording-dot{width:12px;height:12px;background:#c33;border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.3}}.recording-timer{font-family:monospace;font-size:18px;color:#333}.start-camera-area{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px dashed #667eea;border-radius:1rem;padding:40px;text-align:center;background:#f8f9ff;transition:all 0.3s ease;cursor:pointer;z-index:1}.start-camera-area:hover:not(.loading){border-color:#764ba2;background:#f0f2ff}.start-camera-area.loading{cursor:wait;opacity:0.7}.start-camera-area.loading .camera-text{color:#999}.camera-icon{font-size:48px;margin-bottom:16px;display:flex;justify-content:center;color:#667eea}.camera-text{color:#667eea;font-weight:600;margin-bottom:8px}.camera-hint{color:#999;font-size:12px}.recording-info{margin-top:20px;padding:16px;background:#f5f5f5;border-radius:8px;display:none}.recording-info.active{display:block}.recording-size{color:#666;font-size:14px}button{width:100%;padding:16px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:white;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;margin-top:20px}button:disabled{opacity:0.6;cursor:not-allowed}.recording-controls{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);z-index:10}.recording-controls-row{display:flex;align-items:center;justify-content:center;gap:0.5rem}.recording-timer-row{display:flex;align-items:center;justify-content:space-between;gap:0.5rem}.recording-timer-badge{position:absolute;top:0.75rem;right:0.75rem;display:flex;align-items:center;gap:0.375rem;background:hsl(var(--background) / 0.9);border:1px solid hsl(var(--border));padding:0.25rem 0.5rem;border-radius:9999px;box-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1),0 1px 2px -1px rgb(0 0 0 / 0.1);z-index:10}.recording-dot-small{width:0.375rem;height:0.375rem;background:hsl(var(--destructive));border-radius:50%;animation:pulse 1.5s ease-in-out infinite}.recording-timer-text{font-size:0.75rem;font-family:monospace;font-weight:500;color:hsl(var(--foreground))}.control-buttons-row{display:flex;align-items:center;justify-content:center;gap:0.375rem;height:auto;min-height:2rem}@media (min-width:768px){.control-buttons-row{min-height:2.25rem}}.control-button{width:2rem;height:2rem;min-height:2rem;max-height:2rem;border-radius:9999px;border:1px solid hsl(var(--border));background:hsl(var(--background) / 0.9);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color 0.2s ease,filter 0.2s ease;color:hsl(var(--foreground));padding:0;margin:0;flex-shrink:0;box-sizing:border-box;vertical-align:top}.control-button svg{width:24px !important;height:24px !important;color:inherit;flex-shrink:0}@media (min-width:768px){.control-button svg{width:26px !important;height:26px !important}}@media (min-width:768px){.control-button{width:2.25rem;height:2.25rem;min-height:2.25rem;max-height:2.25rem}}.control-button:hover:not(:disabled){filter:brightness(0.85)}.control-button:disabled{opacity:0.5;cursor:not-allowed}.control-button.muted{background:hsl(var(--muted));color:hsl(var(--foreground))}.control-button.muted:hover:not(:disabled){filter:brightness(0.85)}.record-button{height:2rem;min-height:2rem;max-height:2rem;padding:0 0.75rem;border-radius:9999px;font-weight:500;font-size:0.75rem;background:hsl(var(--destructive));color:hsl(var(--destructive-foreground));border:none;display:inline-flex;align-items:center;justify-content:center;gap:0.375rem;transition:background-color 0.2s ease,filter 0.2s ease;width:auto;margin:0;line-height:1;flex-shrink:0;box-sizing:border-box;vertical-align:top}@media (min-width:768px){.record-button{height:2.25rem;min-height:2.25rem;max-height:2.25rem;font-size:0.875rem}}.record-button:hover:not(:disabled){filter:brightness(0.85)}.rec-indicator-top{position:absolute;top:0.75rem;left:0.75rem;display:flex;align-items:center;gap:0.375rem;background:hsl(var(--background) / 0.9);border:1px solid hsl(var(--border));padding:0.25rem 0.5rem;border-radius:9999px;box-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1),0 1px 2px -1px rgb(0 0 0 / 0.1)}.rec-indicator-top span{font-size:0.75rem;font-weight:500}.progress{margin-top:20px;display:none}.progress.active{display:block}.progress-bar{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,#667eea 0%,#764ba2 100%);width:0%;transition:width 0.3s ease}.progress-text{text-align:center;color:#666;font-size:14px}.result{margin-top:20px;padding:20px;background:#f0f9ff;border:2px solid #667eea;border-radius:8px;display:none}.result.active{display:block}.result-title{font-weight:600;color:#333;margin-bottom:12px}.result-info{color:#666;font-size:14px;margin-bottom:12px}.result-actions{display:flex;gap:12px}.result-actions button{flex:1;margin-top:0;padding:12px;font-size:14px}.error{margin-top:20px;padding:16px;background:#fee;border:2px solid #fcc;border-radius:8px;color:#c33;display:none}.error.active{display:block}.upload-progress{margin-top:20px;display:none}.upload-progress.active{display:block}.upload-status{margin-top:20px;padding:16px;border-radius:8px;display:none}.upload-status.active{display:block}.upload-status.success{background:#f0f9ff;border:2px solid #48bb78;color:#22543d}.upload-status.error{background:#fee;border:2px solid #fcc;color:#c33}.upload-status-text{font-size:14px;font-weight:500}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vidtreo/recorder-react",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "React components and hooks for @vidtreo/recorder - video recording SDK",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -12,16 +12,21 @@
|
|
|
12
12
|
"types": "./dist/index.d.ts"
|
|
13
13
|
},
|
|
14
14
|
"./ssr": {
|
|
15
|
-
"import": "./dist/
|
|
16
|
-
"types": "./dist/
|
|
17
|
-
}
|
|
15
|
+
"import": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts"
|
|
17
|
+
},
|
|
18
|
+
"./styles.css": "./dist/recorder-react.css"
|
|
18
19
|
},
|
|
19
20
|
"files": [
|
|
20
21
|
"dist"
|
|
21
22
|
],
|
|
23
|
+
"sideEffects": [
|
|
24
|
+
"**/*.css",
|
|
25
|
+
"./dist/index.js"
|
|
26
|
+
],
|
|
22
27
|
"scripts": {
|
|
23
|
-
"build": "
|
|
24
|
-
"build:dev": "
|
|
28
|
+
"build": "tsdown && bun scripts/rename-css.ts && bun scripts/inject-css.ts",
|
|
29
|
+
"build:dev": "tsdown --watch",
|
|
25
30
|
"dev": "vite --config demo/vite.config.ts",
|
|
26
31
|
"demo": "vite --config demo/vite.config.ts",
|
|
27
32
|
"prepublishOnly": "npm run build"
|
|
@@ -38,14 +43,14 @@
|
|
|
38
43
|
],
|
|
39
44
|
"author": "cfonseca@vidtreo.com",
|
|
40
45
|
"license": "MIT",
|
|
41
|
-
"dependencies": {
|
|
42
|
-
"@vidtreo/recorder": "workspace:*"
|
|
43
|
-
},
|
|
44
46
|
"peerDependencies": {
|
|
47
|
+
"@vidtreo/recorder": ">=0.8.2",
|
|
45
48
|
"react": ">=18.0.0",
|
|
46
49
|
"react-dom": ">=18.0.0"
|
|
47
50
|
},
|
|
48
51
|
"devDependencies": {
|
|
52
|
+
"@vidtreo/recorder": "workspace:*",
|
|
53
|
+
"tsdown": "^0.17.0-beta.5",
|
|
49
54
|
"@phosphor-icons/react": "^2.1.10",
|
|
50
55
|
"@types/node": "^24.10.0",
|
|
51
56
|
"@types/react": "^19.2.2",
|
|
@@ -55,7 +60,6 @@
|
|
|
55
60
|
"postcss": "^8.5.6",
|
|
56
61
|
"react": "^18.3.1",
|
|
57
62
|
"react-dom": "^18.3.1",
|
|
58
|
-
"terser": "^5.7.1",
|
|
59
63
|
"typescript": "^5.8.3",
|
|
60
64
|
"vite": "^7.1.12"
|
|
61
65
|
},
|
package/dist/ssr.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{VidtreoRecorder as r}from"./index.js";export{r as VidtreoRecorderSSR};
|