@mieweb/ui 0.11.0-dev.52 → 0.11.0-dev.54
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/agent/evals/runs/2026-11-05.md +92 -0
- package/dist/{chunk-XWGPEIVB.cjs → chunk-2UGMTGH2.cjs} +17 -5
- package/dist/chunk-2UGMTGH2.cjs.map +1 -0
- package/dist/{chunk-L3JA7EDU.js → chunk-DDP7XWIL.js} +17 -5
- package/dist/chunk-DDP7XWIL.js.map +1 -0
- package/dist/index.cjs +368 -197
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +44 -2
- package/dist/index.d.ts +44 -2
- package/dist/index.js +367 -197
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +4 -4
- package/dist/tailwind-preset.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-L3JA7EDU.js.map +0 -1
- package/dist/chunk-XWGPEIVB.cjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -137,7 +137,7 @@ export { useMediaTransport } from './chunk-4LKAZW2W.js';
|
|
|
137
137
|
export { useUrlTab } from './chunk-CVNPNZMX.js';
|
|
138
138
|
import './chunk-7XUN3OQT.js';
|
|
139
139
|
export { formatPhoneNumber, isPhoneNumberEmpty, isValidPhoneNumber, unformatPhoneNumber } from './chunk-ZVPJ2MH6.js';
|
|
140
|
-
export { miewebUIPreset, miewebUISafelist } from './chunk-
|
|
140
|
+
export { miewebUIPreset, miewebUISafelist } from './chunk-DDP7XWIL.js';
|
|
141
141
|
export { Accordion } from './chunk-BHKGVFTY.js';
|
|
142
142
|
import './chunk-H2Y7HZV5.js';
|
|
143
143
|
export { AvatarGroup, defaultAvatarGroupLabels } from './chunk-DVDT7TX7.js';
|
|
@@ -226,7 +226,7 @@ import * as React16 from 'react';
|
|
|
226
226
|
import React16__default, { createContext, useState, useEffect, useCallback, useMemo, useContext, useRef, useId } from 'react';
|
|
227
227
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
228
228
|
import { cva } from 'class-variance-authority';
|
|
229
|
-
import { AudioWaveform, Play, Pause, FileUp, X, AlertCircle, VolumeX, Volume2, Minimize2, Maximize2, ZoomOut, ZoomIn, LocateFixed, Search, Calendar as Calendar$1, ChevronLeft, ChevronRight as ChevronRight$1, ChevronDown as ChevronDown$1, FolderUp, Upload, Edit2, Check, ChevronUp, Phone as Phone$1, Mail as Mail$1, Clock as Clock$1, MapPin, Shield, Building2, SlidersHorizontal, Trash2 as Trash2$1, Pencil as Pencil$1, Plus as Plus$1, ExternalLink as ExternalLink$1, Link, AlertTriangle as AlertTriangle$1, RefreshCw } from 'lucide-react';
|
|
229
|
+
import { AudioWaveform, Play, Pause, FileUp, X, AlertCircle, Users as Users$1, VolumeX, Volume2, Minimize2, Maximize2, ZoomOut, ZoomIn, LocateFixed, Search, Calendar as Calendar$1, ChevronLeft, ChevronRight as ChevronRight$1, ChevronDown as ChevronDown$1, FolderUp, Upload, Edit2, Check, ChevronUp, Phone as Phone$1, Mail as Mail$1, Clock as Clock$1, MapPin, Shield, Building2, SlidersHorizontal, Trash2 as Trash2$1, Pencil as Pencil$1, Plus as Plus$1, ExternalLink as ExternalLink$1, Link, AlertTriangle as AlertTriangle$1, RefreshCw } from 'lucide-react';
|
|
230
230
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
231
231
|
import * as ReactDOM from 'react-dom';
|
|
232
232
|
import { createPortal } from 'react-dom';
|
|
@@ -3759,18 +3759,10 @@ function overlappingLanes({ probabilities, numSpeakers }, [from, to], primary) {
|
|
|
3759
3759
|
}
|
|
3760
3760
|
return lanes;
|
|
3761
3761
|
}
|
|
3762
|
-
function
|
|
3763
|
-
const ids = names.map((_, lane) => `lane-${lane}`);
|
|
3762
|
+
function buildTranscript(words, attribute, { durationMs, speakers, speakerActivity }) {
|
|
3764
3763
|
const segments = [];
|
|
3765
3764
|
for (const word of words) {
|
|
3766
|
-
const
|
|
3767
|
-
const means = laneMeans(frames, range);
|
|
3768
|
-
let lane = 0;
|
|
3769
|
-
for (let l = 1; l < means.length; l++) if (means[l] > means[lane]) lane = l;
|
|
3770
|
-
const speakerId = ids[lane] ?? `lane-${lane}`;
|
|
3771
|
-
const others = overlappingLanes(frames, range, lane).map(
|
|
3772
|
-
(l) => ids[l] ?? `lane-${l}`
|
|
3773
|
-
);
|
|
3765
|
+
const { speakerId, others } = attribute(word);
|
|
3774
3766
|
const spoken = {
|
|
3775
3767
|
text: word.text.trim(),
|
|
3776
3768
|
startMs: ms(word.start),
|
|
@@ -3794,19 +3786,104 @@ function transcriptFromFrames(words, frames, names, durationSeconds) {
|
|
|
3794
3786
|
...others.length ? { overlapSpeakerIds: others } : {}
|
|
3795
3787
|
});
|
|
3796
3788
|
}
|
|
3797
|
-
const speakerActivity = laneActivity(frames);
|
|
3798
3789
|
const heard = /* @__PURE__ */ new Set([
|
|
3799
3790
|
...segments.map((s) => s.speakerId),
|
|
3800
3791
|
...speakerActivity.map((a) => a.speakerId)
|
|
3801
3792
|
]);
|
|
3802
3793
|
return {
|
|
3803
|
-
durationMs
|
|
3804
|
-
speakers:
|
|
3794
|
+
durationMs,
|
|
3795
|
+
speakers: speakers.filter((s) => heard.has(s.id)),
|
|
3805
3796
|
segments,
|
|
3806
3797
|
words: segments.flatMap((s) => s.words),
|
|
3807
3798
|
speakerActivity
|
|
3808
3799
|
};
|
|
3809
3800
|
}
|
|
3801
|
+
var laneSpeakers = (names) => names.map((name, lane) => ({ id: `lane-${lane}`, name }));
|
|
3802
|
+
function timelineFromFrames(frames, names, durationSeconds) {
|
|
3803
|
+
const speakerActivity = laneActivity(frames);
|
|
3804
|
+
const heard = new Set(speakerActivity.map((a) => a.speakerId));
|
|
3805
|
+
return {
|
|
3806
|
+
durationMs: ms(durationSeconds),
|
|
3807
|
+
speakers: laneSpeakers(names).filter((s) => heard.has(s.id)),
|
|
3808
|
+
speakerActivity
|
|
3809
|
+
};
|
|
3810
|
+
}
|
|
3811
|
+
function transcriptFromFrames(words, frames, names, durationSeconds) {
|
|
3812
|
+
const id = (lane) => `lane-${lane}`;
|
|
3813
|
+
return buildTranscript(
|
|
3814
|
+
words,
|
|
3815
|
+
(word) => {
|
|
3816
|
+
const range = wordFrameRange(frames, word);
|
|
3817
|
+
const means = laneMeans(frames, range);
|
|
3818
|
+
let lane = 0;
|
|
3819
|
+
for (let l = 1; l < means.length; l++)
|
|
3820
|
+
if (means[l] > means[lane]) lane = l;
|
|
3821
|
+
return {
|
|
3822
|
+
speakerId: id(lane),
|
|
3823
|
+
others: overlappingLanes(frames, range, lane).map(id)
|
|
3824
|
+
};
|
|
3825
|
+
},
|
|
3826
|
+
// Every named lane: a word can land on a lane with no activity of its own.
|
|
3827
|
+
{
|
|
3828
|
+
...timelineFromFrames(frames, names, durationSeconds),
|
|
3829
|
+
speakers: laneSpeakers(names)
|
|
3830
|
+
}
|
|
3831
|
+
);
|
|
3832
|
+
}
|
|
3833
|
+
function transcriptFromActivity(words, timeline) {
|
|
3834
|
+
const spans = timeline.speakerActivity;
|
|
3835
|
+
const speakers = timeline.speakers.length ? timeline.speakers : [{ id: "lane-0", name: "Speaker 1" }];
|
|
3836
|
+
const fallback = speakers[0].id;
|
|
3837
|
+
return buildTranscript(
|
|
3838
|
+
words,
|
|
3839
|
+
(word) => {
|
|
3840
|
+
const from = ms(word.start);
|
|
3841
|
+
const to = Math.max(ms(word.end), from + 1);
|
|
3842
|
+
const heard = spans.filter((s) => s.startMs < to && s.endMs > from);
|
|
3843
|
+
if (heard.length === 0) {
|
|
3844
|
+
const gap = (s) => Math.max(s.startMs - to, from - s.endMs);
|
|
3845
|
+
const nearest = spans.reduce(
|
|
3846
|
+
(best, s) => !best || gap(s) < gap(best) ? s : best,
|
|
3847
|
+
void 0
|
|
3848
|
+
);
|
|
3849
|
+
return { speakerId: nearest?.speakerId ?? fallback, others: [] };
|
|
3850
|
+
}
|
|
3851
|
+
const within = (s) => [
|
|
3852
|
+
Math.max(from, s.startMs),
|
|
3853
|
+
Math.min(to, s.endMs)
|
|
3854
|
+
];
|
|
3855
|
+
const totals = /* @__PURE__ */ new Map();
|
|
3856
|
+
for (const s of heard) {
|
|
3857
|
+
const [start, end] = within(s);
|
|
3858
|
+
totals.set(s.speakerId, (totals.get(s.speakerId) ?? 0) + end - start);
|
|
3859
|
+
}
|
|
3860
|
+
const rank = (id) => {
|
|
3861
|
+
const i = speakers.findIndex((s) => s.id === id);
|
|
3862
|
+
return i < 0 ? Infinity : i;
|
|
3863
|
+
};
|
|
3864
|
+
let speakerId = heard[0].speakerId;
|
|
3865
|
+
for (const [id, total] of totals) {
|
|
3866
|
+
const best = totals.get(speakerId) ?? 0;
|
|
3867
|
+
if (total > best || total === best && rank(id) < rank(speakerId))
|
|
3868
|
+
speakerId = id;
|
|
3869
|
+
}
|
|
3870
|
+
const mine = heard.filter((s) => s.speakerId === speakerId);
|
|
3871
|
+
const together = (s) => {
|
|
3872
|
+
const [start, end] = within(s);
|
|
3873
|
+
return mine.some(
|
|
3874
|
+
(m) => Math.min(end, m.endMs) > Math.max(start, m.startMs)
|
|
3875
|
+
);
|
|
3876
|
+
};
|
|
3877
|
+
const others = [
|
|
3878
|
+
...new Set(
|
|
3879
|
+
heard.filter((s) => s.speakerId !== speakerId && together(s)).map((s) => s.speakerId)
|
|
3880
|
+
)
|
|
3881
|
+
];
|
|
3882
|
+
return { speakerId, others };
|
|
3883
|
+
},
|
|
3884
|
+
{ ...timeline, speakers }
|
|
3885
|
+
);
|
|
3886
|
+
}
|
|
3810
3887
|
|
|
3811
3888
|
// src/components/AI/HeyOzwell/audio.ts
|
|
3812
3889
|
function openRollingRecorder(stream, maxSeconds = 2) {
|
|
@@ -4020,6 +4097,7 @@ function listenNemotron(stream, options, onStage) {
|
|
|
4020
4097
|
let cursor = 0;
|
|
4021
4098
|
let pushed = Promise.resolve();
|
|
4022
4099
|
let open = true;
|
|
4100
|
+
let paused = false;
|
|
4023
4101
|
const close = () => {
|
|
4024
4102
|
if (!open) return;
|
|
4025
4103
|
open = false;
|
|
@@ -4031,7 +4109,7 @@ function listenNemotron(stream, options, onStage) {
|
|
|
4031
4109
|
const fresh = recorder.snapshotFrom(cursor);
|
|
4032
4110
|
cursor += fresh.length;
|
|
4033
4111
|
recorder.discardBefore(cursor);
|
|
4034
|
-
if (fresh.length > 0) {
|
|
4112
|
+
if (fresh.length > 0 && !paused) {
|
|
4035
4113
|
const samples = resampleTo16kMono(fresh, recorder.sampleRate);
|
|
4036
4114
|
pushed = pushed.then(() => nemotron.push(samples));
|
|
4037
4115
|
pushed.catch(() => {
|
|
@@ -4053,6 +4131,14 @@ function listenNemotron(stream, options, onStage) {
|
|
|
4053
4131
|
void pushed.catch(() => {
|
|
4054
4132
|
}).then(() => nemotron.finish()).catch(() => {
|
|
4055
4133
|
});
|
|
4134
|
+
},
|
|
4135
|
+
pause: () => {
|
|
4136
|
+
drain();
|
|
4137
|
+
paused = true;
|
|
4138
|
+
},
|
|
4139
|
+
resume: () => {
|
|
4140
|
+
drain();
|
|
4141
|
+
paused = false;
|
|
4056
4142
|
}
|
|
4057
4143
|
};
|
|
4058
4144
|
}
|
|
@@ -4284,7 +4370,9 @@ function useNemotronDiarization({
|
|
|
4284
4370
|
names,
|
|
4285
4371
|
namespace: nsRef.current,
|
|
4286
4372
|
hydrated: hydratedRef.current,
|
|
4287
|
-
cancel: listener.cancel
|
|
4373
|
+
cancel: listener.cancel,
|
|
4374
|
+
pause: listener.pause,
|
|
4375
|
+
resume: listener.resume
|
|
4288
4376
|
};
|
|
4289
4377
|
return session;
|
|
4290
4378
|
},
|
|
@@ -4331,6 +4419,27 @@ function useNemotronDiarization({
|
|
|
4331
4419
|
}),
|
|
4332
4420
|
[track, labelSpeakers]
|
|
4333
4421
|
);
|
|
4422
|
+
const finish = React16.useCallback(
|
|
4423
|
+
(live) => {
|
|
4424
|
+
const session = live;
|
|
4425
|
+
const stopping = session.namespace === nsRef.current ? session.listener.stop() : null;
|
|
4426
|
+
if (stopping) stopping.catch(() => {
|
|
4427
|
+
});
|
|
4428
|
+
else session.cancel();
|
|
4429
|
+
return track(async (assertNamespace) => {
|
|
4430
|
+
if (!stopping)
|
|
4431
|
+
throw new Error("Voiceprint namespace changed during processing");
|
|
4432
|
+
const frames = await stopping;
|
|
4433
|
+
assertNamespace();
|
|
4434
|
+
return timelineFromFrames(
|
|
4435
|
+
frames,
|
|
4436
|
+
laneNames(frames, session.names),
|
|
4437
|
+
frames.numFrames * frames.frameDurationSeconds
|
|
4438
|
+
);
|
|
4439
|
+
});
|
|
4440
|
+
},
|
|
4441
|
+
[track]
|
|
4442
|
+
);
|
|
4334
4443
|
const voices = React16.useMemo(
|
|
4335
4444
|
() => prints.map((p) => ({
|
|
4336
4445
|
name: p.name,
|
|
@@ -4348,7 +4457,8 @@ function useNemotronDiarization({
|
|
|
4348
4457
|
enroll,
|
|
4349
4458
|
removeVoice,
|
|
4350
4459
|
listen,
|
|
4351
|
-
diarize
|
|
4460
|
+
diarize,
|
|
4461
|
+
finish
|
|
4352
4462
|
};
|
|
4353
4463
|
}
|
|
4354
4464
|
|
|
@@ -6847,6 +6957,8 @@ var DEFAULT_TRANSCRIPT_PLAYER_LABELS = {
|
|
|
6847
6957
|
searchTranscript: "Search transcript",
|
|
6848
6958
|
searchPlaceholder: "Search transcript\u2026",
|
|
6849
6959
|
showSpeakers: "Show speakers",
|
|
6960
|
+
showSpeakerLanes: "Show speakers",
|
|
6961
|
+
hideSpeakerLanes: "Hide speakers",
|
|
6850
6962
|
allSpeakers: "All speakers",
|
|
6851
6963
|
someSpeakers: "Some speakers",
|
|
6852
6964
|
noTranscript: "No transcript for this recording.",
|
|
@@ -6870,7 +6982,7 @@ var DEFAULT_TRANSCRIPT_PLAYER_LABELS = {
|
|
|
6870
6982
|
seekValue: (current, total) => `${current} of ${total}`,
|
|
6871
6983
|
windowValue: (start, end) => `${start} to ${end}`
|
|
6872
6984
|
};
|
|
6873
|
-
var ROW_GRID = "grid grid-cols-[6.
|
|
6985
|
+
var ROW_GRID = "grid grid-cols-[var(--tp-label,6.5rem)_minmax(0,1fr)] items-center gap-x-3";
|
|
6874
6986
|
var HIDE_DELAY_MS = 150;
|
|
6875
6987
|
var viewFraction = (time, view) => view.span > 0 ? Math.min(1, Math.max(0, (time - view.start) / view.span)) : 0;
|
|
6876
6988
|
var timeAtPointer = (clientX, element, view) => {
|
|
@@ -7267,10 +7379,13 @@ function TimelineOverview({
|
|
|
7267
7379
|
{
|
|
7268
7380
|
"aria-hidden": "true",
|
|
7269
7381
|
className: "text-muted-foreground relative mx-9 mt-1 h-4 text-[11px] tabular-nums",
|
|
7270
|
-
children: ticksFor(whole).map((t) => /* @__PURE__ */ jsx(
|
|
7382
|
+
children: ticksFor(whole).map((t, i) => /* @__PURE__ */ jsx(
|
|
7271
7383
|
"span",
|
|
7272
7384
|
{
|
|
7273
|
-
className:
|
|
7385
|
+
className: cn(
|
|
7386
|
+
"absolute -translate-x-1/2",
|
|
7387
|
+
i % 2 === 1 && "hidden @md:inline"
|
|
7388
|
+
),
|
|
7274
7389
|
style: {
|
|
7275
7390
|
// rtl-ignore -- time axis inside the player's dir="ltr" timeline
|
|
7276
7391
|
left: `${viewFraction(t, whole) * 100}%`
|
|
@@ -7329,7 +7444,8 @@ var Row = React16.memo(function Row2({
|
|
|
7329
7444
|
"aria-posinset": posInSet,
|
|
7330
7445
|
onClick: () => onPlay(utterance),
|
|
7331
7446
|
className: cn(
|
|
7332
|
-
|
|
7447
|
+
// Narrow hosts put the text on its own line under the time and speaker.
|
|
7448
|
+
"flex cursor-pointer flex-wrap items-start gap-x-3 gap-y-1 rounded-lg px-2 py-2 text-sm @md:flex-nowrap",
|
|
7333
7449
|
active ? "bg-primary-50 dark:bg-primary-950/40" : "hover:bg-muted/60"
|
|
7334
7450
|
),
|
|
7335
7451
|
children: [
|
|
@@ -7371,7 +7487,7 @@ var Row = React16.memo(function Row2({
|
|
|
7371
7487
|
]
|
|
7372
7488
|
}
|
|
7373
7489
|
),
|
|
7374
|
-
/* @__PURE__ */ jsxs("span", { className: "min-w-0
|
|
7490
|
+
/* @__PURE__ */ jsxs("span", { className: "min-w-0 grow basis-full ps-9 @md:basis-0 @md:ps-0", children: [
|
|
7375
7491
|
utterance.text ? highlight(utterance.text, query) : /* @__PURE__ */ jsx("span", { className: "text-muted-foreground italic", children: labels.noWords }),
|
|
7376
7492
|
overlap && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground border-border ms-2 inline-block max-w-full rounded border px-1.5 text-[11px] break-words", children: labels.overlapWith(overlap) })
|
|
7377
7493
|
] })
|
|
@@ -7459,7 +7575,7 @@ function TranscriptList({
|
|
|
7459
7575
|
"p",
|
|
7460
7576
|
{
|
|
7461
7577
|
role: "status",
|
|
7462
|
-
className: "text-muted-foreground flex
|
|
7578
|
+
className: "text-muted-foreground flex items-center justify-center p-6 text-center text-sm",
|
|
7463
7579
|
children: emptyMessage
|
|
7464
7580
|
}
|
|
7465
7581
|
);
|
|
@@ -7478,7 +7594,7 @@ function TranscriptList({
|
|
|
7478
7594
|
if (e.target === e.currentTarget && USER_SCROLL_KEYS.has(e.key))
|
|
7479
7595
|
setDetached(true);
|
|
7480
7596
|
},
|
|
7481
|
-
className: "focus-visible:ring-ring h-80 overflow-y-auto rounded-lg focus-visible:ring-2 focus-visible:outline-none",
|
|
7597
|
+
className: "focus-visible:ring-ring max-h-80 overflow-y-auto rounded-lg focus-visible:ring-2 focus-visible:outline-none",
|
|
7482
7598
|
children: virtualize ? /* @__PURE__ */ jsx(
|
|
7483
7599
|
"div",
|
|
7484
7600
|
{
|
|
@@ -7724,7 +7840,7 @@ function inertOutside(element) {
|
|
|
7724
7840
|
}
|
|
7725
7841
|
return () => changed.forEach((el) => el.removeAttribute("inert"));
|
|
7726
7842
|
}
|
|
7727
|
-
var TRACK_OFFSET = "
|
|
7843
|
+
var TRACK_OFFSET = "calc(var(--tp-label, 6.5rem) + 0.75rem)";
|
|
7728
7844
|
var pressedButton = "aria-pressed:bg-primary-50 aria-pressed:text-primary-800 dark:aria-pressed:bg-primary-950 dark:aria-pressed:text-primary-200";
|
|
7729
7845
|
function TranscriptPlayer({
|
|
7730
7846
|
src,
|
|
@@ -7732,11 +7848,17 @@ function TranscriptPlayer({
|
|
|
7732
7848
|
speakerLabels,
|
|
7733
7849
|
peaks: providedPeaks,
|
|
7734
7850
|
labels: labelOverrides,
|
|
7851
|
+
collapsibleLanes = false,
|
|
7852
|
+
showSpeakerPanel = true,
|
|
7853
|
+
sticky = true,
|
|
7735
7854
|
className
|
|
7736
7855
|
}) {
|
|
7737
7856
|
const rootRef = React16.useRef(null);
|
|
7738
7857
|
const fullscreenButtonRef = React16.useRef(null);
|
|
7739
7858
|
const transcriptHeadingId = React16.useId();
|
|
7859
|
+
const lanesId = React16.useId();
|
|
7860
|
+
const [lanesOpen, setLanesOpen] = React16.useState(!collapsibleLanes);
|
|
7861
|
+
const showLanes = !collapsibleLanes || lanesOpen;
|
|
7740
7862
|
const labels = React16.useMemo(
|
|
7741
7863
|
() => ({ ...DEFAULT_TRANSCRIPT_PLAYER_LABELS, ...labelOverrides }),
|
|
7742
7864
|
[labelOverrides]
|
|
@@ -7818,7 +7940,10 @@ function TranscriptPlayer({
|
|
|
7818
7940
|
const onKeyDown = (event) => {
|
|
7819
7941
|
if (event.key !== "Escape" || document.fullscreenElement) return;
|
|
7820
7942
|
const target = event.target;
|
|
7821
|
-
if (target?.closest?.(
|
|
7943
|
+
if (target?.closest?.(
|
|
7944
|
+
'[aria-expanded="true"][aria-haspopup]:not([aria-haspopup="false"])'
|
|
7945
|
+
))
|
|
7946
|
+
return;
|
|
7822
7947
|
if (target?.type === "search" && target.value) return;
|
|
7823
7948
|
setFullscreen(false);
|
|
7824
7949
|
};
|
|
@@ -7926,7 +8051,8 @@ function TranscriptPlayer({
|
|
|
7926
8051
|
{
|
|
7927
8052
|
ref: rootRef,
|
|
7928
8053
|
className: cn(
|
|
7929
|
-
|
|
8054
|
+
// Sized by its container, not the viewport, so it also fits narrow hosts such as a chat bubble.
|
|
8055
|
+
"text-foreground @container flex flex-col gap-4",
|
|
7930
8056
|
fullscreen && "bg-background fixed inset-0 z-50 overflow-y-auto p-6",
|
|
7931
8057
|
className
|
|
7932
8058
|
),
|
|
@@ -7945,9 +8071,13 @@ function TranscriptPlayer({
|
|
|
7945
8071
|
"section",
|
|
7946
8072
|
{
|
|
7947
8073
|
"aria-label": labels.recording,
|
|
7948
|
-
className:
|
|
8074
|
+
className: cn(
|
|
8075
|
+
// The label width is set here, not on the root: a container query only sees an ancestor.
|
|
8076
|
+
"border-border bg-card text-card-foreground rounded-xl border p-3 [--tp-label:4.5rem] @md:p-4 @md:[--tp-label:6.5rem]",
|
|
8077
|
+
sticky && "sticky top-0 z-10"
|
|
8078
|
+
),
|
|
7949
8079
|
children: [
|
|
7950
|
-
/* @__PURE__ */ jsxs("div", { className: "mb-
|
|
8080
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-6 flex flex-wrap items-center gap-x-4 gap-y-2", children: [
|
|
7951
8081
|
/* @__PURE__ */ jsx(
|
|
7952
8082
|
Button,
|
|
7953
8083
|
{
|
|
@@ -7977,7 +8107,23 @@ function TranscriptPlayer({
|
|
|
7977
8107
|
] }),
|
|
7978
8108
|
playback.error && /* @__PURE__ */ jsx("span", { role: "alert", className: "text-destructive text-sm", children: playback.error === "load" ? labels.loadError : labels.playError }),
|
|
7979
8109
|
!src && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground text-sm", children: labels.noRecording }),
|
|
7980
|
-
/* @__PURE__ */ jsxs("div", { className: "ms-auto flex items-center gap-2", children: [
|
|
8110
|
+
/* @__PURE__ */ jsxs("div", { className: "ms-auto flex flex-wrap items-center gap-2", children: [
|
|
8111
|
+
collapsibleLanes && /* @__PURE__ */ jsxs(
|
|
8112
|
+
Button,
|
|
8113
|
+
{
|
|
8114
|
+
type: "button",
|
|
8115
|
+
variant: "ghost",
|
|
8116
|
+
size: "sm",
|
|
8117
|
+
"aria-expanded": lanesOpen,
|
|
8118
|
+
"aria-controls": lanesId,
|
|
8119
|
+
onClick: () => setLanesOpen((open) => !open),
|
|
8120
|
+
"aria-label": lanesOpen ? labels.hideSpeakerLanes : labels.showSpeakerLanes,
|
|
8121
|
+
children: [
|
|
8122
|
+
/* @__PURE__ */ jsx(Users$1, { "aria-hidden": "true", className: "h-4 w-4 @sm:me-1.5" }),
|
|
8123
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "hidden @sm:inline", children: lanesOpen ? labels.hideSpeakerLanes : labels.showSpeakerLanes })
|
|
8124
|
+
]
|
|
8125
|
+
}
|
|
8126
|
+
),
|
|
7981
8127
|
/* @__PURE__ */ jsx(
|
|
7982
8128
|
Button,
|
|
7983
8129
|
{
|
|
@@ -7995,7 +8141,7 @@ function TranscriptPlayer({
|
|
|
7995
8141
|
children: playback.volume === 0 ? /* @__PURE__ */ jsx(VolumeX, { "aria-hidden": "true", className: "h-4 w-4" }) : /* @__PURE__ */ jsx(Volume2, { "aria-hidden": "true", className: "h-4 w-4" })
|
|
7996
8142
|
}
|
|
7997
8143
|
),
|
|
7998
|
-
/* @__PURE__ */ jsx(
|
|
8144
|
+
/* @__PURE__ */ jsx("div", { className: "hidden @md:block", children: /* @__PURE__ */ jsx(
|
|
7999
8145
|
Slider,
|
|
8000
8146
|
{
|
|
8001
8147
|
"aria-label": labels.volume,
|
|
@@ -8007,7 +8153,7 @@ function TranscriptPlayer({
|
|
|
8007
8153
|
size: "sm",
|
|
8008
8154
|
className: "w-24"
|
|
8009
8155
|
}
|
|
8010
|
-
),
|
|
8156
|
+
) }),
|
|
8011
8157
|
/* @__PURE__ */ jsx(
|
|
8012
8158
|
Select,
|
|
8013
8159
|
{
|
|
@@ -8036,75 +8182,90 @@ function TranscriptPlayer({
|
|
|
8036
8182
|
)
|
|
8037
8183
|
] })
|
|
8038
8184
|
] }),
|
|
8039
|
-
/* @__PURE__ */ jsxs(
|
|
8040
|
-
|
|
8041
|
-
|
|
8042
|
-
|
|
8043
|
-
|
|
8044
|
-
|
|
8045
|
-
|
|
8046
|
-
|
|
8047
|
-
|
|
8048
|
-
|
|
8049
|
-
|
|
8050
|
-
|
|
8051
|
-
"
|
|
8052
|
-
|
|
8053
|
-
|
|
8054
|
-
|
|
8055
|
-
|
|
8056
|
-
|
|
8057
|
-
|
|
8058
|
-
|
|
8059
|
-
|
|
8060
|
-
|
|
8061
|
-
|
|
8062
|
-
|
|
8063
|
-
|
|
8064
|
-
|
|
8065
|
-
|
|
8066
|
-
|
|
8067
|
-
|
|
8068
|
-
|
|
8069
|
-
|
|
8070
|
-
|
|
8071
|
-
|
|
8072
|
-
|
|
8073
|
-
|
|
8074
|
-
|
|
8075
|
-
|
|
8076
|
-
|
|
8077
|
-
|
|
8078
|
-
|
|
8079
|
-
|
|
8080
|
-
|
|
8081
|
-
|
|
8082
|
-
|
|
8083
|
-
// rtl-ignore -- time axis inside the player's dir="ltr" timeline
|
|
8084
|
-
left: `${viewFraction(t, view) * 100}%`
|
|
8185
|
+
/* @__PURE__ */ jsxs(
|
|
8186
|
+
"div",
|
|
8187
|
+
{
|
|
8188
|
+
id: lanesId,
|
|
8189
|
+
dir: "ltr",
|
|
8190
|
+
className: cn(
|
|
8191
|
+
"relative space-y-1.5",
|
|
8192
|
+
// No lane labels to line up with, so the waveform takes the full width.
|
|
8193
|
+
!showLanes && "[--tp-label:0px]"
|
|
8194
|
+
),
|
|
8195
|
+
children: [
|
|
8196
|
+
/* @__PURE__ */ jsxs("div", { className: ROW_GRID, children: [
|
|
8197
|
+
/* @__PURE__ */ jsx("span", {}),
|
|
8198
|
+
/* @__PURE__ */ jsx(
|
|
8199
|
+
"div",
|
|
8200
|
+
{
|
|
8201
|
+
role: "slider",
|
|
8202
|
+
tabIndex: 0,
|
|
8203
|
+
"aria-label": labels.seek,
|
|
8204
|
+
"aria-valuemin": 0,
|
|
8205
|
+
"aria-valuemax": Math.round(duration),
|
|
8206
|
+
"aria-valuenow": Math.round(currentTime),
|
|
8207
|
+
"aria-valuetext": labels.seekValue(
|
|
8208
|
+
formatClock(currentTime),
|
|
8209
|
+
formatClock(duration)
|
|
8210
|
+
),
|
|
8211
|
+
onKeyDown: onSeekKey,
|
|
8212
|
+
onClick: (e) => seekTo(timeAtPointer(e.clientX, e.currentTarget, view)),
|
|
8213
|
+
className: "focus-visible:ring-ring cursor-pointer rounded focus-visible:ring-2 focus-visible:outline-none",
|
|
8214
|
+
children: /* @__PURE__ */ jsx(Waveform, { peaks, view, currentTime })
|
|
8215
|
+
}
|
|
8216
|
+
)
|
|
8217
|
+
] }),
|
|
8218
|
+
!showLanes ? null : visibleSpeakers.length > 0 ? /* @__PURE__ */ jsx(
|
|
8219
|
+
SpeakerLanes,
|
|
8220
|
+
{
|
|
8221
|
+
speakers: visibleSpeakers,
|
|
8222
|
+
segments: visibleSegments,
|
|
8223
|
+
view,
|
|
8224
|
+
playingId,
|
|
8225
|
+
onPlaySegment: playSegment,
|
|
8226
|
+
onPause: pause,
|
|
8227
|
+
onSeek: seekTo,
|
|
8228
|
+
labels
|
|
8085
8229
|
},
|
|
8086
|
-
|
|
8087
|
-
},
|
|
8088
|
-
|
|
8089
|
-
|
|
8090
|
-
|
|
8091
|
-
|
|
8092
|
-
|
|
8093
|
-
|
|
8094
|
-
|
|
8095
|
-
|
|
8096
|
-
|
|
8097
|
-
|
|
8098
|
-
|
|
8099
|
-
|
|
8100
|
-
|
|
8101
|
-
|
|
8102
|
-
|
|
8103
|
-
|
|
8104
|
-
|
|
8105
|
-
|
|
8106
|
-
|
|
8107
|
-
|
|
8230
|
+
src ?? ""
|
|
8231
|
+
) : /* @__PURE__ */ jsx("p", { className: "text-muted-foreground py-2 text-center text-xs", children: speakers.length ? labels.allSpeakersHidden : labels.noActivity }),
|
|
8232
|
+
/* @__PURE__ */ jsxs("div", { className: cn(ROW_GRID, "h-4"), "aria-hidden": "true", children: [
|
|
8233
|
+
/* @__PURE__ */ jsx("span", {}),
|
|
8234
|
+
/* @__PURE__ */ jsx("div", { className: "text-muted-foreground relative text-[11px] tabular-nums", children: ticksFor(view).map((t, i) => /* @__PURE__ */ jsx(
|
|
8235
|
+
"span",
|
|
8236
|
+
{
|
|
8237
|
+
className: cn(
|
|
8238
|
+
"absolute -translate-x-1/2",
|
|
8239
|
+
i % 2 === 1 && "hidden @md:inline"
|
|
8240
|
+
),
|
|
8241
|
+
style: {
|
|
8242
|
+
// rtl-ignore -- time axis inside the player's dir="ltr" timeline
|
|
8243
|
+
left: `${viewFraction(t, view) * 100}%`
|
|
8244
|
+
},
|
|
8245
|
+
children: formatClock(t)
|
|
8246
|
+
},
|
|
8247
|
+
t
|
|
8248
|
+
)) })
|
|
8249
|
+
] }),
|
|
8250
|
+
playheadVisible && /* @__PURE__ */ jsxs(
|
|
8251
|
+
"div",
|
|
8252
|
+
{
|
|
8253
|
+
"aria-hidden": "true",
|
|
8254
|
+
className: "pointer-events-none absolute inset-y-0",
|
|
8255
|
+
style: {
|
|
8256
|
+
// rtl-ignore -- time axis inside the player's dir="ltr" timeline
|
|
8257
|
+
left: `calc(${TRACK_OFFSET} + (100% - ${TRACK_OFFSET}) * ${playhead})`
|
|
8258
|
+
},
|
|
8259
|
+
children: [
|
|
8260
|
+
/* @__PURE__ */ jsx("span", { className: "bg-primary-600 absolute inset-y-0 w-0.5 -translate-x-1/2" }),
|
|
8261
|
+
/* @__PURE__ */ jsx("span", { className: "bg-primary-800 absolute -top-5 -translate-x-1/2 rounded px-1 text-[10px] font-medium text-white tabular-nums", children: formatClock(currentTime) })
|
|
8262
|
+
]
|
|
8263
|
+
}
|
|
8264
|
+
)
|
|
8265
|
+
]
|
|
8266
|
+
}
|
|
8267
|
+
),
|
|
8268
|
+
showLanes && /* @__PURE__ */ jsxs("div", { dir: "ltr", className: cn(ROW_GRID, "mt-3 items-start"), children: [
|
|
8108
8269
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center", children: [
|
|
8109
8270
|
/* @__PURE__ */ jsx(
|
|
8110
8271
|
Button,
|
|
@@ -8160,106 +8321,115 @@ function TranscriptPlayer({
|
|
|
8160
8321
|
]
|
|
8161
8322
|
}
|
|
8162
8323
|
),
|
|
8163
|
-
/* @__PURE__ */ jsxs(
|
|
8164
|
-
|
|
8165
|
-
|
|
8166
|
-
|
|
8167
|
-
"
|
|
8168
|
-
|
|
8169
|
-
|
|
8170
|
-
|
|
8171
|
-
|
|
8172
|
-
|
|
8173
|
-
|
|
8174
|
-
|
|
8175
|
-
|
|
8176
|
-
|
|
8177
|
-
|
|
8178
|
-
}
|
|
8179
|
-
|
|
8324
|
+
/* @__PURE__ */ jsxs(
|
|
8325
|
+
"div",
|
|
8326
|
+
{
|
|
8327
|
+
className: cn(
|
|
8328
|
+
"grid grid-cols-1 gap-4",
|
|
8329
|
+
showSpeakerPanel && "lg:grid-cols-[minmax(0,1fr)_18rem]"
|
|
8330
|
+
),
|
|
8331
|
+
children: [
|
|
8332
|
+
/* @__PURE__ */ jsxs(
|
|
8333
|
+
"section",
|
|
8334
|
+
{
|
|
8335
|
+
"aria-labelledby": transcriptHeadingId,
|
|
8336
|
+
className: "border-border bg-card text-card-foreground rounded-xl border p-3 @md:p-4",
|
|
8337
|
+
children: [
|
|
8338
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-3 flex flex-wrap items-center gap-3", children: [
|
|
8339
|
+
/* @__PURE__ */ jsx("h3", { id: transcriptHeadingId, className: "text-base font-semibold", children: labels.transcript }),
|
|
8340
|
+
/* @__PURE__ */ jsxs("div", { className: "relative min-w-40 flex-1", children: [
|
|
8341
|
+
/* @__PURE__ */ jsx(
|
|
8342
|
+
Search,
|
|
8343
|
+
{
|
|
8344
|
+
"aria-hidden": "true",
|
|
8345
|
+
className: "text-muted-foreground pointer-events-none absolute start-2.5 top-1/2 h-4 w-4 -translate-y-1/2"
|
|
8346
|
+
}
|
|
8347
|
+
),
|
|
8348
|
+
/* @__PURE__ */ jsx(
|
|
8349
|
+
Input,
|
|
8350
|
+
{
|
|
8351
|
+
type: "search",
|
|
8352
|
+
label: labels.searchTranscript,
|
|
8353
|
+
hideLabel: true,
|
|
8354
|
+
placeholder: labels.searchPlaceholder,
|
|
8355
|
+
value: query,
|
|
8356
|
+
onChange: (e) => setQuery(e.target.value),
|
|
8357
|
+
size: "sm",
|
|
8358
|
+
className: "ps-8"
|
|
8359
|
+
}
|
|
8360
|
+
)
|
|
8361
|
+
] }),
|
|
8362
|
+
/* @__PURE__ */ jsx(
|
|
8363
|
+
Select,
|
|
8364
|
+
{
|
|
8365
|
+
"aria-label": labels.showSpeakers,
|
|
8366
|
+
size: "sm",
|
|
8367
|
+
className: "w-44",
|
|
8368
|
+
value: filterValue,
|
|
8369
|
+
onValueChange: (v) => {
|
|
8370
|
+
if (v === ALL_SPEAKERS) setHidden(/* @__PURE__ */ new Set());
|
|
8371
|
+
else if (v.startsWith(SPEAKER_PREFIX)) {
|
|
8372
|
+
const id = v.slice(SPEAKER_PREFIX.length);
|
|
8373
|
+
setHidden(
|
|
8374
|
+
new Set(
|
|
8375
|
+
speakers.filter((s) => s.id !== id).map((s) => s.id)
|
|
8376
|
+
)
|
|
8377
|
+
);
|
|
8378
|
+
}
|
|
8379
|
+
},
|
|
8380
|
+
options: [
|
|
8381
|
+
{ value: ALL_SPEAKERS, label: labels.allSpeakers },
|
|
8382
|
+
...speakers.map((s) => ({
|
|
8383
|
+
value: SPEAKER_PREFIX + s.id,
|
|
8384
|
+
label: s.name
|
|
8385
|
+
})),
|
|
8386
|
+
...filterValue === SOME_SPEAKERS ? [
|
|
8387
|
+
{
|
|
8388
|
+
value: SOME_SPEAKERS,
|
|
8389
|
+
label: labels.someSpeakers,
|
|
8390
|
+
disabled: true
|
|
8391
|
+
}
|
|
8392
|
+
] : []
|
|
8393
|
+
]
|
|
8394
|
+
}
|
|
8395
|
+
)
|
|
8396
|
+
] }),
|
|
8180
8397
|
/* @__PURE__ */ jsx(
|
|
8181
|
-
|
|
8398
|
+
TranscriptList,
|
|
8182
8399
|
{
|
|
8183
|
-
|
|
8184
|
-
|
|
8185
|
-
|
|
8186
|
-
|
|
8187
|
-
|
|
8188
|
-
|
|
8189
|
-
|
|
8190
|
-
|
|
8191
|
-
|
|
8192
|
-
)
|
|
8193
|
-
] }),
|
|
8194
|
-
/* @__PURE__ */ jsx(
|
|
8195
|
-
Select,
|
|
8196
|
-
{
|
|
8197
|
-
"aria-label": labels.showSpeakers,
|
|
8198
|
-
size: "sm",
|
|
8199
|
-
className: "w-44",
|
|
8200
|
-
value: filterValue,
|
|
8201
|
-
onValueChange: (v) => {
|
|
8202
|
-
if (v === ALL_SPEAKERS) setHidden(/* @__PURE__ */ new Set());
|
|
8203
|
-
else if (v.startsWith(SPEAKER_PREFIX)) {
|
|
8204
|
-
const id = v.slice(SPEAKER_PREFIX.length);
|
|
8205
|
-
setHidden(
|
|
8206
|
-
new Set(
|
|
8207
|
-
speakers.filter((s) => s.id !== id).map((s) => s.id)
|
|
8208
|
-
)
|
|
8209
|
-
);
|
|
8210
|
-
}
|
|
8400
|
+
utterances: shown,
|
|
8401
|
+
speakersById,
|
|
8402
|
+
activeId: active?.id ?? null,
|
|
8403
|
+
playingId,
|
|
8404
|
+
query,
|
|
8405
|
+
onPlay: playUtterance,
|
|
8406
|
+
onPause: pause,
|
|
8407
|
+
labels,
|
|
8408
|
+
emptyMessage: utterances.length === 0 ? labels.noTranscript : labels.noMatches
|
|
8211
8409
|
},
|
|
8212
|
-
|
|
8213
|
-
|
|
8214
|
-
|
|
8215
|
-
|
|
8216
|
-
|
|
8217
|
-
|
|
8218
|
-
...filterValue === SOME_SPEAKERS ? [
|
|
8219
|
-
{
|
|
8220
|
-
value: SOME_SPEAKERS,
|
|
8221
|
-
label: labels.someSpeakers,
|
|
8222
|
-
disabled: true
|
|
8223
|
-
}
|
|
8224
|
-
] : []
|
|
8225
|
-
]
|
|
8226
|
-
}
|
|
8227
|
-
)
|
|
8228
|
-
] }),
|
|
8410
|
+
src ?? ""
|
|
8411
|
+
)
|
|
8412
|
+
]
|
|
8413
|
+
}
|
|
8414
|
+
),
|
|
8415
|
+
showSpeakerPanel && /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
8229
8416
|
/* @__PURE__ */ jsx(
|
|
8230
|
-
|
|
8417
|
+
SpeakerPanel,
|
|
8231
8418
|
{
|
|
8232
|
-
|
|
8233
|
-
|
|
8234
|
-
|
|
8235
|
-
|
|
8236
|
-
|
|
8237
|
-
|
|
8238
|
-
|
|
8239
|
-
|
|
8240
|
-
|
|
8241
|
-
|
|
8242
|
-
|
|
8243
|
-
|
|
8244
|
-
|
|
8245
|
-
|
|
8246
|
-
),
|
|
8247
|
-
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
8248
|
-
/* @__PURE__ */ jsx(
|
|
8249
|
-
SpeakerPanel,
|
|
8250
|
-
{
|
|
8251
|
-
speakers,
|
|
8252
|
-
talkTime: talk,
|
|
8253
|
-
duration,
|
|
8254
|
-
hidden,
|
|
8255
|
-
onToggle: toggleSpeaker,
|
|
8256
|
-
overlapping,
|
|
8257
|
-
labels
|
|
8258
|
-
}
|
|
8259
|
-
),
|
|
8260
|
-
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground bg-muted/50 rounded-xl p-4 text-xs", children: labels.hint })
|
|
8261
|
-
] })
|
|
8262
|
-
] })
|
|
8419
|
+
speakers,
|
|
8420
|
+
talkTime: talk,
|
|
8421
|
+
duration,
|
|
8422
|
+
hidden,
|
|
8423
|
+
onToggle: toggleSpeaker,
|
|
8424
|
+
overlapping,
|
|
8425
|
+
labels
|
|
8426
|
+
}
|
|
8427
|
+
),
|
|
8428
|
+
/* @__PURE__ */ jsx("p", { className: "text-muted-foreground bg-muted/50 rounded-xl p-4 text-xs", children: labels.hint })
|
|
8429
|
+
] })
|
|
8430
|
+
]
|
|
8431
|
+
}
|
|
8432
|
+
)
|
|
8263
8433
|
]
|
|
8264
8434
|
}
|
|
8265
8435
|
);
|
|
@@ -44555,6 +44725,6 @@ function WebsiteInputGroup({
|
|
|
44555
44725
|
}
|
|
44556
44726
|
WebsiteInputGroup.displayName = "WebsiteInputGroup";
|
|
44557
44727
|
|
|
44558
|
-
export { AIChat, AIChatModal, AIChatTrigger, AIReconciliationPanel, AccessDeniedPage, ActionButton2 as ActionButton, ActionButtonsBar, ActiveFilters, AddContactModal, AddServiceCard, AdditionalFields, Address, AddressCard, AddressCompact, AddressDisplay, AddressForm, AddressInline, AppHeader, AppHeaderActions, AppHeaderBrand, AppHeaderDivider, AppHeaderIconButton, AppHeaderSearch, AppHeaderSection, AppHeaderTitle, AppHeaderUserMenu, AuthButtons, AuthDialog, BUSINESS_HOURS_END_OF_DAY, BookAppointmentButton, BookingDialog, BusinessHours, BusinessHoursEditor, CSVColumnMapper, CSVFileUpload, CardSkeleton, CaseContextBar, CaseManagementHeader, CheckrIntegration, ClaimListingButton, ClaimProviderForm, CommandPalette, CommandPaletteProvider, CommandPaletteTrigger, CompactCookieBanner, CompactFilterBar, CompactHeader, CompactHours, CompactProviderHeader, ConnectionStatusBadge, ConnectionStatusBar, ConnectionStatusOverlay, ConsentSwitch, CookieConsentBanner, CopyrightText, CountBadge, CountryDropdown, CreateInvoiceModal, CreateReferralModal, DEFAULT_BUSINESS_HOURS_EDITOR_LABELS, DEFAULT_ERROR_CONFIGS, DEFAULT_LANGUAGES, DEFAULT_RADIUS_OPTIONS, DEFAULT_SERVICE_PRICING_MANAGER_LABELS, DEFAULT_SOCIAL_PROVIDERS, DEFAULT_TRANSCRIPT_PLAYER_LABELS, DOTBadge, DashboardWidget, DashboardWidgetActions, DashboardWidgetDataCards, DashboardWidgetInfo, DashboardWidgetTable, DateRangeFilter, DateRangePicker, DialogOverlay, DisclaimerText, DockablePanel, DocumentDetectionOverlay, DocumentScanner, DropZone, DropzoneOverlay, EditUserRoleModal, EmployeeForm, EmployeeProfileCard, EmployerContactCard, EmployerList, EmployerPricingCard, EmployerServiceModal, EmployerView, ErrorPage, FileManager, FilePreview, FloatingAIChat, FloatingInput, FooterLinkSection, SocialMediaLinks2 as FooterSocialLinks, HRISProviderSelector, HandsFreeChat, HealthSurveillance, HelpSupportPanel, HeroSearchBar, HeyOzwell, HeyOzwellSelector, HeyOzwellToggle, HoursSummary, ImagingOrderEditor, InlineBookingForm, InventoryManager, InviteUserModal, InvoiceList, InvoicePaymentPage, InvoiceView, LabOrderEditor, LanguageSelector, LanguageSelectorInline, LanguageSelectorNative, LegalLinks, LoadingBar, LoadingDots, LoadingOverlay, LoadingPage, LoadingSkeleton, MODEL_MANIFEST, MaintenancePage, MobileBackButton, MobileMenuButton, MobileMenuPanel, ModelInfoList, MIN_ENROLL_SECONDS as NEMOTRON_MIN_ENROLL_SECONDS, NavLinks, NewsletterForm, NotFoundPage, NotificationCenter, OfflinePage, OnboardingCompletion, OnboardingStepQuestion, OnboardingWizard, OpenStatusBadge, OrderCard, OrderConfirmation, OrderConfirmationWizard, OrderDetailSidebar, OrderEditor, OrderList, OrderLookupForm, OrderSidebar, OrderSidebarTabs, OzwellChat, OzwellSettingsMenu, PageHeader, PatientHeader, PaymentHistoryTable, PaymentMethodBank, PaymentMethodCard, PaymentMethodList, PendingClaimsTable, PermissionsEditor, PillSelect, PresentingProblems, ProcedureOrderEditor, ProductVersion, ProductVersionBadge, Breadcrumb2 as ProviderBreadcrumb, ProviderCard, ProviderCardGrid, ProviderCardSkeleton, ProviderDetailHeader, ProviderDetailHeaderSkeleton, ProviderLogo2 as ProviderLogo, ProviderOverview, ProviderSearchBar, ProviderSearchFilters, ProviderSelector, ProviderSettings, SocialMediaLinks as ProviderSocialLinks, ProviderUsersTable, QuickBookCard, QuickLinksCard, RELEVANCE_LABELS, RecurringServiceAddCard, RecurringServiceCard, RecurringServiceGrid, RecurringServiceSetupModal, ReferralEditor, RejectionModal, ReportDashboard, ReportDatePicker, ReportLink, ReportTimeRange, ResultsEntryCard, ResultsEntryForm, ResultsEntryModal, TextAreaRich as RichTextArea, SSOConfigForm, ScheduleCalendar, SearchResultsMessage, SelectedServicesBadges, ServerErrorPage, ServiceAccordion, ServiceBadge, ServiceBadgeGroup, ServiceCard, ServiceCategoryBadge, ServiceGeneralSettings, ServiceGrid, ServiceLink, ServiceList, ServiceMultiSelect, ServicePicker, ServicePricingManager, ServiceSelect, ServiceShippingSettings, ServiceTagCloud, ServiceTagCloudBadges, SetupServiceModal, Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarMobileToggle, SidebarNav, SidebarNavGroup, SidebarNavItem, SidebarProvider, SidebarSearch, SidebarToggle, SimpleFooter, SiteFooter, SiteHeader, SiteLogo, StepIndicator, StripeBadge, StripeSecureBadge, SuggestedActions, TableOfContents, TextAreaRich, TimelineEventList, TimelineProgress, Toast, ToastContainer, ToastProvider, TranscriptPlayer, UpdateAvailableOverlay, UserMenu, VerifiedBadge2 as VerifiedBadge, VisitScribe, VoiceManager, VoiceSetup, WEBSITE_TYPES, WebChartReportViewer, WebcamModal, WebsiteInput, WebsiteInputGroup, attributeSegments, calculateDateRange, centroid, chime, clusterEmbeddings, computePeaks, cosine, countBadgeVariants, countChipVariants, create24HourSchedule, createDefaultSchedule, createWeekdaySchedule, defaultCaseManagementHeaderLabels, defaultHeyOzwellSelectorLabels, defaultNemotronModel, defaultOrderTabs, defaultReconciliationIsEqual, formatAddressLines, formatAddressSingleLine, formatCityState, formatCityStateZip, generateId, getDefaultPresets, getExtendedPresets, getGoogleMapsSearchUrl, getGoogleMapsUrl, getWakeWarm, inferSpeakerRoles, isValidUrl, labelClusters, medicationToOrder, mergeTurns, normalizeClosingTime, openRollingRecorder, orderToMedication, parseTimeInput, panelVariants as reconciliationPanelVariants, subscribeWakeWarm, useCamera, useCommandPalette, useConnectionStatus, useCookieConsent, useDiarization, useDocumentDetection, useDropzone, useFileUpload, useHeyOzwell, useNemotronDiarization, useNemotronWakeVoices, useOptionalToast, useSidebar, useSpeakerVerify, useToast, useVisitScribe, useVoiceSetup, useWakeWord, warmNemotron, warmWakeModels, widgetVariants };
|
|
44728
|
+
export { AIChat, AIChatModal, AIChatTrigger, AIReconciliationPanel, AccessDeniedPage, ActionButton2 as ActionButton, ActionButtonsBar, ActiveFilters, AddContactModal, AddServiceCard, AdditionalFields, Address, AddressCard, AddressCompact, AddressDisplay, AddressForm, AddressInline, AppHeader, AppHeaderActions, AppHeaderBrand, AppHeaderDivider, AppHeaderIconButton, AppHeaderSearch, AppHeaderSection, AppHeaderTitle, AppHeaderUserMenu, AuthButtons, AuthDialog, BUSINESS_HOURS_END_OF_DAY, BookAppointmentButton, BookingDialog, BusinessHours, BusinessHoursEditor, CSVColumnMapper, CSVFileUpload, CardSkeleton, CaseContextBar, CaseManagementHeader, CheckrIntegration, ClaimListingButton, ClaimProviderForm, CommandPalette, CommandPaletteProvider, CommandPaletteTrigger, CompactCookieBanner, CompactFilterBar, CompactHeader, CompactHours, CompactProviderHeader, ConnectionStatusBadge, ConnectionStatusBar, ConnectionStatusOverlay, ConsentSwitch, CookieConsentBanner, CopyrightText, CountBadge, CountryDropdown, CreateInvoiceModal, CreateReferralModal, DEFAULT_BUSINESS_HOURS_EDITOR_LABELS, DEFAULT_ERROR_CONFIGS, DEFAULT_LANGUAGES, DEFAULT_RADIUS_OPTIONS, DEFAULT_SERVICE_PRICING_MANAGER_LABELS, DEFAULT_SOCIAL_PROVIDERS, DEFAULT_TRANSCRIPT_PLAYER_LABELS, DOTBadge, DashboardWidget, DashboardWidgetActions, DashboardWidgetDataCards, DashboardWidgetInfo, DashboardWidgetTable, DateRangeFilter, DateRangePicker, DialogOverlay, DisclaimerText, DockablePanel, DocumentDetectionOverlay, DocumentScanner, DropZone, DropzoneOverlay, EditUserRoleModal, EmployeeForm, EmployeeProfileCard, EmployerContactCard, EmployerList, EmployerPricingCard, EmployerServiceModal, EmployerView, ErrorPage, FileManager, FilePreview, FloatingAIChat, FloatingInput, FooterLinkSection, SocialMediaLinks2 as FooterSocialLinks, HRISProviderSelector, HandsFreeChat, HealthSurveillance, HelpSupportPanel, HeroSearchBar, HeyOzwell, HeyOzwellSelector, HeyOzwellToggle, HoursSummary, ImagingOrderEditor, InlineBookingForm, InventoryManager, InviteUserModal, InvoiceList, InvoicePaymentPage, InvoiceView, LabOrderEditor, LanguageSelector, LanguageSelectorInline, LanguageSelectorNative, LegalLinks, LoadingBar, LoadingDots, LoadingOverlay, LoadingPage, LoadingSkeleton, MODEL_MANIFEST, MaintenancePage, MobileBackButton, MobileMenuButton, MobileMenuPanel, ModelInfoList, MIN_ENROLL_SECONDS as NEMOTRON_MIN_ENROLL_SECONDS, NavLinks, NewsletterForm, NotFoundPage, NotificationCenter, OfflinePage, OnboardingCompletion, OnboardingStepQuestion, OnboardingWizard, OpenStatusBadge, OrderCard, OrderConfirmation, OrderConfirmationWizard, OrderDetailSidebar, OrderEditor, OrderList, OrderLookupForm, OrderSidebar, OrderSidebarTabs, OzwellChat, OzwellSettingsMenu, PageHeader, PatientHeader, PaymentHistoryTable, PaymentMethodBank, PaymentMethodCard, PaymentMethodList, PendingClaimsTable, PermissionsEditor, PillSelect, PresentingProblems, ProcedureOrderEditor, ProductVersion, ProductVersionBadge, Breadcrumb2 as ProviderBreadcrumb, ProviderCard, ProviderCardGrid, ProviderCardSkeleton, ProviderDetailHeader, ProviderDetailHeaderSkeleton, ProviderLogo2 as ProviderLogo, ProviderOverview, ProviderSearchBar, ProviderSearchFilters, ProviderSelector, ProviderSettings, SocialMediaLinks as ProviderSocialLinks, ProviderUsersTable, QuickBookCard, QuickLinksCard, RELEVANCE_LABELS, RecurringServiceAddCard, RecurringServiceCard, RecurringServiceGrid, RecurringServiceSetupModal, ReferralEditor, RejectionModal, ReportDashboard, ReportDatePicker, ReportLink, ReportTimeRange, ResultsEntryCard, ResultsEntryForm, ResultsEntryModal, TextAreaRich as RichTextArea, SSOConfigForm, ScheduleCalendar, SearchResultsMessage, SelectedServicesBadges, ServerErrorPage, ServiceAccordion, ServiceBadge, ServiceBadgeGroup, ServiceCard, ServiceCategoryBadge, ServiceGeneralSettings, ServiceGrid, ServiceLink, ServiceList, ServiceMultiSelect, ServicePicker, ServicePricingManager, ServiceSelect, ServiceShippingSettings, ServiceTagCloud, ServiceTagCloudBadges, SetupServiceModal, Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarMobileToggle, SidebarNav, SidebarNavGroup, SidebarNavItem, SidebarProvider, SidebarSearch, SidebarToggle, SimpleFooter, SiteFooter, SiteHeader, SiteLogo, StepIndicator, StripeBadge, StripeSecureBadge, SuggestedActions, TableOfContents, TextAreaRich, TimelineEventList, TimelineProgress, Toast, ToastContainer, ToastProvider, TranscriptPlayer, UpdateAvailableOverlay, UserMenu, VerifiedBadge2 as VerifiedBadge, VisitScribe, VoiceManager, VoiceSetup, WEBSITE_TYPES, WebChartReportViewer, WebcamModal, WebsiteInput, WebsiteInputGroup, attributeSegments, calculateDateRange, centroid, chime, clusterEmbeddings, computePeaks, cosine, countBadgeVariants, countChipVariants, create24HourSchedule, createDefaultSchedule, createWeekdaySchedule, defaultCaseManagementHeaderLabels, defaultHeyOzwellSelectorLabels, defaultNemotronModel, defaultOrderTabs, defaultReconciliationIsEqual, formatAddressLines, formatAddressSingleLine, formatCityState, formatCityStateZip, generateId, getDefaultPresets, getExtendedPresets, getGoogleMapsSearchUrl, getGoogleMapsUrl, getWakeWarm, inferSpeakerRoles, isValidUrl, labelClusters, medicationToOrder, mergeTurns, normalizeClosingTime, openRollingRecorder, orderToMedication, parseTimeInput, panelVariants as reconciliationPanelVariants, subscribeWakeWarm, transcriptFromActivity, useCamera, useCommandPalette, useConnectionStatus, useCookieConsent, useDiarization, useDocumentDetection, useDropzone, useFileUpload, useHeyOzwell, useNemotronDiarization, useNemotronWakeVoices, useOptionalToast, useSidebar, useSpeakerVerify, useToast, useVisitScribe, useVoiceSetup, useWakeWord, warmNemotron, warmWakeModels, widgetVariants };
|
|
44559
44729
|
//# sourceMappingURL=index.js.map
|
|
44560
44730
|
//# sourceMappingURL=index.js.map
|