@a4anthony/proctorkit-vue 0.1.5 → 0.2.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.
Files changed (177) hide show
  1. package/README.md +176 -8
  2. package/dist/ProctoredAssessment.vue.d.ts +70 -2
  3. package/dist/ProctoredAssessment.vue.d.ts.map +1 -1
  4. package/dist/ProctoringDeviceSettings.vue.d.ts +27 -1
  5. package/dist/ProctoringDeviceSettings.vue.d.ts.map +1 -1
  6. package/dist/ProctoringSystemCheck.vue.d.ts +39 -11
  7. package/dist/ProctoringSystemCheck.vue.d.ts.map +1 -1
  8. package/dist/browser-face-detector.d.ts +59 -0
  9. package/dist/browser-face-detector.d.ts.map +1 -0
  10. package/dist/check-cards/system/DisplayPermissionDialog.vue.d.ts +24 -0
  11. package/dist/check-cards/system/DisplayPermissionDialog.vue.d.ts.map +1 -0
  12. package/dist/check-cards/system/DisplayRecovery.vue.d.ts +25 -0
  13. package/dist/check-cards/system/DisplayRecovery.vue.d.ts.map +1 -0
  14. package/dist/check-cards/system/SystemCheckCard.vue.d.ts +13 -1
  15. package/dist/check-cards/system/SystemCheckCard.vue.d.ts.map +1 -1
  16. package/dist/check-cards/system/display-progress-story.d.ts +468 -0
  17. package/dist/check-cards/system/display-progress-story.d.ts.map +1 -0
  18. package/dist/check-cards/system/display-recovery-story.d.ts +290 -0
  19. package/dist/check-cards/system/display-recovery-story.d.ts.map +1 -0
  20. package/dist/demo-runner/QuestionCard.vue.d.ts.map +1 -1
  21. package/dist/detect-face.d.ts +22 -95
  22. package/dist/detect-face.d.ts.map +1 -1
  23. package/dist/i18n/merge.d.ts.map +1 -1
  24. package/dist/index.d.ts +19 -8
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +9637 -2485
  27. package/dist/media-controls/AudioPlayer.vue.d.ts +43 -20
  28. package/dist/media-controls/AudioPlayer.vue.d.ts.map +1 -1
  29. package/dist/media-controls/AudioRecorder.vue.d.ts +171 -11
  30. package/dist/media-controls/AudioRecorder.vue.d.ts.map +1 -1
  31. package/dist/media-controls/RecorderUploadIndicator.vue.d.ts +17 -0
  32. package/dist/media-controls/RecorderUploadIndicator.vue.d.ts.map +1 -0
  33. package/dist/media-controls/VideoPlayer.vue.d.ts +36 -13
  34. package/dist/media-controls/VideoPlayer.vue.d.ts.map +1 -1
  35. package/dist/media-controls/VideoRecorder.vue.d.ts +90 -10
  36. package/dist/media-controls/VideoRecorder.vue.d.ts.map +1 -1
  37. package/dist/media-controls/audio-recorder-messages.d.ts +15 -0
  38. package/dist/media-controls/audio-recorder-messages.d.ts.map +1 -0
  39. package/dist/media-controls/local-media-playback-client.d.ts +2 -6
  40. package/dist/media-controls/local-media-playback-client.d.ts.map +1 -1
  41. package/dist/media-controls/local-media-recording-client.d.ts.map +1 -1
  42. package/dist/media-controls/media-recovery-story.d.ts +9 -0
  43. package/dist/media-controls/media-recovery-story.d.ts.map +1 -0
  44. package/dist/media-controls/storybook-mock-client.d.ts +2 -0
  45. package/dist/media-controls/storybook-mock-client.d.ts.map +1 -1
  46. package/dist/media-controls/types.d.ts +63 -7
  47. package/dist/media-controls/types.d.ts.map +1 -1
  48. package/dist/media-controls/ui-config.d.ts +2 -2
  49. package/dist/media-controls/ui-config.d.ts.map +1 -1
  50. package/dist/media-controls/useLiveInputCheck.d.ts +18 -0
  51. package/dist/media-controls/useLiveInputCheck.d.ts.map +1 -0
  52. package/dist/media-controls/useMediaClipRecorder.d.ts +90 -12
  53. package/dist/media-controls/useMediaClipRecorder.d.ts.map +1 -1
  54. package/dist/media-controls/useMediaFilePlayback.d.ts +8 -1
  55. package/dist/media-controls/useMediaFilePlayback.d.ts.map +1 -1
  56. package/dist/media-controls/useMinimumVisibleUpload.d.ts +18 -0
  57. package/dist/media-controls/useMinimumVisibleUpload.d.ts.map +1 -0
  58. package/dist/proctored-assessment/PreparationGate.vue.d.ts +16 -0
  59. package/dist/proctored-assessment/PreparationGate.vue.d.ts.map +1 -0
  60. package/dist/proctored-assessment/preparation-feedback.d.ts +7 -0
  61. package/dist/proctored-assessment/preparation-feedback.d.ts.map +1 -0
  62. package/dist/proctored-assessment/replay-failure-queue.d.ts +18 -0
  63. package/dist/proctored-assessment/replay-failure-queue.d.ts.map +1 -0
  64. package/dist/proctored-assessment/replay-failure-queue.test.d.ts +2 -0
  65. package/dist/proctored-assessment/replay-failure-queue.test.d.ts.map +1 -0
  66. package/dist/proctored-assessment/request-deadline.d.ts +1 -0
  67. package/dist/proctored-assessment/request-deadline.d.ts.map +1 -1
  68. package/dist/proctored-assessment/resume-microphone-route.d.ts +13 -0
  69. package/dist/proctored-assessment/resume-microphone-route.d.ts.map +1 -0
  70. package/dist/proctored-assessment/resume-microphone-route.test.d.ts +2 -0
  71. package/dist/proctored-assessment/resume-microphone-route.test.d.ts.map +1 -0
  72. package/dist/proctored-assessment/resume-probe.d.ts +13 -0
  73. package/dist/proctored-assessment/resume-probe.d.ts.map +1 -1
  74. package/dist/proctored-assessment/resume-speaker-confirmation.d.ts +27 -0
  75. package/dist/proctored-assessment/resume-speaker-confirmation.d.ts.map +1 -0
  76. package/dist/proctored-assessment/resume-speaker-route.d.ts +32 -0
  77. package/dist/proctored-assessment/resume-speaker-route.d.ts.map +1 -0
  78. package/dist/proctored-assessment/session-start.d.ts +2 -2
  79. package/dist/proctored-assessment/types.d.ts +14 -4
  80. package/dist/proctored-assessment/types.d.ts.map +1 -1
  81. package/dist/proctored-assessment/usePreparationRetryTiming.d.ts +13 -0
  82. package/dist/proctored-assessment/usePreparationRetryTiming.d.ts.map +1 -0
  83. package/dist/proctored-assessment/useResumeDisplayGuard.d.ts +20 -0
  84. package/dist/proctored-assessment/useResumeDisplayGuard.d.ts.map +1 -0
  85. package/dist/proctoring-client.d.ts +6 -2
  86. package/dist/proctoring-client.d.ts.map +1 -1
  87. package/dist/proctoring-system-check-contract.d.ts +2 -0
  88. package/dist/proctoring-system-check-contract.d.ts.map +1 -1
  89. package/dist/runtime-devices/DevicePickerItem.vue.d.ts +58 -0
  90. package/dist/runtime-devices/DevicePickerItem.vue.d.ts.map +1 -0
  91. package/dist/runtime-devices/PickerMessage.vue.d.ts +17 -0
  92. package/dist/runtime-devices/PickerMessage.vue.d.ts.map +1 -0
  93. package/dist/runtime-devices/ProctoringDevicePicker.vue.d.ts +89 -0
  94. package/dist/runtime-devices/ProctoringDevicePicker.vue.d.ts.map +1 -0
  95. package/dist/runtime-devices/device-picker-messages.d.ts +42 -0
  96. package/dist/runtime-devices/device-picker-messages.d.ts.map +1 -0
  97. package/dist/runtime-devices/microphone-attention.d.ts +48 -0
  98. package/dist/runtime-devices/microphone-attention.d.ts.map +1 -0
  99. package/dist/runtime-devices/microphone-check-messages.d.ts +13 -0
  100. package/dist/runtime-devices/microphone-check-messages.d.ts.map +1 -0
  101. package/dist/runtime-devices/runtime-device-activity.d.ts +16 -0
  102. package/dist/runtime-devices/runtime-device-activity.d.ts.map +1 -0
  103. package/dist/runtime-devices/runtime-device-selection.d.ts +11 -0
  104. package/dist/runtime-devices/runtime-device-selection.d.ts.map +1 -0
  105. package/dist/runtime-devices/useRuntimeDevice.d.ts +72 -0
  106. package/dist/runtime-devices/useRuntimeDevice.d.ts.map +1 -0
  107. package/dist/runtime-devices/useTrackLoss.d.ts +15 -0
  108. package/dist/runtime-devices/useTrackLoss.d.ts.map +1 -0
  109. package/dist/style.css +367 -14
  110. package/dist/text-answer/ProctoredTextarea.vue.d.ts +8 -1
  111. package/dist/text-answer/ProctoredTextarea.vue.d.ts.map +1 -1
  112. package/dist/text-answer/useProctoredText.d.ts +5 -2
  113. package/dist/text-answer/useProctoredText.d.ts.map +1 -1
  114. package/dist/ui/ProctoringAlert.vue.d.ts.map +1 -1
  115. package/dist/ui/ProctoringFileUpload.vue.d.ts +3 -3
  116. package/dist/ui/ProctoringFileUpload.vue.d.ts.map +1 -1
  117. package/dist/ui/ProctoringInput.vue.d.ts +3 -3
  118. package/dist/ui/ProctoringInput.vue.d.ts.map +1 -1
  119. package/dist/ui/ProctoringSelect.vue.d.ts +2 -2
  120. package/dist/ui/ProctoringSelect.vue.d.ts.map +1 -1
  121. package/dist/usePreflightCheck.d.ts +4 -3
  122. package/dist/usePreflightCheck.d.ts.map +1 -1
  123. package/dist/vision_bundle-8xEDyfqS.js +4160 -0
  124. package/dist/wizard/BrowserDisplayPermissionGuide.vue.d.ts +11 -0
  125. package/dist/wizard/BrowserDisplayPermissionGuide.vue.d.ts.map +1 -0
  126. package/dist/wizard/BrowserPermissionLocation.vue.d.ts +9 -0
  127. package/dist/wizard/BrowserPermissionLocation.vue.d.ts.map +1 -0
  128. package/dist/wizard/CameraStep.vue.d.ts +10 -1
  129. package/dist/wizard/CameraStep.vue.d.ts.map +1 -1
  130. package/dist/wizard/CandidateHeadshotField.vue.d.ts.map +1 -1
  131. package/dist/wizard/CandidateIntakeStep.vue.d.ts +3 -0
  132. package/dist/wizard/CandidateIntakeStep.vue.d.ts.map +1 -1
  133. package/dist/wizard/ChecklistShell.vue.d.ts +3 -0
  134. package/dist/wizard/ChecklistShell.vue.d.ts.map +1 -1
  135. package/dist/wizard/FinalStep.vue.d.ts +6 -2
  136. package/dist/wizard/FinalStep.vue.d.ts.map +1 -1
  137. package/dist/wizard/MediaDeviceSelect.vue.d.ts +11 -1
  138. package/dist/wizard/MediaDeviceSelect.vue.d.ts.map +1 -1
  139. package/dist/wizard/MicStep.vue.d.ts +24 -3
  140. package/dist/wizard/MicStep.vue.d.ts.map +1 -1
  141. package/dist/wizard/PermissionDeniedPanel.vue.d.ts +9 -4
  142. package/dist/wizard/PermissionDeniedPanel.vue.d.ts.map +1 -1
  143. package/dist/wizard/ResumeCheck.vue.d.ts +16 -2
  144. package/dist/wizard/ResumeCheck.vue.d.ts.map +1 -1
  145. package/dist/wizard/SpeakerStep.vue.d.ts +17 -4
  146. package/dist/wizard/SpeakerStep.vue.d.ts.map +1 -1
  147. package/dist/wizard/SystemStep.vue.d.ts +9 -0
  148. package/dist/wizard/SystemStep.vue.d.ts.map +1 -1
  149. package/dist/wizard/WizardShell.vue.d.ts +3 -3
  150. package/dist/wizard/WizardShell.vue.d.ts.map +1 -1
  151. package/dist/wizard/candidate-intake-draft.d.ts +9 -0
  152. package/dist/wizard/candidate-intake-draft.d.ts.map +1 -0
  153. package/dist/wizard/display-diagnostics.d.ts +21 -0
  154. package/dist/wizard/display-diagnostics.d.ts.map +1 -0
  155. package/dist/wizard/event-telemetry.d.ts +24 -0
  156. package/dist/wizard/event-telemetry.d.ts.map +1 -0
  157. package/dist/wizard/media-device-list.d.ts +8 -1
  158. package/dist/wizard/media-device-list.d.ts.map +1 -1
  159. package/dist/wizard/microphone-preflight-trace.d.ts +10 -0
  160. package/dist/wizard/microphone-preflight-trace.d.ts.map +1 -0
  161. package/dist/wizard/microphone-preflight-trace.test.d.ts +2 -0
  162. package/dist/wizard/microphone-preflight-trace.test.d.ts.map +1 -0
  163. package/dist/wizard/resume-check-stories/shared.d.ts +35 -11
  164. package/dist/wizard/resume-check-stories/shared.d.ts.map +1 -1
  165. package/dist/wizard/speaker-test-tone.d.ts +29 -4
  166. package/dist/wizard/speaker-test-tone.d.ts.map +1 -1
  167. package/dist/wizard/useCandidateIssues.d.ts +30 -0
  168. package/dist/wizard/useCandidateIssues.d.ts.map +1 -0
  169. package/dist/wizard/useCandidateIssues.test.d.ts +2 -0
  170. package/dist/wizard/useCandidateIssues.test.d.ts.map +1 -0
  171. package/dist/wizard/useLiveDisplayCheck.d.ts +8 -0
  172. package/dist/wizard/useLiveDisplayCheck.d.ts.map +1 -0
  173. package/dist/wizard/usePreflightTelemetry.d.ts +6 -26
  174. package/dist/wizard/usePreflightTelemetry.d.ts.map +1 -1
  175. package/dist/wizard/useWizardSteps.d.ts +10 -1
  176. package/dist/wizard/useWizardSteps.d.ts.map +1 -1
  177. package/package.json +4 -3
@@ -1,7 +1,8 @@
1
1
  import type { ProctoringClient } from "@a4anthony/proctorkit-sdk";
2
+ import { type LostTrackKind } from "../runtime-devices/useTrackLoss.js";
2
3
  import type { MediaClipDataSink, MediaClipDroppedPayload, MediaClipErrorPayload, MediaClipMirrorErrorPayload, MediaClipStartedPayload, MediaClipStoppedPayload, MediaClipUploadedPayload } from "./types.js";
3
4
  import { type MediaPartClasses, type MediaPartStyles, type ProctoringMediaTheme, type VideoRecorderPart, type VideoRecorderUi } from "./ui-config.js";
4
- type VideoRecorderClient = Pick<ProctoringClient, "recordVideoClip">;
5
+ type VideoRecorderClient = Pick<ProctoringClient, "recordVideoClip"> & Partial<Pick<ProctoringClient, "holdAudioForCapture">>;
5
6
  type __VLS_Props = {
6
7
  client?: VideoRecorderClient;
7
8
  title?: string;
@@ -32,6 +33,11 @@ type __VLS_Props = {
32
33
  * retried.
33
34
  */
34
35
  allowedRetakes?: number | null;
36
+ /**
37
+ * Stable opaque identity for this recording. Filename-like values with an
38
+ * extension are accepted. Use a fresh value for each distinct retake.
39
+ */
40
+ clipId?: string;
35
41
  disabled?: boolean;
36
42
  maxDurationMs?: number;
37
43
  /** Include a microphone track in the clip. Default true. */
@@ -51,13 +57,17 @@ type __VLS_Props = {
51
57
  stream?: MediaStream;
52
58
  unavailableMessage?: string;
53
59
  /**
54
- * Mirror each finalized clip to your own backend, IN ADDITION to
55
- * the proctoring server. Receives the recorded video as a Blob plus
56
- * `{ mimeType, durationMs, clipNumber }`; resolve when your upload
57
- * succeeds, throw/reject when it fails. A failure here is non-fatal
58
- * — the clip still uploads to the proctoring server and `uploaded`
59
- * still fires; the rejection surfaces on `clip-mirror-failed`. The
60
- * two uploads run in parallel, so the mirror never delays `uploaded`.
60
+ * Deliver each finalized clip to your own backend as the primary upload.
61
+ * Receives video as a Blob plus
62
+ * `{ mimeType, durationMs, clipId, clipNumber }`; resolve when your upload
63
+ * succeeds, throw/reject when it fails. `uploaded` waits for this sink and
64
+ * reports `delivery: "client"`; a rejection remains retryable and does not
65
+ * become successful merely because the independent ProctorKit copy succeeds.
66
+ * With an active client, ProctorKit uploads in the background and never
67
+ * changes the candidate-facing result. In standalone mode ProctorKit is not used.
68
+ * The optional second callback argument exposes `reportProgress` and
69
+ * an unmount `signal`. Progress drives the circular indicator when
70
+ * `sendClip` is the primary delivery path; ProctorKit progress is not shown.
61
71
  */
62
72
  sendClip?: MediaClipDataSink;
63
73
  /**
@@ -78,7 +88,14 @@ type __VLS_Props = {
78
88
  styles?: MediaPartStyles<VideoRecorderPart>;
79
89
  unstyled?: boolean;
80
90
  theme?: ProctoringMediaTheme;
91
+ /**
92
+ * Shown when the camera or microphone disconnects mid-take. `{device}` is
93
+ * replaced with "camera" or "microphone". The take is stopped and does not
94
+ * use up a retake.
95
+ */
96
+ deviceLostMessage?: string;
81
97
  };
98
+ declare function retryPrimaryUpload(): Promise<void>;
82
99
  declare function toggleRecording(): Promise<void>;
83
100
  declare var __VLS_1: {
84
101
  recording: boolean;
@@ -103,16 +120,32 @@ declare var __VLS_1: {
103
120
  recording: boolean;
104
121
  starting: boolean;
105
122
  stopping: boolean;
123
+ retrying: boolean;
124
+ retryable: boolean;
125
+ retryTarget: "client" | "canonical" | null;
126
+ mirrorUploading: boolean;
127
+ mirrorProgress: number | null;
128
+ mirrorFailure: {
129
+ kind: import("./types.js", { with: { "resolution-mode": "import" } }).MediaClipKind;
130
+ clipId: string;
131
+ clipNumber: number;
132
+ error: Error;
133
+ message: string;
134
+ } | null;
106
135
  busyLabel: string | null;
136
+ uploadLabel: any;
107
137
  uploadedLabel: string | null;
108
138
  actionLabel: string;
109
139
  actionDisabled: boolean;
110
140
  showAction: boolean;
111
141
  toggle: typeof toggleRecording;
112
- }, __VLS_30: {
142
+ retryUpload: typeof retryPrimaryUpload;
143
+ }, __VLS_40: {
113
144
  clipNumber: number | null;
114
145
  uploaded: {
115
146
  kind: import("./types.js", { with: { "resolution-mode": "import" } }).MediaClipKind;
147
+ clipId: string;
148
+ delivery: "client" | "fallback" | "proctorkit" | "local";
116
149
  clipNumber: number;
117
150
  byteSize: number;
118
151
  durationMs: number;
@@ -127,10 +160,27 @@ declare var __VLS_1: {
127
160
  peakDb: number;
128
161
  silentRatio: number;
129
162
  lowVolumeRatio: number;
163
+ inputLiveness?: {
164
+ digitalSilenceRatio: number;
165
+ longestDigitalSilenceMs: number;
166
+ longestMutedMs: number;
167
+ suspendedMs: number;
168
+ noInput: boolean;
169
+ } | undefined;
170
+ } | undefined;
171
+ answerReference?: {
172
+ questionId: string;
173
+ answerFileName: string;
130
174
  } | undefined;
175
+ fallbackSelection?: {
176
+ readonly source: "client_reported";
177
+ readonly selectedAt: string;
178
+ } | undefined;
179
+ contentSha256?: string | undefined;
131
180
  } | null;
132
181
  dropped: {
133
182
  kind: import("./types.js", { with: { "resolution-mode": "import" } }).MediaClipKind;
183
+ clipId: string;
134
184
  clipNumber: number;
135
185
  code: import("./types.js", { with: { "resolution-mode": "import" } }).MediaClipDropCode;
136
186
  reason: string;
@@ -145,6 +195,13 @@ declare var __VLS_1: {
145
195
  peakDb: number;
146
196
  silentRatio: number;
147
197
  lowVolumeRatio: number;
198
+ inputLiveness?: {
199
+ digitalSilenceRatio: number;
200
+ longestDigitalSilenceMs: number;
201
+ longestMutedMs: number;
202
+ suspendedMs: number;
203
+ noInput: boolean;
204
+ } | undefined;
148
205
  } | undefined;
149
206
  } | null;
150
207
  error: {
@@ -156,6 +213,19 @@ declare var __VLS_1: {
156
213
  recording: boolean;
157
214
  starting: boolean;
158
215
  stopping: boolean;
216
+ retrying: boolean;
217
+ retryable: boolean;
218
+ retryTarget: "client" | "canonical" | null;
219
+ retryUpload: typeof retryPrimaryUpload;
220
+ mirrorUploading: boolean;
221
+ mirrorProgress: number | null;
222
+ mirrorFailure: {
223
+ kind: import("./types.js", { with: { "resolution-mode": "import" } }).MediaClipKind;
224
+ clipId: string;
225
+ clipNumber: number;
226
+ error: Error;
227
+ message: string;
228
+ } | null;
159
229
  elapsedMs: number;
160
230
  remainingMs: number;
161
231
  maxDurationMs: number;
@@ -175,7 +245,7 @@ type __VLS_Slots = {} & {
175
245
  } & {
176
246
  controls?: (props: typeof __VLS_13) => any;
177
247
  } & {
178
- meta?: (props: typeof __VLS_30) => any;
248
+ meta?: (props: typeof __VLS_40) => any;
179
249
  };
180
250
  declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
181
251
  error: (payload: MediaClipErrorPayload) => any;
@@ -184,6 +254,10 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
184
254
  uploaded: (payload: MediaClipUploadedPayload) => any;
185
255
  dropped: (payload: MediaClipDroppedPayload) => any;
186
256
  "clip-mirror-failed": (payload: MediaClipMirrorErrorPayload) => any;
257
+ deviceLost: (payload: {
258
+ kind: LostTrackKind;
259
+ clipId: string | null;
260
+ }) => any;
187
261
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
188
262
  onError?: ((payload: MediaClipErrorPayload) => any) | undefined;
189
263
  onStopped?: ((payload: MediaClipStoppedPayload) => any) | undefined;
@@ -191,6 +265,10 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
191
265
  onUploaded?: ((payload: MediaClipUploadedPayload) => any) | undefined;
192
266
  onDropped?: ((payload: MediaClipDroppedPayload) => any) | undefined;
193
267
  "onClip-mirror-failed"?: ((payload: MediaClipMirrorErrorPayload) => any) | undefined;
268
+ onDeviceLost?: ((payload: {
269
+ kind: LostTrackKind;
270
+ clipId: string | null;
271
+ }) => any) | undefined;
194
272
  }>, {
195
273
  autoStart: boolean;
196
274
  title: string;
@@ -198,6 +276,7 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
198
276
  disabled: boolean;
199
277
  audio: boolean;
200
278
  maxDurationMs: number;
279
+ clipId: string;
201
280
  stream: MediaStream;
202
281
  videoBitrate: number;
203
282
  stopLabel: string;
@@ -209,6 +288,7 @@ declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}
209
288
  unavailableMessage: string;
210
289
  sendClip: MediaClipDataSink;
211
290
  startRecording: boolean;
291
+ deviceLostMessage: string;
212
292
  cameraDeviceId: string | null;
213
293
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
214
294
  declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
@@ -1 +1 @@
1
- {"version":3,"file":"VideoRecorder.vue.d.ts","sourceRoot":"","sources":["../../src/media-controls/VideoRecorder.vue"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VideoRecorder.vue.d.ts","sourceRoot":"","sources":["../../src/media-controls/VideoRecorder.vue"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /** Copy for `<AudioRecorder>`'s microphone hints, shown below the recorder. */
2
+ export interface AudioRecorderMicrophoneMessages {
3
+ /** The microphone would not open, so the take did not start. */
4
+ unavailable: string;
5
+ /** A finished take was silent and the candidate may record again. */
6
+ silentTake: string;
7
+ /** A finished take was silent and no retake is left. */
8
+ silentTakeNoRetake: string;
9
+ /** During a take, with `liveInputHint`: no input for a few seconds. */
10
+ noInput: string;
11
+ /** Opens Device settings with only the microphone. */
12
+ checkMicrophone: string;
13
+ }
14
+ export declare const DEFAULT_AUDIO_RECORDER_MICROPHONE_MESSAGES: AudioRecorderMicrophoneMessages;
15
+ //# sourceMappingURL=audio-recorder-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-recorder-messages.d.ts","sourceRoot":"","sources":["../../src/media-controls/audio-recorder-messages.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,MAAM,WAAW,+BAA+B;IAC9C,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,0CAA0C,EAAE,+BAMxD,CAAC"}
@@ -1,11 +1,7 @@
1
- import type { ProctoringClient } from "@a4anthony/proctorkit-sdk";
2
- /**
3
- * Local fallbacks for `<AudioPlayer>` / `<VideoPlayer>` used when no SDK
4
- * client is supplied (docs examples, Storybook standalone stories,
5
- * pre-session UIs). Same handle surface as the SDK helpers, no telemetry.
6
- */
1
+ import { type ProctoringClient } from "@a4anthony/proctorkit-sdk";
7
2
  export type AudioPlaybackClient = Pick<ProctoringClient, "playAudioFile">;
8
3
  export type VideoPlaybackClient = Pick<ProctoringClient, "playVideoFile">;
4
+ /** Standalone components use the SDK recovery engine without session telemetry. */
9
5
  export declare function createLocalAudioPlaybackClient(): AudioPlaybackClient;
10
6
  export declare function createLocalVideoPlaybackClient(): VideoPlaybackClient;
11
7
  //# sourceMappingURL=local-media-playback-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"local-media-playback-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/local-media-playback-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AAEH,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAE1E,wBAAgB,8BAA8B,IAAI,mBAAmB,CASpE;AAED,wBAAgB,8BAA8B,IAAI,mBAAmB,CAkBpE"}
1
+ {"version":3,"file":"local-media-playback-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/local-media-playback-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAC1E,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAE1E,mFAAmF;AACnF,wBAAgB,8BAA8B,IAAI,mBAAmB,CAEpE;AAED,wBAAgB,8BAA8B,IAAI,mBAAmB,CAEpE"}
@@ -1 +1 @@
1
- {"version":3,"file":"local-media-recording-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/local-media-recording-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AAEnC;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;AAChF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;AA8BhF,wBAAgB,+BAA+B,IAAI,uBAAuB,CAgHzE;AAmBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,IAAI,uBAAuB,CA2GzE"}
1
+ {"version":3,"file":"local-media-recording-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/local-media-recording-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AAMnC;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;AAChF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;AAoChF,wBAAgB,+BAA+B,IAAI,uBAAuB,CAgIzE;AAiCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,IAAI,uBAAuB,CA4HzE"}
@@ -0,0 +1,9 @@
1
+ /** Controlled, permission-free previews of recovery controls. */
2
+ export declare function mediaRecoveryStory(kind: "audio" | "video", scenario: "primary-loading" | "fallback-loading" | "both-failed" | "retry-recovery"): {
3
+ render: () => {
4
+ setup(): () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
5
+ [key: string]: any;
6
+ }>;
7
+ };
8
+ };
9
+ //# sourceMappingURL=media-recovery-story.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-recovery-story.d.ts","sourceRoot":"","sources":["../../src/media-controls/media-recovery-story.ts"],"names":[],"mappings":"AASA,iEAAiE;AACjE,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,GAAG,OAAO,EACvB,QAAQ,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,aAAa,GAAG,gBAAgB;;;;;;EAqGpF"}
@@ -25,5 +25,7 @@ export declare function createTimeline(limit?: number): {
25
25
  export declare function createMockProctoringClient(options: {
26
26
  addEvent: (kind: string, detail: string, tone?: TimelineItem["tone"]) => void;
27
27
  shouldDropUpload?: () => boolean;
28
+ uploadDelayMs?: () => number;
29
+ retryDelayMs?: () => number;
28
30
  }): ProctoringClient;
29
31
  //# sourceMappingURL=storybook-mock-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storybook-mock-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/storybook-mock-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAEvB,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AAInC,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;CACtC,CAAC;AA+GF,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,GACnD,MAAM,CAKR;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,GACnD,YAAY,CAAC,MAAM,CAAC,CAGtB;AAED,wBAAgB,cAAc,CAAC,KAAK,SAAK;qBAK/B,MAAM,UACJ,MAAM,SACR,YAAY,CAAC,MAAM,CAAC;;;YA1IxB,MAAM;cACJ,MAAM;gBACJ,MAAM;cACR,SAAS,GAAG,SAAS,GAAG,MAAM;;YAHhC,MAAM;cACJ,MAAM;gBACJ,MAAM;cACR,SAAS,GAAG,SAAS,GAAG,MAAM;;EAmJrC;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9E,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;CAClC,GAAG,gBAAgB,CAgUnB"}
1
+ {"version":3,"file":"storybook-mock-client.d.ts","sourceRoot":"","sources":["../../src/media-controls/storybook-mock-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EAIvB,gBAAgB,EAEjB,MAAM,2BAA2B,CAAC;AASnC,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;CACtC,CAAC;AAkHF,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,GACnD,MAAM,CAUR;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,GACnD,YAAY,CAAC,MAAM,CAAC,CAGtB;AAED,wBAAgB,cAAc,CAAC,KAAK,SAAK;qBAIf,MAAM,UAAU,MAAM,SAAQ,YAAY,CAAC,MAAM,CAAC;;;YA/ItE,MAAM;cACJ,MAAM;gBACJ,MAAM;cACR,SAAS,GAAG,SAAS,GAAG,MAAM;;YAHhC,MAAM;cACJ,MAAM;gBACJ,MAAM;cACR,SAAS,GAAG,SAAS,GAAG,MAAM;;EAuJrC;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE;IAClD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC9E,gBAAgB,CAAC,EAAE,MAAM,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;CAC7B,GAAG,gBAAgB,CAsZnB"}
@@ -1,25 +1,60 @@
1
- import type { AudioClipVolumeAnalysis, ClipDropCode, ClipStartErrorCode, SessionEvent } from "@a4anthony/proctorkit-sdk";
1
+ import type { AudioClipAnswerReference, AudioClipFallbackSelection, AudioClipVolumeAnalysis, ClipDropCode, ClipStartErrorCode, SessionEvent } from "@a4anthony/proctorkit-sdk";
2
2
  export type MediaClipKind = "audio" | "video";
3
+ export type AudioClipProctoringFallback = AudioClipAnswerReference;
3
4
  /** Stable codes re-exported from the SDK for the media event payloads. */
4
5
  export type MediaClipDropCode = ClipDropCode;
5
6
  export type MediaClipErrorCode = ClipStartErrorCode;
6
7
  export interface MediaClipStartedPayload {
7
8
  kind: MediaClipKind;
9
+ /** Stable opaque identity supplied by the host or generated by ProctorKit. */
10
+ clipId: string;
11
+ /** Provisional until the upload response allocates the canonical number. */
8
12
  clipNumber: number;
9
13
  }
10
14
  export interface MediaClipStoppedPayload {
11
15
  kind: MediaClipKind;
16
+ clipId: string;
17
+ /** Provisional until the upload response allocates the canonical number. */
12
18
  clipNumber: number;
13
19
  }
14
20
  export interface MediaClipUploadedPayload {
15
21
  kind: MediaClipKind;
22
+ clipId: string;
23
+ /**
24
+ * Destination that accepted the recording and caused this component result.
25
+ * `client` means the host-supplied `sendClip`; `proctorkit` means ProctorKit
26
+ * stored the clip; `local` is the standalone simulated result with no upload.
27
+ */
28
+ delivery: "client" | "fallback" | "proctorkit" | "local";
29
+ /**
30
+ * Provisional for `delivery: "client"` or `"local"`; canonical and
31
+ * session-scoped for `delivery: "fallback"` or `"proctorkit"`. Use clipId
32
+ * as the stable key.
33
+ */
16
34
  clipNumber: number;
17
35
  byteSize: number;
18
36
  durationMs: number;
19
37
  volumeAnalysis?: AudioClipVolumeAnalysis;
38
+ /** Present when ProctorKit durably stored the client answer mapping. */
39
+ answerReference?: AudioClipAnswerReference;
40
+ /** Present only after the server persisted the client-reported selection. */
41
+ fallbackSelection?: AudioClipFallbackSelection;
42
+ /** Content digest from the server's exact fallback-selection receipt. */
43
+ contentSha256?: string;
20
44
  }
45
+ /** The narrowed payload emitted after a mapped ProctorKit fallback is durable. */
46
+ export type AudioClipFallbackUploadedPayload = MediaClipUploadedPayload & {
47
+ kind: "audio";
48
+ delivery: "fallback";
49
+ answerReference: AudioClipAnswerReference;
50
+ fallbackSelection: AudioClipFallbackSelection;
51
+ contentSha256: string;
52
+ };
53
+ /** Narrow a generic recorder upload event to the durable audio fallback contract. */
54
+ export declare function isAudioClipFallbackUploadedPayload(payload: MediaClipUploadedPayload): payload is AudioClipFallbackUploadedPayload;
21
55
  export interface MediaClipDroppedPayload {
22
56
  kind: MediaClipKind;
57
+ clipId: string;
23
58
  clipNumber: number;
24
59
  /** Stable, machine-readable classification of the drop. */
25
60
  code: MediaClipDropCode;
@@ -52,26 +87,47 @@ export interface MediaPlaybackThrownErrorPayload {
52
87
  message: string;
53
88
  }
54
89
  /**
55
- * The finalized clip handed to a host-supplied mirror. Receives a Blob
90
+ * The finalized clip handed to a host-supplied primary destination. Receives a Blob
56
91
  * (drop straight into fetch/FormData or a presigned PUT) plus the
57
92
  * metadata needed to associate it on the host's side. Resolve = the
58
- * mirror succeeded; reject/throw = it failed (non-fatal — see
93
+ * client delivery succeeded; reject/throw = it failed (see
59
94
  * MediaClipMirrorErrorPayload).
60
95
  */
61
96
  export interface MediaClipData {
62
97
  blob: Blob;
63
98
  mimeType: string;
64
99
  durationMs: number;
100
+ clipId: string;
65
101
  clipNumber: number;
102
+ /** Audio-only analysis when the recorder could calculate it. */
103
+ volumeAnalysis?: AudioClipVolumeAnalysis;
104
+ }
105
+ /**
106
+ * Optional controls supplied to a host `sendClip` implementation.
107
+ *
108
+ * Call `reportProgress` with a percentage from 0 to 100 when the transport
109
+ * exposes upload progress. Values outside that range are clamped by the
110
+ * recorder. If progress is never reported, the recorder keeps its internal
111
+ * indicator indeterminate. `signal` is aborted when the recorder unmounts;
112
+ * transports that support cancellation may observe it.
113
+ */
114
+ export interface MediaClipSendContext {
115
+ reportProgress?: (percentage: number) => void;
116
+ signal?: AbortSignal;
66
117
  }
67
- export type MediaClipDataSink = (clip: MediaClipData) => Promise<unknown>;
68
118
  /**
69
- * Emitted when a host-supplied clip mirror rejects. The clip itself is
70
- * still uploaded to the proctoring server, so this is informational —
71
- * it never accompanies a `dropped`.
119
+ * Host primary delivery for a finalized recording. The optional second
120
+ * argument is backward-compatible with existing one-argument sinks.
121
+ */
122
+ export type MediaClipDataSink = (clip: MediaClipData, context?: MediaClipSendContext) => Promise<unknown>;
123
+ /**
124
+ * Emitted when a host-supplied `sendClip` rejects. The recording remains
125
+ * available for an exact-byte retry. The historical name is retained for
126
+ * compatibility even though `sendClip` is now the primary destination.
72
127
  */
73
128
  export interface MediaClipMirrorErrorPayload {
74
129
  kind: MediaClipKind;
130
+ clipId: string;
75
131
  clipNumber: number;
76
132
  error: Error;
77
133
  message: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/media-controls/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACb,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,OAAO,CAAC;AAE9C,0EAA0E;AAC1E,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAC7C,MAAM,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAEpD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,uBAAuB,CAAC;CAC1C;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,2DAA2D;IAC3D,IAAI,EAAE,iBAAiB,CAAC;IACxB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,uBAAuB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,aAAa,CAAC;IACpB,+DAA+D;IAC/D,IAAI,EAAE,kBAAkB,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE1E;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,yBAA0B,SAAQ,yBAAyB;IAC1E,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,8BAA8B;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,yBAAyB,GAAG,yBAAyB,CAAC;AAClE,MAAM,MAAM,yBAAyB,GAAG,yBAAyB,CAAC;AAClE,MAAM,MAAM,8BAA8B,GAAG,8BAA8B,CAAC;AAE5E,MAAM,MAAM,yBAAyB,GAAG,yBAAyB,CAAC;AAClE,MAAM,MAAM,yBAAyB,GAAG,yBAAyB,CAAC;AAClE,MAAM,MAAM,8BAA8B,GAAG,8BAA8B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/media-controls/types.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,8 @@ export type MediaPartClasses<TPart extends string> = Partial<Record<TPart, Media
5
5
  export type MediaPartStyles<TPart extends string> = Partial<Record<TPart, CSSProperties>>;
6
6
  export type AudioPlayerPart = "root" | "surface" | "content" | "icon" | "media" | "timeline" | "time" | "progress" | "buffered" | "elapsed" | "metadata" | "error" | "controls" | "action" | "meta";
7
7
  export type VideoPlayerPart = "root" | "surface" | "viewport" | "media" | "buffering" | "bufferingIcon" | "timeline" | "time" | "progress" | "buffered" | "elapsed" | "metadata" | "error" | "controls" | "action" | "meta";
8
- export type AudioRecorderPart = "root" | "waveform" | "waveformTrack" | "waveformBar" | "surface" | "content" | "icon" | "timeline" | "time" | "progress" | "elapsed" | "metadata" | "error" | "controls" | "status" | "action" | "meta";
9
- export type VideoRecorderPart = "root" | "surface" | "viewport" | "media" | "placeholder" | "placeholderIcon" | "timeline" | "time" | "progress" | "elapsed" | "error" | "controls" | "status" | "action" | "meta";
8
+ export type AudioRecorderPart = "root" | "waveform" | "waveformTrack" | "waveformBar" | "surface" | "content" | "icon" | "timeline" | "time" | "progress" | "elapsed" | "metadata" | "error" | "controls" | "status" | "uploadProgressContainer" | "uploadProgress" | "uploadProgressLabel" | "uploadProgressIndicator" | "action" | "meta" | "microphoneHint" | "microphoneCheck";
9
+ export type VideoRecorderPart = "root" | "surface" | "viewport" | "media" | "placeholder" | "placeholderIcon" | "timeline" | "time" | "progress" | "elapsed" | "error" | "controls" | "status" | "uploadProgressContainer" | "uploadProgress" | "uploadProgressLabel" | "uploadProgressIndicator" | "action" | "meta";
10
10
  export interface ProctoringMediaTheme {
11
11
  colors?: {
12
12
  brand?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ui-config.d.ts","sourceRoot":"","sources":["../../src/media-controls/ui-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-config.d.ts","sourceRoot":"","sources":["../../src/media-controls/ui-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { type Ref } from "vue";
2
+ /**
3
+ * Live version of the SDK's passive input-liveness rule, for a take that is
4
+ * recording. `noInput` turns true while the input has stayed digitally silent
5
+ * (or muted) long enough to be worth a hint, and false again as soon as any
6
+ * input arrives. It reads the stream the recorder already holds; it never
7
+ * opens a microphone of its own.
8
+ *
9
+ * It is a hint signal only. The rule cannot tell a dead microphone from a
10
+ * noise-gated one, so nothing may block on it.
11
+ */
12
+ export declare function useLiveInputCheck(options: {
13
+ stream: Ref<MediaStream | undefined>;
14
+ active: Ref<boolean>;
15
+ }): {
16
+ noInput: Ref<boolean, boolean>;
17
+ };
18
+ //# sourceMappingURL=useLiveInputCheck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLiveInputCheck.d.ts","sourceRoot":"","sources":["../../src/media-controls/useLiveInputCheck.ts"],"names":[],"mappings":"AACA,OAAO,EAA+B,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAM5D;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,MAAM,EAAE,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;CACtB;;EAwEA"}