@foisit/vue-wrapper 2.4.2 → 2.4.4

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 (3) hide show
  1. package/README.md +0 -3
  2. package/index.mjs +56 -52
  3. package/package.json +16 -6
package/README.md CHANGED
@@ -562,8 +562,6 @@ onMounted(() => {
562
562
  ### Full Type Definitions
563
563
 
564
564
  ```typescript
565
- import type { AssistantCommand, InteractiveResponse } from '@foisit/core';
566
-
567
565
  // Type-safe command definition
568
566
  const myCommand: AssistantCommand = {
569
567
  command: 'update settings',
@@ -674,7 +672,6 @@ test('renders assistant', () => {
674
672
 
675
673
  ## Related Packages
676
674
 
677
- - **[@foisit/core](../core)** - Core engine (auto-installed)
678
675
  - **[@foisit/angular-wrapper](../angular-wrapper)** - Angular integration
679
676
  - **[@foisit/react-wrapper](../react-wrapper)** - React integration
680
677
 
package/index.mjs CHANGED
@@ -3,9 +3,9 @@
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
5
  **/
6
- const ie = process.env.NODE_ENV !== "production" ? Object.freeze({}) : {}, qe = process.env.NODE_ENV !== "production" ? Object.freeze([]) : [], ve = () => {
6
+ const ie = process.env.NODE_ENV !== "production" ? Object.freeze({}) : {}, qe = process.env.NODE_ENV !== "production" ? Object.freeze([]) : [], we = () => {
7
7
  }, ze = (t) => t.charCodeAt(0) === 111 && t.charCodeAt(1) === 110 && // uppercase letter
8
- (t.charCodeAt(2) > 122 || t.charCodeAt(2) < 97), z = Object.assign, k = Array.isArray, R = (t) => typeof t == "function", T = (t) => typeof t == "string", we = (t) => typeof t == "symbol", O = (t) => t !== null && typeof t == "object";
8
+ (t.charCodeAt(2) > 122 || t.charCodeAt(2) < 97), z = Object.assign, k = Array.isArray, R = (t) => typeof t == "function", T = (t) => typeof t == "string", ve = (t) => typeof t == "symbol", O = (t) => t !== null && typeof t == "object";
9
9
  let me;
10
10
  const Q = () => me || (me = typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : typeof global < "u" ? global : {});
11
11
  function ae(t) {
@@ -21,12 +21,12 @@ function ae(t) {
21
21
  } else if (T(t) || O(t))
22
22
  return t;
23
23
  }
24
- const Ue = /;(?![^(]*\))/g, Be = /:([^]+)/, We = /\/\*[^]*?\*\//g;
24
+ const Be = /;(?![^(]*\))/g, Ue = /:([^]+)/, We = /\/\*[^]*?\*\//g;
25
25
  function je(t) {
26
26
  const e = {};
27
- return t.replace(We, "").split(Ue).forEach((n) => {
27
+ return t.replace(We, "").split(Be).forEach((n) => {
28
28
  if (n) {
29
- const i = n.split(Be);
29
+ const i = n.split(Ue);
30
30
  i.length > 1 && (e[i[0].trim()] = i[1].trim());
31
31
  }
32
32
  }), e;
@@ -54,7 +54,7 @@ process.env.NODE_ENV;
54
54
  process.env.NODE_ENV;
55
55
  process.env.NODE_ENV;
56
56
  new Set(
57
- /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((t) => t !== "arguments" && t !== "caller").map((t) => Symbol[t]).filter(we)
57
+ /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((t) => t !== "arguments" && t !== "caller").map((t) => Symbol[t]).filter(ve)
58
58
  );
59
59
  function xe(t) {
60
60
  return se(t) ? xe(t.__v_raw) : !!(t && t.__v_isReactive);
@@ -282,7 +282,7 @@ function ot(t) {
282
282
  const H = (t) => t.id == null ? t.flags & 2 ? -1 : 1 / 0 : t.id;
283
283
  function _e(t) {
284
284
  process.env.NODE_ENV !== "production" && (t = t || /* @__PURE__ */ new Map());
285
- const e = process.env.NODE_ENV !== "production" ? (n) => Ie(t, n) : ve;
285
+ const e = process.env.NODE_ENV !== "production" ? (n) => Ie(t, n) : we;
286
286
  try {
287
287
  for (I = 0; I < C.length; I++) {
288
288
  const n = C[I];
@@ -437,7 +437,7 @@ function gt(t, e, n = {}, i, s) {
437
437
  r && r.key, c = ge(
438
438
  q,
439
439
  {
440
- key: (a && !we(a) ? a : `_${e}`) + // #7256 force differentiate fallback content from actual content
440
+ key: (a && !ve(a) ? a : `_${e}`) + // #7256 force differentiate fallback content from actual content
441
441
  (!r && i ? "_fb" : "")
442
442
  },
443
443
  r || [],
@@ -453,7 +453,7 @@ process.env.NODE_ENV !== "production" && (yt.ownKeys = (t) => (_(
453
453
  "Avoid app logic that relies on enumerating keys on a component instance. The keys will be empty in production mode to avoid performance overhead."
454
454
  ), Reflect.ownKeys(t)));
455
455
  let bt = null;
456
- const vt = {}, Le = (t) => Object.getPrototypeOf(t) === vt, wt = (t) => t.__isSuspense, q = /* @__PURE__ */ Symbol.for("v-fgt"), xt = /* @__PURE__ */ Symbol.for("v-txt"), Te = /* @__PURE__ */ Symbol.for("v-cmt"), K = [];
456
+ const wt = {}, Le = (t) => Object.getPrototypeOf(t) === wt, vt = (t) => t.__isSuspense, q = /* @__PURE__ */ Symbol.for("v-fgt"), xt = /* @__PURE__ */ Symbol.for("v-txt"), Te = /* @__PURE__ */ Symbol.for("v-cmt"), K = [];
457
457
  let E = null;
458
458
  function pe(t = !1) {
459
459
  K.push(E = t ? null : []);
@@ -542,7 +542,7 @@ function Pe(t, e = null, n = null, i = 0, s = null, o = !1) {
542
542
  let { class: a, style: c } = e;
543
543
  a && !T(a) && (e.class = le(a)), O(c) && (oe(c) && !k(c) && (c = z({}, c)), e.style = ae(c));
544
544
  }
545
- const r = T(t) ? 1 : wt(t) ? 128 : ft(t) ? 64 : O(t) ? 4 : R(t) ? 2 : 0;
545
+ const r = T(t) ? 1 : vt(t) ? 128 : ft(t) ? 64 : O(t) ? 4 : R(t) ? 2 : 0;
546
546
  return process.env.NODE_ENV !== "production" && r & 4 && oe(t) && (t = M(t), _(
547
547
  "Vue received a Component that was made a reactive object. This can lead to unnecessary performance overhead and should be avoided by marking the component with `markRaw` or using `shallowRef` instead of `ref`.",
548
548
  `
@@ -926,7 +926,7 @@ class Mt {
926
926
  const c = this.getCommandById(r);
927
927
  return c ? this.safeRunAction(c, a) : { message: "That action is no longer available.", type: "error" };
928
928
  }
929
- return ["no", "n", "cancel", "stop"].includes(o) ? (this.pendingConfirmation = null, { message: "Cancelled.", type: "success" }) : {
929
+ return ["no", "n", "cancel", "stop"].includes(o) ? (this.pendingConfirmation = null, { message: "Cancelled.", type: "success" }) : {
930
930
  message: "Please confirm: Yes or No.",
931
931
  type: "confirm",
932
932
  options: [
@@ -1065,7 +1065,7 @@ class Mt {
1065
1065
  }
1066
1066
  buildConfirmResponse(e) {
1067
1067
  return {
1068
- message: `⚠️ Are you sure you want to run "${e.command}"?`,
1068
+ message: `Are you sure you want to run "${e.command}"?`,
1069
1069
  type: "confirm",
1070
1070
  options: [
1071
1071
  { label: "Yes", value: "yes" },
@@ -1170,19 +1170,19 @@ class Mt {
1170
1170
  }
1171
1171
  class He {
1172
1172
  constructor() {
1173
- this.synth = window.speechSynthesis;
1173
+ this.synth = typeof window < "u" ? window.speechSynthesis : null;
1174
1174
  }
1175
1175
  speak(e, n) {
1176
1176
  if (!this.synth) {
1177
- console.error("SpeechSynthesis API is not supported in this browser.");
1177
+ console.error("SpeechSynthesis API is not supported in this environment.");
1178
1178
  return;
1179
1179
  }
1180
1180
  const i = new SpeechSynthesisUtterance(e);
1181
- n && (i.pitch = n.pitch || 1, i.rate = n.rate || 1, i.volume = n.volume || 1), i.onstart = () => {
1181
+ n && (i.pitch = n.pitch || 1, i.rate = n.rate || 1, i.volume = n.volume || 1), typeof window < "u" && (i.onstart = () => {
1182
1182
  window.dispatchEvent(new CustomEvent("foisit:tts-start"));
1183
1183
  }, i.onend = () => {
1184
1184
  console.log("Speech finished."), window.dispatchEvent(new CustomEvent("foisit:tts-end"));
1185
- }, i.onerror = (s) => {
1185
+ }), i.onerror = (s) => {
1186
1186
  console.error("Error during speech synthesis:", s.error);
1187
1187
  }, this.synth.speak(i);
1188
1188
  }
@@ -1205,6 +1205,7 @@ class Pt {
1205
1205
  }
1206
1206
  }
1207
1207
  const be = () => {
1208
+ if (typeof window > "u") return null;
1208
1209
  const t = window;
1209
1210
  return t.SpeechRecognition ?? t.webkitSpeechRecognition ?? null;
1210
1211
  };
@@ -1230,16 +1231,16 @@ class Vt {
1230
1231
  s.onaudiostart = () => this.log("onaudiostart"), s.onsoundstart = () => this.log("onsoundstart"), s.onspeechstart = () => this.log("onspeechstart"), s.onspeechend = () => this.log("onspeechend"), s.onsoundend = () => this.log("onsoundend"), s.onaudioend = () => this.log("onaudioend"), this.recognition.onerror = (o) => this.handleError(o);
1231
1232
  } else
1232
1233
  this.recognition = null, this.emitStatus("unsupported");
1233
- window.addEventListener("foisit:tts-start", this.onTTSStart), window.addEventListener("foisit:tts-end", this.onTTSEnd), this.visibilityHandler = () => {
1234
+ typeof window < "u" ? (window.addEventListener("foisit:tts-start", this.onTTSStart), window.addEventListener("foisit:tts-end", this.onTTSEnd), this.visibilityHandler = () => {
1234
1235
  var s;
1235
- if (document.hidden) {
1236
+ if (typeof document < "u" && document.hidden) {
1236
1237
  try {
1237
1238
  (s = this.recognition) == null || s.stop();
1238
1239
  } catch {
1239
1240
  }
1240
1241
  this.emitStatus(this.ttsSpeaking ? "speaking" : "idle");
1241
1242
  } else this.isListening && !this.ttsSpeaking && this.safeRestart();
1242
- }, document.addEventListener("visibilitychange", this.visibilityHandler);
1243
+ }, typeof document < "u" && document.addEventListener("visibilitychange", this.visibilityHandler)) : this.visibilityHandler = void 0;
1243
1244
  }
1244
1245
  // Debug logger helpers
1245
1246
  log(e) {
@@ -1445,7 +1446,10 @@ function Ht() {
1445
1446
  const t = document.querySelector("#gradient-indicator");
1446
1447
  t && (t.remove(), console.log("Gradient indicator removed from the DOM"));
1447
1448
  }
1448
- class qt {
1449
+ function qt() {
1450
+ return typeof window < "u" && typeof document < "u";
1451
+ }
1452
+ class zt {
1449
1453
  constructor() {
1450
1454
  this.state = "idle", this.subscribers = [];
1451
1455
  }
@@ -1463,9 +1467,9 @@ class qt {
1463
1467
  this.subscribers.forEach((e) => e(this.state));
1464
1468
  }
1465
1469
  }
1466
- class zt {
1470
+ class Bt {
1467
1471
  constructor(e) {
1468
- this.container = null, this.chatWindow = null, this.messagesContainer = null, this.input = null, this.isOpen = !1, this.loadingEl = null, this.config = e, this.init();
1472
+ this.container = null, this.chatWindow = null, this.messagesContainer = null, this.input = null, this.isOpen = !1, this.loadingEl = null, this.active = qt(), this.config = e, this.active && this.init();
1469
1473
  }
1470
1474
  init() {
1471
1475
  var n, i;
@@ -1505,17 +1509,17 @@ class zt {
1505
1509
  }), s.appendChild(this.input), this.chatWindow.appendChild(e), this.chatWindow.appendChild(this.messagesContainer), this.chatWindow.appendChild(s), (o = this.container) == null || o.appendChild(this.chatWindow);
1506
1510
  }
1507
1511
  registerCallbacks(e, n) {
1508
- this.onSubmit = e, this.onClose = n;
1512
+ this.active && (this.onSubmit = e, this.onClose = n);
1509
1513
  }
1510
1514
  toggle(e, n) {
1511
- e && (this.onSubmit = e), n && (this.onClose = n), this.isOpen = !this.isOpen, this.chatWindow && (this.isOpen ? (this.chatWindow.style.display = "flex", requestAnimationFrame(() => {
1515
+ this.active && (e && (this.onSubmit = e), n && (this.onClose = n), this.isOpen = !this.isOpen, this.chatWindow && (this.isOpen ? (this.chatWindow.style.display = "flex", requestAnimationFrame(() => {
1512
1516
  this.chatWindow && (this.chatWindow.style.opacity = "1", this.chatWindow.style.transform = "translateY(0) scale(1)");
1513
1517
  }), setTimeout(() => {
1514
1518
  var i;
1515
1519
  return (i = this.input) == null ? void 0 : i.focus();
1516
1520
  }, 100)) : (this.chatWindow.style.opacity = "0", this.chatWindow.style.transform = "translateY(20px) scale(0.95)", setTimeout(() => {
1517
1521
  this.chatWindow && !this.isOpen && (this.chatWindow.style.display = "none");
1518
- }, 200), this.onClose && this.onClose()));
1522
+ }, 200), this.onClose && this.onClose())));
1519
1523
  }
1520
1524
  addMessage(e, n) {
1521
1525
  if (!this.messagesContainer) return;
@@ -1562,8 +1566,8 @@ class zt {
1562
1566
  if (d.type === "select") {
1563
1567
  const u = document.createElement("select");
1564
1568
  u.className = "foisit-form-input";
1565
- const v = document.createElement("option");
1566
- v.value = "", v.textContent = "Select...", u.appendChild(v);
1569
+ const w = document.createElement("option");
1570
+ w.value = "", w.textContent = "Select...", u.appendChild(w);
1567
1571
  const x = (p) => {
1568
1572
  (p ?? []).forEach((S) => {
1569
1573
  const b = document.createElement("option");
@@ -1585,17 +1589,17 @@ class zt {
1585
1589
  }
1586
1590
  d.defaultValue != null && (u.value = String(d.defaultValue)), m = u;
1587
1591
  } else if (d.type === "file") {
1588
- const u = d, v = document.createElement("input");
1589
- v.className = "foisit-form-input", v.type = "file", u.accept && Array.isArray(u.accept) && (v.accept = u.accept.join(",")), u.multiple && (v.multiple = !0), u.capture && (u.capture === !0 ? v.setAttribute("capture", "") : v.setAttribute("capture", String(u.capture))), v.addEventListener("change", async () => {
1590
- const x = Array.from(v.files || []), p = y;
1592
+ const u = d, w = document.createElement("input");
1593
+ w.className = "foisit-form-input", w.type = "file", u.accept && Array.isArray(u.accept) && (w.accept = u.accept.join(",")), u.multiple && (w.multiple = !0), u.capture && (u.capture === !0 ? w.setAttribute("capture", "") : w.setAttribute("capture", String(u.capture))), w.addEventListener("change", async () => {
1594
+ const x = Array.from(w.files || []), p = y;
1591
1595
  if (p.style.display = "none", p.textContent = "", x.length === 0) return;
1592
1596
  const S = u.maxFiles ?? (u.multiple ? 10 : 1);
1593
1597
  if (x.length > S) {
1594
1598
  p.textContent = `Please select at most ${S} file(s).`, p.style.display = "block";
1595
1599
  return;
1596
1600
  }
1597
- const b = u.maxSizeBytes ?? 1 / 0, g = x.reduce((w, U) => w + U.size, 0);
1598
- if (x.some((w) => w.size > b)) {
1601
+ const b = u.maxSizeBytes ?? 1 / 0, g = x.reduce((v, B) => v + B.size, 0);
1602
+ if (x.some((v) => v.size > b)) {
1599
1603
  p.textContent = `One or more files exceed the maximum size of ${Math.round(b / 1024)} KB.`, p.style.display = "block";
1600
1604
  return;
1601
1605
  }
@@ -1605,13 +1609,13 @@ class zt {
1605
1609
  return;
1606
1610
  }
1607
1611
  if (u.accept && Array.isArray(u.accept)) {
1608
- const w = u.accept;
1609
- if (!x.every((B) => B.type ? w.some((W) => W.startsWith(".") ? B.name.toLowerCase().endsWith(W.toLowerCase()) : B.type === W || B.type.startsWith(W.split("/")[0] + "/")) : !0)) {
1612
+ const v = u.accept;
1613
+ if (!x.every((U) => U.type ? v.some((W) => W.startsWith(".") ? U.name.toLowerCase().endsWith(W.toLowerCase()) : U.type === W || U.type.startsWith(W.split("/")[0] + "/")) : !0)) {
1610
1614
  p.textContent = "One or more files have an unsupported type.", p.style.display = "block";
1611
1615
  return;
1612
1616
  }
1613
1617
  }
1614
- }), m = v;
1618
+ }), m = w;
1615
1619
  } else {
1616
1620
  const u = document.createElement("input");
1617
1621
  u.className = "foisit-form-input", d.type === "string" && (u.placeholder = d.placeholder || "Type here..."), d.type === "number" ? (u.type = "number", typeof d.min == "number" && (u.min = String(d.min)), typeof d.max == "number" && (u.max = String(d.max)), typeof d.step == "number" && (u.step = String(d.step)), d.defaultValue != null && (u.value = String(d.defaultValue))) : d.type === "date" ? (u.type = "date", typeof d.min == "string" && (u.min = d.min), typeof d.max == "string" && (u.max = d.max), d.defaultValue != null && (u.value = String(d.defaultValue))) : (u.type = "text", d.defaultValue != null && (u.value = String(d.defaultValue))), m = u;
@@ -1644,15 +1648,15 @@ class zt {
1644
1648
  continue;
1645
1649
  }
1646
1650
  if (b.length === 0) continue;
1647
- const g = (n ?? []).find((w) => w.name === m.name), $ = (g == null ? void 0 : g.delivery) ?? "file";
1651
+ const g = (n ?? []).find((v) => v.name === m.name), $ = (g == null ? void 0 : g.delivery) ?? "file";
1648
1652
  if (g != null && g.maxWidth || g != null && g.maxHeight)
1649
1653
  try {
1650
- const w = await this.getImageDimensions(b[0]);
1651
- if (g.maxWidth && w.width > g.maxWidth) {
1654
+ const v = await this.getImageDimensions(b[0]);
1655
+ if (g.maxWidth && v.width > g.maxWidth) {
1652
1656
  f = !0, p && (p.textContent = `Image width must be ≤ ${g.maxWidth}px`, p.style.display = "block");
1653
1657
  continue;
1654
1658
  }
1655
- if (g.maxHeight && w.height > g.maxHeight) {
1659
+ if (g.maxHeight && v.height > g.maxHeight) {
1656
1660
  f = !0, p && (p.textContent = `Image height must be ≤ ${g.maxHeight}px`, p.style.display = "block");
1657
1661
  continue;
1658
1662
  }
@@ -1660,8 +1664,8 @@ class zt {
1660
1664
  }
1661
1665
  if (g != null && g.maxDurationSec)
1662
1666
  try {
1663
- const w = await this.getMediaDuration(b[0]);
1664
- if (w && w > g.maxDurationSec) {
1667
+ const v = await this.getMediaDuration(b[0]);
1668
+ if (v && v > g.maxDurationSec) {
1665
1669
  f = !0, p && (p.textContent = `Media duration must be ≤ ${g.maxDurationSec}s`, p.style.display = "block");
1666
1670
  continue;
1667
1671
  }
@@ -1671,17 +1675,17 @@ class zt {
1671
1675
  l[m.name] = g != null && g.multiple ? b : b[0];
1672
1676
  else if ($ === "base64")
1673
1677
  try {
1674
- const w = await Promise.all(b.map((U) => this.readFileAsDataURL(U)));
1675
- l[m.name] = g != null && g.multiple ? w : w[0];
1678
+ const v = await Promise.all(b.map((B) => this.readFileAsDataURL(B)));
1679
+ l[m.name] = g != null && g.multiple ? v : v[0];
1676
1680
  } catch {
1677
1681
  f = !0, p && (p.textContent = "Failed to encode file(s) to base64.", p.style.display = "block");
1678
1682
  continue;
1679
1683
  }
1680
1684
  continue;
1681
1685
  }
1682
- const y = (m.el.value ?? "").toString().trim(), u = m.el.parentElement, v = u == null ? void 0 : u.querySelector(".foisit-form-error");
1686
+ const y = (m.el.value ?? "").toString().trim(), u = m.el.parentElement, w = u == null ? void 0 : u.querySelector(".foisit-form-error");
1683
1687
  if (m.required && (y == null || y === "")) {
1684
- f = !0, m.el.classList.add("foisit-error-border"), v && (v.textContent = "This field is required", v.style.display = "block");
1688
+ f = !0, m.el.classList.add("foisit-error-border"), w && (w.textContent = "This field is required", w.style.display = "block");
1685
1689
  continue;
1686
1690
  }
1687
1691
  if (y !== "")
@@ -2095,7 +2099,7 @@ class Ut {
2095
2099
  this.config = e, this.isActivated = !1, this.lastProcessedInput = "", this.processingLock = !1, this.defaultIntroMessage = "How can I help you?", this.commandHandler = new Mt({
2096
2100
  enableSmartIntent: this.config.enableSmartIntent !== !1,
2097
2101
  intentEndpoint: this.config.intentEndpoint
2098
- }), this.fallbackHandler = new Pt(), this.voiceProcessor = new Vt(), this.textToSpeech = new He(), this.stateManager = new qt(), this.gestureHandler = new Ft(), this.overlayManager = new zt({
2102
+ }), this.fallbackHandler = new Pt(), this.voiceProcessor = new Vt(), this.textToSpeech = new He(), this.stateManager = new zt(), this.gestureHandler = new Ft(), this.overlayManager = new Bt({
2099
2103
  floatingButton: this.config.floatingButton,
2100
2104
  inputPlaceholder: this.config.inputPlaceholder
2101
2105
  }), this.config.commands.forEach((n) => this.commandHandler.addCommand(n)), this.config.fallbackResponse && this.fallbackHandler.setFallbackMessage(this.config.fallbackResponse), this.gestureHandler.setupDoubleTapListener(() => this.toggle()), this.overlayManager.registerCallbacks(
@@ -2239,7 +2243,7 @@ class Ut {
2239
2243
  return typeof i == "string" && i.trim() ? i.trim() : null;
2240
2244
  }
2241
2245
  }
2242
- const Bt = /* @__PURE__ */ mt({
2246
+ const Wt = /* @__PURE__ */ mt({
2243
2247
  name: "AssistantProvider",
2244
2248
  props: {
2245
2249
  config: {
@@ -2254,23 +2258,23 @@ const Bt = /* @__PURE__ */ mt({
2254
2258
  return (i = e.default) == null ? void 0 : i.call(e);
2255
2259
  };
2256
2260
  }
2257
- }), Wt = (t, e) => {
2261
+ }), jt = (t, e) => {
2258
2262
  const n = t.__vccOpts || t;
2259
2263
  for (const [i, s] of e)
2260
2264
  n[i] = s;
2261
2265
  return n;
2262
2266
  };
2263
- function jt(t, e, n, i, s, o) {
2267
+ function Kt(t, e, n, i, s, o) {
2264
2268
  return gt(t.$slots, "default");
2265
2269
  }
2266
- const Kt = /* @__PURE__ */ Wt(Bt, [["render", jt]]), Yt = () => {
2270
+ const Yt = /* @__PURE__ */ jt(Wt, [["render", Kt]]), Jt = () => {
2267
2271
  const t = ut("assistantService");
2268
2272
  if (!t)
2269
2273
  throw new Error("useAssistant must be used within an AssistantProvider");
2270
2274
  return t;
2271
2275
  };
2272
2276
  export {
2273
- Kt as AssistantProvider,
2277
+ Yt as AssistantProvider,
2274
2278
  Ut as AssistantService,
2275
- Yt as useAssistant
2279
+ Jt as useAssistant
2276
2280
  };
package/package.json CHANGED
@@ -1,25 +1,35 @@
1
1
  {
2
2
  "name": "@foisit/vue-wrapper",
3
- "version": "2.4.2",
4
- "main": "./index.js",
3
+ "version": "2.4.4",
4
+ "main": "./index.mjs",
5
5
  "types": "./index.d.ts",
6
6
  "exports": {
7
7
  ".": {
8
8
  "import": "./index.mjs",
9
- "require": "./index.js",
10
9
  "types": "./index.d.ts"
11
10
  }
12
11
  },
13
12
  "files": [
14
- "index.js",
15
13
  "index.mjs",
16
14
  "index.d.ts",
17
15
  "lib",
18
- "style.css",
19
16
  "README.md"
20
17
  ],
21
18
  "sideEffects": false,
22
- "description": "Foisit: Speak, and its done. A voice assistant library for vue apps",
19
+ "description": "A powerful AI assistant library for Vue applications, providing seamless chatbot functionality and intelligent interactions for websites.",
20
+ "keywords": [
21
+ "ai-assistant",
22
+ "chatbot",
23
+ "vue",
24
+ "ai",
25
+ "assistant",
26
+ "accessibility",
27
+ "website-integration"
28
+ ],
29
+ "homepage": "https://github.com/boluwatifee4/foisit#readme",
30
+ "bugs": {
31
+ "url": "https://github.com/boluwatifee4/foisit/issues"
32
+ },
23
33
  "repository": {
24
34
  "type": "git",
25
35
  "url": "git+https://github.com/boluwatifee4/foisit.git"