vdb-ai-chat 1.0.1 → 1.0.3

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 (128) hide show
  1. package/dist/10.chat-widget.js +2 -0
  2. package/dist/10.chat-widget.js.LICENSE.txt +1 -0
  3. package/dist/104.chat-widget.js +1 -0
  4. package/dist/50.chat-widget.js +1 -0
  5. package/dist/521.chat-widget.js +1 -0
  6. package/dist/538.chat-widget.js +1 -1
  7. package/dist/572.chat-widget.js +1 -0
  8. package/dist/694.chat-widget.js +1 -0
  9. package/dist/chat-widget.js +1 -1
  10. package/lib/commonjs/api.js +4 -3
  11. package/lib/commonjs/api.js.map +1 -1
  12. package/lib/commonjs/components/BetaNotice.js +38 -0
  13. package/lib/commonjs/components/BetaNotice.js.map +1 -0
  14. package/lib/commonjs/components/ChatHeader.js +27 -20
  15. package/lib/commonjs/components/ChatHeader.js.map +1 -1
  16. package/lib/commonjs/components/ChatInput.js +20 -21
  17. package/lib/commonjs/components/ChatInput.js.map +1 -1
  18. package/lib/commonjs/components/ChatWidget.js +165 -92
  19. package/lib/commonjs/components/ChatWidget.js.map +1 -1
  20. package/lib/commonjs/components/LazyProductsFetcher.js +47 -0
  21. package/lib/commonjs/components/LazyProductsFetcher.js.map +1 -0
  22. package/lib/commonjs/components/MessageBubble.js +26 -90
  23. package/lib/commonjs/components/MessageBubble.js.map +1 -1
  24. package/lib/commonjs/components/MessageMetaRow.js +113 -0
  25. package/lib/commonjs/components/MessageMetaRow.js.map +1 -0
  26. package/lib/commonjs/components/ProductsGrid.js +139 -0
  27. package/lib/commonjs/components/ProductsGrid.js.map +1 -0
  28. package/lib/commonjs/components/ProductsList.js +22 -126
  29. package/lib/commonjs/components/ProductsList.js.map +1 -1
  30. package/lib/commonjs/components/ProductsListView.js +139 -0
  31. package/lib/commonjs/components/ProductsListView.js.map +1 -0
  32. package/lib/commonjs/components/SuggestionsRow.js +50 -27
  33. package/lib/commonjs/components/SuggestionsRow.js.map +1 -1
  34. package/lib/commonjs/components/utils.js +4 -3
  35. package/lib/commonjs/components/utils.js.map +1 -1
  36. package/lib/commonjs/hooks/useInViewport.js +42 -0
  37. package/lib/commonjs/hooks/useInViewport.js.map +1 -0
  38. package/lib/commonjs/index.web.js +86 -29
  39. package/lib/commonjs/index.web.js.map +1 -1
  40. package/lib/commonjs/theme.js +4 -4
  41. package/lib/commonjs/theme.js.map +1 -1
  42. package/lib/module/api.js +4 -3
  43. package/lib/module/api.js.map +1 -1
  44. package/lib/module/components/BetaNotice.js +30 -0
  45. package/lib/module/components/BetaNotice.js.map +1 -0
  46. package/lib/module/components/ChatHeader.js +27 -20
  47. package/lib/module/components/ChatHeader.js.map +1 -1
  48. package/lib/module/components/ChatInput.js +20 -21
  49. package/lib/module/components/ChatInput.js.map +1 -1
  50. package/lib/module/components/ChatWidget.js +166 -93
  51. package/lib/module/components/ChatWidget.js.map +1 -1
  52. package/lib/module/components/LazyProductsFetcher.js +40 -0
  53. package/lib/module/components/LazyProductsFetcher.js.map +1 -0
  54. package/lib/module/components/MessageBubble.js +26 -92
  55. package/lib/module/components/MessageBubble.js.map +1 -1
  56. package/lib/module/components/MessageMetaRow.js +105 -0
  57. package/lib/module/components/MessageMetaRow.js.map +1 -0
  58. package/lib/module/components/ProductsGrid.js +133 -0
  59. package/lib/module/components/ProductsGrid.js.map +1 -0
  60. package/lib/module/components/ProductsList.js +21 -126
  61. package/lib/module/components/ProductsList.js.map +1 -1
  62. package/lib/module/components/ProductsListView.js +132 -0
  63. package/lib/module/components/ProductsListView.js.map +1 -0
  64. package/lib/module/components/SuggestionsRow.js +51 -28
  65. package/lib/module/components/SuggestionsRow.js.map +1 -1
  66. package/lib/module/components/utils.js +4 -3
  67. package/lib/module/components/utils.js.map +1 -1
  68. package/lib/module/hooks/useInViewport.js +36 -0
  69. package/lib/module/hooks/useInViewport.js.map +1 -0
  70. package/lib/module/index.web.js +86 -29
  71. package/lib/module/index.web.js.map +1 -1
  72. package/lib/module/theme.js +4 -4
  73. package/lib/module/theme.js.map +1 -1
  74. package/lib/typescript/api.d.ts.map +1 -1
  75. package/lib/typescript/components/BetaNotice.d.ts +5 -0
  76. package/lib/typescript/components/BetaNotice.d.ts.map +1 -0
  77. package/lib/typescript/components/ChatHeader.d.ts +5 -2
  78. package/lib/typescript/components/ChatHeader.d.ts.map +1 -1
  79. package/lib/typescript/components/ChatInput.d.ts.map +1 -1
  80. package/lib/typescript/components/ChatWidget.d.ts.map +1 -1
  81. package/lib/typescript/components/LazyProductsFetcher.d.ts +9 -0
  82. package/lib/typescript/components/LazyProductsFetcher.d.ts.map +1 -0
  83. package/lib/typescript/components/MessageBubble.d.ts +7 -3
  84. package/lib/typescript/components/MessageBubble.d.ts.map +1 -1
  85. package/lib/typescript/components/MessageMetaRow.d.ts +14 -0
  86. package/lib/typescript/components/MessageMetaRow.d.ts.map +1 -0
  87. package/lib/typescript/components/ProductsGrid.d.ts +10 -0
  88. package/lib/typescript/components/ProductsGrid.d.ts.map +1 -0
  89. package/lib/typescript/components/ProductsList.d.ts +4 -2
  90. package/lib/typescript/components/ProductsList.d.ts.map +1 -1
  91. package/lib/typescript/components/ProductsListView.d.ts +10 -0
  92. package/lib/typescript/components/ProductsListView.d.ts.map +1 -0
  93. package/lib/typescript/components/SuggestionsRow.d.ts +2 -0
  94. package/lib/typescript/components/SuggestionsRow.d.ts.map +1 -1
  95. package/lib/typescript/components/utils.d.ts +1 -0
  96. package/lib/typescript/components/utils.d.ts.map +1 -1
  97. package/lib/typescript/hooks/useInViewport.d.ts +5 -0
  98. package/lib/typescript/hooks/useInViewport.d.ts.map +1 -0
  99. package/lib/typescript/index.web.d.ts +1 -1
  100. package/lib/typescript/index.web.d.ts.map +1 -1
  101. package/lib/typescript/types.d.ts +3 -1
  102. package/lib/typescript/types.d.ts.map +1 -1
  103. package/package.json +1 -1
  104. package/src/api.ts +4 -3
  105. package/src/components/BetaNotice.tsx +32 -0
  106. package/src/components/ChatHeader.tsx +32 -18
  107. package/src/components/ChatInput.tsx +23 -21
  108. package/src/components/ChatWidget.tsx +249 -159
  109. package/src/components/LazyProductsFetcher.tsx +41 -0
  110. package/src/components/MessageBubble.tsx +46 -148
  111. package/src/components/MessageMetaRow.tsx +199 -0
  112. package/src/components/ProductsGrid.tsx +163 -0
  113. package/src/components/ProductsList.tsx +20 -146
  114. package/src/components/ProductsListView.tsx +149 -0
  115. package/src/components/SuggestionsRow.tsx +61 -32
  116. package/src/components/utils.ts +6 -4
  117. package/src/hooks/useInViewport.ts +38 -0
  118. package/src/index.web.tsx +87 -32
  119. package/src/theme.ts +4 -4
  120. package/src/types.ts +3 -2
  121. package/dist/751.chat-widget.js +0 -1
  122. package/lib/commonjs/contexts/SegmentClientContext.js +0 -19
  123. package/lib/commonjs/contexts/SegmentClientContext.js.map +0 -1
  124. package/lib/module/contexts/SegmentClientContext.js +0 -10
  125. package/lib/module/contexts/SegmentClientContext.js.map +0 -1
  126. package/lib/typescript/contexts/SegmentClientContext.d.ts +0 -9
  127. package/lib/typescript/contexts/SegmentClientContext.d.ts.map +0 -1
  128. package/src/contexts/SegmentClientContext.tsx +0 -20
@@ -0,0 +1,132 @@
1
+ import React, { memo, useState } from "react";
2
+ import { View, StyleSheet, Text, TouchableOpacity, ScrollView, Platform, Image } from "react-native";
3
+ let ImageComponent = Image;
4
+ if (Platform.OS !== "web") {
5
+ try {
6
+ const ExpoImage = require("expo-image").Image;
7
+ if (ExpoImage) ImageComponent = ExpoImage;
8
+ } catch {
9
+ // expo-image not installed, use React Native Image
10
+ }
11
+ }
12
+ const ProductsListViewComponent = ({
13
+ data,
14
+ totalResults,
15
+ onViewAll,
16
+ onItemPress
17
+ }) => {
18
+ if (!data || !data.length) return null;
19
+ const [priceWidth, setPriceWidth] = useState(0);
20
+ return /*#__PURE__*/React.createElement(View, {
21
+ style: styles.wrapper
22
+ }, /*#__PURE__*/React.createElement(ScrollView, {
23
+ showsVerticalScrollIndicator: false,
24
+ contentContainerStyle: styles.listContent
25
+ }, data.map((item, index) => /*#__PURE__*/React.createElement(TouchableOpacity, {
26
+ key: item.id,
27
+ onPress: () => onItemPress?.(item),
28
+ activeOpacity: 0.8
29
+ }, /*#__PURE__*/React.createElement(View, {
30
+ style: styles.row
31
+ }, /*#__PURE__*/React.createElement(View, {
32
+ style: styles.left
33
+ }, /*#__PURE__*/React.createElement(Text, {
34
+ style: styles.serial
35
+ }, index + 1, "."), /*#__PURE__*/React.createElement(Text, {
36
+ numberOfLines: 1,
37
+ ellipsizeMode: "tail",
38
+ style: styles.title
39
+ }, item.short_title)), item.total_sales_price ? /*#__PURE__*/React.createElement(View, {
40
+ style: [styles.priceContainer, priceWidth ? {
41
+ width: priceWidth
42
+ } : null]
43
+ }, /*#__PURE__*/React.createElement(Text, {
44
+ style: styles.price,
45
+ onLayout: e => {
46
+ const w = e.nativeEvent.layout.width;
47
+ if (w > priceWidth) setPriceWidth(w);
48
+ }
49
+ }, "$", item.total_sales_price)) : /*#__PURE__*/React.createElement(React.Fragment, null))))), /*#__PURE__*/React.createElement(TouchableOpacity, {
50
+ style: styles.button,
51
+ activeOpacity: 0.8,
52
+ onPress: onViewAll
53
+ }, /*#__PURE__*/React.createElement(Text, {
54
+ style: styles.buttonText
55
+ }, `View All ${totalResults} Results`), /*#__PURE__*/React.createElement(Image, {
56
+ source: {
57
+ uri: "https://cdn.vdbapp.com/ai/chat-widget/assets/img/right.svg"
58
+ },
59
+ resizeMode: "contain",
60
+ style: {
61
+ width: 20,
62
+ height: 20,
63
+ tintColor: "#fff"
64
+ }
65
+ })));
66
+ };
67
+ const styles = StyleSheet.create({
68
+ wrapper: {
69
+ paddingHorizontal: 8
70
+ },
71
+ listContent: {
72
+ // No extra padding/margins
73
+ },
74
+ row: {
75
+ flexDirection: "row",
76
+ justifyContent: "space-between",
77
+ alignItems: "center",
78
+ paddingVertical: 6,
79
+ backgroundColor: "#fff"
80
+ },
81
+ left: {
82
+ flexDirection: "row",
83
+ alignItems: "center",
84
+ gap: 4,
85
+ flex: 1,
86
+ minWidth: 0
87
+ },
88
+ serial: {
89
+ fontSize: 13,
90
+ color: "#020001",
91
+ fontWeight: "500"
92
+ },
93
+ title: {
94
+ flexShrink: 1,
95
+ fontSize: 13,
96
+ color: "#3378F6",
97
+ fontWeight: "500"
98
+ },
99
+ price: {
100
+ fontSize: 13,
101
+ fontWeight: "500",
102
+ color: "#020001",
103
+ textAlign: "left"
104
+ },
105
+ priceContainer: {
106
+ alignItems: "flex-start",
107
+ justifyContent: "center"
108
+ },
109
+ button: {
110
+ marginTop: 12,
111
+ marginHorizontal: 12,
112
+ alignSelf: "center",
113
+ paddingHorizontal: 16,
114
+ paddingVertical: 6,
115
+ backgroundColor: "#292735",
116
+ borderRadius: 8,
117
+ alignItems: "center",
118
+ gap: 16,
119
+ width: "100%",
120
+ flexDirection: "row",
121
+ justifyContent: "center",
122
+ alignContent: "center"
123
+ },
124
+ buttonText: {
125
+ color: "#fff",
126
+ fontSize: 14,
127
+ fontWeight: "600"
128
+ }
129
+ });
130
+ const ProductsListView = /*#__PURE__*/memo(ProductsListViewComponent);
131
+ export default ProductsListView;
132
+ //# sourceMappingURL=ProductsListView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","memo","useState","View","StyleSheet","Text","TouchableOpacity","ScrollView","Platform","Image","ImageComponent","OS","ExpoImage","require","ProductsListViewComponent","data","totalResults","onViewAll","onItemPress","length","priceWidth","setPriceWidth","createElement","style","styles","wrapper","showsVerticalScrollIndicator","contentContainerStyle","listContent","map","item","index","key","id","onPress","activeOpacity","row","left","serial","numberOfLines","ellipsizeMode","title","short_title","total_sales_price","priceContainer","width","price","onLayout","e","w","nativeEvent","layout","Fragment","button","buttonText","source","uri","resizeMode","height","tintColor","create","paddingHorizontal","flexDirection","justifyContent","alignItems","paddingVertical","backgroundColor","gap","flex","minWidth","fontSize","color","fontWeight","flexShrink","textAlign","marginTop","marginHorizontal","alignSelf","borderRadius","alignContent","ProductsListView"],"sourceRoot":"../../../src","sources":["components/ProductsListView.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,50 +1,73 @@
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
- onSelect
5
+ onSelect,
6
+ variant = "default"
6
7
  }) => {
7
8
  if (!suggestions.length) return null;
8
- return /*#__PURE__*/React.createElement(ScrollView, {
9
- horizontal: true,
10
- showsHorizontalScrollIndicator: false,
11
- contentContainerStyle: styles.container
12
- }, suggestions.map(s => /*#__PURE__*/React.createElement(TouchableOpacity, {
13
- key: s,
14
- style: styles.chip,
9
+ const ScrollViewComponent = variant === "inline" ? View : ScrollView;
10
+ return /*#__PURE__*/React.createElement(ScrollViewComponent, {
11
+ showsVerticalScrollIndicator: false,
12
+ contentContainerStyle: [styles.container, variant === "inline" && styles.containerInline],
13
+ style: [styles.scroll, variant === "inline" && styles.scrollInline]
14
+ }, suggestions.map((s, index) => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TouchableOpacity, {
15
+ key: `${s}-${index}`,
16
+ style: [styles.chip, variant === "inline" && styles.chipInline],
15
17
  onPress: () => onSelect(s),
16
18
  activeOpacity: 0.75
17
19
  }, /*#__PURE__*/React.createElement(Text, {
18
20
  style: styles.chipText
19
- }, s))));
21
+ }, s)), index < suggestions.length - 1 && /*#__PURE__*/React.createElement(View, {
22
+ style: styles.spacer
23
+ }))));
20
24
  };
21
25
  const styles = StyleSheet.create({
26
+ scroll: {
27
+ maxWidth: "80%",
28
+ alignSelf: "flex-start",
29
+ paddingHorizontal: 8
30
+ },
31
+ scrollInline: {
32
+ maxWidth: "100%",
33
+ alignSelf: "stretch",
34
+ paddingHorizontal: 0
35
+ },
22
36
  container: {
23
- paddingHorizontal: 12,
24
- paddingBottom: 8,
25
- flexDirection: "row",
26
- gap: 10
37
+ paddingVertical: 0,
38
+ flexDirection: "column",
39
+ justifyContent: "center",
40
+ alignItems: "center",
41
+ gap: 4,
42
+ alignSelf: "stretch"
43
+ // backgroundColor: "#EDEDF2",
44
+ },
45
+ containerInline: {
46
+ // inside bubble, rely on bubble background
47
+ gap: 6
27
48
  },
28
49
  chip: {
29
- backgroundColor: "#ffffff",
30
- paddingHorizontal: 16,
31
- paddingVertical: 8,
32
- borderRadius: 18,
33
- // Modern soft shadow (Material 3 / iOS style)
34
- shadowColor: "#000",
35
- shadowOpacity: 0.07,
36
- shadowRadius: 4,
37
- shadowOffset: {
38
- width: 0,
39
- height: 2
40
- },
41
- elevation: 2
50
+ backgroundColor: "#EDEDF2",
51
+ borderRadius: 6,
52
+ paddingHorizontal: 8,
53
+ paddingVertical: 6,
54
+ width: "100%",
55
+ alignSelf: "stretch",
56
+ justifyContent: "center",
57
+ alignItems: "flex-start"
58
+ },
59
+ chipInline: {
60
+ backgroundColor: "#FFFFFF"
42
61
  },
43
62
  chipText: {
44
63
  fontSize: 14,
45
64
  color: "#1A1A1A",
46
65
  fontWeight: "500",
47
- letterSpacing: 0.3
66
+ textAlign: "left"
67
+ },
68
+ spacer: {
69
+ width: 4,
70
+ height: 4
48
71
  }
49
72
  });
50
73
  const SuggestionsRow = /*#__PURE__*/memo(SuggestionsRowComponent);
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","Text","TouchableOpacity","StyleSheet","ScrollView","SuggestionsRowComponent","suggestions","onSelect","length","createElement","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","styles","container","map","s","key","style","chip","onPress","activeOpacity","chipText","create","paddingHorizontal","paddingBottom","flexDirection","gap","backgroundColor","paddingVertical","borderRadius","shadowColor","shadowOpacity","shadowRadius","shadowOffset","width","height","elevation","fontSize","color","fontWeight","letterSpacing","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;AAOrB,MAAMC,uBAAsD,GAAGA,CAAC;EAC9DC,WAAW;EACXC;AACF,CAAC,KAAK;EACJ,IAAI,CAACD,WAAW,CAACE,MAAM,EAAE,OAAO,IAAI;EAEpC,oBACET,KAAA,CAAAU,aAAA,CAACL,UAAU;IACTM,UAAU;IACVC,8BAA8B,EAAE,KAAM;IACtCC,qBAAqB,EAAEC,MAAM,CAACC;EAAU,GAEvCR,WAAW,CAACS,GAAG,CAAEC,CAAC,iBACjBjB,KAAA,CAAAU,aAAA,CAACP,gBAAgB;IACfe,GAAG,EAAED,CAAE;IACPE,KAAK,EAAEL,MAAM,CAACM,IAAK;IACnBC,OAAO,EAAEA,CAAA,KAAMb,QAAQ,CAACS,CAAC,CAAE;IAC3BK,aAAa,EAAE;EAAK,gBAEpBtB,KAAA,CAAAU,aAAA,CAACR,IAAI;IAACiB,KAAK,EAAEL,MAAM,CAACS;EAAS,GAAEN,CAAQ,CACvB,CACnB,CACS,CAAC;AAEjB,CAAC;AAED,MAAMH,MAAM,GAAGV,UAAU,CAACoB,MAAM,CAAC;EAC/BT,SAAS,EAAE;IACTU,iBAAiB,EAAE,EAAE;IACrBC,aAAa,EAAE,CAAC;IAChBC,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAE;EACP,CAAC;EAEDR,IAAI,EAAE;IACJS,eAAe,EAAE,SAAS;IAC1BJ,iBAAiB,EAAE,EAAE;IACrBK,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,EAAE;IAEhB;IACAC,WAAW,EAAE,MAAM;IACnBC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IAErCC,SAAS,EAAE;EACb,CAAC;EAEDf,QAAQ,EAAE;IACRgB,QAAQ,EAAE,EAAE;IACZC,KAAK,EAAE,SAAS;IAChBC,UAAU,EAAE,KAAK;IACjBC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;AAEF,MAAMC,cAAc,gBAAG1C,IAAI,CAACK,uBAAuB,CAAC;AACpD,eAAeqC,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":[]}
@@ -20,9 +20,10 @@ export const fetchConversationId = async _priceMode => {
20
20
  const conversations = await Storage.getJSON("vdbchat_conversations", {});
21
21
  if (!conversations) return null;
22
22
  let priceMode = _priceMode;
23
- if (!priceMode) {
24
- const userData = await Storage.getJSON("userData", {});
25
- priceMode = userData?.price_mode || "";
23
+ if (priceMode === undefined) {
24
+ const userInfo = await Storage.getJSON("persist:userInfo", {});
25
+ const userData = userInfo?.user;
26
+ priceMode = String(userData?.price_mode) || "";
26
27
  }
27
28
  return conversations[priceMode]?.conversation_id || null;
28
29
  };
@@ -1 +1 @@
1
- {"version":3,"names":["Storage","formatToTime","timestamp","date","Date","hours","getHours","minutes","getMinutes","ampm","mins","FeedbackAction","fetchConversationId","_priceMode","conversations","getJSON","priceMode","userData","price_mode","conversation_id","getUserDetails","stored","user","JSON","parse","DeviceType","getDeviceType","platform","WEB","IOS","ANDROID","AnalyticsEventNames"],"sourceRoot":"../../../src","sources":["components/utils.ts"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AAEpC,OAAO,SAASC,YAAYA,CAACC,SAAiB,EAAU;EACtD,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,SAAS,CAAC;EAEhC,IAAIG,KAAK,GAAGF,IAAI,CAACG,QAAQ,CAAC,CAAC;EAC3B,MAAMC,OAAO,GAAGJ,IAAI,CAACK,UAAU,CAAC,CAAC;EACjC,MAAMC,IAAI,GAAGJ,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI;EAEtCA,KAAK,GAAGA,KAAK,GAAG,EAAE;EAClBA,KAAK,GAAGA,KAAK,GAAGA,KAAK,GAAG,EAAE,CAAC,CAAC;;EAE5B,MAAMK,IAAI,GAAGH,OAAO,GAAG,EAAE,GAAG,IAAIA,OAAO,EAAE,GAAGA,OAAO;EAEnD,OAAO,GAAGF,KAAK,IAAIK,IAAI,IAAID,IAAI,EAAE;AACnC;AAEA,WAAYE,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAM1B,OAAO,MAAMC,mBAAmB,GAAG,MACjCC,UAAkB,IACS;EAC3B,MAAMC,aAAa,GAAG,MAAMd,OAAO,CAACe,OAAO,CACzC,uBAAuB,EACvB,CAAC,CACH,CAAC;EACD,IAAI,CAACD,aAAa,EAAE,OAAO,IAAI;EAE/B,IAAIE,SAAS,GAAGH,UAAU;EAC1B,IAAI,CAACG,SAAS,EAAE;IACd,MAAMC,QAAQ,GAAG,MAAMjB,OAAO,CAACe,OAAO,CACpC,UAAU,EACV,CAAC,CACH,CAAC;IACDC,SAAS,GAAGC,QAAQ,EAAEC,UAAU,IAAI,EAAE;EACxC;EACA,OAAOJ,aAAa,CAACE,SAAS,CAAC,EAAEG,eAAe,IAAI,IAAI;AAC1D,CAAC;AAcD,OAAO,MAAMC,cAAc,GAAG,MAAAA,CAAA,KAAyC;EACrE,IAAI;IACF,MAAMC,MAAM,GAAG,MAAMrB,OAAO,CAACe,OAAO,CAClC,kBAAkB,EAClB,CAAC,CACH,CAAC;IACD,IAAI,CAACM,MAAM,EAAEC,IAAI,EAAE,OAAO,IAAI;;IAE9B;IACA,IAAI,OAAOD,MAAM,CAACC,IAAI,KAAK,QAAQ,EAAE;MACnC,IAAI;QACF,OAAOC,IAAI,CAACC,KAAK,CAACH,MAAM,CAACC,IAAI,CAAC;MAChC,CAAC,CAAC,MAAM;QACN,OAAO,IAAI;MACb;IACF;IAEA,OAAOD,MAAM,CAACC,IAAI;EACpB,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF,CAAC;AAED,WAAYG,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAMtB,OAAO,MAAMC,aAAa,GAAIC,QAAiB,IAAK;EAClD,QAAQA,QAAQ;IACd,KAAKF,UAAU,CAACG,GAAG;MACjB,OAAO,CAAC;IACV,KAAKH,UAAU,CAACI,GAAG;MACjB,OAAO,CAAC;IACV,KAAKJ,UAAU,CAACK,OAAO;MACrB,OAAO,CAAC;IACV;MACE,OAAO,CAAC;EACZ;AACF,CAAC;AAED,WAAYC,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["Storage","formatToTime","timestamp","date","Date","hours","getHours","minutes","getMinutes","ampm","mins","FeedbackAction","fetchConversationId","_priceMode","conversations","getJSON","priceMode","undefined","userInfo","userData","user","String","price_mode","conversation_id","getUserDetails","stored","JSON","parse","DeviceType","getDeviceType","platform","WEB","IOS","ANDROID","AnalyticsEventNames"],"sourceRoot":"../../../src","sources":["components/utils.ts"],"mappings":"AAAA,SAASA,OAAO,QAAQ,YAAY;AAEpC,OAAO,SAASC,YAAYA,CAACC,SAAiB,EAAU;EACtD,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,SAAS,CAAC;EAEhC,IAAIG,KAAK,GAAGF,IAAI,CAACG,QAAQ,CAAC,CAAC;EAC3B,MAAMC,OAAO,GAAGJ,IAAI,CAACK,UAAU,CAAC,CAAC;EACjC,MAAMC,IAAI,GAAGJ,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI;EAEtCA,KAAK,GAAGA,KAAK,GAAG,EAAE;EAClBA,KAAK,GAAGA,KAAK,GAAGA,KAAK,GAAG,EAAE,CAAC,CAAC;;EAE5B,MAAMK,IAAI,GAAGH,OAAO,GAAG,EAAE,GAAG,IAAIA,OAAO,EAAE,GAAGA,OAAO;EAEnD,OAAO,GAAGF,KAAK,IAAIK,IAAI,IAAID,IAAI,EAAE;AACnC;AAEA,WAAYE,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAM1B,OAAO,MAAMC,mBAAmB,GAAG,MACjCC,UAAkB,IACS;EAC3B,MAAMC,aAAa,GAAG,MAAMd,OAAO,CAACe,OAAO,CACzC,uBAAuB,EACvB,CAAC,CACH,CAAC;EACD,IAAI,CAACD,aAAa,EAAE,OAAO,IAAI;EAE/B,IAAIE,SAAS,GAAGH,UAAU;EAC1B,IAAIG,SAAS,KAAKC,SAAS,EAAE;IAC3B,MAAMC,QAAQ,GAAG,MAAMlB,OAAO,CAACe,OAAO,CACpC,kBAAkB,EAClB,CAAC,CACH,CAAC;IACD,MAAMI,QAAQ,GAAGD,QAAQ,EAAEE,IAAmB;IAC9CJ,SAAS,GAAGK,MAAM,CAACF,QAAQ,EAAEG,UAAU,CAAC,IAAI,EAAE;EAChD;EACA,OAAOR,aAAa,CAACE,SAAS,CAAC,EAAEO,eAAe,IAAI,IAAI;AAC1D,CAAC;AAeD,OAAO,MAAMC,cAAc,GAAG,MAAAA,CAAA,KAAyC;EACrE,IAAI;IACF,MAAMC,MAAM,GAAG,MAAMzB,OAAO,CAACe,OAAO,CAClC,kBAAkB,EAClB,CAAC,CACH,CAAC;IACD,IAAI,CAACU,MAAM,EAAEL,IAAI,EAAE,OAAO,IAAI;;IAE9B;IACA,IAAI,OAAOK,MAAM,CAACL,IAAI,KAAK,QAAQ,EAAE;MACnC,IAAI;QACF,OAAOM,IAAI,CAACC,KAAK,CAACF,MAAM,CAACL,IAAI,CAAC;MAChC,CAAC,CAAC,MAAM;QACN,OAAO,IAAI;MACb;IACF;IAEA,OAAOK,MAAM,CAACL,IAAI;EACpB,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF,CAAC;AAED,WAAYQ,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAMtB,OAAO,MAAMC,aAAa,GAAIC,QAAiB,IAAK;EAClD,QAAQA,QAAQ;IACd,KAAKF,UAAU,CAACG,GAAG;MACjB,OAAO,CAAC;IACV,KAAKH,UAAU,CAACI,GAAG;MACjB,OAAO,CAAC;IACV,KAAKJ,UAAU,CAACK,OAAO;MACrB,OAAO,CAAC;IACV;MACE,OAAO,CAAC;EACZ;AACF,CAAC;AAED,WAAYC,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","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,43 +1,100 @@
1
- import * as React from "react";
1
+ import React from "react";
2
+ import { Platform, StyleSheet, View } from "react-native";
2
3
  import { createRoot } from "react-dom/client";
3
- import { View, StyleSheet, Platform } from "react-native";
4
- import { ChatWidget } from "./components/ChatWidget";
5
- import { Analytics } from "@segment/analytics-next";
4
+ import { AnalyticsBrowser } from "@segment/analytics-next";
6
5
  import { AnalyticsClientProvider } from "./contexts/AnalyticsClientContext";
7
- export function renderChatApp(domElement, apiUrl, theme, onClose, onClearChat, segmentWriteKey) {
6
+ import { ChatWidget } from "./components/ChatWidget";
7
+ import { getUserDetails } from "./components/utils";
8
+ export function renderChatApp(domElement, apiUrl, theme, onClose, onClearChat, segmentWriteKey, onViewAllPress, onItemPress, isBetaMode) {
8
9
  const root = createRoot(domElement);
9
- let analyticsClient;
10
- if (Platform.OS === "web" && segmentWriteKey) {
11
- try {
12
- const client = new Analytics({
13
- writeKey: segmentWriteKey
14
- });
15
- analyticsClient = client;
16
- window.analytics = client;
17
- client.track("AI Chat: Widget Loaded", {
18
- userAgent: typeof navigator !== "undefined" ? navigator.userAgent : ""
19
- }).then?.(() => {
20
- // eslint-disable-next-line no-console
21
- console.log("Segment: Widget Loaded event sent");
22
- }).catch(e => {
23
- console.warn("Segment track failed", e);
24
- });
25
- } catch (e) {
26
- console.warn("Segment analytics load failed", e);
10
+
11
+ // Bridge to parent RN WebView / browser
12
+ const sendToParent = (type, payload) => {
13
+ const msg = {
14
+ source: "vdb-ai-chat",
15
+ type,
16
+ payload
17
+ };
18
+ const json = JSON.stringify(msg);
19
+
20
+ // RN WebView bridge
21
+ const rnwv = window.ReactNativeWebView;
22
+ if (rnwv?.postMessage) {
23
+ rnwv.postMessage(json);
24
+ } else {
25
+ // Browser/iframe
26
+ try {
27
+ window.parent?.postMessage(msg, "*");
28
+ } catch {}
29
+ try {
30
+ window.dispatchEvent(new CustomEvent("vdb-ai-event", {
31
+ detail: msg
32
+ }));
33
+ } catch {}
27
34
  }
28
- }
35
+ };
36
+ const handleViewAll = (url, payload) => {
37
+ onViewAllPress?.(url, payload);
38
+ sendToParent("ai_view_all", {
39
+ url,
40
+ payload
41
+ });
42
+ onClose?.();
43
+ };
44
+ const handleItemPress = (url, item) => {
45
+ onItemPress?.(url, item);
46
+ sendToParent("ai_item_click", {
47
+ url,
48
+ item
49
+ });
50
+ onClose?.();
51
+ };
52
+
53
+ // Build base content and render immediately
29
54
  const content = /*#__PURE__*/React.createElement(View, {
30
55
  style: styles.root
31
56
  }, /*#__PURE__*/React.createElement(ChatWidget, {
32
57
  apiUrl: apiUrl,
33
58
  theme: theme,
34
59
  onClose: onClose,
35
- onClearChat: onClearChat
60
+ onClearChat: onClearChat,
61
+ onViewAllPress: handleViewAll,
62
+ onItemPress: handleItemPress,
63
+ isBetaMode: isBetaMode
36
64
  }));
37
- const contentWithAnalytics = analyticsClient ? /*#__PURE__*/React.createElement(AnalyticsClientProvider, {
38
- client: analyticsClient
39
- }, content) : content;
40
- root.render(contentWithAnalytics);
65
+ root.render(content);
66
+ if (Platform.OS === "web" && segmentWriteKey) {
67
+ try {
68
+ const isEdge = typeof navigator !== "undefined" && (navigator.userAgent.includes("Edg") || navigator.userAgent.includes("Edge"));
69
+ const clientPromise = AnalyticsBrowser.load({
70
+ writeKey: segmentWriteKey,
71
+ trackAppLifecycleEvents: false,
72
+ flushAt: isEdge ? 1 : 10,
73
+ flushInterval: 10000,
74
+ maxBatchSize: isEdge ? 1 : 10
75
+ });
76
+ clientPromise.then(async ([client]) => {
77
+ client?.debug?.(true);
78
+ window.analytics = client;
79
+ client.page?.();
80
+ try {
81
+ const user = await getUserDetails();
82
+ const userId = user?.id;
83
+ if (userId) client.identify(userId);
84
+ } catch {}
85
+ const contentWithAnalytics = /*#__PURE__*/React.createElement(AnalyticsClientProvider, {
86
+ client: client
87
+ }, content);
88
+ root.render(contentWithAnalytics);
89
+ }).catch(e => {
90
+ // eslint-disable-next-line no-console
91
+ console.error("[Segment] init failed", e);
92
+ });
93
+ } catch (e) {
94
+ // eslint-disable-next-line no-console
95
+ console.error("[Segment] init failed", e);
96
+ }
97
+ }
41
98
  }
42
99
  const styles = StyleSheet.create({
43
100
  root: {
@@ -1 +1 @@
1
- {"version":3,"names":["React","createRoot","View","StyleSheet","Platform","ChatWidget","Analytics","AnalyticsClientProvider","renderChatApp","domElement","apiUrl","theme","onClose","onClearChat","segmentWriteKey","root","analyticsClient","OS","client","writeKey","window","analytics","track","userAgent","navigator","then","console","log","catch","e","warn","content","createElement","style","styles","contentWithAnalytics","render","create","flex","height","width"],"sourceRoot":"../../src","sources":["index.web.tsx"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,IAAI,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,cAAc;AACzD,SAASC,UAAU,QAAQ,yBAAyB;AAEpD,SAASC,SAAS,QAAQ,yBAAyB;AACnD,SAASC,uBAAuB,QAAQ,mCAAmC;AAE3E,OAAO,SAASC,aAAaA,CAC3BC,UAAuB,EACvBC,MAAc,EACdC,KAA0B,EAC1BC,OAAoB,EACpBC,WAAwB,EACxBC,eAAwB,EACxB;EACA,MAAMC,IAAI,GAAGd,UAAU,CAACQ,UAAU,CAAC;EACnC,IAAIO,eAAsC;EAC1C,IAAIZ,QAAQ,CAACa,EAAE,KAAK,KAAK,IAAIH,eAAe,EAAE;IAC5C,IAAI;MACF,MAAMI,MAAM,GAAG,IAAIZ,SAAS,CAAC;QAAEa,QAAQ,EAAEL;MAAgB,CAAC,CAAC;MAE3DE,eAAe,GAAGE,MAAM;MACvBE,MAAM,CAASC,SAAS,GAAGH,MAAM;MAClCA,MAAM,CACHI,KAAK,CAAC,wBAAwB,EAAE;QAC/BC,SAAS,EACP,OAAOC,SAAS,KAAK,WAAW,GAAGA,SAAS,CAACD,SAAS,GAAG;MAC7D,CAAC,CAAC,CACDE,IAAI,GAAG,MAAM;QACZ;QACAC,OAAO,CAACC,GAAG,CAAC,mCAAmC,CAAC;MAClD,CAAC,CAAC,CACDC,KAAK,CAAEC,CAAU,IAAK;QACrBH,OAAO,CAACI,IAAI,CAAC,sBAAsB,EAAED,CAAC,CAAC;MACzC,CAAC,CAAC;IACN,CAAC,CAAC,OAAOA,CAAC,EAAE;MACVH,OAAO,CAACI,IAAI,CAAC,+BAA+B,EAAED,CAAC,CAAC;IAClD;EACF;EACA,MAAME,OAAO,gBACX/B,KAAA,CAAAgC,aAAA,CAAC9B,IAAI;IAAC+B,KAAK,EAAEC,MAAM,CAACnB;EAAK,gBACvBf,KAAA,CAAAgC,aAAA,CAAC3B,UAAU;IACTK,MAAM,EAAEA,MAAO;IACfC,KAAK,EAAEA,KAAM;IACbC,OAAO,EAAEA,OAAQ;IACjBC,WAAW,EAAEA;EAAY,CAC1B,CACG,CACP;EACD,MAAMsB,oBAAoB,GAAGnB,eAAe,gBAC1ChB,KAAA,CAAAgC,aAAA,CAACzB,uBAAuB;IAACW,MAAM,EAAEF;EAAgB,GAAEe,OAAiC,CAAC,GAErFA,OACD;EAEDhB,IAAI,CAACqB,MAAM,CAACD,oBAAoB,CAAC;AACnC;AAEA,MAAMD,MAAM,GAAG/B,UAAU,CAACkC,MAAM,CAAC;EAC/BtB,IAAI,EAAE;IACJuB,IAAI,EAAE,CAAC;IACPC,MAAM,EAAE,MAAM;IACdC,KAAK,EAAE;EACT;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","Platform","StyleSheet","View","createRoot","AnalyticsBrowser","AnalyticsClientProvider","ChatWidget","getUserDetails","renderChatApp","domElement","apiUrl","theme","onClose","onClearChat","segmentWriteKey","onViewAllPress","onItemPress","isBetaMode","root","sendToParent","type","payload","msg","source","json","JSON","stringify","rnwv","window","ReactNativeWebView","postMessage","parent","dispatchEvent","CustomEvent","detail","handleViewAll","url","handleItemPress","item","content","createElement","style","styles","render","OS","isEdge","navigator","userAgent","includes","clientPromise","load","writeKey","trackAppLifecycleEvents","flushAt","flushInterval","maxBatchSize","then","client","debug","analytics","page","user","userId","id","identify","contentWithAnalytics","catch","e","console","error","create","flex","height","width"],"sourceRoot":"../../src","sources":["index.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -2,14 +2,14 @@ export const defaultTheme = {
2
2
  primaryColor: "#0b93f6",
3
3
  backgroundColor: "#ffffff",
4
4
  inputColor: "#FFF",
5
- inputBackgroundColor: "#f5f5f5",
5
+ inputBackgroundColor: "#FFFFFF",
6
6
  inputBorderRadius: 8,
7
7
  inputTextColor: "#000000",
8
- userBubbleColor: "#804195",
8
+ userBubbleColor: "#4F4E57",
9
9
  userTextColor: "#ffffff",
10
- botBubbleColor: "#e5e5ea",
10
+ botBubbleColor: "#EDEDF2",
11
11
  botTextColor: "#000000",
12
- borderRadius: 18,
12
+ borderRadius: 8,
13
13
  fontFamily: undefined,
14
14
  fontSize: 16
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"names":["defaultTheme","primaryColor","backgroundColor","inputColor","inputBackgroundColor","inputBorderRadius","inputTextColor","userBubbleColor","userTextColor","botBubbleColor","botTextColor","borderRadius","fontFamily","undefined","fontSize","mergeTheme","overrides"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":"AAEA,OAAO,MAAMA,YAAuB,GAAG;EACrCC,YAAY,EAAE,SAAS;EACvBC,eAAe,EAAE,SAAS;EAC1BC,UAAU,EAAE,MAAM;EAClBC,oBAAoB,EAAE,SAAS;EAC/BC,iBAAiB,EAAE,CAAC;EACpBC,cAAc,EAAE,SAAS;EACzBC,eAAe,EAAE,SAAS;EAC1BC,aAAa,EAAE,SAAS;EACxBC,cAAc,EAAE,SAAS;EACzBC,YAAY,EAAE,SAAS;EACvBC,YAAY,EAAE,EAAE;EAChBC,UAAU,EAAEC,SAAS;EACrBC,QAAQ,EAAE;AACZ,CAAC;AAED,OAAO,SAASC,UAAUA,CAACC,SAA8B,EAAa;EACpE,OAAO;IAAE,GAAGhB,YAAY;IAAE,IAAIgB,SAAS,IAAI,CAAC,CAAC;EAAE,CAAC;AAClD","ignoreList":[]}
1
+ {"version":3,"names":["defaultTheme","primaryColor","backgroundColor","inputColor","inputBackgroundColor","inputBorderRadius","inputTextColor","userBubbleColor","userTextColor","botBubbleColor","botTextColor","borderRadius","fontFamily","undefined","fontSize","mergeTheme","overrides"],"sourceRoot":"../../src","sources":["theme.ts"],"mappings":"AAEA,OAAO,MAAMA,YAAuB,GAAG;EACrCC,YAAY,EAAE,SAAS;EACvBC,eAAe,EAAE,SAAS;EAC1BC,UAAU,EAAE,MAAM;EAClBC,oBAAoB,EAAE,SAAS;EAC/BC,iBAAiB,EAAE,CAAC;EACpBC,cAAc,EAAE,SAAS;EACzBC,eAAe,EAAE,SAAS;EAC1BC,aAAa,EAAE,SAAS;EACxBC,cAAc,EAAE,SAAS;EACzBC,YAAY,EAAE,SAAS;EACvBC,YAAY,EAAE,CAAC;EACfC,UAAU,EAAEC,SAAS;EACrBC,QAAQ,EAAE;AACZ,CAAC;AAED,OAAO,SAASC,UAAUA,CAACC,SAA8B,EAAa;EACpE,OAAO;IAAE,GAAGhB,YAAY;IAAE,IAAIgB,SAAS,IAAI,CAAC,CAAC;EAAE,CAAC;AAClD","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAwBhD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,EAAE,CAiBzD;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,GAAG,CAAC,CAqCd;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,GAAG,CAAC,CAyCd;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAuBrE;AAED,eAAO,MAAM,uBAAuB,GAClC,QAAQ,cAAc,EACtB,iBAAiB,MAAM,EACvB,YAAY,MAAM,sBAanB,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAwBhD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,WAAW,EAAE,CAkBzD;AAED,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,aAAa,EACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GACxB,OAAO,CAAC,GAAG,CAAC,CAqCd;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,WAAW,EAAE,EACvB,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,GAAG,CAAC,CAyCd;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAuBrE;AAED,eAAO,MAAM,uBAAuB,GAClC,QAAQ,cAAc,EACtB,iBAAiB,MAAM,EACvB,YAAY,MAAM,sBAanB,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const BetaNotice: ({ active }: {
2
+ active?: boolean;
3
+ }) => import("react/jsx-runtime").JSX.Element | null;
4
+ export default BetaNotice;
5
+ //# sourceMappingURL=BetaNotice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BetaNotice.d.ts","sourceRoot":"","sources":["../../../src/components/BetaNotice.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,GAAI,YAAY;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,mDAS1D,CAAC;AAmBF,eAAe,UAAU,CAAC"}
@@ -1,6 +1,9 @@
1
- declare const ChatHeader: ({ onClose, onClearChat, }: {
1
+ import React from "react";
2
+ interface ChatHeaderProps {
2
3
  onClose?: () => void;
3
4
  onClearChat?: () => void;
4
- }) => import("react/jsx-runtime").JSX.Element;
5
+ isBetaMode?: boolean;
6
+ }
7
+ declare const ChatHeader: React.FC<ChatHeaderProps>;
5
8
  export default ChatHeader;
6
9
  //# sourceMappingURL=ChatHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatHeader.d.ts","sourceRoot":"","sources":["../../../src/components/ChatHeader.tsx"],"names":[],"mappings":"AAmCA,QAAA,MAAM,UAAU,GAAI,2BAGjB;IACD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,4CAiCA,CAAC;AAkDF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ChatHeader.d.ts","sourceRoot":"","sources":["../../../src/components/ChatHeader.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,OAAO,CAAC;AAuC1B,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAiCzC,CAAC;AAoDF,eAAe,UAAU,CAAC"}
@@ -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,CA2CrC,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;AAYf,OAAO,KAAK,EAAe,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAiB5E,eAAO,MAAM,UAAU,uFA6nBtB,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,14 +1,18 @@
1
1
  import React from "react";
2
2
  import type { ChatMessage, ChatTheme } from "../types";
3
- import { FeedbackAction } from "./utils";
4
3
  interface Props {
5
4
  message: ChatMessage;
6
5
  theme: ChatTheme;
7
- conversationId: string | null;
8
- handleFeedbackAction: (action: FeedbackAction, conversation_id: string, message_id: string) => void;
6
+ priceMode?: string;
7
+ handleFeedbackAction?: (...args: any[]) => void;
9
8
  onReloadResults?: (message: ChatMessage) => void;
10
9
  reloading?: boolean;
11
10
  hasResults?: boolean;
11
+ totalResults?: number;
12
+ shownResults?: number;
13
+ onSuggestionSelect?: (value: string) => void;
14
+ isLatest?: boolean;
15
+ isTyping?: boolean;
12
16
  }
13
17
  export declare const MessageBubble: React.NamedExoticComponent<Props>;
14
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../src/components/MessageBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAUpC,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,cAAc,EAAgB,MAAM,SAAS,CAAC;AAavD,UAAU,KAAK;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,EAAE,CACpB,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,KACf,IAAI,CAAC;IACV,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAkJD,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"}
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import type { ChatMessage } from "../types";
3
+ import { FeedbackAction } from "./utils";
4
+ interface Props {
5
+ message: ChatMessage;
6
+ priceMode: string;
7
+ handleFeedbackAction: (action: FeedbackAction, conversationId: string, message_id: string) => void;
8
+ onReloadResults?: (message: ChatMessage) => void;
9
+ reloading?: boolean;
10
+ hasResults?: boolean;
11
+ }
12
+ export declare const MessageMetaRow: React.FC<Props>;
13
+ export default MessageMetaRow;
14
+ //# sourceMappingURL=MessageMetaRow.d.ts.map