vdb-ai-chat 1.0.0 → 1.0.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.
Files changed (132) 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/248.chat-widget.js +1 -0
  5. package/dist/50.chat-widget.js +1 -0
  6. package/dist/521.chat-widget.js +1 -0
  7. package/dist/538.chat-widget.js +1 -0
  8. package/dist/572.chat-widget.js +1 -0
  9. package/dist/694.chat-widget.js +1 -0
  10. package/dist/chat-widget.js +1 -1
  11. package/dist/chat-widget.js.LICENSE.txt +2 -0
  12. package/lib/commonjs/api.js +6 -8
  13. package/lib/commonjs/api.js.map +1 -1
  14. package/lib/commonjs/components/BetaNotice.js +38 -0
  15. package/lib/commonjs/components/BetaNotice.js.map +1 -0
  16. package/lib/commonjs/components/ChatHeader.js +41 -21
  17. package/lib/commonjs/components/ChatHeader.js.map +1 -1
  18. package/lib/commonjs/components/ChatInput.js +21 -21
  19. package/lib/commonjs/components/ChatInput.js.map +1 -1
  20. package/lib/commonjs/components/ChatWidget.js +162 -90
  21. package/lib/commonjs/components/ChatWidget.js.map +1 -1
  22. package/lib/commonjs/components/MessageBubble.js +28 -68
  23. package/lib/commonjs/components/MessageBubble.js.map +1 -1
  24. package/lib/commonjs/components/MessageMetaRow.js +135 -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 +41 -23
  33. package/lib/commonjs/components/SuggestionsRow.js.map +1 -1
  34. package/lib/commonjs/components/utils.js +50 -4
  35. package/lib/commonjs/components/utils.js.map +1 -1
  36. package/lib/commonjs/contexts/AnalyticsClientContext.js +19 -0
  37. package/lib/commonjs/contexts/AnalyticsClientContext.js.map +1 -0
  38. package/lib/commonjs/hooks/useAnalytics.js +158 -0
  39. package/lib/commonjs/hooks/useAnalytics.js.map +1 -0
  40. package/lib/commonjs/index.web.js +91 -8
  41. package/lib/commonjs/index.web.js.map +1 -1
  42. package/lib/commonjs/storage.js +5 -5
  43. package/lib/commonjs/storage.js.map +1 -1
  44. package/lib/commonjs/theme.js +4 -4
  45. package/lib/commonjs/theme.js.map +1 -1
  46. package/lib/module/api.js +6 -8
  47. package/lib/module/api.js.map +1 -1
  48. package/lib/module/components/BetaNotice.js +30 -0
  49. package/lib/module/components/BetaNotice.js.map +1 -0
  50. package/lib/module/components/ChatHeader.js +41 -21
  51. package/lib/module/components/ChatHeader.js.map +1 -1
  52. package/lib/module/components/ChatInput.js +21 -21
  53. package/lib/module/components/ChatInput.js.map +1 -1
  54. package/lib/module/components/ChatWidget.js +164 -92
  55. package/lib/module/components/ChatWidget.js.map +1 -1
  56. package/lib/module/components/MessageBubble.js +28 -70
  57. package/lib/module/components/MessageBubble.js.map +1 -1
  58. package/lib/module/components/MessageMetaRow.js +127 -0
  59. package/lib/module/components/MessageMetaRow.js.map +1 -0
  60. package/lib/module/components/ProductsGrid.js +133 -0
  61. package/lib/module/components/ProductsGrid.js.map +1 -0
  62. package/lib/module/components/ProductsList.js +21 -126
  63. package/lib/module/components/ProductsList.js.map +1 -1
  64. package/lib/module/components/ProductsListView.js +132 -0
  65. package/lib/module/components/ProductsListView.js.map +1 -0
  66. package/lib/module/components/SuggestionsRow.js +41 -23
  67. package/lib/module/components/SuggestionsRow.js.map +1 -1
  68. package/lib/module/components/utils.js +46 -3
  69. package/lib/module/components/utils.js.map +1 -1
  70. package/lib/module/contexts/AnalyticsClientContext.js +10 -0
  71. package/lib/module/contexts/AnalyticsClientContext.js.map +1 -0
  72. package/lib/module/hooks/useAnalytics.js +146 -0
  73. package/lib/module/hooks/useAnalytics.js.map +1 -0
  74. package/lib/module/index.native.js +5 -5
  75. package/lib/module/index.web.js +89 -6
  76. package/lib/module/index.web.js.map +1 -1
  77. package/lib/module/storage.js +6 -6
  78. package/lib/module/storage.js.map +1 -1
  79. package/lib/module/theme.js +4 -4
  80. package/lib/module/theme.js.map +1 -1
  81. package/lib/typescript/api.d.ts +1 -1
  82. package/lib/typescript/api.d.ts.map +1 -1
  83. package/lib/typescript/components/BetaNotice.d.ts +5 -0
  84. package/lib/typescript/components/BetaNotice.d.ts.map +1 -0
  85. package/lib/typescript/components/ChatHeader.d.ts +5 -2
  86. package/lib/typescript/components/ChatHeader.d.ts.map +1 -1
  87. package/lib/typescript/components/ChatInput.d.ts.map +1 -1
  88. package/lib/typescript/components/ChatWidget.d.ts.map +1 -1
  89. package/lib/typescript/components/MessageBubble.d.ts +9 -3
  90. package/lib/typescript/components/MessageBubble.d.ts.map +1 -1
  91. package/lib/typescript/components/MessageMetaRow.d.ts +14 -0
  92. package/lib/typescript/components/MessageMetaRow.d.ts.map +1 -0
  93. package/lib/typescript/components/ProductsGrid.d.ts +10 -0
  94. package/lib/typescript/components/ProductsGrid.d.ts.map +1 -0
  95. package/lib/typescript/components/ProductsList.d.ts +4 -2
  96. package/lib/typescript/components/ProductsList.d.ts.map +1 -1
  97. package/lib/typescript/components/ProductsListView.d.ts +10 -0
  98. package/lib/typescript/components/ProductsListView.d.ts.map +1 -0
  99. package/lib/typescript/components/SuggestionsRow.d.ts +2 -0
  100. package/lib/typescript/components/SuggestionsRow.d.ts.map +1 -1
  101. package/lib/typescript/components/utils.d.ts +24 -0
  102. package/lib/typescript/components/utils.d.ts.map +1 -1
  103. package/lib/typescript/contexts/AnalyticsClientContext.d.ts +9 -0
  104. package/lib/typescript/contexts/AnalyticsClientContext.d.ts.map +1 -0
  105. package/lib/typescript/hooks/useAnalytics.d.ts +36 -0
  106. package/lib/typescript/hooks/useAnalytics.d.ts.map +1 -0
  107. package/lib/typescript/index.native.d.ts +5 -5
  108. package/lib/typescript/index.web.d.ts +1 -1
  109. package/lib/typescript/index.web.d.ts.map +1 -1
  110. package/lib/typescript/storage.d.ts.map +1 -1
  111. package/lib/typescript/types.d.ts +4 -2
  112. package/lib/typescript/types.d.ts.map +1 -1
  113. package/package.json +13 -3
  114. package/src/api.ts +26 -14
  115. package/src/components/BetaNotice.tsx +32 -0
  116. package/src/components/ChatHeader.tsx +43 -18
  117. package/src/components/ChatInput.tsx +20 -21
  118. package/src/components/ChatWidget.tsx +282 -219
  119. package/src/components/MessageBubble.tsx +48 -111
  120. package/src/components/MessageMetaRow.tsx +199 -0
  121. package/src/components/ProductsGrid.tsx +163 -0
  122. package/src/components/ProductsList.tsx +20 -144
  123. package/src/components/ProductsListView.tsx +149 -0
  124. package/src/components/SuggestionsRow.tsx +45 -21
  125. package/src/components/utils.ts +66 -5
  126. package/src/contexts/AnalyticsClientContext.tsx +20 -0
  127. package/src/hooks/useAnalytics.tsx +176 -0
  128. package/src/index.native.tsx +5 -5
  129. package/src/index.web.tsx +92 -4
  130. package/src/storage.ts +16 -13
  131. package/src/theme.ts +4 -4
  132. package/src/types.ts +4 -3
@@ -1,35 +1,29 @@
1
1
  import React, { memo } from "react";
2
- import { View, Text, StyleSheet, Image, TouchableOpacity, Platform } from "react-native";
3
- import { FeedbackAction, formatToTime } from "./utils";
4
-
5
- // Use expo-image on native if available, fallback to RN Image
6
- let ImageComponent = Image;
7
- if (Platform.OS !== "web") {
8
- try {
9
- const ExpoImage = require("expo-image").Image;
10
- if (ExpoImage) ImageComponent = ExpoImage;
11
- } catch {
12
- // expo-image not installed, use React Native Image
13
- }
14
- }
2
+ import { View, Text, StyleSheet } from "react-native";
3
+ import SuggestionsRow from "./SuggestionsRow";
15
4
  const MessageBubbleComponent = ({
16
5
  message,
17
6
  theme,
18
- conversationId,
7
+ priceMode,
19
8
  handleFeedbackAction,
20
- onReloadResults
9
+ onReloadResults,
10
+ reloading,
11
+ hasResults,
12
+ totalResults,
13
+ shownResults,
14
+ onSuggestionSelect,
15
+ isLatest,
16
+ isTyping
21
17
  }) => {
22
18
  const isUser = message.role === "user";
23
- const isValidMessageId = typeof message.id === "string" && message.id.length > 0 && !message.id.startsWith("bot-loading-");
24
- const canFeedback = message.role === "assistant" && !message.isLoading && isValidMessageId && !!conversationId;
25
19
  return /*#__PURE__*/React.createElement(View, {
26
20
  style: [styles.container, isUser ? styles.alignRight : styles.alignLeft]
27
21
  }, /*#__PURE__*/React.createElement(View, {
28
22
  style: [styles.bubble, {
29
23
  backgroundColor: isUser ? theme.userBubbleColor : theme.botBubbleColor,
30
- borderRadius: theme.borderRadius || 4,
31
- borderTopRightRadius: isUser ? 4 : theme.borderRadius,
32
- borderTopLeftRadius: isUser ? theme.borderRadius : 4
24
+ borderRadius: theme.borderRadius || 8,
25
+ borderBottomRightRadius: isUser ? 0 : theme.borderRadius,
26
+ borderBottomLeftRadius: isUser ? theme.borderRadius : 0
33
27
  }]
34
28
  }, /*#__PURE__*/React.createElement(Text, {
35
29
  style: [styles.text, {
@@ -37,39 +31,13 @@ const MessageBubbleComponent = ({
37
31
  fontFamily: theme.fontFamily,
38
32
  fontSize: theme.fontSize
39
33
  }]
40
- }, message.text || "")), (canFeedback || message.agent_response && typeof message.agent_response === "object") && /*#__PURE__*/React.createElement(View, {
41
- style: styles.rowContainer
42
- }, /*#__PURE__*/React.createElement(View, {
43
- style: styles.time
44
- }, /*#__PURE__*/React.createElement(Text, null, formatToTime(message.createdAt))), message.agent_response && typeof message.agent_response === "object" && /*#__PURE__*/React.createElement(TouchableOpacity, {
45
- onPress: () => onReloadResults?.(message)
46
- }, /*#__PURE__*/React.createElement(Text, null, "Reload Results")), /*#__PURE__*/React.createElement(View, {
47
- style: styles.likeDislikeContainer
48
- }, /*#__PURE__*/React.createElement(TouchableOpacity, {
49
- onPress: () => handleFeedbackAction(FeedbackAction.LIKE, String(conversationId), message.id),
50
- disabled: !canFeedback
51
- }, /*#__PURE__*/React.createElement(ImageComponent, {
52
- source: {
53
- uri: message.reaction === FeedbackAction.LIKE ? "https://cdn.vdbapp.com/ai/chat-widget/assets/img/like-filled.svg" : "https://cdn.vdbapp.com/ai/chat-widget/assets/img/like.svg"
54
- },
55
- resizeMode: "contain",
56
- style: {
57
- width: 16,
58
- height: 16
59
- }
60
- })), /*#__PURE__*/React.createElement(TouchableOpacity, {
61
- onPress: () => handleFeedbackAction(FeedbackAction.DISLIKE, String(conversationId), message.id),
62
- disabled: !canFeedback
63
- }, /*#__PURE__*/React.createElement(ImageComponent, {
64
- source: {
65
- uri: message.reaction === FeedbackAction.DISLIKE ? "https://cdn.vdbapp.com/ai/chat-widget/assets/img/dislike-filled.svg" : "https://cdn.vdbapp.com/ai/chat-widget/assets/img/dislike.svg"
66
- },
67
- resizeMode: "contain",
68
- style: {
69
- width: 16,
70
- height: 16
71
- }
72
- })))));
34
+ }, message.text || "", message.role === "assistant" && hasResults && typeof totalResults === "number" ? ` Found ${Number(totalResults).toLocaleString()} diamonds (showing first ${shownResults})` : null), message.role === "assistant" && Array.isArray(message.suggestions) && message.suggestions.length > 0 && isLatest && !isTyping && /*#__PURE__*/React.createElement(View, {
35
+ style: styles.suggestionsWrapper
36
+ }, /*#__PURE__*/React.createElement(SuggestionsRow, {
37
+ suggestions: message.suggestions,
38
+ onSelect: v => onSuggestionSelect?.(v),
39
+ variant: "inline"
40
+ }))));
73
41
  };
74
42
 
75
43
  // Memoize to prevent re-renders when parent re-renders
@@ -77,21 +45,9 @@ export const MessageBubble = /*#__PURE__*/memo(MessageBubbleComponent);
77
45
  const styles = StyleSheet.create({
78
46
  container: {
79
47
  paddingHorizontal: 8,
80
- marginVertical: 4,
48
+ marginVertical: 0,
81
49
  width: "100%"
82
50
  },
83
- rowContainer: {
84
- flexDirection: "row",
85
- justifyContent: "space-between",
86
- alignItems: "center",
87
- gap: 12
88
- },
89
- likeDislikeContainer: {
90
- flexDirection: "row",
91
- gap: 12,
92
- marginTop: 4,
93
- marginBottom: 4
94
- },
95
51
  alignRight: {
96
52
  alignItems: "flex-end"
97
53
  },
@@ -106,11 +62,13 @@ const styles = StyleSheet.create({
106
62
  text: {
107
63
  lineHeight: 20
108
64
  },
109
- time: {
110
- fontSize: 12,
111
- color: "#666",
65
+ resultsInfo: {
112
66
  marginTop: 4,
113
- marginLeft: 8
67
+ fontSize: 12,
68
+ color: "#666"
69
+ },
70
+ suggestionsWrapper: {
71
+ marginTop: 8
114
72
  }
115
73
  });
116
74
  //# sourceMappingURL=MessageBubble.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","View","Text","StyleSheet","Image","TouchableOpacity","Platform","FeedbackAction","formatToTime","ImageComponent","OS","ExpoImage","require","MessageBubbleComponent","message","theme","conversationId","handleFeedbackAction","onReloadResults","isUser","role","isValidMessageId","id","length","startsWith","canFeedback","isLoading","createElement","style","styles","container","alignRight","alignLeft","bubble","backgroundColor","userBubbleColor","botBubbleColor","borderRadius","borderTopRightRadius","borderTopLeftRadius","text","color","userTextColor","botTextColor","fontFamily","fontSize","agent_response","rowContainer","time","createdAt","onPress","likeDislikeContainer","LIKE","String","disabled","source","uri","reaction","resizeMode","width","height","DISLIKE","MessageBubble","create","paddingHorizontal","marginVertical","flexDirection","justifyContent","alignItems","gap","marginTop","marginBottom","maxWidth","paddingVertical","lineHeight","marginLeft"],"sourceRoot":"../../../src","sources":["components/MessageBubble.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","View","Text","StyleSheet","SuggestionsRow","MessageBubbleComponent","message","theme","priceMode","handleFeedbackAction","onReloadResults","reloading","hasResults","totalResults","shownResults","onSuggestionSelect","isLatest","isTyping","isUser","role","createElement","style","styles","container","alignRight","alignLeft","bubble","backgroundColor","userBubbleColor","botBubbleColor","borderRadius","borderBottomRightRadius","borderBottomLeftRadius","text","color","userTextColor","botTextColor","fontFamily","fontSize","Number","toLocaleString","Array","isArray","suggestions","length","suggestionsWrapper","onSelect","v","variant","MessageBubble","create","paddingHorizontal","marginVertical","width","alignItems","maxWidth","paddingVertical","lineHeight","resultsInfo","marginTop"],"sourceRoot":"../../../src","sources":["components/MessageBubble.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,127 @@
1
+ import React from "react";
2
+ import { View, Text, StyleSheet, Image, Platform, ActivityIndicator, Pressable } from "react-native";
3
+ import { FeedbackAction, fetchConversationId, formatToTime } from "./utils";
4
+ let ImageComponent = Image;
5
+ if (Platform.OS !== "web") {
6
+ try {
7
+ const ExpoImage = require("expo-image").Image;
8
+ if (ExpoImage) ImageComponent = ExpoImage;
9
+ } catch {}
10
+ }
11
+ export const MessageMetaRow = ({
12
+ message,
13
+ priceMode,
14
+ handleFeedbackAction,
15
+ onReloadResults,
16
+ reloading,
17
+ hasResults
18
+ }) => {
19
+ const isUser = message.role === "user";
20
+ const [conversationId, setConversationId] = React.useState(null);
21
+ React.useEffect(() => {
22
+ const fetchId = async () => {
23
+ const id = await fetchConversationId(priceMode);
24
+ setConversationId(id);
25
+ };
26
+ fetchId();
27
+ }, [priceMode]);
28
+ const isValidMessageId = typeof message.id === "string" && message.id.length > 0 && !message.id.startsWith("bot-loading-");
29
+ const canFeedback = message.role === "assistant" && !message.isLoading && isValidMessageId && !!conversationId;
30
+ return /*#__PURE__*/React.createElement(View, {
31
+ style: [styles.rowContainer, isUser ? styles.alignRight : styles.alignLeft]
32
+ }, /*#__PURE__*/React.createElement(View, {
33
+ style: styles.timeContainer
34
+ }, /*#__PURE__*/React.createElement(Text, {
35
+ style: styles.timeText
36
+ }, formatToTime(message.createdAt))), canFeedback ? /*#__PURE__*/React.createElement(View, {
37
+ style: styles.likeDislikeContainer
38
+ }, /*#__PURE__*/React.createElement(Pressable, {
39
+ style: state => [styles.borderButton, state?.hovered && styles.borderButtonHover],
40
+ onPress: () => handleFeedbackAction(FeedbackAction.LIKE, String(conversationId), message.id),
41
+ disabled: !canFeedback
42
+ }, /*#__PURE__*/React.createElement(ImageComponent, {
43
+ source: {
44
+ uri: message.reaction === FeedbackAction.LIKE ? "https://cdn.vdbapp.com/ai/chat-widget/assets/img/like-filled.svg" : "https://cdn.vdbapp.com/ai/chat-widget/assets/img/like.svg"
45
+ },
46
+ resizeMode: "contain",
47
+ style: {
48
+ width: 16,
49
+ height: 16
50
+ }
51
+ })), /*#__PURE__*/React.createElement(Pressable, {
52
+ style: state => [styles.borderButton, state?.hovered && styles.borderButtonHover],
53
+ onPress: () => handleFeedbackAction(FeedbackAction.DISLIKE, String(conversationId), message.id),
54
+ disabled: !canFeedback
55
+ }, /*#__PURE__*/React.createElement(ImageComponent, {
56
+ source: {
57
+ uri: message.reaction === FeedbackAction.DISLIKE ? "https://cdn.vdbapp.com/ai/chat-widget/assets/img/dislike-filled.svg" : "https://cdn.vdbapp.com/ai/chat-widget/assets/img/dislike.svg"
58
+ },
59
+ resizeMode: "contain",
60
+ style: {
61
+ width: 16,
62
+ height: 16
63
+ }
64
+ }))) : null, message.search_payload && typeof message.search_payload === "object" && Object.keys(message.search_payload).length > 0 && !hasResults && (reloading ? /*#__PURE__*/React.createElement(View, {
65
+ style: styles.borderButton
66
+ }, /*#__PURE__*/React.createElement(ActivityIndicator, {
67
+ size: "small",
68
+ color: "#020001",
69
+ style: {
70
+ width: 16,
71
+ height: 16
72
+ }
73
+ })) : /*#__PURE__*/React.createElement(Pressable, {
74
+ style: state => [styles.borderButton, state?.hovered && styles.borderButtonHover],
75
+ onPress: () => onReloadResults?.(message),
76
+ disabled: reloading
77
+ }, /*#__PURE__*/React.createElement(ImageComponent, {
78
+ source: {
79
+ uri: "https://cdn.vdbapp.com/ai/chat-widget/assets/img/arrow-reset.svg"
80
+ },
81
+ resizeMode: "contain",
82
+ style: {
83
+ width: 16,
84
+ height: 16
85
+ }
86
+ }))));
87
+ };
88
+ const styles = StyleSheet.create({
89
+ rowContainer: {
90
+ flexDirection: "row",
91
+ justifyContent: "space-between",
92
+ alignItems: "center",
93
+ gap: 6,
94
+ marginHorizontal: 8,
95
+ marginTop: 0,
96
+ marginBottom: 12
97
+ },
98
+ alignRight: {
99
+ alignSelf: "flex-end"
100
+ },
101
+ alignLeft: {
102
+ alignSelf: "flex-start"
103
+ },
104
+ likeDislikeContainer: {
105
+ flexDirection: "row",
106
+ gap: 6
107
+ },
108
+ timeContainer: {
109
+ margin: 0
110
+ },
111
+ borderButton: {
112
+ borderWidth: 1,
113
+ borderColor: "#D5D5DC",
114
+ borderRadius: 8,
115
+ paddingHorizontal: 4,
116
+ paddingVertical: 4
117
+ },
118
+ borderButtonHover: {
119
+ backgroundColor: "#EDEDF2"
120
+ },
121
+ timeText: {
122
+ fontSize: 12,
123
+ color: "#666"
124
+ }
125
+ });
126
+ export default MessageMetaRow;
127
+ //# sourceMappingURL=MessageMetaRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","StyleSheet","Image","Platform","ActivityIndicator","Pressable","FeedbackAction","fetchConversationId","formatToTime","ImageComponent","OS","ExpoImage","require","MessageMetaRow","message","priceMode","handleFeedbackAction","onReloadResults","reloading","hasResults","isUser","role","conversationId","setConversationId","useState","useEffect","fetchId","id","isValidMessageId","length","startsWith","canFeedback","isLoading","createElement","style","styles","rowContainer","alignRight","alignLeft","timeContainer","timeText","createdAt","likeDislikeContainer","state","borderButton","hovered","borderButtonHover","onPress","LIKE","String","disabled","source","uri","reaction","resizeMode","width","height","DISLIKE","search_payload","Object","keys","size","color","create","flexDirection","justifyContent","alignItems","gap","marginHorizontal","marginTop","marginBottom","alignSelf","margin","borderWidth","borderColor","borderRadius","paddingHorizontal","paddingVertical","backgroundColor","fontSize"],"sourceRoot":"../../../src","sources":["components/MessageMetaRow.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,IAAI,EACJC,IAAI,EACJC,UAAU,EACVC,KAAK,EACLC,QAAQ,EACRC,iBAAiB,EACjBC,SAAS,QACJ,cAAc;AAErB,SAASC,cAAc,EAAEC,mBAAmB,EAAEC,YAAY,QAAQ,SAAS;AAE3E,IAAIC,cAA4B,GAAGP,KAAK;AACxC,IAAIC,QAAQ,CAACO,EAAE,KAAK,KAAK,EAAE;EACzB,IAAI;IACF,MAAMC,SAAS,GAAGC,OAAO,CAAC,YAAY,CAAC,CAACV,KAAK;IAC7C,IAAIS,SAAS,EAAEF,cAAc,GAAGE,SAAS;EAC3C,CAAC,CAAC,MAAM,CAAC;AACX;AAeA,OAAO,MAAME,cAA+B,GAAGA,CAAC;EAC9CC,OAAO;EACPC,SAAS;EACTC,oBAAoB;EACpBC,eAAe;EACfC,SAAS;EACTC;AACF,CAAC,KAAK;EACJ,MAAMC,MAAM,GAAGN,OAAO,CAACO,IAAI,KAAK,MAAM;EACtC,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGzB,KAAK,CAAC0B,QAAQ,CACxD,IACF,CAAC;EAED1B,KAAK,CAAC2B,SAAS,CAAC,MAAM;IACpB,MAAMC,OAAO,GAAG,MAAAA,CAAA,KAAY;MAC1B,MAAMC,EAAE,GAAG,MAAMpB,mBAAmB,CAACQ,SAAS,CAAC;MAC/CQ,iBAAiB,CAACI,EAAE,CAAC;IACvB,CAAC;IACDD,OAAO,CAAC,CAAC;EACX,CAAC,EAAE,CAACX,SAAS,CAAC,CAAC;EAEf,MAAMa,gBAAgB,GACpB,OAAOd,OAAO,CAACa,EAAE,KAAK,QAAQ,IAC9Bb,OAAO,CAACa,EAAE,CAACE,MAAM,GAAG,CAAC,IACrB,CAACf,OAAO,CAACa,EAAE,CAACG,UAAU,CAAC,cAAc,CAAC;EACxC,MAAMC,WAAW,GACfjB,OAAO,CAACO,IAAI,KAAK,WAAW,IAC5B,CAACP,OAAO,CAACkB,SAAS,IAClBJ,gBAAgB,IAChB,CAAC,CAACN,cAAc;EAElB,oBACExB,KAAA,CAAAmC,aAAA,CAAClC,IAAI;IACHmC,KAAK,EAAE,CACLC,MAAM,CAACC,YAAY,EACnBhB,MAAM,GAAGe,MAAM,CAACE,UAAU,GAAGF,MAAM,CAACG,SAAS;EAC7C,gBAEFxC,KAAA,CAAAmC,aAAA,CAAClC,IAAI;IAACmC,KAAK,EAAEC,MAAM,CAACI;EAAc,gBAChCzC,KAAA,CAAAmC,aAAA,CAACjC,IAAI;IAACkC,KAAK,EAAEC,MAAM,CAACK;EAAS,GAAEhC,YAAY,CAACM,OAAO,CAAC2B,SAAS,CAAQ,CACjE,CAAC,EACNV,WAAW,gBACVjC,KAAA,CAAAmC,aAAA,CAAClC,IAAI;IAACmC,KAAK,EAAEC,MAAM,CAACO;EAAqB,gBACvC5C,KAAA,CAAAmC,aAAA,CAAC5B,SAAS;IACR6B,KAAK,EAAGS,KAAU,IAAK,CACrBR,MAAM,CAACS,YAAY,EACnBD,KAAK,EAAEE,OAAO,IAAIV,MAAM,CAACW,iBAAiB,CAC1C;IACFC,OAAO,EAAEA,CAAA,KACP/B,oBAAoB,CAClBV,cAAc,CAAC0C,IAAI,EACnBC,MAAM,CAAC3B,cAAc,CAAC,EACtBR,OAAO,CAACa,EACV,CACD;IACDuB,QAAQ,EAAE,CAACnB;EAAY,gBAEvBjC,KAAA,CAAAmC,aAAA,CAACxB,cAAc;IACb0C,MAAM,EAAE;MACNC,GAAG,EACDtC,OAAO,CAACuC,QAAQ,KAAK/C,cAAc,CAAC0C,IAAI,GACpC,kEAAkE,GAClE;IACR,CAAE;IACFM,UAAU,EAAC,SAAS;IACpBpB,KAAK,EAAE;MAAEqB,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE;IAAG;EAAE,CAClC,CACQ,CAAC,eACZ1D,KAAA,CAAAmC,aAAA,CAAC5B,SAAS;IACR6B,KAAK,EAAGS,KAAU,IAAK,CACrBR,MAAM,CAACS,YAAY,EACnBD,KAAK,EAAEE,OAAO,IAAIV,MAAM,CAACW,iBAAiB,CAC1C;IACFC,OAAO,EAAEA,CAAA,KACP/B,oBAAoB,CAClBV,cAAc,CAACmD,OAAO,EACtBR,MAAM,CAAC3B,cAAc,CAAC,EACtBR,OAAO,CAACa,EACV,CACD;IACDuB,QAAQ,EAAE,CAACnB;EAAY,gBAEvBjC,KAAA,CAAAmC,aAAA,CAACxB,cAAc;IACb0C,MAAM,EAAE;MACNC,GAAG,EACDtC,OAAO,CAACuC,QAAQ,KAAK/C,cAAc,CAACmD,OAAO,GACvC,qEAAqE,GACrE;IACR,CAAE;IACFH,UAAU,EAAC,SAAS;IACpBpB,KAAK,EAAE;MAAEqB,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE;IAAG;EAAE,CAClC,CACQ,CACP,CAAC,GACL,IAAI,EACP1C,OAAO,CAAC4C,cAAc,IACrB,OAAO5C,OAAO,CAAC4C,cAAc,KAAK,QAAQ,IAC1CC,MAAM,CAACC,IAAI,CAAC9C,OAAO,CAAC4C,cAAc,CAAC,CAAC7B,MAAM,GAAG,CAAC,IAC9C,CAACV,UAAU,KACVD,SAAS,gBACRpB,KAAA,CAAAmC,aAAA,CAAClC,IAAI;IAACmC,KAAK,EAAEC,MAAM,CAACS;EAAa,gBAC/B9C,KAAA,CAAAmC,aAAA,CAAC7B,iBAAiB;IAACyD,IAAI,EAAC,OAAO;IAACC,KAAK,EAAC,SAAS;IAAC5B,KAAK,EAAE;MAAEqB,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE;IAAG;EAAE,CAAE,CAC/E,CAAC,gBAEP1D,KAAA,CAAAmC,aAAA,CAAC5B,SAAS;IACR6B,KAAK,EAAGS,KAAU,IAAK,CACrBR,MAAM,CAACS,YAAY,EACnBD,KAAK,EAAEE,OAAO,IAAIV,MAAM,CAACW,iBAAiB,CAC1C;IACFC,OAAO,EAAEA,CAAA,KAAM9B,eAAe,GAAGH,OAAO,CAAE;IAC1CoC,QAAQ,EAAEhC;EAAU,gBAEpBpB,KAAA,CAAAmC,aAAA,CAACxB,cAAc;IACb0C,MAAM,EAAE;MACNC,GAAG,EAAE;IACP,CAAE;IACFE,UAAU,EAAC,SAAS;IACpBpB,KAAK,EAAE;MAAEqB,KAAK,EAAE,EAAE;MAAEC,MAAM,EAAE;IAAG;EAAE,CAClC,CACQ,CACZ,CACC,CAAC;AAEX,CAAC;AAED,MAAMrB,MAAM,GAAGlC,UAAU,CAAC8D,MAAM,CAAC;EAC/B3B,YAAY,EAAE;IACZ4B,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,eAAe;IAC/BC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,CAAC;IACNC,gBAAgB,EAAE,CAAC;IACnBC,SAAS,EAAE,CAAC;IACZC,YAAY,EAAE;EAChB,CAAC;EACDjC,UAAU,EAAE;IACVkC,SAAS,EAAE;EACb,CAAC;EACDjC,SAAS,EAAE;IACTiC,SAAS,EAAE;EACb,CAAC;EACD7B,oBAAoB,EAAE;IACpBsB,aAAa,EAAE,KAAK;IACpBG,GAAG,EAAE;EACP,CAAC;EACD5B,aAAa,EAAE;IACbiC,MAAM,EAAE;EACV,CAAC;EACD5B,YAAY,EAAE;IACZ6B,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,SAAS;IACtBC,YAAY,EAAE,CAAC;IACfC,iBAAiB,EAAE,CAAC;IACpBC,eAAe,EAAE;EACnB,CAAC;EACD/B,iBAAiB,EAAE;IACjBgC,eAAe,EAAE;EACnB,CAAC;EACDtC,QAAQ,EAAE;IACRuC,QAAQ,EAAE,EAAE;IACZjB,KAAK,EAAE;EACT;AACF,CAAC,CAAC;AAEF,eAAejD,cAAc","ignoreList":[]}
@@ -0,0 +1,133 @@
1
+ import { View, Image, StyleSheet, Text, ScrollView, TouchableOpacity, Platform } from "react-native";
2
+ import React, { memo } from "react";
3
+
4
+ // Use expo-image on native if available, fallback to RN Image
5
+ let ImageComponent = Image;
6
+ if (Platform.OS !== "web") {
7
+ try {
8
+ const ExpoImage = require("expo-image").Image;
9
+ if (ExpoImage) ImageComponent = ExpoImage;
10
+ } catch {
11
+ // expo-image not installed, use React Native Image
12
+ }
13
+ }
14
+ const ProductsGridComponent = ({
15
+ data,
16
+ onViewAll,
17
+ onItemPress
18
+ }) => {
19
+ if (!data || !data.length) return null;
20
+ return /*#__PURE__*/React.createElement(View, {
21
+ style: styles.wrapper
22
+ }, /*#__PURE__*/React.createElement(ScrollView, {
23
+ horizontal: true,
24
+ showsHorizontalScrollIndicator: false,
25
+ contentContainerStyle: styles.listContent
26
+ }, data.map(item => /*#__PURE__*/React.createElement(TouchableOpacity, {
27
+ key: item.id,
28
+ onPress: () => {
29
+ onItemPress?.(item);
30
+ }
31
+ }, /*#__PURE__*/React.createElement(View, {
32
+ key: item.id,
33
+ style: styles.card
34
+ }, item.image_thumb_url ? /*#__PURE__*/React.createElement(ImageComponent, {
35
+ style: styles.image,
36
+ source: {
37
+ uri: item.image_thumb_url
38
+ }
39
+ }) : null, /*#__PURE__*/React.createElement(View, {
40
+ style: styles.content
41
+ }, /*#__PURE__*/React.createElement(Text, {
42
+ numberOfLines: 2,
43
+ style: styles.title
44
+ }, item.short_title), /*#__PURE__*/React.createElement(Text, {
45
+ style: styles.price
46
+ }, "$", item.total_sales_price)))))), /*#__PURE__*/React.createElement(TouchableOpacity, {
47
+ style: styles.button,
48
+ activeOpacity: 0.8,
49
+ onPress: onViewAll
50
+ }, /*#__PURE__*/React.createElement(Text, {
51
+ style: styles.buttonText
52
+ }, "View All ", ">>")));
53
+ };
54
+ const styles = StyleSheet.create({
55
+ wrapper: {
56
+ paddingHorizontal: 12,
57
+ marginHorizontal: 12,
58
+ marginBottom: 12,
59
+ paddingTop: 6,
60
+ paddingBottom: 14,
61
+ backgroundColor: "#fff",
62
+ borderRadius: 8,
63
+ borderWidth: 1,
64
+ borderColor: "#e8e8e8",
65
+ elevation: 3,
66
+ shadowColor: "#000",
67
+ shadowOpacity: 0.08,
68
+ shadowOffset: {
69
+ width: 0,
70
+ height: 2
71
+ },
72
+ shadowRadius: 6
73
+ },
74
+ listContent: {
75
+ gap: 12,
76
+ paddingVertical: 6
77
+ },
78
+ card: {
79
+ width: 150,
80
+ backgroundColor: "#fff",
81
+ borderRadius: 14,
82
+ overflow: "hidden",
83
+ borderColor: "#e8e8e8",
84
+ borderWidth: 1,
85
+ elevation: 3,
86
+ shadowColor: "#000",
87
+ shadowOpacity: 0.08,
88
+ shadowOffset: {
89
+ width: 0,
90
+ height: 2
91
+ },
92
+ shadowRadius: 6
93
+ },
94
+ image: {
95
+ width: "100%",
96
+ height: 120,
97
+ borderBottomWidth: 1,
98
+ borderBottomColor: "#e8e8e8"
99
+ },
100
+ content: {
101
+ padding: 10,
102
+ gap: 4
103
+ },
104
+ title: {
105
+ fontSize: 13,
106
+ color: "#222",
107
+ fontWeight: "500"
108
+ },
109
+ price: {
110
+ marginTop: 4,
111
+ fontSize: 14,
112
+ fontWeight: "700",
113
+ color: "#000"
114
+ },
115
+ button: {
116
+ marginTop: 12,
117
+ alignSelf: "center",
118
+ paddingHorizontal: 20,
119
+ paddingVertical: 8,
120
+ backgroundColor: "#804195",
121
+ borderRadius: 20,
122
+ width: 300,
123
+ alignItems: "center"
124
+ },
125
+ buttonText: {
126
+ color: "#fff",
127
+ fontSize: 14,
128
+ fontWeight: "600"
129
+ }
130
+ });
131
+ const ProductsGrid = /*#__PURE__*/memo(ProductsGridComponent);
132
+ export default ProductsGrid;
133
+ //# sourceMappingURL=ProductsGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["View","Image","StyleSheet","Text","ScrollView","TouchableOpacity","Platform","React","memo","ImageComponent","OS","ExpoImage","require","ProductsGridComponent","data","onViewAll","onItemPress","length","createElement","style","styles","wrapper","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","listContent","map","item","key","id","onPress","card","image_thumb_url","image","source","uri","content","numberOfLines","title","short_title","price","total_sales_price","button","activeOpacity","buttonText","create","paddingHorizontal","marginHorizontal","marginBottom","paddingTop","paddingBottom","backgroundColor","borderRadius","borderWidth","borderColor","elevation","shadowColor","shadowOpacity","shadowOffset","width","height","shadowRadius","gap","paddingVertical","overflow","borderBottomWidth","borderBottomColor","padding","fontSize","color","fontWeight","marginTop","alignSelf","alignItems","ProductsGrid"],"sourceRoot":"../../../src","sources":["components/ProductsGrid.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,133 +1,28 @@
1
- import { View, Image, StyleSheet, Text, ScrollView, TouchableOpacity, Platform } from "react-native";
2
- import React, { memo } from "react";
3
-
4
- // Use expo-image on native if available, fallback to RN Image
5
- let ImageComponent = Image;
6
- if (Platform.OS !== "web") {
7
- try {
8
- const ExpoImage = require("expo-image").Image;
9
- if (ExpoImage) ImageComponent = ExpoImage;
10
- } catch {
11
- // expo-image not installed, use React Native Image
12
- }
13
- }
14
- const ProductsListComponent = ({
1
+ import React from "react";
2
+ import ProductsGrid from "./ProductsGrid";
3
+ import ProductsListView from "./ProductsListView";
4
+ const ProductsList = ({
15
5
  data,
16
6
  onViewAll,
17
- onItemPress
7
+ onItemPress,
8
+ variant = "list",
9
+ totalResults
18
10
  }) => {
19
11
  if (!data || !data.length) return null;
20
- return /*#__PURE__*/React.createElement(View, {
21
- style: styles.wrapper
22
- }, /*#__PURE__*/React.createElement(ScrollView, {
23
- horizontal: true,
24
- showsHorizontalScrollIndicator: false,
25
- contentContainerStyle: styles.listContent
26
- }, data.map(item => /*#__PURE__*/React.createElement(TouchableOpacity, {
27
- key: item.id,
28
- onPress: () => {
29
- onItemPress?.(item);
30
- }
31
- }, /*#__PURE__*/React.createElement(View, {
32
- key: item.id,
33
- style: styles.card
34
- }, /*#__PURE__*/React.createElement(ImageComponent, {
35
- style: styles.image,
36
- source: {
37
- uri: item.image_thumb_url
38
- }
39
- }), /*#__PURE__*/React.createElement(View, {
40
- style: styles.content
41
- }, /*#__PURE__*/React.createElement(Text, {
42
- numberOfLines: 2,
43
- style: styles.title
44
- }, item.short_title), /*#__PURE__*/React.createElement(Text, {
45
- style: styles.price
46
- }, "$", item.total_sales_price)))))), /*#__PURE__*/React.createElement(TouchableOpacity, {
47
- style: styles.button,
48
- activeOpacity: 0.8,
49
- onPress: onViewAll
50
- }, /*#__PURE__*/React.createElement(Text, {
51
- style: styles.buttonText
52
- }, "View All ", ">>")));
53
- };
54
- const styles = StyleSheet.create({
55
- wrapper: {
56
- paddingHorizontal: 12,
57
- marginHorizontal: 12,
58
- marginBottom: 12,
59
- paddingTop: 6,
60
- paddingBottom: 14,
61
- backgroundColor: "#fff",
62
- borderRadius: 8,
63
- borderWidth: 1,
64
- borderColor: "#e8e8e8",
65
- elevation: 3,
66
- shadowColor: "#000",
67
- shadowOpacity: 0.08,
68
- shadowOffset: {
69
- width: 0,
70
- height: 2
71
- },
72
- shadowRadius: 6
73
- },
74
- listContent: {
75
- gap: 12,
76
- paddingVertical: 6
77
- },
78
- card: {
79
- width: 150,
80
- backgroundColor: "#fff",
81
- borderRadius: 14,
82
- overflow: "hidden",
83
- borderColor: "#e8e8e8",
84
- borderWidth: 1,
85
- elevation: 3,
86
- shadowColor: "#000",
87
- shadowOpacity: 0.08,
88
- shadowOffset: {
89
- width: 0,
90
- height: 2
91
- },
92
- shadowRadius: 6
93
- },
94
- image: {
95
- width: "100%",
96
- height: 120,
97
- borderBottomWidth: 1,
98
- borderBottomColor: "#e8e8e8"
99
- },
100
- content: {
101
- padding: 10,
102
- gap: 4
103
- },
104
- title: {
105
- fontSize: 13,
106
- color: "#222",
107
- fontWeight: "500"
108
- },
109
- price: {
110
- marginTop: 4,
111
- fontSize: 14,
112
- fontWeight: "700",
113
- color: "#000"
114
- },
115
- button: {
116
- marginTop: 12,
117
- alignSelf: "center",
118
- paddingHorizontal: 20,
119
- paddingVertical: 8,
120
- backgroundColor: "#804195",
121
- borderRadius: 20,
122
- width: 300,
123
- alignItems: "center"
124
- },
125
- buttonText: {
126
- color: "#fff",
127
- fontSize: 14,
128
- fontWeight: "600"
12
+ if (variant === "list") {
13
+ return /*#__PURE__*/React.createElement(ProductsListView, {
14
+ data: data,
15
+ onViewAll: onViewAll,
16
+ onItemPress: onItemPress,
17
+ totalResults: totalResults
18
+ });
129
19
  }
130
- });
131
- const ProductsList = /*#__PURE__*/memo(ProductsListComponent);
20
+ return /*#__PURE__*/React.createElement(ProductsGrid, {
21
+ data: data,
22
+ onViewAll: onViewAll,
23
+ onItemPress: onItemPress,
24
+ totalResults: totalResults
25
+ });
26
+ };
132
27
  export default ProductsList;
133
28
  //# sourceMappingURL=ProductsList.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["View","Image","StyleSheet","Text","ScrollView","TouchableOpacity","Platform","React","memo","ImageComponent","OS","ExpoImage","require","ProductsListComponent","data","onViewAll","onItemPress","length","createElement","style","styles","wrapper","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","listContent","map","item","key","id","onPress","card","image","source","uri","image_thumb_url","content","numberOfLines","title","short_title","price","total_sales_price","button","activeOpacity","buttonText","create","paddingHorizontal","marginHorizontal","marginBottom","paddingTop","paddingBottom","backgroundColor","borderRadius","borderWidth","borderColor","elevation","shadowColor","shadowOpacity","shadowOffset","width","height","shadowRadius","gap","paddingVertical","overflow","borderBottomWidth","borderBottomColor","padding","fontSize","color","fontWeight","marginTop","alignSelf","alignItems","ProductsList"],"sourceRoot":"../../../src","sources":["components/ProductsList.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","ProductsGrid","ProductsListView","ProductsList","data","onViewAll","onItemPress","variant","totalResults","length","createElement"],"sourceRoot":"../../../src","sources":["components/ProductsList.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,YAAY,MAAM,gBAAgB;AACzC,OAAOC,gBAAgB,MAAM,oBAAoB;AAUjD,MAAMC,YAAyC,GAAGA,CAAC;EACjDC,IAAI;EACJC,SAAS;EACTC,WAAW;EACXC,OAAO,GAAG,MAAM;EAChBC;AACF,CAAC,KAAK;EACJ,IAAI,CAACJ,IAAI,IAAI,CAACA,IAAI,CAACK,MAAM,EAAE,OAAO,IAAI;EACtC,IAAIF,OAAO,KAAK,MAAM,EAAE;IACtB,oBACEP,KAAA,CAAAU,aAAA,CAACR,gBAAgB;MACfE,IAAI,EAAEA,IAAK;MACXC,SAAS,EAAEA,SAAU;MACrBC,WAAW,EAAEA,WAAY;MACzBE,YAAY,EAAEA;IAAa,CAC5B,CAAC;EAEN;EACA,oBACER,KAAA,CAAAU,aAAA,CAACT,YAAY;IAACG,IAAI,EAAEA,IAAK;IAACC,SAAS,EAAEA,SAAU;IAACC,WAAW,EAAEA,WAAY;IAACE,YAAY,EAAEA;EAAa,CAAE,CAAC;AAE5G,CAAC;AAED,eAAeL,YAAY","ignoreList":[]}