vdb-ai-chat 1.0.2 → 1.0.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 (45) hide show
  1. package/dist/chat-widget.js +1 -1
  2. package/lib/commonjs/components/ChatInput.js +0 -1
  3. package/lib/commonjs/components/ChatInput.js.map +1 -1
  4. package/lib/commonjs/components/ChatWidget.js +67 -46
  5. package/lib/commonjs/components/ChatWidget.js.map +1 -1
  6. package/lib/commonjs/components/LazyProductsFetcher.js +47 -0
  7. package/lib/commonjs/components/LazyProductsFetcher.js.map +1 -0
  8. package/lib/commonjs/components/MessageBubble.js +1 -1
  9. package/lib/commonjs/components/MessageBubble.js.map +1 -1
  10. package/lib/commonjs/components/MessageMetaRow.js +1 -23
  11. package/lib/commonjs/components/MessageMetaRow.js.map +1 -1
  12. package/lib/commonjs/components/SuggestionsRow.js +13 -8
  13. package/lib/commonjs/components/SuggestionsRow.js.map +1 -1
  14. package/lib/commonjs/hooks/useInViewport.js +42 -0
  15. package/lib/commonjs/hooks/useInViewport.js.map +1 -0
  16. package/lib/module/components/ChatInput.js +0 -1
  17. package/lib/module/components/ChatInput.js.map +1 -1
  18. package/lib/module/components/ChatWidget.js +67 -46
  19. package/lib/module/components/ChatWidget.js.map +1 -1
  20. package/lib/module/components/LazyProductsFetcher.js +40 -0
  21. package/lib/module/components/LazyProductsFetcher.js.map +1 -0
  22. package/lib/module/components/MessageBubble.js +1 -1
  23. package/lib/module/components/MessageBubble.js.map +1 -1
  24. package/lib/module/components/MessageMetaRow.js +2 -24
  25. package/lib/module/components/MessageMetaRow.js.map +1 -1
  26. package/lib/module/components/SuggestionsRow.js +14 -9
  27. package/lib/module/components/SuggestionsRow.js.map +1 -1
  28. package/lib/module/hooks/useInViewport.js +36 -0
  29. package/lib/module/hooks/useInViewport.js.map +1 -0
  30. package/lib/typescript/components/ChatInput.d.ts.map +1 -1
  31. package/lib/typescript/components/ChatWidget.d.ts.map +1 -1
  32. package/lib/typescript/components/LazyProductsFetcher.d.ts +9 -0
  33. package/lib/typescript/components/LazyProductsFetcher.d.ts.map +1 -0
  34. package/lib/typescript/components/MessageBubble.d.ts.map +1 -1
  35. package/lib/typescript/components/SuggestionsRow.d.ts.map +1 -1
  36. package/lib/typescript/hooks/useInViewport.d.ts +5 -0
  37. package/lib/typescript/hooks/useInViewport.d.ts.map +1 -0
  38. package/package.json +1 -1
  39. package/src/components/ChatInput.tsx +6 -3
  40. package/src/components/ChatWidget.tsx +187 -135
  41. package/src/components/LazyProductsFetcher.tsx +41 -0
  42. package/src/components/MessageBubble.tsx +4 -1
  43. package/src/components/MessageMetaRow.tsx +2 -2
  44. package/src/components/SuggestionsRow.tsx +20 -15
  45. package/src/hooks/useInViewport.ts +38 -0
@@ -1,23 +1,26 @@
1
1
  import React, { memo } from "react";
2
- import { Text, TouchableOpacity, StyleSheet, ScrollView } from "react-native";
2
+ import { View, Text, TouchableOpacity, StyleSheet, ScrollView } from "react-native";
3
3
  const SuggestionsRowComponent = ({
4
4
  suggestions,
5
5
  onSelect,
6
6
  variant = "default"
7
7
  }) => {
8
8
  if (!suggestions.length) return null;
9
- return /*#__PURE__*/React.createElement(ScrollView, {
9
+ const ScrollViewComponent = variant === "inline" ? View : ScrollView;
10
+ return /*#__PURE__*/React.createElement(ScrollViewComponent, {
10
11
  showsVerticalScrollIndicator: false,
11
12
  contentContainerStyle: [styles.container, variant === "inline" && styles.containerInline],
12
13
  style: [styles.scroll, variant === "inline" && styles.scrollInline]
13
- }, suggestions.map(s => /*#__PURE__*/React.createElement(TouchableOpacity, {
14
- key: s,
14
+ }, suggestions.map((s, index) => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TouchableOpacity, {
15
+ key: `${s}-${index}`,
15
16
  style: [styles.chip, variant === "inline" && styles.chipInline],
16
17
  onPress: () => onSelect(s),
17
18
  activeOpacity: 0.75
18
19
  }, /*#__PURE__*/React.createElement(Text, {
19
20
  style: styles.chipText
20
- }, s))));
21
+ }, s)), index < suggestions.length - 1 && /*#__PURE__*/React.createElement(View, {
22
+ style: styles.spacer
23
+ }))));
21
24
  };
22
25
  const styles = StyleSheet.create({
23
26
  scroll: {
@@ -45,15 +48,13 @@ const styles = StyleSheet.create({
45
48
  },
46
49
  chip: {
47
50
  backgroundColor: "#EDEDF2",
48
- borderRadius: 4,
51
+ borderRadius: 6,
49
52
  paddingHorizontal: 8,
50
53
  paddingVertical: 6,
51
54
  width: "100%",
52
55
  alignSelf: "stretch",
53
56
  justifyContent: "center",
54
- alignItems: "flex-start",
55
- borderWidth: 1,
56
- borderColor: "#E0E0E0"
57
+ alignItems: "flex-start"
57
58
  },
58
59
  chipInline: {
59
60
  backgroundColor: "#FFFFFF"
@@ -63,6 +64,10 @@ const styles = StyleSheet.create({
63
64
  color: "#1A1A1A",
64
65
  fontWeight: "500",
65
66
  textAlign: "left"
67
+ },
68
+ spacer: {
69
+ width: 4,
70
+ height: 4
66
71
  }
67
72
  });
68
73
  const SuggestionsRow = /*#__PURE__*/memo(SuggestionsRowComponent);
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","Text","TouchableOpacity","StyleSheet","ScrollView","SuggestionsRowComponent","suggestions","onSelect","variant","length","createElement","showsVerticalScrollIndicator","contentContainerStyle","styles","container","containerInline","style","scroll","scrollInline","map","s","key","chip","chipInline","onPress","activeOpacity","chipText","create","maxWidth","alignSelf","paddingHorizontal","paddingVertical","flexDirection","justifyContent","alignItems","gap","backgroundColor","borderRadius","width","borderWidth","borderColor","fontSize","color","fontWeight","textAlign","SuggestionsRow"],"sourceRoot":"../../../src","sources":["components/SuggestionsRow.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SAEEC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EACVC,UAAU,QACL,cAAc;AASrB,MAAMC,uBAAsD,GAAGA,CAAC;EAC9DC,WAAW;EACXC,QAAQ;EACRC,OAAO,GAAG;AACZ,CAAC,KAAK;EACJ,IAAI,CAACF,WAAW,CAACG,MAAM,EAAE,OAAO,IAAI;EAEpC,oBACEV,KAAA,CAAAW,aAAA,CAACN,UAAU;IACTO,4BAA4B,EAAE,KAAM;IACpCC,qBAAqB,EAAE,CACrBC,MAAM,CAACC,SAAS,EAChBN,OAAO,KAAK,QAAQ,IAAIK,MAAM,CAACE,eAAe,CAC9C;IACFC,KAAK,EAAE,CAACH,MAAM,CAACI,MAAM,EAAET,OAAO,KAAK,QAAQ,IAAIK,MAAM,CAACK,YAAY;EAAE,GAEnEZ,WAAW,CAACa,GAAG,CAAEC,CAAC,iBACjBrB,KAAA,CAAAW,aAAA,CAACR,gBAAgB;IACfmB,GAAG,EAAED,CAAE;IACPJ,KAAK,EAAE,CAACH,MAAM,CAACS,IAAI,EAAEd,OAAO,KAAK,QAAQ,IAAIK,MAAM,CAACU,UAAU,CAAE;IAChEC,OAAO,EAAEA,CAAA,KAAMjB,QAAQ,CAACa,CAAC,CAAE;IAC3BK,aAAa,EAAE;EAAK,gBAEpB1B,KAAA,CAAAW,aAAA,CAACT,IAAI;IAACe,KAAK,EAAEH,MAAM,CAACa;EAAS,GAAEN,CAAQ,CACvB,CACnB,CACS,CAAC;AAEjB,CAAC;AAED,MAAMP,MAAM,GAAGV,UAAU,CAACwB,MAAM,CAAC;EAC/BV,MAAM,EAAE;IACNW,QAAQ,EAAE,KAAK;IACfC,SAAS,EAAE,YAAY;IACvBC,iBAAiB,EAAE;EACrB,CAAC;EACDZ,YAAY,EAAE;IACZU,QAAQ,EAAE,MAAM;IAChBC,SAAS,EAAE,SAAS;IACpBC,iBAAiB,EAAE;EACrB,CAAC;EACDhB,SAAS,EAAE;IACTiB,eAAe,EAAE,CAAC;IAClBC,aAAa,EAAE,QAAQ;IACvBC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,CAAC;IACNN,SAAS,EAAE;IACX;EACF,CAAC;EACDd,eAAe,EAAE;IACf;IACAoB,GAAG,EAAE;EACP,CAAC;EAEDb,IAAI,EAAE;IACJc,eAAe,EAAE,SAAS;IAC1BC,YAAY,EAAE,CAAC;IACfP,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE,CAAC;IAClBO,KAAK,EAAE,MAAM;IACbT,SAAS,EAAE,SAAS;IACpBI,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,YAAY;IACxBK,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE;EACf,CAAC;EACDjB,UAAU,EAAE;IACVa,eAAe,EAAE;EACnB,CAAC;EAEDV,QAAQ,EAAE;IACRe,QAAQ,EAAE,EAAE;IACZC,KAAK,EAAE,SAAS;IAChBC,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAE;EACb;AACF,CAAC,CAAC;AAEF,MAAMC,cAAc,gBAAG7C,IAAI,CAACK,uBAAuB,CAAC;AACpD,eAAewC,cAAc","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","View","Text","TouchableOpacity","StyleSheet","ScrollView","SuggestionsRowComponent","suggestions","onSelect","variant","length","ScrollViewComponent","createElement","showsVerticalScrollIndicator","contentContainerStyle","styles","container","containerInline","style","scroll","scrollInline","map","s","index","Fragment","key","chip","chipInline","onPress","activeOpacity","chipText","spacer","create","maxWidth","alignSelf","paddingHorizontal","paddingVertical","flexDirection","justifyContent","alignItems","gap","backgroundColor","borderRadius","width","fontSize","color","fontWeight","textAlign","height","SuggestionsRow"],"sourceRoot":"../../../src","sources":["components/SuggestionsRow.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,IAAI,QAAQ,OAAO;AACnC,SACEC,IAAI,EACJC,IAAI,EACJC,gBAAgB,EAChBC,UAAU,EACVC,UAAU,QACL,cAAc;AASrB,MAAMC,uBAAsD,GAAGA,CAAC;EAC9DC,WAAW;EACXC,QAAQ;EACRC,OAAO,GAAG;AACZ,CAAC,KAAK;EACJ,IAAI,CAACF,WAAW,CAACG,MAAM,EAAE,OAAO,IAAI;EACpC,MAAMC,mBAAmB,GAAGF,OAAO,KAAK,QAAQ,GAAGR,IAAI,GAAGI,UAAU;EACpE,oBACEN,KAAA,CAAAa,aAAA,CAACD,mBAAmB;IAClBE,4BAA4B,EAAE,KAAM;IACpCC,qBAAqB,EAAE,CACrBC,MAAM,CAACC,SAAS,EAChBP,OAAO,KAAK,QAAQ,IAAIM,MAAM,CAACE,eAAe,CAC9C;IACFC,KAAK,EAAE,CAACH,MAAM,CAACI,MAAM,EAAEV,OAAO,KAAK,QAAQ,IAAIM,MAAM,CAACK,YAAY;EAAE,GAEnEb,WAAW,CAACc,GAAG,CAAC,CAACC,CAAC,EAAEC,KAAK,kBACxBxB,KAAA,CAAAa,aAAA,CAAAb,KAAA,CAAAyB,QAAA,qBACEzB,KAAA,CAAAa,aAAA,CAACT,gBAAgB;IACfsB,GAAG,EAAE,GAAGH,CAAC,IAAIC,KAAK,EAAG;IACrBL,KAAK,EAAE,CAACH,MAAM,CAACW,IAAI,EAAEjB,OAAO,KAAK,QAAQ,IAAIM,MAAM,CAACY,UAAU,CAAE;IAChEC,OAAO,EAAEA,CAAA,KAAMpB,QAAQ,CAACc,CAAC,CAAE;IAC3BO,aAAa,EAAE;EAAK,gBAEpB9B,KAAA,CAAAa,aAAA,CAACV,IAAI;IAACgB,KAAK,EAAEH,MAAM,CAACe;EAAS,GAAER,CAAQ,CACvB,CAAC,EAClBC,KAAK,GAAGhB,WAAW,CAACG,MAAM,GAAG,CAAC,iBAAIX,KAAA,CAAAa,aAAA,CAACX,IAAI;IAACiB,KAAK,EAAEH,MAAM,CAACgB;EAAO,CAAE,CAChE,CACH,CACkB,CAAC;AAE1B,CAAC;AAED,MAAMhB,MAAM,GAAGX,UAAU,CAAC4B,MAAM,CAAC;EAC/Bb,MAAM,EAAE;IACNc,QAAQ,EAAE,KAAK;IACfC,SAAS,EAAE,YAAY;IACvBC,iBAAiB,EAAE;EACrB,CAAC;EACDf,YAAY,EAAE;IACZa,QAAQ,EAAE,MAAM;IAChBC,SAAS,EAAE,SAAS;IACpBC,iBAAiB,EAAE;EACrB,CAAC;EACDnB,SAAS,EAAE;IACToB,eAAe,EAAE,CAAC;IAClBC,aAAa,EAAE,QAAQ;IACvBC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,CAAC;IACNN,SAAS,EAAE;IACX;EACF,CAAC;EACDjB,eAAe,EAAE;IACf;IACAuB,GAAG,EAAE;EACP,CAAC;EAEDd,IAAI,EAAE;IACJe,eAAe,EAAE,SAAS;IAC1BC,YAAY,EAAE,CAAC;IACfP,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE,CAAC;IAClBO,KAAK,EAAE,MAAM;IACbT,SAAS,EAAE,SAAS;IACpBI,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE;EACd,CAAC;EACDZ,UAAU,EAAE;IACVc,eAAe,EAAE;EACnB,CAAC;EAEDX,QAAQ,EAAE;IACRc,QAAQ,EAAE,EAAE;IACZC,KAAK,EAAE,SAAS;IAChBC,UAAU,EAAE,KAAK;IACjBC,SAAS,EAAE;EACb,CAAC;EACDhB,MAAM,EAAE;IACNY,KAAK,EAAE,CAAC;IACRK,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAEF,MAAMC,cAAc,gBAAGjD,IAAI,CAACM,uBAAuB,CAAC;AACpD,eAAe2C,cAAc","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ import { useEffect, useRef, useState } from "react";
2
+ import { Platform } from "react-native";
3
+ export function useInViewport() {
4
+ const ref = useRef(null);
5
+ const [inView, setInView] = useState(false);
6
+ useEffect(() => {
7
+ // On native, treat as in view to avoid DOM-specific code
8
+ if (Platform.OS !== "web") {
9
+ setInView(true);
10
+ return;
11
+ }
12
+ const node = ref.current;
13
+ if (!node || typeof IntersectionObserver === "undefined") {
14
+ // Fallback: consider it in view so functionality still works
15
+ setInView(true);
16
+ return;
17
+ }
18
+ const observer = new IntersectionObserver(entries => {
19
+ const entry = entries[0];
20
+ setInView(entry.isIntersecting);
21
+ }, {
22
+ root: null,
23
+ rootMargin: "0px",
24
+ threshold: 0.1
25
+ });
26
+ observer.observe(node);
27
+ return () => {
28
+ observer.disconnect();
29
+ };
30
+ }, []);
31
+ return {
32
+ ref,
33
+ inView
34
+ };
35
+ }
36
+ //# sourceMappingURL=useInViewport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","useState","Platform","useInViewport","ref","inView","setInView","OS","node","current","IntersectionObserver","observer","entries","entry","isIntersecting","root","rootMargin","threshold","observe","disconnect"],"sourceRoot":"../../../src","sources":["hooks/useInViewport.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACnD,SAASC,QAAQ,QAAQ,cAAc;AAEvC,OAAO,SAASC,aAAaA,CAAA,EAA0B;EACrD,MAAMC,GAAG,GAAGJ,MAAM,CAAW,IAAI,CAAC;EAClC,MAAM,CAACK,MAAM,EAAEC,SAAS,CAAC,GAAGL,QAAQ,CAAC,KAAK,CAAC;EAE3CF,SAAS,CAAC,MAAM;IACd;IACA,IAAIG,QAAQ,CAACK,EAAE,KAAK,KAAK,EAAE;MACzBD,SAAS,CAAC,IAAI,CAAC;MACf;IACF;IAEA,MAAME,IAAI,GAAGJ,GAAG,CAACK,OAAoC;IACrD,IAAI,CAACD,IAAI,IAAI,OAAOE,oBAAoB,KAAK,WAAW,EAAE;MACxD;MACAJ,SAAS,CAAC,IAAI,CAAC;MACf;IACF;IAEA,MAAMK,QAAQ,GAAG,IAAID,oBAAoB,CACtCE,OAAO,IAAK;MACX,MAAMC,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC;MACxBN,SAAS,CAACO,KAAK,CAACC,cAAc,CAAC;IACjC,CAAC,EACD;MAAEC,IAAI,EAAE,IAAI;MAAEC,UAAU,EAAE,KAAK;MAAEC,SAAS,EAAE;IAAI,CAClD,CAAC;IAEDN,QAAQ,CAACO,OAAO,CAACV,IAAI,CAAC;IAEtB,OAAO,MAAM;MACXG,QAAQ,CAACQ,UAAU,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IAAEf,GAAG;IAAEC;EAAO,CAAC;AACxB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/components/ChatInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,SAAS,EAMV,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAa1C,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;CACvC;AAsBD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwCrC,CAAC"}
1
+ {"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/components/ChatInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,SAAS,EAMV,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAa1C,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;CACvC;AA0BD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwCrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChatWidget.d.ts","sourceRoot":"","sources":["../../../src/components/ChatWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAcf,OAAO,KAAK,EAAe,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAkB5E,eAAO,MAAM,UAAU,uFAqpBtB,CAAC"}
1
+ {"version":3,"file":"ChatWidget.d.ts","sourceRoot":"","sources":["../../../src/components/ChatWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAQN,MAAM,OAAO,CAAC;AAcf,OAAO,KAAK,EAAe,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAuB5E,eAAO,MAAM,UAAU,uFAosBtB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ interface LazyProductsFetcherProps {
3
+ messageId: string;
4
+ payload: Record<string, any> | undefined | null;
5
+ onFetched: (messageId: string, data: any) => void;
6
+ }
7
+ declare const LazyProductsFetcher: React.FC<LazyProductsFetcherProps>;
8
+ export default LazyProductsFetcher;
9
+ //# sourceMappingURL=LazyProductsFetcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyProductsFetcher.d.ts","sourceRoot":"","sources":["../../../src/components/LazyProductsFetcher.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAKjD,UAAU,wBAAwB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IAChD,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;CACnD;AAED,QAAA,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CA2B3D,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEvD,UAAU,KAAK;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAChD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAoED,eAAO,MAAM,aAAa,mCAA+B,CAAC"}
1
+ {"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAGpC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEvD,UAAU,KAAK;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IAChD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAuED,eAAO,MAAM,aAAa,mCAA+B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SuggestionsRow.d.ts","sourceRoot":"","sources":["../../../src/components/SuggestionsRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AASpC,UAAU,mBAAmB;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,uFAAuF;IACvF,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAChC;AAiFD,QAAA,MAAM,cAAc,iDAAgC,CAAC;AACrD,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"SuggestionsRow.d.ts","sourceRoot":"","sources":["../../../src/components/SuggestionsRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AASpC,UAAU,mBAAmB;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,uFAAuF;IACvF,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAChC;AAsFD,QAAA,MAAM,cAAc,iDAAgC,CAAC;AACrD,eAAe,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function useInViewport<T extends HTMLElement>(): {
2
+ readonly ref: import("react").MutableRefObject<T | null>;
3
+ readonly inView: boolean;
4
+ };
5
+ //# sourceMappingURL=useInViewport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInViewport.d.ts","sourceRoot":"","sources":["../../../src/hooks/useInViewport.ts"],"names":[],"mappings":"AAGA,wBAAgB,aAAa,CAAC,CAAC,SAAS,WAAW;;;EAkClD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vdb-ai-chat",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "Cross-platform AI chat widget for React Native and Web",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -46,7 +46,11 @@ const SendIcon = ({
46
46
  uri: "https://cdn.vdbapp.com/ai/chat-widget/assets/img/send.svg",
47
47
  }}
48
48
  resizeMode="contain"
49
- style={{ ...styles.buttonIcon, tintColor: isInactive ? "#ACACB3" : "#020001", cursor: isInactive ? "auto" : "pointer" }}
49
+ style={{
50
+ ...styles.buttonIcon,
51
+ tintColor: isInactive ? "#ACACB3" : "#020001",
52
+ cursor: isInactive ? "auto" : "pointer",
53
+ }}
50
54
  />
51
55
  );
52
56
  };
@@ -83,7 +87,7 @@ export const ChatInput: React.FC<Props> = ({
83
87
  autoFocus
84
88
  />
85
89
  <TouchableOpacity
86
- style={ styles.button }
90
+ style={styles.button}
87
91
  onPress={onSend}
88
92
  disabled={disabled}
89
93
  >
@@ -101,7 +105,6 @@ const styles = StyleSheet.create({
101
105
  justifyContent: "space-between",
102
106
  alignItems: "center",
103
107
  alignSelf: "stretch",
104
- flex: 1,
105
108
  borderRadius: 8,
106
109
  backgroundColor: "#FFF",
107
110
  borderColor: "#ACACB3",