@arbidocs/react 0.3.174 → 0.3.176
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-7IOCMCC5.cjs +99 -0
- package/dist/chunk-7IOCMCC5.cjs.map +1 -0
- package/dist/{chunk-ZYHVJM4V.cjs → chunk-FIPS3VPH.cjs} +15 -9
- package/dist/chunk-FIPS3VPH.cjs.map +1 -0
- package/dist/{chunk-QZAXTBVW.js → chunk-I256BUCX.js} +15 -10
- package/dist/chunk-I256BUCX.js.map +1 -0
- package/dist/chunk-JKO3NR5L.js +93 -0
- package/dist/chunk-JKO3NR5L.js.map +1 -0
- package/dist/index.cjs +686 -331
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +135 -1
- package/dist/index.d.ts +135 -1
- package/dist/index.js +357 -7
- package/dist/index.js.map +1 -1
- package/dist/ui/index.cjs +109 -109
- package/dist/ui/index.js +1 -1
- package/dist/viewers/index.cjs +14 -58
- package/dist/viewers/index.cjs.map +1 -1
- package/dist/viewers/index.js +3 -53
- package/dist/viewers/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/chunk-Q6XAXIT3.js +0 -43
- package/dist/chunk-Q6XAXIT3.js.map +0 -1
- package/dist/chunk-QZAXTBVW.js.map +0 -1
- package/dist/chunk-RWCMW36I.cjs +0 -47
- package/dist/chunk-RWCMW36I.cjs.map +0 -1
- package/dist/chunk-ZYHVJM4V.cjs.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -3164,6 +3164,140 @@ declare function InlineMicButton({ focused, onTranscript, onError, transcribe, c
|
|
|
3164
3164
|
/** Formats a duration in milliseconds as "mm:ss", clamped to non-negative. */
|
|
3165
3165
|
declare function formatElapsed(ms: number): string;
|
|
3166
3166
|
|
|
3167
|
+
/**
|
|
3168
|
+
* useCameraStream
|
|
3169
|
+
*
|
|
3170
|
+
* Shared camera-acquisition engine for photo and video capture — requests
|
|
3171
|
+
* `getUserMedia`, hands back the live `MediaStream` for a host to bind to a
|
|
3172
|
+
* `<video>` element, and tears the tracks down on stop()/unmount. Mirrors
|
|
3173
|
+
* `useAudioRecorder`'s permission/error handling (same DOMException
|
|
3174
|
+
* classification, via `classifyMediaError`) but stays a separate hook rather
|
|
3175
|
+
* than folding into it: audio's state machine centers on an AnalyserNode
|
|
3176
|
+
* level meter with no visual preview, while camera capture centers on a live
|
|
3177
|
+
* video preview with no metering — sharing "here is a device stream and an
|
|
3178
|
+
* error string" is the useful overlap, not the recording state machine
|
|
3179
|
+
* itself. `useVideoRecorder` layers MediaRecorder on top of the stream this
|
|
3180
|
+
* returns; photo capture reads a frame off it directly (see capture-frame.ts).
|
|
3181
|
+
*
|
|
3182
|
+
* REUSE-FIRST: no app coupling, failures surface via `error` rather than a
|
|
3183
|
+
* toast call — same contract as useAudioRecorder.
|
|
3184
|
+
*/
|
|
3185
|
+
interface UseCameraStreamResult {
|
|
3186
|
+
/** The live camera stream, or null before start()/after stop(). */
|
|
3187
|
+
stream: MediaStream | null;
|
|
3188
|
+
/** True while the getUserMedia() prompt/negotiation is in flight. */
|
|
3189
|
+
isStarting: boolean;
|
|
3190
|
+
/** A human-readable message from the last failed start() attempt. */
|
|
3191
|
+
error: string | null;
|
|
3192
|
+
start: () => Promise<void>;
|
|
3193
|
+
/** Stops all tracks and clears the stream. Safe to call repeatedly. */
|
|
3194
|
+
stop: () => void;
|
|
3195
|
+
}
|
|
3196
|
+
/**
|
|
3197
|
+
* @param constraints The `video`/`audio` constraints passed to getUserMedia.
|
|
3198
|
+
* Defaults to video-only (photo capture never needs a mic); video capture
|
|
3199
|
+
* passes `{ video: true, audio: true }` to record sound with the picture.
|
|
3200
|
+
*/
|
|
3201
|
+
declare function useCameraStream(constraints?: MediaStreamConstraints): UseCameraStreamResult;
|
|
3202
|
+
|
|
3203
|
+
/**
|
|
3204
|
+
* useVideoRecorder
|
|
3205
|
+
*
|
|
3206
|
+
* MediaRecorder lifecycle for video capture, layered on top of an
|
|
3207
|
+
* already-live camera `MediaStream` (see useCameraStream — this hook does
|
|
3208
|
+
* NOT call getUserMedia itself, so the same stream stays open across a
|
|
3209
|
+
* stop()/reset() "record again" without re-prompting for permission).
|
|
3210
|
+
*
|
|
3211
|
+
* Deliberately simpler than useAudioRecorder: no pause/resume (tap-to-start,
|
|
3212
|
+
* tap-to-stop is the whole interaction — see MediaCaptureRecorder) and no
|
|
3213
|
+
* level meter (there's a live video preview instead; a bar-graph loudness
|
|
3214
|
+
* meter would be redundant chrome on top of it).
|
|
3215
|
+
*/
|
|
3216
|
+
type VideoRecorderState = 'idle' | 'recording' | 'stopped';
|
|
3217
|
+
interface UseVideoRecorderResult {
|
|
3218
|
+
state: VideoRecorderState;
|
|
3219
|
+
/** Recorded duration so far (ms). Frozen at its final value once stopped. */
|
|
3220
|
+
elapsedMs: number;
|
|
3221
|
+
/** The finished recording. Only set once state === 'stopped'. */
|
|
3222
|
+
blob: Blob | null;
|
|
3223
|
+
/** The MediaRecorder MIME type used (e.g. 'video/webm'). */
|
|
3224
|
+
mimeType: string | null;
|
|
3225
|
+
start: () => void;
|
|
3226
|
+
stop: () => void;
|
|
3227
|
+
/** Back to idle: clears blob/elapsedMs, ready to record again on the same stream. */
|
|
3228
|
+
reset: () => void;
|
|
3229
|
+
}
|
|
3230
|
+
/** @param stream The live camera stream to record — null while the camera
|
|
3231
|
+
* hasn't started yet; start() is a no-op until it's set. */
|
|
3232
|
+
declare function useVideoRecorder(stream: MediaStream | null): UseVideoRecorderResult;
|
|
3233
|
+
|
|
3234
|
+
/**
|
|
3235
|
+
* Captures the current frame of a live `<video>` element (bound to a camera
|
|
3236
|
+
* `MediaStream`, e.g. via useCameraStream) as an image Blob — the shutter
|
|
3237
|
+
* action for photo capture. Draws to an off-screen canvas rather than reading
|
|
3238
|
+
* pixels any other way, since `HTMLCanvasElement.toBlob` is the one
|
|
3239
|
+
* cross-browser path from "a decoded video frame" to "an encoded image file".
|
|
3240
|
+
*/
|
|
3241
|
+
declare function captureFrameAsBlob(video: HTMLVideoElement, mimeType?: string): Promise<Blob>;
|
|
3242
|
+
|
|
3243
|
+
/**
|
|
3244
|
+
* PhotoCapture
|
|
3245
|
+
*
|
|
3246
|
+
* Camera capture UI: live preview → shutter → review (retake or save).
|
|
3247
|
+
* Shares its shape (onSave/onDiscard/onError/isSaving) with VoiceNoteRecorder
|
|
3248
|
+
* so a host app wires them identically — see MediaCaptureRecorder.tsx (the
|
|
3249
|
+
* ARBI-frontend wrapper) for how the three capture modes plug into the same
|
|
3250
|
+
* draft/save contract.
|
|
3251
|
+
*
|
|
3252
|
+
* REUSE-FIRST: no app coupling. This component owns only the capture UI and
|
|
3253
|
+
* in-memory blob, never persistence — nothing is uploaded until the host's
|
|
3254
|
+
* `onSave` is called.
|
|
3255
|
+
*/
|
|
3256
|
+
interface PhotoCaptureProps {
|
|
3257
|
+
/** Called with the captured photo when the user hits Save. Resolve to let
|
|
3258
|
+
* the host close/replace this capture UI; shows a saving spinner while
|
|
3259
|
+
* the promise is pending. */
|
|
3260
|
+
onSave: (blob: Blob, mimeType: string | null) => Promise<void> | void;
|
|
3261
|
+
/** Called when the user discards the draft. */
|
|
3262
|
+
onDiscard: () => void;
|
|
3263
|
+
/** Surfaces camera failures (e.g. denied permission) — wire this to the
|
|
3264
|
+
* host's own notification system. Without it, failures are silent. */
|
|
3265
|
+
onError?: (message: string) => void;
|
|
3266
|
+
isSaving?: boolean;
|
|
3267
|
+
}
|
|
3268
|
+
declare function PhotoCapture({ onSave, onDiscard, onError, isSaving }: PhotoCaptureProps): React$1.JSX.Element;
|
|
3269
|
+
|
|
3270
|
+
/**
|
|
3271
|
+
* VideoCapture
|
|
3272
|
+
*
|
|
3273
|
+
* Camera capture UI: live preview → tap to record / tap to stop → review
|
|
3274
|
+
* (playback, retake, or save). Shares its shape (onSave/onDiscard/onError/
|
|
3275
|
+
* isSaving) with VoiceNoteRecorder and PhotoCapture — see
|
|
3276
|
+
* MediaCaptureRecorder.tsx (the ARBI-frontend wrapper) for how the three
|
|
3277
|
+
* capture modes plug into the same draft/save contract.
|
|
3278
|
+
*
|
|
3279
|
+
* Deliberately a simple tap-to-start/tap-to-stop toggle rather than a
|
|
3280
|
+
* press-and-hold gesture — matches VoiceNoteRecorder's toggle interaction
|
|
3281
|
+
* and needs no extra gesture handling for a first cut of camera video.
|
|
3282
|
+
*
|
|
3283
|
+
* REUSE-FIRST: no app coupling. This component owns only the capture UI and
|
|
3284
|
+
* in-memory blob, never persistence — nothing is uploaded until the host's
|
|
3285
|
+
* `onSave` is called.
|
|
3286
|
+
*/
|
|
3287
|
+
interface VideoCaptureProps {
|
|
3288
|
+
/** Called with the recorded clip when the user hits Save. Resolve to let
|
|
3289
|
+
* the host close/replace this capture UI; shows a saving spinner while
|
|
3290
|
+
* the promise is pending. */
|
|
3291
|
+
onSave: (blob: Blob, mimeType: string | null) => Promise<void> | void;
|
|
3292
|
+
/** Called when the user discards the draft. */
|
|
3293
|
+
onDiscard: () => void;
|
|
3294
|
+
/** Surfaces camera failures (e.g. denied permission) — wire this to the
|
|
3295
|
+
* host's own notification system. Without it, failures are silent. */
|
|
3296
|
+
onError?: (message: string) => void;
|
|
3297
|
+
isSaving?: boolean;
|
|
3298
|
+
}
|
|
3299
|
+
declare function VideoCapture({ onSave, onDiscard, onError, isSaving }: VideoCaptureProps): React$1.JSX.Element;
|
|
3300
|
+
|
|
3167
3301
|
/**
|
|
3168
3302
|
* Content-based audio-vs-video detection for containers that don't tell you
|
|
3169
3303
|
* from the extension alone. WebM in particular can hold audio-only, video-only,
|
|
@@ -3196,4 +3330,4 @@ interface ArbiUiState {
|
|
|
3196
3330
|
}
|
|
3197
3331
|
declare const useArbiUiStore: zustand.UseBoundStore<zustand.StoreApi<ArbiUiState>>;
|
|
3198
3332
|
|
|
3199
|
-
export { type ActivityContent, type ActivityDescription, ActivityFeed, type ActivityFeedProps, AgentBadge, type AggregatedDailyUsage, type AggregatedModelGroupUsage, AiActionCard, AiAnswer, type AiRunOptions, type AiTaskStatus, type AppNotification, AppleIcon, ArbiBotHeadIcon, ArbiBotIcon, ArbiChat, type ArbiChatLabels, ArbiChatPanel, type ArbiChatPanelProps, type ArbiChatProps, type ArbiChatTheme, ArbiIcon, ArbiProvider, type ArbiProviderProps, type ArbiUiState, ArbiWebSocketProvider, type ArbiWebSocketProviderProps, type ArbiWsState, type ArbiWsStatus, ArtifactCanvas, type AspectOption, AudIcon, type AudioRecorderState, BASE_COLORS, ChatBubble, type ChatBubbleProps, type Chunk, type ChunkActivation, CitationRenderer, type CitationRendererProps, type CitationState, ClaudeIcon, CommandPalette, type CommandPaletteClassNames, type CommandPaletteProps, CommandPaletteProvider, type CommandPaletteProviderProps, type CommandPaletteValue, ConversationList, type ConversationListProps, type CropArea, type CropOutput, type CropResult, DEFAULT_ASPECT_OPTIONS, DEFAULT_NOTIFY_TONE, DateSeparator, type DateSeparatorProps, DirectMessages, type DirectMessagesProps, DmAvatar, type DmAvatarProps, type DmClassNames, DmComposer, type DmComposerProps, type DmConversation, type DmMessage, type DmNotification, type DmUser, DocIcon, DocQaPanel, DocSearch, DocumentCard, DocumentCardMenu, type DocumentCardMenuProps, type DocumentCardProps, DocumentEntity, type DocumentEntityProps, DocumentGallery, type DocumentGalleryProps, type DocumentLike, DocumentReview, type DocumentReviewProps, DocumentTable, type DocumentTableProps, DraftTitleControls, type DraftTitleControlsProps, ENTITY_MAPPINGS, EmlIcon, EntityIcon, type EntityIconComponent, EntityPill, type EntityRegistryOverride, type EntityType, FILE_TYPE_COLORS, FileIcon, FireworksIcon, GeminiIcon, GitHubIcon, GoogleIcon, HtmlIcon, ImageCropModal, type ImageCropModalProps, ImageCropper, type ImageCropperProps, ImgIcon, InlineMicButton, type InlineMicButtonProps, LinkedInIcon, type MessageArtifact, MessageArtifactCard, MessageBubble, type MessageBubbleProps, MessageThread, type MessageThreadProps, MicRecordingOverlay, type MicRecordingOverlayProps, MicWaveformIndicator, type MicWaveformIndicatorProps, NEUTRAL_GRAY, NotificationBell, type NotificationBellProps, type NotificationTypeMeta, type NotifyOptions, type NotifyVariant, OpenAIIcon, PLACEHOLDER_COLOR, type PaletteNavItem, type ParsedChunk, type ParsedChunkMetadata, type ParsedDocument, type ParsedDocumentMetadata, PassageCard, type PassageCardProps, PdfIcon, type PresenceDisplayStatus, PresenceLabel, ProjectEntity, type ProjectEntityProps, type ProjectRelation, type ProjectsUsageAggregate, ProviderIcon, RUN_WINDOW_MS, type Rag, RagDot, RelevanceDot, type RenderMarkdown, type SearchChunk, SemanticSearch, type SemanticSearchProps, type StatusBadgeComponent, type StatusBadgeProps, StatusPill, type StatusPillProps, type StatusVariant, TAG_TYPE_ICONS, TAG_TYPE_LABELS, TagEntity, type TagEntityProps, type TagLike, type ThreadAccessors, type ThreadItem, Toaster, type ToolResponses, TxtIcon, TypingIndicator, type UseAudioRecorderResult, type UseDirectMessagesResult, UserEntity, type UserEntityProps, UserMenu, type UserMenuItem, type UserMenuProps, type UserMenuStatus, VISIBILITY_ICONS, VidIcon, VisibilityIcon, VoiceNoteRecorder, type VoiceNoteRecorderProps, XlsIcon, annotateThread, arbiQueryKeys, configureEntityRegistry, configureRagLabels, configureStatusRegistry, cropImage, dayKey, describeActivity, formatElapsed, formatRelativeTime, getDocIcon, getEntityColor, getEntityColorStyles, getEntityIcon, getEntityLabel, getNotificationTypeMeta, getStatusVariant, getTagTypeIcon, getTagTypeLabel, getWorkspaceActionText, getWorkspaceColor, getWorkspaceSentPhrase, hasVideoTrack, isWorkspaceNotificationType, notify, parseActivityContent, redlineStats, seedNotifications, selectUnread, textToArtifact, toRedlineMarkdown, useActivity, useAgents, useAiTask, useArbi, useArbiConnected, useArbiDocumentSync, useArbiUiStore, useArbiWebSocket, useArbiWsContext, useArbiWsMessage, useArbiWsStatus, useArbiWsStore, useArbiWsTask, useArbiWsTasks, useAssistantQuery, useAudioRecorder, useCommandPalette, useConfigs, useConversations, useDeleteAgents, useDirectMessages, useDocuments, useFacts, useHealth, useNotify, useParsedDocument, useProjectInvoices, useProjectUsage, useProjects, useProjectsUsage, useSemanticSearch, useSessions, useTags, useTasks, useThumbnails, useUserUsageToday, useWorkspaceDocs, useWorkspaces, userDisplayName, userInitials };
|
|
3333
|
+
export { type ActivityContent, type ActivityDescription, ActivityFeed, type ActivityFeedProps, AgentBadge, type AggregatedDailyUsage, type AggregatedModelGroupUsage, AiActionCard, AiAnswer, type AiRunOptions, type AiTaskStatus, type AppNotification, AppleIcon, ArbiBotHeadIcon, ArbiBotIcon, ArbiChat, type ArbiChatLabels, ArbiChatPanel, type ArbiChatPanelProps, type ArbiChatProps, type ArbiChatTheme, ArbiIcon, ArbiProvider, type ArbiProviderProps, type ArbiUiState, ArbiWebSocketProvider, type ArbiWebSocketProviderProps, type ArbiWsState, type ArbiWsStatus, ArtifactCanvas, type AspectOption, AudIcon, type AudioRecorderState, BASE_COLORS, ChatBubble, type ChatBubbleProps, type Chunk, type ChunkActivation, CitationRenderer, type CitationRendererProps, type CitationState, ClaudeIcon, CommandPalette, type CommandPaletteClassNames, type CommandPaletteProps, CommandPaletteProvider, type CommandPaletteProviderProps, type CommandPaletteValue, ConversationList, type ConversationListProps, type CropArea, type CropOutput, type CropResult, DEFAULT_ASPECT_OPTIONS, DEFAULT_NOTIFY_TONE, DateSeparator, type DateSeparatorProps, DirectMessages, type DirectMessagesProps, DmAvatar, type DmAvatarProps, type DmClassNames, DmComposer, type DmComposerProps, type DmConversation, type DmMessage, type DmNotification, type DmUser, DocIcon, DocQaPanel, DocSearch, DocumentCard, DocumentCardMenu, type DocumentCardMenuProps, type DocumentCardProps, DocumentEntity, type DocumentEntityProps, DocumentGallery, type DocumentGalleryProps, type DocumentLike, DocumentReview, type DocumentReviewProps, DocumentTable, type DocumentTableProps, DraftTitleControls, type DraftTitleControlsProps, ENTITY_MAPPINGS, EmlIcon, EntityIcon, type EntityIconComponent, EntityPill, type EntityRegistryOverride, type EntityType, FILE_TYPE_COLORS, FileIcon, FireworksIcon, GeminiIcon, GitHubIcon, GoogleIcon, HtmlIcon, ImageCropModal, type ImageCropModalProps, ImageCropper, type ImageCropperProps, ImgIcon, InlineMicButton, type InlineMicButtonProps, LinkedInIcon, type MessageArtifact, MessageArtifactCard, MessageBubble, type MessageBubbleProps, MessageThread, type MessageThreadProps, MicRecordingOverlay, type MicRecordingOverlayProps, MicWaveformIndicator, type MicWaveformIndicatorProps, NEUTRAL_GRAY, NotificationBell, type NotificationBellProps, type NotificationTypeMeta, type NotifyOptions, type NotifyVariant, OpenAIIcon, PLACEHOLDER_COLOR, type PaletteNavItem, type ParsedChunk, type ParsedChunkMetadata, type ParsedDocument, type ParsedDocumentMetadata, PassageCard, type PassageCardProps, PdfIcon, PhotoCapture, type PhotoCaptureProps, type PresenceDisplayStatus, PresenceLabel, ProjectEntity, type ProjectEntityProps, type ProjectRelation, type ProjectsUsageAggregate, ProviderIcon, RUN_WINDOW_MS, type Rag, RagDot, RelevanceDot, type RenderMarkdown, type SearchChunk, SemanticSearch, type SemanticSearchProps, type StatusBadgeComponent, type StatusBadgeProps, StatusPill, type StatusPillProps, type StatusVariant, TAG_TYPE_ICONS, TAG_TYPE_LABELS, TagEntity, type TagEntityProps, type TagLike, type ThreadAccessors, type ThreadItem, Toaster, type ToolResponses, TxtIcon, TypingIndicator, type UseAudioRecorderResult, type UseCameraStreamResult, type UseDirectMessagesResult, type UseVideoRecorderResult, UserEntity, type UserEntityProps, UserMenu, type UserMenuItem, type UserMenuProps, type UserMenuStatus, VISIBILITY_ICONS, VidIcon, VideoCapture, type VideoCaptureProps, type VideoRecorderState, VisibilityIcon, VoiceNoteRecorder, type VoiceNoteRecorderProps, XlsIcon, annotateThread, arbiQueryKeys, captureFrameAsBlob, configureEntityRegistry, configureRagLabels, configureStatusRegistry, cropImage, dayKey, describeActivity, formatElapsed, formatRelativeTime, getDocIcon, getEntityColor, getEntityColorStyles, getEntityIcon, getEntityLabel, getNotificationTypeMeta, getStatusVariant, getTagTypeIcon, getTagTypeLabel, getWorkspaceActionText, getWorkspaceColor, getWorkspaceSentPhrase, hasVideoTrack, isWorkspaceNotificationType, notify, parseActivityContent, redlineStats, seedNotifications, selectUnread, textToArtifact, toRedlineMarkdown, useActivity, useAgents, useAiTask, useArbi, useArbiConnected, useArbiDocumentSync, useArbiUiStore, useArbiWebSocket, useArbiWsContext, useArbiWsMessage, useArbiWsStatus, useArbiWsStore, useArbiWsTask, useArbiWsTasks, useAssistantQuery, useAudioRecorder, useCameraStream, useCommandPalette, useConfigs, useConversations, useDeleteAgents, useDirectMessages, useDocuments, useFacts, useHealth, useNotify, useParsedDocument, useProjectInvoices, useProjectUsage, useProjects, useProjectsUsage, useSemanticSearch, useSessions, useTags, useTasks, useThumbnails, useUserUsageToday, useVideoRecorder, useWorkspaceDocs, useWorkspaces, userDisplayName, userInitials };
|
package/dist/index.d.ts
CHANGED
|
@@ -3164,6 +3164,140 @@ declare function InlineMicButton({ focused, onTranscript, onError, transcribe, c
|
|
|
3164
3164
|
/** Formats a duration in milliseconds as "mm:ss", clamped to non-negative. */
|
|
3165
3165
|
declare function formatElapsed(ms: number): string;
|
|
3166
3166
|
|
|
3167
|
+
/**
|
|
3168
|
+
* useCameraStream
|
|
3169
|
+
*
|
|
3170
|
+
* Shared camera-acquisition engine for photo and video capture — requests
|
|
3171
|
+
* `getUserMedia`, hands back the live `MediaStream` for a host to bind to a
|
|
3172
|
+
* `<video>` element, and tears the tracks down on stop()/unmount. Mirrors
|
|
3173
|
+
* `useAudioRecorder`'s permission/error handling (same DOMException
|
|
3174
|
+
* classification, via `classifyMediaError`) but stays a separate hook rather
|
|
3175
|
+
* than folding into it: audio's state machine centers on an AnalyserNode
|
|
3176
|
+
* level meter with no visual preview, while camera capture centers on a live
|
|
3177
|
+
* video preview with no metering — sharing "here is a device stream and an
|
|
3178
|
+
* error string" is the useful overlap, not the recording state machine
|
|
3179
|
+
* itself. `useVideoRecorder` layers MediaRecorder on top of the stream this
|
|
3180
|
+
* returns; photo capture reads a frame off it directly (see capture-frame.ts).
|
|
3181
|
+
*
|
|
3182
|
+
* REUSE-FIRST: no app coupling, failures surface via `error` rather than a
|
|
3183
|
+
* toast call — same contract as useAudioRecorder.
|
|
3184
|
+
*/
|
|
3185
|
+
interface UseCameraStreamResult {
|
|
3186
|
+
/** The live camera stream, or null before start()/after stop(). */
|
|
3187
|
+
stream: MediaStream | null;
|
|
3188
|
+
/** True while the getUserMedia() prompt/negotiation is in flight. */
|
|
3189
|
+
isStarting: boolean;
|
|
3190
|
+
/** A human-readable message from the last failed start() attempt. */
|
|
3191
|
+
error: string | null;
|
|
3192
|
+
start: () => Promise<void>;
|
|
3193
|
+
/** Stops all tracks and clears the stream. Safe to call repeatedly. */
|
|
3194
|
+
stop: () => void;
|
|
3195
|
+
}
|
|
3196
|
+
/**
|
|
3197
|
+
* @param constraints The `video`/`audio` constraints passed to getUserMedia.
|
|
3198
|
+
* Defaults to video-only (photo capture never needs a mic); video capture
|
|
3199
|
+
* passes `{ video: true, audio: true }` to record sound with the picture.
|
|
3200
|
+
*/
|
|
3201
|
+
declare function useCameraStream(constraints?: MediaStreamConstraints): UseCameraStreamResult;
|
|
3202
|
+
|
|
3203
|
+
/**
|
|
3204
|
+
* useVideoRecorder
|
|
3205
|
+
*
|
|
3206
|
+
* MediaRecorder lifecycle for video capture, layered on top of an
|
|
3207
|
+
* already-live camera `MediaStream` (see useCameraStream — this hook does
|
|
3208
|
+
* NOT call getUserMedia itself, so the same stream stays open across a
|
|
3209
|
+
* stop()/reset() "record again" without re-prompting for permission).
|
|
3210
|
+
*
|
|
3211
|
+
* Deliberately simpler than useAudioRecorder: no pause/resume (tap-to-start,
|
|
3212
|
+
* tap-to-stop is the whole interaction — see MediaCaptureRecorder) and no
|
|
3213
|
+
* level meter (there's a live video preview instead; a bar-graph loudness
|
|
3214
|
+
* meter would be redundant chrome on top of it).
|
|
3215
|
+
*/
|
|
3216
|
+
type VideoRecorderState = 'idle' | 'recording' | 'stopped';
|
|
3217
|
+
interface UseVideoRecorderResult {
|
|
3218
|
+
state: VideoRecorderState;
|
|
3219
|
+
/** Recorded duration so far (ms). Frozen at its final value once stopped. */
|
|
3220
|
+
elapsedMs: number;
|
|
3221
|
+
/** The finished recording. Only set once state === 'stopped'. */
|
|
3222
|
+
blob: Blob | null;
|
|
3223
|
+
/** The MediaRecorder MIME type used (e.g. 'video/webm'). */
|
|
3224
|
+
mimeType: string | null;
|
|
3225
|
+
start: () => void;
|
|
3226
|
+
stop: () => void;
|
|
3227
|
+
/** Back to idle: clears blob/elapsedMs, ready to record again on the same stream. */
|
|
3228
|
+
reset: () => void;
|
|
3229
|
+
}
|
|
3230
|
+
/** @param stream The live camera stream to record — null while the camera
|
|
3231
|
+
* hasn't started yet; start() is a no-op until it's set. */
|
|
3232
|
+
declare function useVideoRecorder(stream: MediaStream | null): UseVideoRecorderResult;
|
|
3233
|
+
|
|
3234
|
+
/**
|
|
3235
|
+
* Captures the current frame of a live `<video>` element (bound to a camera
|
|
3236
|
+
* `MediaStream`, e.g. via useCameraStream) as an image Blob — the shutter
|
|
3237
|
+
* action for photo capture. Draws to an off-screen canvas rather than reading
|
|
3238
|
+
* pixels any other way, since `HTMLCanvasElement.toBlob` is the one
|
|
3239
|
+
* cross-browser path from "a decoded video frame" to "an encoded image file".
|
|
3240
|
+
*/
|
|
3241
|
+
declare function captureFrameAsBlob(video: HTMLVideoElement, mimeType?: string): Promise<Blob>;
|
|
3242
|
+
|
|
3243
|
+
/**
|
|
3244
|
+
* PhotoCapture
|
|
3245
|
+
*
|
|
3246
|
+
* Camera capture UI: live preview → shutter → review (retake or save).
|
|
3247
|
+
* Shares its shape (onSave/onDiscard/onError/isSaving) with VoiceNoteRecorder
|
|
3248
|
+
* so a host app wires them identically — see MediaCaptureRecorder.tsx (the
|
|
3249
|
+
* ARBI-frontend wrapper) for how the three capture modes plug into the same
|
|
3250
|
+
* draft/save contract.
|
|
3251
|
+
*
|
|
3252
|
+
* REUSE-FIRST: no app coupling. This component owns only the capture UI and
|
|
3253
|
+
* in-memory blob, never persistence — nothing is uploaded until the host's
|
|
3254
|
+
* `onSave` is called.
|
|
3255
|
+
*/
|
|
3256
|
+
interface PhotoCaptureProps {
|
|
3257
|
+
/** Called with the captured photo when the user hits Save. Resolve to let
|
|
3258
|
+
* the host close/replace this capture UI; shows a saving spinner while
|
|
3259
|
+
* the promise is pending. */
|
|
3260
|
+
onSave: (blob: Blob, mimeType: string | null) => Promise<void> | void;
|
|
3261
|
+
/** Called when the user discards the draft. */
|
|
3262
|
+
onDiscard: () => void;
|
|
3263
|
+
/** Surfaces camera failures (e.g. denied permission) — wire this to the
|
|
3264
|
+
* host's own notification system. Without it, failures are silent. */
|
|
3265
|
+
onError?: (message: string) => void;
|
|
3266
|
+
isSaving?: boolean;
|
|
3267
|
+
}
|
|
3268
|
+
declare function PhotoCapture({ onSave, onDiscard, onError, isSaving }: PhotoCaptureProps): React$1.JSX.Element;
|
|
3269
|
+
|
|
3270
|
+
/**
|
|
3271
|
+
* VideoCapture
|
|
3272
|
+
*
|
|
3273
|
+
* Camera capture UI: live preview → tap to record / tap to stop → review
|
|
3274
|
+
* (playback, retake, or save). Shares its shape (onSave/onDiscard/onError/
|
|
3275
|
+
* isSaving) with VoiceNoteRecorder and PhotoCapture — see
|
|
3276
|
+
* MediaCaptureRecorder.tsx (the ARBI-frontend wrapper) for how the three
|
|
3277
|
+
* capture modes plug into the same draft/save contract.
|
|
3278
|
+
*
|
|
3279
|
+
* Deliberately a simple tap-to-start/tap-to-stop toggle rather than a
|
|
3280
|
+
* press-and-hold gesture — matches VoiceNoteRecorder's toggle interaction
|
|
3281
|
+
* and needs no extra gesture handling for a first cut of camera video.
|
|
3282
|
+
*
|
|
3283
|
+
* REUSE-FIRST: no app coupling. This component owns only the capture UI and
|
|
3284
|
+
* in-memory blob, never persistence — nothing is uploaded until the host's
|
|
3285
|
+
* `onSave` is called.
|
|
3286
|
+
*/
|
|
3287
|
+
interface VideoCaptureProps {
|
|
3288
|
+
/** Called with the recorded clip when the user hits Save. Resolve to let
|
|
3289
|
+
* the host close/replace this capture UI; shows a saving spinner while
|
|
3290
|
+
* the promise is pending. */
|
|
3291
|
+
onSave: (blob: Blob, mimeType: string | null) => Promise<void> | void;
|
|
3292
|
+
/** Called when the user discards the draft. */
|
|
3293
|
+
onDiscard: () => void;
|
|
3294
|
+
/** Surfaces camera failures (e.g. denied permission) — wire this to the
|
|
3295
|
+
* host's own notification system. Without it, failures are silent. */
|
|
3296
|
+
onError?: (message: string) => void;
|
|
3297
|
+
isSaving?: boolean;
|
|
3298
|
+
}
|
|
3299
|
+
declare function VideoCapture({ onSave, onDiscard, onError, isSaving }: VideoCaptureProps): React$1.JSX.Element;
|
|
3300
|
+
|
|
3167
3301
|
/**
|
|
3168
3302
|
* Content-based audio-vs-video detection for containers that don't tell you
|
|
3169
3303
|
* from the extension alone. WebM in particular can hold audio-only, video-only,
|
|
@@ -3196,4 +3330,4 @@ interface ArbiUiState {
|
|
|
3196
3330
|
}
|
|
3197
3331
|
declare const useArbiUiStore: zustand.UseBoundStore<zustand.StoreApi<ArbiUiState>>;
|
|
3198
3332
|
|
|
3199
|
-
export { type ActivityContent, type ActivityDescription, ActivityFeed, type ActivityFeedProps, AgentBadge, type AggregatedDailyUsage, type AggregatedModelGroupUsage, AiActionCard, AiAnswer, type AiRunOptions, type AiTaskStatus, type AppNotification, AppleIcon, ArbiBotHeadIcon, ArbiBotIcon, ArbiChat, type ArbiChatLabels, ArbiChatPanel, type ArbiChatPanelProps, type ArbiChatProps, type ArbiChatTheme, ArbiIcon, ArbiProvider, type ArbiProviderProps, type ArbiUiState, ArbiWebSocketProvider, type ArbiWebSocketProviderProps, type ArbiWsState, type ArbiWsStatus, ArtifactCanvas, type AspectOption, AudIcon, type AudioRecorderState, BASE_COLORS, ChatBubble, type ChatBubbleProps, type Chunk, type ChunkActivation, CitationRenderer, type CitationRendererProps, type CitationState, ClaudeIcon, CommandPalette, type CommandPaletteClassNames, type CommandPaletteProps, CommandPaletteProvider, type CommandPaletteProviderProps, type CommandPaletteValue, ConversationList, type ConversationListProps, type CropArea, type CropOutput, type CropResult, DEFAULT_ASPECT_OPTIONS, DEFAULT_NOTIFY_TONE, DateSeparator, type DateSeparatorProps, DirectMessages, type DirectMessagesProps, DmAvatar, type DmAvatarProps, type DmClassNames, DmComposer, type DmComposerProps, type DmConversation, type DmMessage, type DmNotification, type DmUser, DocIcon, DocQaPanel, DocSearch, DocumentCard, DocumentCardMenu, type DocumentCardMenuProps, type DocumentCardProps, DocumentEntity, type DocumentEntityProps, DocumentGallery, type DocumentGalleryProps, type DocumentLike, DocumentReview, type DocumentReviewProps, DocumentTable, type DocumentTableProps, DraftTitleControls, type DraftTitleControlsProps, ENTITY_MAPPINGS, EmlIcon, EntityIcon, type EntityIconComponent, EntityPill, type EntityRegistryOverride, type EntityType, FILE_TYPE_COLORS, FileIcon, FireworksIcon, GeminiIcon, GitHubIcon, GoogleIcon, HtmlIcon, ImageCropModal, type ImageCropModalProps, ImageCropper, type ImageCropperProps, ImgIcon, InlineMicButton, type InlineMicButtonProps, LinkedInIcon, type MessageArtifact, MessageArtifactCard, MessageBubble, type MessageBubbleProps, MessageThread, type MessageThreadProps, MicRecordingOverlay, type MicRecordingOverlayProps, MicWaveformIndicator, type MicWaveformIndicatorProps, NEUTRAL_GRAY, NotificationBell, type NotificationBellProps, type NotificationTypeMeta, type NotifyOptions, type NotifyVariant, OpenAIIcon, PLACEHOLDER_COLOR, type PaletteNavItem, type ParsedChunk, type ParsedChunkMetadata, type ParsedDocument, type ParsedDocumentMetadata, PassageCard, type PassageCardProps, PdfIcon, type PresenceDisplayStatus, PresenceLabel, ProjectEntity, type ProjectEntityProps, type ProjectRelation, type ProjectsUsageAggregate, ProviderIcon, RUN_WINDOW_MS, type Rag, RagDot, RelevanceDot, type RenderMarkdown, type SearchChunk, SemanticSearch, type SemanticSearchProps, type StatusBadgeComponent, type StatusBadgeProps, StatusPill, type StatusPillProps, type StatusVariant, TAG_TYPE_ICONS, TAG_TYPE_LABELS, TagEntity, type TagEntityProps, type TagLike, type ThreadAccessors, type ThreadItem, Toaster, type ToolResponses, TxtIcon, TypingIndicator, type UseAudioRecorderResult, type UseDirectMessagesResult, UserEntity, type UserEntityProps, UserMenu, type UserMenuItem, type UserMenuProps, type UserMenuStatus, VISIBILITY_ICONS, VidIcon, VisibilityIcon, VoiceNoteRecorder, type VoiceNoteRecorderProps, XlsIcon, annotateThread, arbiQueryKeys, configureEntityRegistry, configureRagLabels, configureStatusRegistry, cropImage, dayKey, describeActivity, formatElapsed, formatRelativeTime, getDocIcon, getEntityColor, getEntityColorStyles, getEntityIcon, getEntityLabel, getNotificationTypeMeta, getStatusVariant, getTagTypeIcon, getTagTypeLabel, getWorkspaceActionText, getWorkspaceColor, getWorkspaceSentPhrase, hasVideoTrack, isWorkspaceNotificationType, notify, parseActivityContent, redlineStats, seedNotifications, selectUnread, textToArtifact, toRedlineMarkdown, useActivity, useAgents, useAiTask, useArbi, useArbiConnected, useArbiDocumentSync, useArbiUiStore, useArbiWebSocket, useArbiWsContext, useArbiWsMessage, useArbiWsStatus, useArbiWsStore, useArbiWsTask, useArbiWsTasks, useAssistantQuery, useAudioRecorder, useCommandPalette, useConfigs, useConversations, useDeleteAgents, useDirectMessages, useDocuments, useFacts, useHealth, useNotify, useParsedDocument, useProjectInvoices, useProjectUsage, useProjects, useProjectsUsage, useSemanticSearch, useSessions, useTags, useTasks, useThumbnails, useUserUsageToday, useWorkspaceDocs, useWorkspaces, userDisplayName, userInitials };
|
|
3333
|
+
export { type ActivityContent, type ActivityDescription, ActivityFeed, type ActivityFeedProps, AgentBadge, type AggregatedDailyUsage, type AggregatedModelGroupUsage, AiActionCard, AiAnswer, type AiRunOptions, type AiTaskStatus, type AppNotification, AppleIcon, ArbiBotHeadIcon, ArbiBotIcon, ArbiChat, type ArbiChatLabels, ArbiChatPanel, type ArbiChatPanelProps, type ArbiChatProps, type ArbiChatTheme, ArbiIcon, ArbiProvider, type ArbiProviderProps, type ArbiUiState, ArbiWebSocketProvider, type ArbiWebSocketProviderProps, type ArbiWsState, type ArbiWsStatus, ArtifactCanvas, type AspectOption, AudIcon, type AudioRecorderState, BASE_COLORS, ChatBubble, type ChatBubbleProps, type Chunk, type ChunkActivation, CitationRenderer, type CitationRendererProps, type CitationState, ClaudeIcon, CommandPalette, type CommandPaletteClassNames, type CommandPaletteProps, CommandPaletteProvider, type CommandPaletteProviderProps, type CommandPaletteValue, ConversationList, type ConversationListProps, type CropArea, type CropOutput, type CropResult, DEFAULT_ASPECT_OPTIONS, DEFAULT_NOTIFY_TONE, DateSeparator, type DateSeparatorProps, DirectMessages, type DirectMessagesProps, DmAvatar, type DmAvatarProps, type DmClassNames, DmComposer, type DmComposerProps, type DmConversation, type DmMessage, type DmNotification, type DmUser, DocIcon, DocQaPanel, DocSearch, DocumentCard, DocumentCardMenu, type DocumentCardMenuProps, type DocumentCardProps, DocumentEntity, type DocumentEntityProps, DocumentGallery, type DocumentGalleryProps, type DocumentLike, DocumentReview, type DocumentReviewProps, DocumentTable, type DocumentTableProps, DraftTitleControls, type DraftTitleControlsProps, ENTITY_MAPPINGS, EmlIcon, EntityIcon, type EntityIconComponent, EntityPill, type EntityRegistryOverride, type EntityType, FILE_TYPE_COLORS, FileIcon, FireworksIcon, GeminiIcon, GitHubIcon, GoogleIcon, HtmlIcon, ImageCropModal, type ImageCropModalProps, ImageCropper, type ImageCropperProps, ImgIcon, InlineMicButton, type InlineMicButtonProps, LinkedInIcon, type MessageArtifact, MessageArtifactCard, MessageBubble, type MessageBubbleProps, MessageThread, type MessageThreadProps, MicRecordingOverlay, type MicRecordingOverlayProps, MicWaveformIndicator, type MicWaveformIndicatorProps, NEUTRAL_GRAY, NotificationBell, type NotificationBellProps, type NotificationTypeMeta, type NotifyOptions, type NotifyVariant, OpenAIIcon, PLACEHOLDER_COLOR, type PaletteNavItem, type ParsedChunk, type ParsedChunkMetadata, type ParsedDocument, type ParsedDocumentMetadata, PassageCard, type PassageCardProps, PdfIcon, PhotoCapture, type PhotoCaptureProps, type PresenceDisplayStatus, PresenceLabel, ProjectEntity, type ProjectEntityProps, type ProjectRelation, type ProjectsUsageAggregate, ProviderIcon, RUN_WINDOW_MS, type Rag, RagDot, RelevanceDot, type RenderMarkdown, type SearchChunk, SemanticSearch, type SemanticSearchProps, type StatusBadgeComponent, type StatusBadgeProps, StatusPill, type StatusPillProps, type StatusVariant, TAG_TYPE_ICONS, TAG_TYPE_LABELS, TagEntity, type TagEntityProps, type TagLike, type ThreadAccessors, type ThreadItem, Toaster, type ToolResponses, TxtIcon, TypingIndicator, type UseAudioRecorderResult, type UseCameraStreamResult, type UseDirectMessagesResult, type UseVideoRecorderResult, UserEntity, type UserEntityProps, UserMenu, type UserMenuItem, type UserMenuProps, type UserMenuStatus, VISIBILITY_ICONS, VidIcon, VideoCapture, type VideoCaptureProps, type VideoRecorderState, VisibilityIcon, VoiceNoteRecorder, type VoiceNoteRecorderProps, XlsIcon, annotateThread, arbiQueryKeys, captureFrameAsBlob, configureEntityRegistry, configureRagLabels, configureStatusRegistry, cropImage, dayKey, describeActivity, formatElapsed, formatRelativeTime, getDocIcon, getEntityColor, getEntityColorStyles, getEntityIcon, getEntityLabel, getNotificationTypeMeta, getStatusVariant, getTagTypeIcon, getTagTypeLabel, getWorkspaceActionText, getWorkspaceColor, getWorkspaceSentPhrase, hasVideoTrack, isWorkspaceNotificationType, notify, parseActivityContent, redlineStats, seedNotifications, selectUnread, textToArtifact, toRedlineMarkdown, useActivity, useAgents, useAiTask, useArbi, useArbiConnected, useArbiDocumentSync, useArbiUiStore, useArbiWebSocket, useArbiWsContext, useArbiWsMessage, useArbiWsStatus, useArbiWsStore, useArbiWsTask, useArbiWsTasks, useAssistantQuery, useAudioRecorder, useCameraStream, useCommandPalette, useConfigs, useConversations, useDeleteAgents, useDirectMessages, useDocuments, useFacts, useHealth, useNotify, useParsedDocument, useProjectInvoices, useProjectUsage, useProjects, useProjectsUsage, useSemanticSearch, useSessions, useTags, useTasks, useThumbnails, useUserUsageToday, useVideoRecorder, useWorkspaceDocs, useWorkspaces, userDisplayName, userInitials };
|