@tavus/widget 0.19.0 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -3048,7 +3048,7 @@ var xn = class extends Error {
3048
3048
  }
3049
3049
  }, Sn = {
3050
3050
  name: "@tavus/widget",
3051
- version: "0.19.0",
3051
+ version: "0.19.2",
3052
3052
  variant: "widget"
3053
3053
  }, Cn = /* @__PURE__ */ new Set([
3054
3054
  "Error",
@@ -16323,7 +16323,7 @@ function Gh({ children: e }) {
16323
16323
  ...r,
16324
16324
  tavus: d,
16325
16325
  open: s.expand,
16326
- close: s.collapse
16326
+ close: s.close
16327
16327
  } : {
16328
16328
  ...r,
16329
16329
  tavus: d
@@ -30495,7 +30495,11 @@ function KI({ flow: e, welcomeText: t, onUnavailableCancel: n }) {
30495
30495
  }
30496
30496
  //#endregion
30497
30497
  //#region ../core/src/providers/widget-ui-provider.tsx
30498
- function qI({ children: e }) {
30498
+ function qI(e, t, n) {
30499
+ let r = e.state === "call", i = r || e.state === "haircheck" || e.isStarting;
30500
+ e.cancel(), r && e.leave(), i && t(), n();
30501
+ }
30502
+ function JI({ children: e }) {
30499
30503
  let { config: t } = L(Cr), n = t.peek().customization?.widget, r = n?.expandable ?? "default", i = Kt(r === "start-expanded" || r === "always"), a = Kt(n?.variant ?? "full"), o = Kt(n?.position ?? "bottom-right"), s = Kt(r), c = Kt(n?.avatar?.type ?? "orb"), l = P(r);
30500
30504
  $t(() => {
30501
30505
  let e = t.value.customization?.widget, n = e?.expandable ?? "default";
@@ -30519,7 +30523,24 @@ function qI({ children: e }) {
30519
30523
  h,
30520
30524
  i
30521
30525
  ]);
30522
- let _ = F(() => ({
30526
+ let _ = L(qm), v = P(m);
30527
+ v.current = m;
30528
+ let y = P(_);
30529
+ y.current = _;
30530
+ let b = I(() => {
30531
+ if (s.peek() === "always") return;
30532
+ let e = v.current, t = y.current;
30533
+ if (!e || !t) {
30534
+ f();
30535
+ return;
30536
+ }
30537
+ qI({
30538
+ state: e.flowSignal.peek(),
30539
+ isStarting: e.isStarting,
30540
+ cancel: e.cancel,
30541
+ leave: e.leave
30542
+ }, t.end, f);
30543
+ }, [s, f]), x = F(() => ({
30523
30544
  expanded: i,
30524
30545
  variant: a,
30525
30546
  position: o,
@@ -30527,7 +30548,7 @@ function qI({ children: e }) {
30527
30548
  avatarType: c,
30528
30549
  toggle: u,
30529
30550
  expand: d,
30530
- collapse: f
30551
+ close: b
30531
30552
  }), [
30532
30553
  i,
30533
30554
  a,
@@ -30536,23 +30557,23 @@ function qI({ children: e }) {
30536
30557
  c,
30537
30558
  u,
30538
30559
  d,
30539
- f
30560
+ b
30540
30561
  ]);
30541
30562
  return /* @__PURE__ */ R(Vh.Provider, {
30542
- value: _,
30563
+ value: x,
30543
30564
  children: e
30544
30565
  });
30545
30566
  }
30546
30567
  //#endregion
30547
30568
  //#region ../core/src/components/powered-by/index.tsx
30548
- function JI() {
30569
+ function YI() {
30549
30570
  let { config: e } = _h(), t = e.value.customization.branding;
30550
- return e.value.show_tavus_branding !== !1 && !t?.hide_tavus_badge ? /* @__PURE__ */ R(YI, {}) : t?.logo || t?.text ? /* @__PURE__ */ R(XI, {
30571
+ return e.value.show_tavus_branding !== !1 && !t?.hide_tavus_badge ? /* @__PURE__ */ R(XI, {}) : t?.logo || t?.text ? /* @__PURE__ */ R(ZI, {
30551
30572
  logo: t.logo,
30552
30573
  text: t.text
30553
30574
  }) : null;
30554
30575
  }
30555
- function YI() {
30576
+ function XI() {
30556
30577
  let { isDark: e } = Bj(), t = e.value ? "white" : "#140206";
30557
30578
  return /* @__PURE__ */ R("a", {
30558
30579
  href: "https://tavus.io",
@@ -30579,7 +30600,7 @@ function YI() {
30579
30600
  })] })]
30580
30601
  });
30581
30602
  }
30582
- function XI({ logo: e, text: t }) {
30603
+ function ZI({ logo: e, text: t }) {
30583
30604
  return /* @__PURE__ */ R("div", {
30584
30605
  class: "inline-flex items-center gap-1 text-xs text-base-content/50",
30585
30606
  children: [e ? /* @__PURE__ */ R("img", {
@@ -30591,63 +30612,63 @@ function XI({ logo: e, text: t }) {
30591
30612
  }
30592
30613
  //#endregion
30593
30614
  //#region ../core/src/hooks/use-widget-text.ts
30594
- var ZI = {
30615
+ var QI = {
30595
30616
  title: "Hi! Want to chat?",
30596
30617
  btn_title: "Start conversation"
30597
30618
  };
30598
- function QI() {
30619
+ function $I() {
30599
30620
  let { config: e } = _h(), t = e.value.customization.widget?.text;
30600
30621
  return F(() => ({
30601
- title: t?.title || ZI.title,
30602
- btn_title: t?.btn_title || ZI.btn_title
30622
+ title: t?.title || QI.title,
30623
+ btn_title: t?.btn_title || QI.btn_title
30603
30624
  }), [t]);
30604
30625
  }
30605
30626
  //#endregion
30606
30627
  //#region ../core/src/hooks/use-widget-ui.ts
30607
- function $I() {
30628
+ function eL() {
30608
30629
  let e = L(Vh);
30609
30630
  if (!e) throw Error("useWidgetUI must be used within WidgetUIProvider");
30610
30631
  return e;
30611
30632
  }
30612
30633
  //#endregion
30613
30634
  //#region ../core/src/components/widget-launcher/widget-avatar.tsx
30614
- var eL = {
30635
+ var tL = {
30615
30636
  xs: "w-6 h-6",
30616
30637
  sm: "w-8 h-8",
30617
30638
  md: "w-10 h-10",
30618
30639
  lg: "w-16 h-16"
30619
- }, tL = {
30640
+ }, nL = {
30620
30641
  xs: "w-3 h-3",
30621
30642
  sm: "w-4 h-4",
30622
30643
  md: "w-5 h-5",
30623
30644
  lg: "w-8 h-8"
30624
30645
  };
30625
- function nL({ size: e = "md", className: t = "" }) {
30626
- let { avatarType: n } = $I(), { config: r } = _h(), i = D_(r.value);
30646
+ function rL({ size: e = "md", className: t = "" }) {
30647
+ let { avatarType: n } = eL(), { config: r } = _h(), i = D_(r.value);
30627
30648
  return (O_(r.value).background.type === "replica" || n.value === "image") && i ? /* @__PURE__ */ R("div", {
30628
- class: `relative ${eL[e]} rounded-box overflow-hidden bg-base-300 ${t}`,
30649
+ class: `relative ${tL[e]} rounded-box overflow-hidden bg-base-300 ${t}`,
30629
30650
  children: /* @__PURE__ */ R(I_, { replica: i })
30630
30651
  }) : /* @__PURE__ */ R("div", {
30631
- class: `relative ${eL[e]} rounded-box bg-primary/15 flex items-center justify-center ${t}`,
30632
- children: /* @__PURE__ */ R("span", { class: `${tL[e]} rounded-full bg-primary animate-pulse` })
30652
+ class: `relative ${tL[e]} rounded-box bg-primary/15 flex items-center justify-center ${t}`,
30653
+ children: /* @__PURE__ */ R("span", { class: `${nL[e]} rounded-full bg-primary animate-pulse` })
30633
30654
  });
30634
30655
  }
30635
30656
  //#endregion
30636
30657
  //#region ../core/src/components/widget-launcher/widget-launcher.tsx
30637
- function rL({ variant: e }) {
30638
- let { toggle: t } = $I(), n = QI();
30658
+ function iL({ variant: e }) {
30659
+ let { toggle: t } = eL(), n = $I();
30639
30660
  return e === "tiny" ? /* @__PURE__ */ R("button", {
30640
30661
  type: "button",
30641
30662
  onClick: t,
30642
30663
  "aria-label": n.btn_title,
30643
30664
  class: "rounded-box overflow-hidden shadow-xl hover:shadow-2xl transition-shadow cursor-pointer",
30644
- children: /* @__PURE__ */ R(nL, { size: "lg" })
30665
+ children: /* @__PURE__ */ R(rL, { size: "lg" })
30645
30666
  }) : e === "compact" ? /* @__PURE__ */ R("button", {
30646
30667
  type: "button",
30647
30668
  onClick: t,
30648
30669
  "aria-label": n.btn_title,
30649
30670
  class: "group flex items-center gap-2.5 py-2.5 pl-2.5 pr-8 rounded-box bg-base-100 text-base-content border border-base-300 shadow-lg hover:shadow-xl transition-shadow cursor-pointer text-left",
30650
- children: [/* @__PURE__ */ R(nL, { size: "md" }), /* @__PURE__ */ R("span", {
30671
+ children: [/* @__PURE__ */ R(rL, { size: "md" }), /* @__PURE__ */ R("span", {
30651
30672
  class: "flex flex-col gap-0.5",
30652
30673
  children: [/* @__PURE__ */ R("span", {
30653
30674
  class: "text-base font-medium leading-tight",
@@ -30664,7 +30685,7 @@ function rL({ variant: e }) {
30664
30685
  class: "flex flex-col gap-3 p-3 w-64 rounded-box bg-base-100 text-base-content border border-base-300 shadow-xl hover:shadow-2xl transition-shadow cursor-pointer text-left",
30665
30686
  children: [/* @__PURE__ */ R("div", {
30666
30687
  class: "flex items-center gap-2.5",
30667
- children: [/* @__PURE__ */ R(nL, { size: "md" }), /* @__PURE__ */ R("span", {
30688
+ children: [/* @__PURE__ */ R(rL, { size: "md" }), /* @__PURE__ */ R("span", {
30668
30689
  class: "text-sm font-medium leading-snug",
30669
30690
  children: n.title
30670
30691
  })]
@@ -30682,13 +30703,13 @@ function rL({ variant: e }) {
30682
30703
  }
30683
30704
  //#endregion
30684
30705
  //#region ../core/src/components/widget-launcher/widget-greeting-bubble.tsx
30685
- var iL = "tavus:widget:greeting-dismissed";
30686
- function aL({ anchor: e }) {
30687
- let t = QI(), { variant: n, expand: r } = $I(), [i, a] = M(!1);
30706
+ var aL = "tavus:widget:greeting-dismissed";
30707
+ function oL({ anchor: e }) {
30708
+ let t = $I(), { variant: n, expand: r } = eL(), [i, a] = M(!1);
30688
30709
  N(() => {
30689
30710
  if (n.value === "tiny") {
30690
30711
  try {
30691
- if (sessionStorage.getItem(iL) === "1") return;
30712
+ if (sessionStorage.getItem(aL) === "1") return;
30692
30713
  } catch {}
30693
30714
  a(!0);
30694
30715
  }
@@ -30696,7 +30717,7 @@ function aL({ anchor: e }) {
30696
30717
  let o = I((e) => {
30697
30718
  e.stopPropagation();
30698
30719
  try {
30699
- sessionStorage.setItem(iL, "1");
30720
+ sessionStorage.setItem(aL, "1");
30700
30721
  } catch {}
30701
30722
  a(!1);
30702
30723
  }, []);
@@ -30728,18 +30749,18 @@ function aL({ anchor: e }) {
30728
30749
  }
30729
30750
  //#endregion
30730
30751
  //#region ../core/src/hooks/use-host-bridge.ts
30731
- function oL() {
30752
+ function sL() {
30732
30753
  let e = L(Uh);
30733
30754
  if (!e) throw Error("useHostBridge must be used within HostBridgeProvider");
30734
30755
  return e;
30735
30756
  }
30736
30757
  //#endregion
30737
30758
  //#region ../core/src/shells/widget/widget-popup.tsx
30738
- var sL = "bg-base-100 text-base-content rounded-box border border-base-300 shadow-xl w-[22rem] flex flex-col animate-[tavusPopIn_180ms_ease-out]", cL = "bg-base-100 text-base-content w-[100vw] h-[100dvh] flex flex-col animate-[tavusFadeUp_180ms_ease-out]", lL = "p-1 flex-1 min-h-0", uL = "p-1 flex-1 min-h-0";
30739
- function dL({ variant: e, children: t, onClose: n, fullscreen: r }) {
30740
- let { expandable: i } = $I(), a = i.value !== "always";
30759
+ var cL = "bg-base-100 text-base-content rounded-box border border-base-300 shadow-xl w-[22rem] flex flex-col animate-[tavusPopIn_180ms_ease-out]", lL = "bg-base-100 text-base-content w-[100vw] h-[100dvh] flex flex-col animate-[tavusFadeUp_180ms_ease-out]", uL = "p-1 flex-1 min-h-0", dL = "p-1 flex-1 min-h-0";
30760
+ function fL({ variant: e, children: t, onClose: n, fullscreen: r }) {
30761
+ let { expandable: i } = eL(), a = i.value !== "always";
30741
30762
  return r ? /* @__PURE__ */ R("div", {
30742
- class: cL,
30763
+ class: lL,
30743
30764
  children: [
30744
30765
  /* @__PURE__ */ R("div", {
30745
30766
  class: "flex items-center justify-end gap-2 px-2.5 py-1.5 border-b border-base-300",
@@ -30755,18 +30776,18 @@ function dL({ variant: e, children: t, onClose: n, fullscreen: r }) {
30755
30776
  })
30756
30777
  }),
30757
30778
  /* @__PURE__ */ R("div", {
30758
- class: uL,
30779
+ class: dL,
30759
30780
  children: t
30760
30781
  }),
30761
30782
  /* @__PURE__ */ R("div", {
30762
30783
  class: "flex justify-end px-2.5",
30763
- children: /* @__PURE__ */ R(JI, {})
30784
+ children: /* @__PURE__ */ R(YI, {})
30764
30785
  })
30765
30786
  ]
30766
30787
  }) : /* @__PURE__ */ R("div", {
30767
30788
  class: "flex flex-col h-[min(34rem,calc(100dvh-3rem))]",
30768
30789
  children: [/* @__PURE__ */ R("div", {
30769
- class: `${sL} flex-1 overflow-hidden`,
30790
+ class: `${cL} flex-1 overflow-hidden`,
30770
30791
  children: [/* @__PURE__ */ R("div", {
30771
30792
  class: "flex items-center justify-end gap-2 px-2.5 pt-1.5 shrink-0",
30772
30793
  children: a && /* @__PURE__ */ R("button", {
@@ -30780,50 +30801,46 @@ function dL({ variant: e, children: t, onClose: n, fullscreen: r }) {
30780
30801
  })
30781
30802
  })
30782
30803
  }), /* @__PURE__ */ R("div", {
30783
- class: lL,
30804
+ class: uL,
30784
30805
  children: t
30785
30806
  })]
30786
30807
  }), /* @__PURE__ */ R("div", {
30787
30808
  class: "flex justify-end pr-2 pt-1.5 shrink-0",
30788
- children: /* @__PURE__ */ R(JI, {})
30809
+ children: /* @__PURE__ */ R(YI, {})
30789
30810
  })]
30790
30811
  });
30791
30812
  }
30792
30813
  //#endregion
30793
30814
  //#region ../core/src/shells/widget/widget-shell.tsx
30794
- var fL = en("Widget"), pL = "1rem", mL = 480;
30795
- function hL(e, t, n) {
30796
- let r = e.state === "call", i = r || e.state === "haircheck" || e.isStarting;
30797
- e.cancel(), r && e.leave(), i && t(), n();
30798
- }
30815
+ var pL = en("Widget"), mL = "1rem", hL = 480;
30799
30816
  function gL() {
30800
- return typeof window > "u" ? !1 : window.innerWidth <= mL;
30817
+ return typeof window > "u" ? !1 : window.innerWidth <= hL;
30801
30818
  }
30802
30819
  function _L(e) {
30803
30820
  switch (e) {
30804
30821
  case "bottom-right": return {
30805
- bottom: pL,
30806
- right: pL
30822
+ bottom: mL,
30823
+ right: mL
30807
30824
  };
30808
30825
  case "bottom-left": return {
30809
- bottom: pL,
30810
- left: pL
30826
+ bottom: mL,
30827
+ left: mL
30811
30828
  };
30812
30829
  case "top-right": return {
30813
- top: pL,
30814
- right: pL
30830
+ top: mL,
30831
+ right: mL
30815
30832
  };
30816
30833
  case "top-left": return {
30817
- top: pL,
30818
- left: pL
30834
+ top: mL,
30835
+ left: mL
30819
30836
  };
30820
30837
  case "top": return {
30821
- top: pL,
30838
+ top: mL,
30822
30839
  left: "50%",
30823
30840
  transform: "translateX(-50%)"
30824
30841
  };
30825
30842
  case "bottom": return {
30826
- bottom: pL,
30843
+ bottom: mL,
30827
30844
  left: "50%",
30828
30845
  transform: "translateX(-50%)"
30829
30846
  };
@@ -30840,64 +30857,58 @@ function yL(e) {
30840
30857
  return e === "bottom-left" || e === "top-left" ? "left" : "right";
30841
30858
  }
30842
30859
  function bL() {
30843
- let { config: e, initError: t } = _h(), n = QI(), { expanded: r, position: i, variant: a, collapse: o } = $I(), { end: s } = Qv(), { shadowHost: c } = oL(), l = $_(), u = Kt(gL());
30860
+ let { config: e, initError: t } = _h(), n = $I(), { expanded: r, position: i, variant: a, close: o } = eL(), { shadowHost: s } = sL(), c = $_(), l = Kt(gL());
30844
30861
  N(() => {
30845
30862
  if (typeof window > "u") return;
30846
- u.value = gL();
30863
+ l.value = gL();
30847
30864
  let e = () => {
30848
- u.value = gL();
30865
+ l.value = gL();
30849
30866
  };
30850
30867
  return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
30851
- }, [u]);
30852
- let d = F(() => ({ fallback_button: n.btn_title }), [n.btn_title]), f = I(() => {
30853
- hL(l, s, o);
30854
- }, [
30855
- l,
30856
- s,
30857
- o
30858
- ]);
30868
+ }, [l]);
30869
+ let u = F(() => ({ fallback_button: n.btn_title }), [n.btn_title]);
30859
30870
  if ($t(() => {
30860
- let e = c.value, t = i.value, n = r.value, a = n && u.value;
30871
+ let e = s.value, t = i.value, n = r.value, a = n && l.value;
30861
30872
  if (e) {
30862
30873
  if (a) e.style.top = "0", e.style.right = "0", e.style.bottom = "0", e.style.left = "0", e.style.transform = "";
30863
30874
  else {
30864
30875
  let n = _L(t);
30865
30876
  for (let t of vL) e.style[t] = n[t] ?? "";
30866
30877
  }
30867
- e.dataset.tavusWidgetPosition = t, e.dataset.tavusWidgetExpanded = n ? "true" : "false", e.dataset.tavusWidgetFullscreen = a ? "true" : "false", e.dataset.tavusWidgetSmall = u.value ? "true" : "false";
30878
+ e.dataset.tavusWidgetPosition = t, e.dataset.tavusWidgetExpanded = n ? "true" : "false", e.dataset.tavusWidgetFullscreen = a ? "true" : "false", e.dataset.tavusWidgetSmall = l.value ? "true" : "false";
30868
30879
  }
30869
- }), t.value) return fL.error("Widget cannot initialize (init request failed):", t.value), null;
30870
- if (e.value.is_available === !1 && e.value.unavailable_reason === "total_limit") return fL.error("Widget is unavailable (total_limit reached) — not rendering"), null;
30880
+ }), t.value) return pL.error("Widget cannot initialize (init request failed):", t.value), null;
30881
+ if (e.value.is_available === !1 && e.value.unavailable_reason === "total_limit") return pL.error("Widget is unavailable (total_limit reached) — not rendering"), null;
30871
30882
  if (!r.value) {
30872
30883
  let e = yL(i.value), t = e === "right" ? "flex items-end gap-2 justify-end" : "flex items-end gap-2 flex-row-reverse justify-end", n = e === "right" ? "justify-end pr-2" : "justify-start pl-2";
30873
30884
  return /* @__PURE__ */ R("div", {
30874
30885
  class: "flex flex-col",
30875
30886
  children: [/* @__PURE__ */ R("div", {
30876
30887
  class: t,
30877
- children: [/* @__PURE__ */ R(aL, { anchor: e }), /* @__PURE__ */ R(rL, { variant: a.value })]
30888
+ children: [/* @__PURE__ */ R(oL, { anchor: e }), /* @__PURE__ */ R(iL, { variant: a.value })]
30878
30889
  }), /* @__PURE__ */ R("div", {
30879
30890
  class: `flex ${n} pt-1.5`,
30880
- children: /* @__PURE__ */ R(JI, {})
30891
+ children: /* @__PURE__ */ R(YI, {})
30881
30892
  })]
30882
30893
  });
30883
30894
  }
30884
- return e.value.is_available === !1 ? /* @__PURE__ */ R(dL, {
30895
+ return e.value.is_available === !1 ? /* @__PURE__ */ R(fL, {
30885
30896
  variant: a.value,
30886
- fullscreen: u.value,
30887
- onClose: f,
30897
+ fullscreen: l.value,
30898
+ onClose: o,
30888
30899
  children: /* @__PURE__ */ R(sg, { children: /* @__PURE__ */ R(Q_, {
30889
30900
  cause: e.value.unavailable_reason ?? "daily_limit",
30890
30901
  canRetry: !1,
30891
30902
  onRetry: () => {}
30892
30903
  }) })
30893
- }) : /* @__PURE__ */ R(dL, {
30904
+ }) : /* @__PURE__ */ R(fL, {
30894
30905
  variant: a.value,
30895
- fullscreen: u.value,
30896
- onClose: f,
30906
+ fullscreen: l.value,
30907
+ onClose: o,
30897
30908
  children: /* @__PURE__ */ R(sg, { children: /* @__PURE__ */ R(KI, {
30898
- flow: l,
30899
- welcomeText: d,
30900
- onUnavailableCancel: () => l.restart()
30909
+ flow: c,
30910
+ welcomeText: u,
30911
+ onUnavailableCancel: () => c.restart()
30901
30912
  }) })
30902
30913
  });
30903
30914
  }
@@ -30918,7 +30929,7 @@ function SL(e) {
30918
30929
  "memory-stores": e["memory-stores"],
30919
30930
  "base-url": e["base-url"],
30920
30931
  token: e.token,
30921
- children: /* @__PURE__ */ R(wr, { children: /* @__PURE__ */ R(Er, { children: /* @__PURE__ */ R(Jm, { children: /* @__PURE__ */ R(gh, { children: /* @__PURE__ */ R(Bh, { children: /* @__PURE__ */ R(qI, { children: /* @__PURE__ */ R(Gh, { children: /* @__PURE__ */ R(qh, { children: /* @__PURE__ */ R(bL, {}) }) }) }) }) }) }) }) })
30932
+ children: /* @__PURE__ */ R(wr, { children: /* @__PURE__ */ R(Er, { children: /* @__PURE__ */ R(Jm, { children: /* @__PURE__ */ R(gh, { children: /* @__PURE__ */ R(Bh, { children: /* @__PURE__ */ R(JI, { children: /* @__PURE__ */ R(Gh, { children: /* @__PURE__ */ R(qh, { children: /* @__PURE__ */ R(bL, {}) }) }) }) }) }) }) }) })
30922
30933
  })
30923
30934
  ] });
30924
30935
  }
@@ -82,7 +82,13 @@ interface TavusElementTavusApi {
82
82
  sendMessage?: (interaction: TavusInteraction) => void;
83
83
  }
84
84
  export interface TavusElement extends HTMLElement {
85
+ /** Expands the popup to the preview screen. `<tavus-widget>` only. */
85
86
  open?: () => void;
87
+ /**
88
+ * The popup's own close path. Ends a call in progress and cancels a pending
89
+ * start before it collapses; `tavus:conversation-ended` follows for a call
90
+ * that was live. `<tavus-widget>` only.
91
+ */
86
92
  close?: () => void;
87
93
  /** Creates the room without joining it; the next start joins it. Rejects on failure. */
88
94
  createConversation?: () => Promise<{
package/package.json CHANGED
@@ -1,28 +1,33 @@
1
1
  {
2
2
  "name": "@tavus/widget",
3
- "version": "0.19.0",
4
- "description": "Tavus conversational video AI <tavus-widget> launcher custom element for the web.",
3
+ "version": "0.19.2",
4
+ "description": "Add a face-to-face Tavus PAL to any website with the <tavus-widget> floating launcher. Fully managed conversational video, no backend or API key in the browser.",
5
5
  "keywords": [
6
- "ai",
6
+ "ai-agent",
7
+ "ai-avatar",
8
+ "chat-widget",
7
9
  "conversational-ai",
10
+ "conversational-video",
8
11
  "custom-element",
9
- "preact",
12
+ "cvi",
13
+ "deployments",
14
+ "face-to-face",
15
+ "launcher",
16
+ "no-backend",
17
+ "pal",
18
+ "real-time",
10
19
  "tavus",
11
- "video",
20
+ "video-agent",
12
21
  "web-component",
22
+ "webrtc",
13
23
  "widget"
14
24
  ],
15
- "homepage": "https://github.com/Tavus-Engineering/tavus-deployment/tree/main/packages/widget#readme",
25
+ "homepage": "https://docs.tavus.io/sections/deployments/widget",
16
26
  "bugs": {
17
- "url": "https://github.com/Tavus-Engineering/tavus-deployment/issues"
27
+ "email": "support@tavus.io"
18
28
  },
19
29
  "license": "MIT",
20
30
  "author": "Tavus, Inc.",
21
- "repository": {
22
- "type": "git",
23
- "url": "git+https://github.com/Tavus-Engineering/tavus-deployment.git",
24
- "directory": "packages/widget"
25
- },
26
31
  "files": [
27
32
  "dist",
28
33
  "README.md",