@refraction-ui/react 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -1
- package/dist/chunk-ZWRGVWUY.js +120 -0
- package/dist/chunk-ZWRGVWUY.js.map +1 -0
- package/dist/form.cjs +315 -0
- package/dist/form.cjs.map +1 -0
- package/dist/form.d.cts +1 -0
- package/dist/form.d.ts +1 -0
- package/dist/form.js +196 -0
- package/dist/form.js.map +1 -0
- package/dist/index.cjs +45 -258
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +74 -76
- package/dist/index.d.ts +74 -76
- package/dist/index.js +47 -334
- package/dist/index.js.map +1 -1
- package/dist/internal/animated-text/index.d.cts +47 -0
- package/dist/internal/animated-text/index.d.ts +47 -0
- package/dist/internal/app-shell/index.d.cts +128 -0
- package/dist/internal/app-shell/index.d.ts +128 -0
- package/dist/internal/auth/index.d.cts +74 -0
- package/dist/internal/auth/index.d.ts +74 -0
- package/dist/internal/avatar/index.d.cts +53 -0
- package/dist/internal/avatar/index.d.ts +53 -0
- package/dist/internal/avatar-group/index.d.cts +70 -0
- package/dist/internal/avatar-group/index.d.ts +70 -0
- package/dist/internal/badge/index.d.cts +26 -0
- package/dist/internal/badge/index.d.ts +26 -0
- package/dist/internal/bottom-nav/index.d.cts +29 -0
- package/dist/internal/bottom-nav/index.d.ts +29 -0
- package/dist/internal/breadcrumbs/index.d.cts +38 -0
- package/dist/internal/breadcrumbs/index.d.ts +38 -0
- package/dist/internal/button/index.d.cts +34 -0
- package/dist/internal/button/index.d.ts +34 -0
- package/dist/internal/calendar/index.d.cts +73 -0
- package/dist/internal/calendar/index.d.ts +73 -0
- package/dist/internal/card/index.d.cts +62 -0
- package/dist/internal/card/index.d.ts +62 -0
- package/dist/internal/card-grid/index.d.cts +10 -0
- package/dist/internal/card-grid/index.d.ts +10 -0
- package/dist/internal/checkbox/index.d.cts +40 -0
- package/dist/internal/checkbox/index.d.ts +40 -0
- package/dist/internal/code-editor/index.d.cts +47 -0
- package/dist/internal/code-editor/index.d.ts +47 -0
- package/dist/internal/collapsible/index.d.cts +43 -0
- package/dist/internal/collapsible/index.d.ts +43 -0
- package/dist/internal/command/index.d.cts +80 -0
- package/dist/internal/command/index.d.ts +80 -0
- package/dist/internal/content-protection/index.d.cts +47 -0
- package/dist/internal/content-protection/index.d.ts +47 -0
- package/dist/internal/data-table/index.d.cts +73 -0
- package/dist/internal/data-table/index.d.ts +73 -0
- package/dist/internal/date-picker/index.d.cts +98 -0
- package/dist/internal/date-picker/index.d.ts +98 -0
- package/dist/internal/device-frame/index.d.cts +40 -0
- package/dist/internal/device-frame/index.d.ts +40 -0
- package/dist/internal/dialog/index.d.cts +54 -0
- package/dist/internal/dialog/index.d.ts +54 -0
- package/dist/internal/dropdown-menu/index.d.cts +55 -0
- package/dist/internal/dropdown-menu/index.d.ts +55 -0
- package/dist/internal/emoji-picker/index.d.cts +77 -0
- package/dist/internal/emoji-picker/index.d.ts +77 -0
- package/dist/internal/feedback-dialog/index.d.cts +55 -0
- package/dist/internal/feedback-dialog/index.d.ts +55 -0
- package/dist/internal/file-upload/index.d.cts +91 -0
- package/dist/internal/file-upload/index.d.ts +91 -0
- package/dist/internal/footer/index.d.cts +30 -0
- package/dist/internal/footer/index.d.ts +30 -0
- package/dist/internal/inline-editor/index.d.cts +52 -0
- package/dist/internal/inline-editor/index.d.ts +52 -0
- package/dist/internal/input/index.d.cts +38 -0
- package/dist/internal/input/index.d.ts +38 -0
- package/dist/internal/input-group/index.d.cts +35 -0
- package/dist/internal/input-group/index.d.ts +35 -0
- package/dist/internal/install-prompt/index.d.cts +36 -0
- package/dist/internal/install-prompt/index.d.ts +36 -0
- package/dist/internal/keyboard-shortcut/index.d.cts +49 -0
- package/dist/internal/keyboard-shortcut/index.d.ts +49 -0
- package/dist/internal/language-selector/index.d.cts +63 -0
- package/dist/internal/language-selector/index.d.ts +63 -0
- package/dist/internal/markdown-renderer/index.d.cts +40 -0
- package/dist/internal/markdown-renderer/index.d.ts +40 -0
- package/dist/internal/mobile-nav/index.d.cts +45 -0
- package/dist/internal/mobile-nav/index.d.ts +45 -0
- package/dist/internal/navbar/index.d.cts +30 -0
- package/dist/internal/navbar/index.d.ts +30 -0
- package/dist/internal/otp-input/index.d.cts +66 -0
- package/dist/internal/otp-input/index.d.ts +66 -0
- package/dist/internal/payment/index.d.cts +9 -0
- package/dist/internal/payment/index.d.ts +9 -0
- package/dist/internal/popover/index.d.cts +46 -0
- package/dist/internal/popover/index.d.ts +46 -0
- package/dist/internal/presence-indicator/index.d.cts +38 -0
- package/dist/internal/presence-indicator/index.d.ts +38 -0
- package/dist/internal/progress-display/index.d.cts +60 -0
- package/dist/internal/progress-display/index.d.ts +60 -0
- package/dist/internal/radio/index.d.ts +43 -0
- package/dist/internal/react-accordion/index.d.ts +22 -0
- package/dist/internal/react-animated-text/index.d.cts +12 -0
- package/dist/internal/react-animated-text/index.d.ts +12 -0
- package/dist/internal/react-app-shell/index.d.cts +169 -0
- package/dist/internal/react-app-shell/index.d.ts +169 -0
- package/dist/internal/react-auth/index.d.cts +59 -0
- package/dist/internal/react-auth/index.d.ts +59 -0
- package/dist/internal/react-avatar/index.d.cts +20 -0
- package/dist/internal/react-avatar/index.d.ts +20 -0
- package/dist/internal/react-avatar-group/index.d.cts +33 -0
- package/dist/internal/react-avatar-group/index.d.ts +33 -0
- package/dist/internal/react-badge/index.d.cts +17 -0
- package/dist/internal/react-badge/index.d.ts +17 -0
- package/dist/internal/react-bottom-nav/index.d.cts +19 -0
- package/dist/internal/react-bottom-nav/index.d.ts +19 -0
- package/dist/internal/react-breadcrumbs/index.d.cts +24 -0
- package/dist/internal/react-breadcrumbs/index.d.ts +24 -0
- package/dist/internal/react-button/index.d.cts +21 -0
- package/dist/internal/react-button/index.d.ts +21 -0
- package/dist/internal/react-calendar/index.d.cts +44 -0
- package/dist/internal/react-calendar/index.d.ts +44 -0
- package/dist/internal/react-callout/index.d.cts +12 -0
- package/dist/internal/react-callout/index.d.ts +12 -0
- package/dist/internal/react-card/index.d.cts +29 -0
- package/dist/internal/react-card/index.d.ts +29 -0
- package/dist/internal/react-card-grid/index.d.cts +8 -0
- package/dist/internal/react-card-grid/index.d.ts +8 -0
- package/dist/internal/react-carousel/index.d.ts +22 -0
- package/dist/internal/react-checkbox/index.d.cts +18 -0
- package/dist/internal/react-checkbox/index.d.ts +18 -0
- package/dist/internal/react-code-block/index.d.cts +7 -0
- package/dist/internal/react-code-block/index.d.ts +7 -0
- package/dist/internal/react-code-editor/index.d.cts +28 -0
- package/dist/internal/react-code-editor/index.d.ts +28 -0
- package/dist/internal/react-collapsible/index.d.cts +29 -0
- package/dist/internal/react-collapsible/index.d.ts +29 -0
- package/dist/internal/react-combobox/index.d.cts +94 -0
- package/dist/internal/react-combobox/index.d.ts +94 -0
- package/dist/internal/react-command/index.d.cts +51 -0
- package/dist/internal/react-command/index.d.ts +51 -0
- package/dist/internal/react-content-protection/index.d.cts +22 -0
- package/dist/internal/react-content-protection/index.d.ts +22 -0
- package/dist/internal/react-data-table/index.d.cts +22 -0
- package/dist/internal/react-data-table/index.d.ts +22 -0
- package/dist/internal/react-date-picker/index.d.cts +23 -0
- package/dist/internal/react-date-picker/index.d.ts +23 -0
- package/dist/internal/react-device-frame/index.d.cts +37 -0
- package/dist/internal/react-device-frame/index.d.ts +37 -0
- package/dist/internal/react-dialog/index.d.cts +49 -0
- package/dist/internal/react-dialog/index.d.ts +49 -0
- package/dist/internal/react-dropdown-menu/index.d.cts +37 -0
- package/dist/internal/react-dropdown-menu/index.d.ts +37 -0
- package/dist/internal/react-emoji-picker/index.d.cts +32 -0
- package/dist/internal/react-emoji-picker/index.d.ts +32 -0
- package/dist/internal/react-feedback-dialog/index.d.cts +40 -0
- package/dist/internal/react-feedback-dialog/index.d.ts +40 -0
- package/dist/internal/react-file-tree/index.d.cts +5 -0
- package/dist/internal/react-file-tree/index.d.ts +5 -0
- package/dist/internal/react-file-upload/index.d.cts +22 -0
- package/dist/internal/react-file-upload/index.d.ts +22 -0
- package/dist/internal/react-footer/index.d.cts +20 -0
- package/dist/internal/react-footer/index.d.ts +20 -0
- package/dist/internal/react-form/index.d.cts +85 -0
- package/dist/internal/react-form/index.d.ts +85 -0
- package/dist/internal/react-icon-system/index.d.cts +5 -0
- package/dist/internal/react-icon-system/index.d.ts +5 -0
- package/dist/internal/react-inline-editor/index.d.cts +17 -0
- package/dist/internal/react-inline-editor/index.d.ts +17 -0
- package/dist/internal/react-input/index.d.cts +31 -0
- package/dist/internal/react-input/index.d.ts +31 -0
- package/dist/internal/react-input-group/index.d.cts +34 -0
- package/dist/internal/react-input-group/index.d.ts +34 -0
- package/dist/internal/react-install-prompt/index.d.cts +24 -0
- package/dist/internal/react-install-prompt/index.d.ts +24 -0
- package/dist/internal/react-keyboard-shortcut/index.d.cts +57 -0
- package/dist/internal/react-keyboard-shortcut/index.d.ts +57 -0
- package/dist/internal/react-language-selector/index.d.cts +26 -0
- package/dist/internal/react-language-selector/index.d.ts +26 -0
- package/dist/internal/react-link-card/index.d.cts +5 -0
- package/dist/internal/react-link-card/index.d.ts +5 -0
- package/dist/internal/react-markdown-renderer/index.d.cts +20 -0
- package/dist/internal/react-markdown-renderer/index.d.ts +20 -0
- package/dist/internal/react-mobile-nav/index.d.cts +33 -0
- package/dist/internal/react-mobile-nav/index.d.ts +33 -0
- package/dist/internal/react-navbar/index.d.cts +25 -0
- package/dist/internal/react-navbar/index.d.ts +25 -0
- package/dist/internal/react-otp-input/index.d.cts +21 -0
- package/dist/internal/react-otp-input/index.d.ts +21 -0
- package/dist/internal/react-pagination/index.d.ts +7 -0
- package/dist/internal/react-payment/index.d.cts +9 -0
- package/dist/internal/react-payment/index.d.ts +9 -0
- package/dist/internal/react-popover/index.d.cts +33 -0
- package/dist/internal/react-popover/index.d.ts +33 -0
- package/dist/internal/react-presence-indicator/index.d.cts +34 -0
- package/dist/internal/react-presence-indicator/index.d.ts +34 -0
- package/dist/internal/react-progress-display/index.d.cts +21 -0
- package/dist/internal/react-progress-display/index.d.ts +21 -0
- package/dist/internal/react-radio/index.d.ts +33 -0
- package/dist/internal/react-reaction-bar/index.d.cts +34 -0
- package/dist/internal/react-reaction-bar/index.d.ts +34 -0
- package/dist/internal/react-resizable-layout/index.d.cts +36 -0
- package/dist/internal/react-resizable-layout/index.d.ts +36 -0
- package/dist/internal/react-rich-editor/index.d.cts +2 -0
- package/dist/internal/react-rich-editor/index.d.ts +2 -0
- package/dist/internal/react-search-bar/index.d.cts +32 -0
- package/dist/internal/react-search-bar/index.d.ts +32 -0
- package/dist/internal/react-select/index.d.cts +30 -0
- package/dist/internal/react-select/index.d.ts +30 -0
- package/dist/internal/react-sheet/index.d.cts +67 -0
- package/dist/internal/react-sheet/index.d.ts +67 -0
- package/dist/internal/react-sidebar/index.d.cts +23 -0
- package/dist/internal/react-sidebar/index.d.ts +23 -0
- package/dist/internal/react-skeleton/index.d.cts +31 -0
- package/dist/internal/react-skeleton/index.d.ts +31 -0
- package/dist/internal/react-skip-to-content/index.d.cts +9 -0
- package/dist/internal/react-skip-to-content/index.d.ts +9 -0
- package/dist/internal/react-slide-viewer/index.d.cts +23 -0
- package/dist/internal/react-slide-viewer/index.d.ts +23 -0
- package/dist/internal/react-slider/index.d.cts +1 -0
- package/dist/internal/react-slider/index.d.ts +1 -0
- package/dist/internal/react-status-indicator/index.d.cts +34 -0
- package/dist/internal/react-status-indicator/index.d.ts +34 -0
- package/dist/internal/react-steps/index.d.cts +19 -0
- package/dist/internal/react-steps/index.d.ts +19 -0
- package/dist/internal/react-switch/index.d.cts +17 -0
- package/dist/internal/react-switch/index.d.ts +17 -0
- package/dist/internal/react-table-of-contents/index.d.ts +10 -0
- package/dist/internal/react-tabs/index.d.cts +31 -0
- package/dist/internal/react-tabs/index.d.ts +31 -0
- package/dist/internal/react-textarea/index.d.cts +16 -0
- package/dist/internal/react-textarea/index.d.ts +16 -0
- package/dist/internal/react-theme/index.d.cts +44 -0
- package/dist/internal/react-theme/index.d.ts +44 -0
- package/dist/internal/react-thread-view/index.d.cts +34 -0
- package/dist/internal/react-thread-view/index.d.ts +34 -0
- package/dist/internal/react-toast/index.d.cts +36 -0
- package/dist/internal/react-toast/index.d.ts +36 -0
- package/dist/internal/react-tooltip/index.d.cts +33 -0
- package/dist/internal/react-tooltip/index.d.ts +33 -0
- package/dist/internal/react-version-selector/index.d.cts +24 -0
- package/dist/internal/react-version-selector/index.d.ts +24 -0
- package/dist/internal/react-video-player/index.d.cts +9 -0
- package/dist/internal/react-video-player/index.d.ts +9 -0
- package/dist/internal/react-voice-pill/index.d.cts +10 -0
- package/dist/internal/react-voice-pill/index.d.ts +10 -0
- package/dist/internal/react-waveform/index.d.cts +9 -0
- package/dist/internal/react-waveform/index.d.ts +9 -0
- package/dist/internal/reaction-bar/index.d.cts +50 -0
- package/dist/internal/reaction-bar/index.d.ts +50 -0
- package/dist/internal/resizable-layout/index.d.cts +47 -0
- package/dist/internal/resizable-layout/index.d.ts +47 -0
- package/dist/internal/search-bar/index.d.cts +51 -0
- package/dist/internal/search-bar/index.d.ts +51 -0
- package/dist/internal/select/index.d.cts +69 -0
- package/dist/internal/select/index.d.ts +69 -0
- package/dist/internal/shared/index.d.cts +249 -0
- package/dist/internal/shared/index.d.ts +249 -0
- package/dist/internal/sidebar/index.d.cts +40 -0
- package/dist/internal/sidebar/index.d.ts +40 -0
- package/dist/internal/skeleton/index.d.cts +27 -0
- package/dist/internal/skeleton/index.d.ts +27 -0
- package/dist/internal/slide-viewer/index.d.cts +72 -0
- package/dist/internal/slide-viewer/index.d.ts +72 -0
- package/dist/internal/slider/index.d.cts +4 -0
- package/dist/internal/slider/index.d.ts +4 -0
- package/dist/internal/status-indicator/index.d.cts +42 -0
- package/dist/internal/status-indicator/index.d.ts +42 -0
- package/dist/internal/switch/index.d.cts +41 -0
- package/dist/internal/switch/index.d.ts +41 -0
- package/dist/internal/tabs/index.d.cts +45 -0
- package/dist/internal/tabs/index.d.ts +45 -0
- package/dist/internal/textarea/index.d.cts +28 -0
- package/dist/internal/textarea/index.d.ts +28 -0
- package/dist/internal/theme/index.d.cts +60 -0
- package/dist/internal/theme/index.d.ts +60 -0
- package/dist/internal/thread-view/index.d.cts +95 -0
- package/dist/internal/thread-view/index.d.ts +95 -0
- package/dist/internal/toast/index.d.cts +64 -0
- package/dist/internal/toast/index.d.ts +64 -0
- package/dist/internal/tooltip/index.d.cts +45 -0
- package/dist/internal/tooltip/index.d.ts +45 -0
- package/dist/internal/version-selector/index.d.cts +68 -0
- package/dist/internal/version-selector/index.d.ts +68 -0
- package/dist/internal/video-player/index.d.cts +50 -0
- package/dist/internal/video-player/index.d.ts +50 -0
- package/dist/internal/voice-pill/index.d.cts +86 -0
- package/dist/internal/voice-pill/index.d.ts +86 -0
- package/dist/internal/waveform/index.d.cts +83 -0
- package/dist/internal/waveform/index.d.ts +83 -0
- package/dist/theme.d.cts +1 -1
- package/dist/theme.d.ts +1 -1
- package/package.json +7 -6
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { AccessibilityProps, TokenContract } from '../shared/index.cjs';
|
|
2
|
+
|
|
3
|
+
type VoicePillSpeaker = 'ai' | 'user' | (string & {});
|
|
4
|
+
type VoicePillPosition = 'inline' | 'top-start' | 'top-center' | 'top-end' | 'bottom-start' | 'bottom-center' | 'bottom-end' | 'left-start' | 'left-center' | 'left-end' | 'right-start' | 'right-center' | 'right-end';
|
|
5
|
+
interface VoicePillProps {
|
|
6
|
+
/** Speaker identity used for labels and data-speaker theming */
|
|
7
|
+
speaker?: VoicePillSpeaker;
|
|
8
|
+
/** Primary voice status text */
|
|
9
|
+
label: string;
|
|
10
|
+
/** Optional secondary status text */
|
|
11
|
+
sub?: string;
|
|
12
|
+
/** Voice activity intensity, clamped from 0 to 1 */
|
|
13
|
+
intensity?: number;
|
|
14
|
+
/** Whether voice output/input is muted */
|
|
15
|
+
muted?: boolean;
|
|
16
|
+
/** Callback for the optional mute toggle */
|
|
17
|
+
onToggleMute?: () => void;
|
|
18
|
+
/** Viewport position, or inline for embedding inside another layout */
|
|
19
|
+
position?: VoicePillPosition;
|
|
20
|
+
}
|
|
21
|
+
interface VoicePillStyleVars {
|
|
22
|
+
[key: `--${string}`]: string;
|
|
23
|
+
}
|
|
24
|
+
interface VoicePillAPI {
|
|
25
|
+
/** Display speaker label */
|
|
26
|
+
speaker: string;
|
|
27
|
+
/** Normalized key for data-speaker */
|
|
28
|
+
speakerKey: string;
|
|
29
|
+
/** Primary label */
|
|
30
|
+
label: string;
|
|
31
|
+
/** Secondary label */
|
|
32
|
+
sub?: string;
|
|
33
|
+
/** Clamped raw intensity */
|
|
34
|
+
intensity: number;
|
|
35
|
+
/** Intensity used for visual animation after muted state is applied */
|
|
36
|
+
visualIntensity: number;
|
|
37
|
+
/** Muted state */
|
|
38
|
+
muted: boolean;
|
|
39
|
+
/** Viewport position, or inline for embedding inside another layout */
|
|
40
|
+
position: VoicePillPosition;
|
|
41
|
+
/** Fallback initials for the speaker avatar */
|
|
42
|
+
initials: string;
|
|
43
|
+
/** Invoke the mute callback when provided */
|
|
44
|
+
toggleMute(): void;
|
|
45
|
+
/** ARIA props for the live status pill */
|
|
46
|
+
ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
|
|
47
|
+
/** ARIA props for the mute toggle */
|
|
48
|
+
toggleMuteAriaProps: Record<string, unknown>;
|
|
49
|
+
/** Data attributes reflecting speaker/state */
|
|
50
|
+
dataAttributes: Record<string, string>;
|
|
51
|
+
/** CSS custom properties that drive pulse visuals */
|
|
52
|
+
style: VoicePillStyleVars;
|
|
53
|
+
}
|
|
54
|
+
declare const DEFAULT_VOICE_PILL_SPEAKER = "ai";
|
|
55
|
+
declare const DEFAULT_VOICE_PILL_POSITION: VoicePillPosition;
|
|
56
|
+
declare function clampVoicePillIntensity(intensity?: number): number;
|
|
57
|
+
declare function getVoicePillSpeakerKey(speaker?: VoicePillSpeaker): string;
|
|
58
|
+
declare function getVoicePillSpeakerLabel(speaker?: VoicePillSpeaker): string;
|
|
59
|
+
declare function getVoicePillInitials(speaker?: VoicePillSpeaker): string;
|
|
60
|
+
declare function getVoicePillPosition(position?: VoicePillPosition): VoicePillPosition;
|
|
61
|
+
declare function getVoicePillAriaLabel(props: {
|
|
62
|
+
speaker?: VoicePillSpeaker;
|
|
63
|
+
label: string;
|
|
64
|
+
sub?: string;
|
|
65
|
+
muted?: boolean;
|
|
66
|
+
}): string;
|
|
67
|
+
declare function getVoicePillPulseStyle(intensity?: number, muted?: boolean): VoicePillStyleVars;
|
|
68
|
+
declare function createVoicePill(props: VoicePillProps): VoicePillAPI;
|
|
69
|
+
|
|
70
|
+
declare const voicePillTokens: TokenContract;
|
|
71
|
+
declare const voicePillRootStyles = "inline-flex min-w-0 max-w-[min(calc(100vw-2rem),22rem)] items-center gap-3 rounded-full border border-border bg-background px-3 py-2 text-foreground shadow-lg ring-1 ring-border/50 transition-opacity data-[muted=true]:opacity-80";
|
|
72
|
+
declare const voicePillSpeakerStyles = "[--rfr-voice-pill-accent:hsl(var(--primary))] [--rfr-voice-pill-accent-foreground:hsl(var(--primary-foreground))] data-[speaker=user]:[--rfr-voice-pill-accent:hsl(var(--accent-foreground))] data-[speaker=user]:[--rfr-voice-pill-accent-foreground:hsl(var(--accent))] data-[muted=true]:[--rfr-voice-pill-accent:hsl(var(--muted-foreground))]";
|
|
73
|
+
declare const voicePillPositionVariants: (props?: ({
|
|
74
|
+
position?: "inline" | "top-start" | "top-center" | "top-end" | "bottom-start" | "bottom-center" | "bottom-end" | "left-start" | "left-center" | "left-end" | "right-start" | "right-center" | "right-end" | undefined;
|
|
75
|
+
} & {
|
|
76
|
+
className?: string;
|
|
77
|
+
}) | undefined) => string;
|
|
78
|
+
declare const voicePillAvatarWrapStyles = "relative flex h-10 w-10 shrink-0 items-center justify-center";
|
|
79
|
+
declare const voicePillPulseRingStyles = "pointer-events-none absolute inset-0 rounded-full border border-[var(--rfr-voice-pill-accent)] opacity-[var(--rfr-voice-pill-ring-opacity)] motion-safe:animate-ping motion-reduce:animate-none";
|
|
80
|
+
declare const voicePillAvatarStyles = "relative z-10 flex h-10 w-10 items-center justify-center overflow-hidden rounded-full bg-[var(--rfr-voice-pill-accent)] text-[var(--rfr-voice-pill-accent-foreground)] text-xs font-semibold uppercase";
|
|
81
|
+
declare const voicePillTextStyles = "min-w-0 flex-1";
|
|
82
|
+
declare const voicePillLabelStyles = "block truncate text-sm font-medium leading-tight";
|
|
83
|
+
declare const voicePillSubStyles = "block truncate text-xs leading-tight text-muted-foreground";
|
|
84
|
+
declare const voicePillMuteButtonStyles = "inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring";
|
|
85
|
+
|
|
86
|
+
export { DEFAULT_VOICE_PILL_POSITION, DEFAULT_VOICE_PILL_SPEAKER, type VoicePillAPI, type VoicePillPosition, type VoicePillProps, type VoicePillSpeaker, type VoicePillStyleVars, clampVoicePillIntensity, createVoicePill, getVoicePillAriaLabel, getVoicePillInitials, getVoicePillPosition, getVoicePillPulseStyle, getVoicePillSpeakerKey, getVoicePillSpeakerLabel, voicePillAvatarStyles, voicePillAvatarWrapStyles, voicePillLabelStyles, voicePillMuteButtonStyles, voicePillPositionVariants, voicePillPulseRingStyles, voicePillRootStyles, voicePillSpeakerStyles, voicePillSubStyles, voicePillTextStyles, voicePillTokens };
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { AccessibilityProps, TokenContract } from '../shared/index.js';
|
|
2
|
+
|
|
3
|
+
type VoicePillSpeaker = 'ai' | 'user' | (string & {});
|
|
4
|
+
type VoicePillPosition = 'inline' | 'top-start' | 'top-center' | 'top-end' | 'bottom-start' | 'bottom-center' | 'bottom-end' | 'left-start' | 'left-center' | 'left-end' | 'right-start' | 'right-center' | 'right-end';
|
|
5
|
+
interface VoicePillProps {
|
|
6
|
+
/** Speaker identity used for labels and data-speaker theming */
|
|
7
|
+
speaker?: VoicePillSpeaker;
|
|
8
|
+
/** Primary voice status text */
|
|
9
|
+
label: string;
|
|
10
|
+
/** Optional secondary status text */
|
|
11
|
+
sub?: string;
|
|
12
|
+
/** Voice activity intensity, clamped from 0 to 1 */
|
|
13
|
+
intensity?: number;
|
|
14
|
+
/** Whether voice output/input is muted */
|
|
15
|
+
muted?: boolean;
|
|
16
|
+
/** Callback for the optional mute toggle */
|
|
17
|
+
onToggleMute?: () => void;
|
|
18
|
+
/** Viewport position, or inline for embedding inside another layout */
|
|
19
|
+
position?: VoicePillPosition;
|
|
20
|
+
}
|
|
21
|
+
interface VoicePillStyleVars {
|
|
22
|
+
[key: `--${string}`]: string;
|
|
23
|
+
}
|
|
24
|
+
interface VoicePillAPI {
|
|
25
|
+
/** Display speaker label */
|
|
26
|
+
speaker: string;
|
|
27
|
+
/** Normalized key for data-speaker */
|
|
28
|
+
speakerKey: string;
|
|
29
|
+
/** Primary label */
|
|
30
|
+
label: string;
|
|
31
|
+
/** Secondary label */
|
|
32
|
+
sub?: string;
|
|
33
|
+
/** Clamped raw intensity */
|
|
34
|
+
intensity: number;
|
|
35
|
+
/** Intensity used for visual animation after muted state is applied */
|
|
36
|
+
visualIntensity: number;
|
|
37
|
+
/** Muted state */
|
|
38
|
+
muted: boolean;
|
|
39
|
+
/** Viewport position, or inline for embedding inside another layout */
|
|
40
|
+
position: VoicePillPosition;
|
|
41
|
+
/** Fallback initials for the speaker avatar */
|
|
42
|
+
initials: string;
|
|
43
|
+
/** Invoke the mute callback when provided */
|
|
44
|
+
toggleMute(): void;
|
|
45
|
+
/** ARIA props for the live status pill */
|
|
46
|
+
ariaProps: Partial<AccessibilityProps> & Record<string, unknown>;
|
|
47
|
+
/** ARIA props for the mute toggle */
|
|
48
|
+
toggleMuteAriaProps: Record<string, unknown>;
|
|
49
|
+
/** Data attributes reflecting speaker/state */
|
|
50
|
+
dataAttributes: Record<string, string>;
|
|
51
|
+
/** CSS custom properties that drive pulse visuals */
|
|
52
|
+
style: VoicePillStyleVars;
|
|
53
|
+
}
|
|
54
|
+
declare const DEFAULT_VOICE_PILL_SPEAKER = "ai";
|
|
55
|
+
declare const DEFAULT_VOICE_PILL_POSITION: VoicePillPosition;
|
|
56
|
+
declare function clampVoicePillIntensity(intensity?: number): number;
|
|
57
|
+
declare function getVoicePillSpeakerKey(speaker?: VoicePillSpeaker): string;
|
|
58
|
+
declare function getVoicePillSpeakerLabel(speaker?: VoicePillSpeaker): string;
|
|
59
|
+
declare function getVoicePillInitials(speaker?: VoicePillSpeaker): string;
|
|
60
|
+
declare function getVoicePillPosition(position?: VoicePillPosition): VoicePillPosition;
|
|
61
|
+
declare function getVoicePillAriaLabel(props: {
|
|
62
|
+
speaker?: VoicePillSpeaker;
|
|
63
|
+
label: string;
|
|
64
|
+
sub?: string;
|
|
65
|
+
muted?: boolean;
|
|
66
|
+
}): string;
|
|
67
|
+
declare function getVoicePillPulseStyle(intensity?: number, muted?: boolean): VoicePillStyleVars;
|
|
68
|
+
declare function createVoicePill(props: VoicePillProps): VoicePillAPI;
|
|
69
|
+
|
|
70
|
+
declare const voicePillTokens: TokenContract;
|
|
71
|
+
declare const voicePillRootStyles = "inline-flex min-w-0 max-w-[min(calc(100vw-2rem),22rem)] items-center gap-3 rounded-full border border-border bg-background px-3 py-2 text-foreground shadow-lg ring-1 ring-border/50 transition-opacity data-[muted=true]:opacity-80";
|
|
72
|
+
declare const voicePillSpeakerStyles = "[--rfr-voice-pill-accent:hsl(var(--primary))] [--rfr-voice-pill-accent-foreground:hsl(var(--primary-foreground))] data-[speaker=user]:[--rfr-voice-pill-accent:hsl(var(--accent-foreground))] data-[speaker=user]:[--rfr-voice-pill-accent-foreground:hsl(var(--accent))] data-[muted=true]:[--rfr-voice-pill-accent:hsl(var(--muted-foreground))]";
|
|
73
|
+
declare const voicePillPositionVariants: (props?: ({
|
|
74
|
+
position?: "inline" | "top-start" | "top-center" | "top-end" | "bottom-start" | "bottom-center" | "bottom-end" | "left-start" | "left-center" | "left-end" | "right-start" | "right-center" | "right-end" | undefined;
|
|
75
|
+
} & {
|
|
76
|
+
className?: string;
|
|
77
|
+
}) | undefined) => string;
|
|
78
|
+
declare const voicePillAvatarWrapStyles = "relative flex h-10 w-10 shrink-0 items-center justify-center";
|
|
79
|
+
declare const voicePillPulseRingStyles = "pointer-events-none absolute inset-0 rounded-full border border-[var(--rfr-voice-pill-accent)] opacity-[var(--rfr-voice-pill-ring-opacity)] motion-safe:animate-ping motion-reduce:animate-none";
|
|
80
|
+
declare const voicePillAvatarStyles = "relative z-10 flex h-10 w-10 items-center justify-center overflow-hidden rounded-full bg-[var(--rfr-voice-pill-accent)] text-[var(--rfr-voice-pill-accent-foreground)] text-xs font-semibold uppercase";
|
|
81
|
+
declare const voicePillTextStyles = "min-w-0 flex-1";
|
|
82
|
+
declare const voicePillLabelStyles = "block truncate text-sm font-medium leading-tight";
|
|
83
|
+
declare const voicePillSubStyles = "block truncate text-xs leading-tight text-muted-foreground";
|
|
84
|
+
declare const voicePillMuteButtonStyles = "inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-border text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring";
|
|
85
|
+
|
|
86
|
+
export { DEFAULT_VOICE_PILL_POSITION, DEFAULT_VOICE_PILL_SPEAKER, type VoicePillAPI, type VoicePillPosition, type VoicePillProps, type VoicePillSpeaker, type VoicePillStyleVars, clampVoicePillIntensity, createVoicePill, getVoicePillAriaLabel, getVoicePillInitials, getVoicePillPosition, getVoicePillPulseStyle, getVoicePillSpeakerKey, getVoicePillSpeakerLabel, voicePillAvatarStyles, voicePillAvatarWrapStyles, voicePillLabelStyles, voicePillMuteButtonStyles, voicePillPositionVariants, voicePillPulseRingStyles, voicePillRootStyles, voicePillSpeakerStyles, voicePillSubStyles, voicePillTextStyles, voicePillTokens };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { AccessibilityProps } from '../shared/index.cjs';
|
|
2
|
+
|
|
3
|
+
type WaveformVariant = 'bars' | 'line' | 'rings';
|
|
4
|
+
type WaveformSampleInput = Float32Array | number[];
|
|
5
|
+
type WaveformSource = AnalyserNode | MediaStream | WaveformSampleInput;
|
|
6
|
+
interface WaveformProps {
|
|
7
|
+
source?: WaveformSource;
|
|
8
|
+
samples?: WaveformSampleInput;
|
|
9
|
+
intensity?: number;
|
|
10
|
+
amplitude?: number;
|
|
11
|
+
variant?: WaveformVariant;
|
|
12
|
+
height?: number | string;
|
|
13
|
+
width?: number | string;
|
|
14
|
+
barCount?: number;
|
|
15
|
+
smoothing?: number;
|
|
16
|
+
color?: string;
|
|
17
|
+
paused?: boolean;
|
|
18
|
+
}
|
|
19
|
+
interface NormalizedWaveformConfig {
|
|
20
|
+
variant: WaveformVariant;
|
|
21
|
+
intensity: number;
|
|
22
|
+
amplitude: number;
|
|
23
|
+
height: number | string;
|
|
24
|
+
width: number | string;
|
|
25
|
+
barCount: number;
|
|
26
|
+
smoothing: number;
|
|
27
|
+
color: string;
|
|
28
|
+
paused: boolean;
|
|
29
|
+
}
|
|
30
|
+
interface WaveformAPI {
|
|
31
|
+
config: NormalizedWaveformConfig;
|
|
32
|
+
samples: Float32Array;
|
|
33
|
+
ariaProps: Partial<AccessibilityProps>;
|
|
34
|
+
dataAttributes: Record<'data-variant' | 'data-paused', string>;
|
|
35
|
+
getSamples: (barCount?: number) => Float32Array;
|
|
36
|
+
}
|
|
37
|
+
declare const DEFAULT_WAVEFORM_BAR_COUNT = 48;
|
|
38
|
+
declare const DEFAULT_WAVEFORM_COLOR = "var(--accent-2)";
|
|
39
|
+
declare const DEFAULT_WAVEFORM_HEIGHT = 80;
|
|
40
|
+
declare const DEFAULT_WAVEFORM_INTENSITY = 1;
|
|
41
|
+
declare const DEFAULT_WAVEFORM_SMOOTHING = 0.8;
|
|
42
|
+
declare function normalizeBarCount(value: number | undefined): number;
|
|
43
|
+
declare function normalizeSmoothing(value: number | undefined): number;
|
|
44
|
+
declare function normalizeIntensity(value: number | undefined): number;
|
|
45
|
+
declare function normalizeWaveformConfig(props?: WaveformProps): NormalizedWaveformConfig;
|
|
46
|
+
declare function isWaveformSampleInput(value: unknown): value is WaveformSampleInput;
|
|
47
|
+
declare function createSilentSamples(count?: number): Float32Array;
|
|
48
|
+
declare function createIntensitySamples(intensity?: number, count?: number, phase?: number): Float32Array;
|
|
49
|
+
declare function normalizeWaveformSamples(input: WaveformSampleInput | undefined, targetCount?: number): Float32Array;
|
|
50
|
+
declare function resampleWaveformSamples(samples: WaveformSampleInput, targetCount: number): Float32Array;
|
|
51
|
+
declare function smoothWaveformSamples(previous: WaveformSampleInput | undefined, next: WaveformSampleInput, smoothing?: number): Float32Array;
|
|
52
|
+
declare function scaleWaveformSamples(samples: WaveformSampleInput, intensity?: number): Float32Array;
|
|
53
|
+
declare function getWaveformPeak(samples: WaveformSampleInput): number;
|
|
54
|
+
declare function toCssDimension(value: number | string | undefined): string | undefined;
|
|
55
|
+
declare function createWaveform(props?: WaveformProps): WaveformAPI;
|
|
56
|
+
|
|
57
|
+
interface WaveformCanvasSize {
|
|
58
|
+
width: number;
|
|
59
|
+
height: number;
|
|
60
|
+
pixelRatio?: number;
|
|
61
|
+
}
|
|
62
|
+
interface WaveformRenderOptions {
|
|
63
|
+
variant?: WaveformVariant;
|
|
64
|
+
color?: string;
|
|
65
|
+
intensity?: number;
|
|
66
|
+
amplitude?: number;
|
|
67
|
+
barCount?: number;
|
|
68
|
+
}
|
|
69
|
+
declare function prepareWaveformCanvas(canvas: HTMLCanvasElement, size: WaveformCanvasSize): CanvasRenderingContext2D | null;
|
|
70
|
+
declare function drawWaveform(context: CanvasRenderingContext2D, samples: WaveformSampleInput, size: WaveformCanvasSize, options?: WaveformRenderOptions): void;
|
|
71
|
+
|
|
72
|
+
declare const waveformVariants: (props?: ({
|
|
73
|
+
variant?: "bars" | "line" | "rings" | undefined;
|
|
74
|
+
} & {
|
|
75
|
+
className?: string;
|
|
76
|
+
}) | undefined) => string;
|
|
77
|
+
declare const waveformCanvasVariants: (props?: ({
|
|
78
|
+
[x: string]: string | undefined;
|
|
79
|
+
} & {
|
|
80
|
+
className?: string;
|
|
81
|
+
}) | undefined) => string;
|
|
82
|
+
|
|
83
|
+
export { DEFAULT_WAVEFORM_BAR_COUNT, DEFAULT_WAVEFORM_COLOR, DEFAULT_WAVEFORM_HEIGHT, DEFAULT_WAVEFORM_INTENSITY, DEFAULT_WAVEFORM_SMOOTHING, type NormalizedWaveformConfig, type WaveformAPI, type WaveformCanvasSize, type WaveformProps, type WaveformRenderOptions, type WaveformSampleInput, type WaveformSource, type WaveformVariant, createIntensitySamples, createSilentSamples, createWaveform, drawWaveform, getWaveformPeak, isWaveformSampleInput, normalizeBarCount, normalizeIntensity, normalizeSmoothing, normalizeWaveformConfig, normalizeWaveformSamples, prepareWaveformCanvas, resampleWaveformSamples, scaleWaveformSamples, smoothWaveformSamples, toCssDimension, waveformCanvasVariants, waveformVariants };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { AccessibilityProps } from '../shared/index.js';
|
|
2
|
+
|
|
3
|
+
type WaveformVariant = 'bars' | 'line' | 'rings';
|
|
4
|
+
type WaveformSampleInput = Float32Array | number[];
|
|
5
|
+
type WaveformSource = AnalyserNode | MediaStream | WaveformSampleInput;
|
|
6
|
+
interface WaveformProps {
|
|
7
|
+
source?: WaveformSource;
|
|
8
|
+
samples?: WaveformSampleInput;
|
|
9
|
+
intensity?: number;
|
|
10
|
+
amplitude?: number;
|
|
11
|
+
variant?: WaveformVariant;
|
|
12
|
+
height?: number | string;
|
|
13
|
+
width?: number | string;
|
|
14
|
+
barCount?: number;
|
|
15
|
+
smoothing?: number;
|
|
16
|
+
color?: string;
|
|
17
|
+
paused?: boolean;
|
|
18
|
+
}
|
|
19
|
+
interface NormalizedWaveformConfig {
|
|
20
|
+
variant: WaveformVariant;
|
|
21
|
+
intensity: number;
|
|
22
|
+
amplitude: number;
|
|
23
|
+
height: number | string;
|
|
24
|
+
width: number | string;
|
|
25
|
+
barCount: number;
|
|
26
|
+
smoothing: number;
|
|
27
|
+
color: string;
|
|
28
|
+
paused: boolean;
|
|
29
|
+
}
|
|
30
|
+
interface WaveformAPI {
|
|
31
|
+
config: NormalizedWaveformConfig;
|
|
32
|
+
samples: Float32Array;
|
|
33
|
+
ariaProps: Partial<AccessibilityProps>;
|
|
34
|
+
dataAttributes: Record<'data-variant' | 'data-paused', string>;
|
|
35
|
+
getSamples: (barCount?: number) => Float32Array;
|
|
36
|
+
}
|
|
37
|
+
declare const DEFAULT_WAVEFORM_BAR_COUNT = 48;
|
|
38
|
+
declare const DEFAULT_WAVEFORM_COLOR = "var(--accent-2)";
|
|
39
|
+
declare const DEFAULT_WAVEFORM_HEIGHT = 80;
|
|
40
|
+
declare const DEFAULT_WAVEFORM_INTENSITY = 1;
|
|
41
|
+
declare const DEFAULT_WAVEFORM_SMOOTHING = 0.8;
|
|
42
|
+
declare function normalizeBarCount(value: number | undefined): number;
|
|
43
|
+
declare function normalizeSmoothing(value: number | undefined): number;
|
|
44
|
+
declare function normalizeIntensity(value: number | undefined): number;
|
|
45
|
+
declare function normalizeWaveformConfig(props?: WaveformProps): NormalizedWaveformConfig;
|
|
46
|
+
declare function isWaveformSampleInput(value: unknown): value is WaveformSampleInput;
|
|
47
|
+
declare function createSilentSamples(count?: number): Float32Array;
|
|
48
|
+
declare function createIntensitySamples(intensity?: number, count?: number, phase?: number): Float32Array;
|
|
49
|
+
declare function normalizeWaveformSamples(input: WaveformSampleInput | undefined, targetCount?: number): Float32Array;
|
|
50
|
+
declare function resampleWaveformSamples(samples: WaveformSampleInput, targetCount: number): Float32Array;
|
|
51
|
+
declare function smoothWaveformSamples(previous: WaveformSampleInput | undefined, next: WaveformSampleInput, smoothing?: number): Float32Array;
|
|
52
|
+
declare function scaleWaveformSamples(samples: WaveformSampleInput, intensity?: number): Float32Array;
|
|
53
|
+
declare function getWaveformPeak(samples: WaveformSampleInput): number;
|
|
54
|
+
declare function toCssDimension(value: number | string | undefined): string | undefined;
|
|
55
|
+
declare function createWaveform(props?: WaveformProps): WaveformAPI;
|
|
56
|
+
|
|
57
|
+
interface WaveformCanvasSize {
|
|
58
|
+
width: number;
|
|
59
|
+
height: number;
|
|
60
|
+
pixelRatio?: number;
|
|
61
|
+
}
|
|
62
|
+
interface WaveformRenderOptions {
|
|
63
|
+
variant?: WaveformVariant;
|
|
64
|
+
color?: string;
|
|
65
|
+
intensity?: number;
|
|
66
|
+
amplitude?: number;
|
|
67
|
+
barCount?: number;
|
|
68
|
+
}
|
|
69
|
+
declare function prepareWaveformCanvas(canvas: HTMLCanvasElement, size: WaveformCanvasSize): CanvasRenderingContext2D | null;
|
|
70
|
+
declare function drawWaveform(context: CanvasRenderingContext2D, samples: WaveformSampleInput, size: WaveformCanvasSize, options?: WaveformRenderOptions): void;
|
|
71
|
+
|
|
72
|
+
declare const waveformVariants: (props?: ({
|
|
73
|
+
variant?: "bars" | "line" | "rings" | undefined;
|
|
74
|
+
} & {
|
|
75
|
+
className?: string;
|
|
76
|
+
}) | undefined) => string;
|
|
77
|
+
declare const waveformCanvasVariants: (props?: ({
|
|
78
|
+
[x: string]: string | undefined;
|
|
79
|
+
} & {
|
|
80
|
+
className?: string;
|
|
81
|
+
}) | undefined) => string;
|
|
82
|
+
|
|
83
|
+
export { DEFAULT_WAVEFORM_BAR_COUNT, DEFAULT_WAVEFORM_COLOR, DEFAULT_WAVEFORM_HEIGHT, DEFAULT_WAVEFORM_INTENSITY, DEFAULT_WAVEFORM_SMOOTHING, type NormalizedWaveformConfig, type WaveformAPI, type WaveformCanvasSize, type WaveformProps, type WaveformRenderOptions, type WaveformSampleInput, type WaveformSource, type WaveformVariant, createIntensitySamples, createSilentSamples, createWaveform, drawWaveform, getWaveformPeak, isWaveformSampleInput, normalizeBarCount, normalizeIntensity, normalizeSmoothing, normalizeWaveformConfig, normalizeWaveformSamples, prepareWaveformCanvas, resampleWaveformSamples, scaleWaveformSamples, smoothWaveformSamples, toCssDimension, waveformCanvasVariants, waveformVariants };
|
package/dist/theme.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from '
|
|
1
|
+
export * from './internal/react-theme/index.cjs';
|
package/dist/theme.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from '
|
|
1
|
+
export * from './internal/react-theme/index.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refraction-ui/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "All Refraction UI React components in one package — headless, accessible, zero-dependency",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,13 +17,18 @@
|
|
|
17
17
|
"import": "./dist/theme.js",
|
|
18
18
|
"require": "./dist/theme.cjs"
|
|
19
19
|
},
|
|
20
|
+
"./form": {
|
|
21
|
+
"types": "./dist/form.d.ts",
|
|
22
|
+
"import": "./dist/form.js",
|
|
23
|
+
"require": "./dist/form.cjs"
|
|
24
|
+
},
|
|
20
25
|
"./styles.css": "./dist/styles.css"
|
|
21
26
|
},
|
|
22
27
|
"files": [
|
|
23
28
|
"dist"
|
|
24
29
|
],
|
|
25
30
|
"scripts": {
|
|
26
|
-
"build": "tsup",
|
|
31
|
+
"build": "tsup && cp src/styles.css dist/styles.css && node ./scripts/embed-internal-types.mjs",
|
|
27
32
|
"dev": "tsup --watch",
|
|
28
33
|
"test": "vitest run --passWithNoTests",
|
|
29
34
|
"test:watch": "vitest",
|
|
@@ -33,15 +38,11 @@
|
|
|
33
38
|
"clean": "rm -rf dist"
|
|
34
39
|
},
|
|
35
40
|
"peerDependencies": {
|
|
36
|
-
"@monaco-editor/react": ">=4",
|
|
37
41
|
"react": ">=18",
|
|
38
42
|
"react-dom": ">=18",
|
|
39
43
|
"react-hook-form": ">=7.43.0"
|
|
40
44
|
},
|
|
41
45
|
"peerDependenciesMeta": {
|
|
42
|
-
"@monaco-editor/react": {
|
|
43
|
-
"optional": true
|
|
44
|
-
},
|
|
45
46
|
"react-hook-form": {
|
|
46
47
|
"optional": true
|
|
47
48
|
}
|