vdb-ai-chat 1.0.0

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 (102) hide show
  1. package/README.md +153 -0
  2. package/dist/chat-widget.js +2 -0
  3. package/dist/chat-widget.js.LICENSE.txt +29 -0
  4. package/lib/commonjs/api.js +157 -0
  5. package/lib/commonjs/api.js.map +1 -0
  6. package/lib/commonjs/components/ChatHeader.js +111 -0
  7. package/lib/commonjs/components/ChatHeader.js.map +1 -0
  8. package/lib/commonjs/components/ChatInput.js +144 -0
  9. package/lib/commonjs/components/ChatInput.js.map +1 -0
  10. package/lib/commonjs/components/ChatWidget.js +469 -0
  11. package/lib/commonjs/components/ChatWidget.js.map +1 -0
  12. package/lib/commonjs/components/MessageBubble.js +122 -0
  13. package/lib/commonjs/components/MessageBubble.js.map +1 -0
  14. package/lib/commonjs/components/ProductsList.js +139 -0
  15. package/lib/commonjs/components/ProductsList.js.map +1 -0
  16. package/lib/commonjs/components/SuggestionsRow.js +59 -0
  17. package/lib/commonjs/components/SuggestionsRow.js.map +1 -0
  18. package/lib/commonjs/components/utils.js +37 -0
  19. package/lib/commonjs/components/utils.js.map +1 -0
  20. package/lib/commonjs/index.js +70 -0
  21. package/lib/commonjs/index.js.map +1 -0
  22. package/lib/commonjs/index.native.js +70 -0
  23. package/lib/commonjs/index.native.js.map +1 -0
  24. package/lib/commonjs/index.web.js +30 -0
  25. package/lib/commonjs/index.web.js.map +1 -0
  26. package/lib/commonjs/storage.js +136 -0
  27. package/lib/commonjs/storage.js.map +1 -0
  28. package/lib/commonjs/theme.js +29 -0
  29. package/lib/commonjs/theme.js.map +1 -0
  30. package/lib/commonjs/types.js +2 -0
  31. package/lib/commonjs/types.js.map +1 -0
  32. package/lib/module/api.js +146 -0
  33. package/lib/module/api.js.map +1 -0
  34. package/lib/module/components/ChatHeader.js +105 -0
  35. package/lib/module/components/ChatHeader.js.map +1 -0
  36. package/lib/module/components/ChatInput.js +136 -0
  37. package/lib/module/components/ChatInput.js.map +1 -0
  38. package/lib/module/components/ChatWidget.js +461 -0
  39. package/lib/module/components/ChatWidget.js.map +1 -0
  40. package/lib/module/components/MessageBubble.js +116 -0
  41. package/lib/module/components/MessageBubble.js.map +1 -0
  42. package/lib/module/components/ProductsList.js +133 -0
  43. package/lib/module/components/ProductsList.js.map +1 -0
  44. package/lib/module/components/SuggestionsRow.js +52 -0
  45. package/lib/module/components/SuggestionsRow.js.map +1 -0
  46. package/lib/module/components/utils.js +29 -0
  47. package/lib/module/components/utils.js.map +1 -0
  48. package/lib/module/index.js +7 -0
  49. package/lib/module/index.js.map +1 -0
  50. package/lib/module/index.native.js +7 -0
  51. package/lib/module/index.native.js.map +1 -0
  52. package/lib/module/index.web.js +23 -0
  53. package/lib/module/index.web.js.map +1 -0
  54. package/lib/module/storage.js +129 -0
  55. package/lib/module/storage.js.map +1 -0
  56. package/lib/module/theme.js +22 -0
  57. package/lib/module/theme.js.map +1 -0
  58. package/lib/module/types.js +2 -0
  59. package/lib/module/types.js.map +1 -0
  60. package/lib/typescript/api.d.ts +10 -0
  61. package/lib/typescript/api.d.ts.map +1 -0
  62. package/lib/typescript/components/ChatHeader.d.ts +6 -0
  63. package/lib/typescript/components/ChatHeader.d.ts.map +1 -0
  64. package/lib/typescript/components/ChatInput.d.ts +15 -0
  65. package/lib/typescript/components/ChatInput.d.ts.map +1 -0
  66. package/lib/typescript/components/ChatWidget.d.ts +4 -0
  67. package/lib/typescript/components/ChatWidget.d.ts.map +1 -0
  68. package/lib/typescript/components/MessageBubble.d.ts +13 -0
  69. package/lib/typescript/components/MessageBubble.d.ts.map +1 -0
  70. package/lib/typescript/components/ProductsList.d.ts +9 -0
  71. package/lib/typescript/components/ProductsList.d.ts.map +1 -0
  72. package/lib/typescript/components/SuggestionsRow.d.ts +8 -0
  73. package/lib/typescript/components/SuggestionsRow.d.ts.map +1 -0
  74. package/lib/typescript/components/utils.d.ts +8 -0
  75. package/lib/typescript/components/utils.d.ts.map +1 -0
  76. package/lib/typescript/index.d.ts +6 -0
  77. package/lib/typescript/index.d.ts.map +1 -0
  78. package/lib/typescript/index.native.d.ts +6 -0
  79. package/lib/typescript/index.native.d.ts.map +1 -0
  80. package/lib/typescript/index.web.d.ts +3 -0
  81. package/lib/typescript/index.web.d.ts.map +1 -0
  82. package/lib/typescript/storage.d.ts +28 -0
  83. package/lib/typescript/storage.d.ts.map +1 -0
  84. package/lib/typescript/theme.d.ts +4 -0
  85. package/lib/typescript/theme.d.ts.map +1 -0
  86. package/lib/typescript/types.d.ts +51 -0
  87. package/lib/typescript/types.d.ts.map +1 -0
  88. package/package.json +90 -0
  89. package/src/api.ts +200 -0
  90. package/src/components/ChatHeader.tsx +114 -0
  91. package/src/components/ChatInput.tsx +163 -0
  92. package/src/components/ChatWidget.tsx +679 -0
  93. package/src/components/MessageBubble.tsx +181 -0
  94. package/src/components/ProductsList.tsx +160 -0
  95. package/src/components/SuggestionsRow.tsx +73 -0
  96. package/src/components/utils.ts +43 -0
  97. package/src/index.native.tsx +6 -0
  98. package/src/index.ts +7 -0
  99. package/src/index.web.tsx +33 -0
  100. package/src/storage.ts +142 -0
  101. package/src/theme.ts +21 -0
  102. package/src/types.ts +56 -0
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @license React
3
+ * react-dom.production.min.js
4
+ *
5
+ * Copyright (c) Facebook, Inc. and its affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+
11
+ /**
12
+ * @license React
13
+ * react.production.min.js
14
+ *
15
+ * Copyright (c) Facebook, Inc. and its affiliates.
16
+ *
17
+ * This source code is licensed under the MIT license found in the
18
+ * LICENSE file in the root directory of this source tree.
19
+ */
20
+
21
+ /**
22
+ * @license React
23
+ * scheduler.production.min.js
24
+ *
25
+ * Copyright (c) Facebook, Inc. and its affiliates.
26
+ *
27
+ * This source code is licensed under the MIT license found in the
28
+ * LICENSE file in the root directory of this source tree.
29
+ */
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.clearChatHistory = clearChatHistory;
7
+ exports.fetchInitialMessages = fetchInitialMessages;
8
+ exports.getProducts = getProducts;
9
+ exports.handleFeedbackActionApi = void 0;
10
+ exports.normaliseMessages = normaliseMessages;
11
+ exports.sendUserMessage = sendUserMessage;
12
+ var _storage = require("./storage");
13
+ // Generic params type reused for downstream APIs (e.g. product search payload)
14
+
15
+ async function buildHeaders() {
16
+ const token = (await _storage.Storage.getItem("token")) || "";
17
+ const iid = (await _storage.Storage.getItem("persist:appState")) || "{}";
18
+ let installationId = "";
19
+ try {
20
+ const parsed = JSON.parse(iid);
21
+ installationId = parsed?.installationIdentifier ? JSON.parse(parsed.installationIdentifier) : "";
22
+ } catch {
23
+ installationId = "";
24
+ }
25
+ const session = (await _storage.Storage.getItem("session_cookie")) || "";
26
+ return {
27
+ "Content-Type": "application/json",
28
+ Accept: "application/json, text/plain, */*",
29
+ Authorization: `Token token=${token},installation_identifier=${installationId}`,
30
+ Cookie: `vdb-server_session=${session}`
31
+ };
32
+ }
33
+ function normaliseMessages(raw) {
34
+ const messages = Array.isArray(raw) ? raw : raw?.messages;
35
+ if (!Array.isArray(messages)) return [];
36
+ return messages.map((m, index) => ({
37
+ id: String(m.id ?? `${m.role}-${index}-${m.created_at ?? Date.now()}`),
38
+ role: m.role === "user" ? "user" : "assistant",
39
+ text: String(m.content ?? m.text ?? ""),
40
+ createdAt: typeof m.created_at === "string" ? Date.parse(m.created_at) : typeof m.createdAt === "number" ? m.createdAt : Date.now(),
41
+ ...(m.role === "assistant" ? {
42
+ agent_response: raw?.agent_response ? raw?.agent_response : undefined
43
+ } : {}),
44
+ // agent_response: m.agent_response,
45
+ suggestions: Array.isArray(m.suggestions) ? m.suggestions : undefined
46
+ }));
47
+ }
48
+ async function fetchInitialMessages(apiUrl, _params, priceMode) {
49
+ const conversations = await _storage.Storage.getJSON("vdbchat_conversations", {});
50
+ const storedId = conversations?.[priceMode]?.conversation_id ?? null;
51
+ if (!priceMode) return;
52
+ const body = {};
53
+ if (storedId) {
54
+ body.conversation_id = Number.isNaN(Number(storedId)) ? storedId : Number(storedId);
55
+ }
56
+ const res = await fetch(apiUrl, {
57
+ method: "POST",
58
+ headers: await buildHeaders(),
59
+ body: Object.keys(body).length ? JSON.stringify(body) : undefined
60
+ });
61
+ if (!res.ok) {
62
+ throw new Error(`POST ${apiUrl} failed with ${res.status}`);
63
+ }
64
+ const data = await res.json();
65
+
66
+ // Persist conversation_id returned by the server for future calls
67
+ if (data && data.conversation_id != null && priceMode) {
68
+ const updatedConversations = conversations || {};
69
+ updatedConversations[priceMode] = {
70
+ conversation_id: data.conversation_id
71
+ };
72
+ await _storage.Storage.setJSON("vdbchat_conversations", updatedConversations);
73
+ }
74
+ return data;
75
+ }
76
+ async function sendUserMessage(apiUrl, userMessage, _params, _history, priceMode) {
77
+ const conversations = await _storage.Storage.getJSON("vdbchat_conversations", {});
78
+ const storedId = conversations?.[priceMode]?.conversation_id ?? null;
79
+ if (!priceMode) {
80
+ return null;
81
+ }
82
+ const body = {
83
+ query: userMessage
84
+ };
85
+ if (storedId) {
86
+ body.conversation_id = Number.isNaN(Number(storedId)) ? storedId : Number(storedId);
87
+ }
88
+ const res = await fetch(apiUrl, {
89
+ method: "POST",
90
+ headers: await buildHeaders(),
91
+ body: JSON.stringify(body)
92
+ });
93
+ if (!res.ok) {
94
+ throw new Error(`POST ${apiUrl} failed with ${res.status}`);
95
+ }
96
+ const data = await res.json();
97
+ if (data && data.conversation_id != null && priceMode) {
98
+ const updatedConversations = conversations || {};
99
+ updatedConversations[priceMode] = {
100
+ conversation_id: data.conversation_id
101
+ };
102
+ await _storage.Storage.setJSON("vdbchat_conversations", updatedConversations);
103
+ }
104
+ return data;
105
+ }
106
+ async function clearChatHistory(apiUrl, priceMode) {
107
+ const conversations = await _storage.Storage.getJSON("vdbchat_conversations", {});
108
+ const storedId = conversations?.[priceMode]?.conversation_id ?? null;
109
+ if (!storedId || !priceMode) return;
110
+ const url = new URL(apiUrl);
111
+ url.searchParams.set("conversation_id", storedId);
112
+ const res = await fetch(url.toString(), {
113
+ method: "DELETE",
114
+ headers: await buildHeaders()
115
+ });
116
+ if (!res.ok) {
117
+ throw new Error(`DELETE ${apiUrl} failed with ${res.status}`);
118
+ }
119
+
120
+ // Clear from storage as well
121
+ const updatedConversations = conversations || {};
122
+ delete updatedConversations[priceMode];
123
+ await _storage.Storage.setJSON("vdbchat_conversations", updatedConversations);
124
+ }
125
+ async function getProducts(params) {
126
+ const res = await fetch("https://pdpdemo1.demo.customvirtual.app/v3/vdb/search_diamonds", {
127
+ method: "POST",
128
+ headers: await buildHeaders(),
129
+ body: JSON.stringify({
130
+ vdb: {
131
+ ...params,
132
+ page_size: 5,
133
+ price_mode: 1,
134
+ vdb_setting: "true"
135
+ }
136
+ })
137
+ });
138
+ if (!res.ok) {
139
+ throw new Error(`POST failed with ${res.status}`);
140
+ }
141
+ const data = await res.json();
142
+ return data;
143
+ }
144
+ const handleFeedbackActionApi = async (action, conversation_id, message_id) => {
145
+ const feedbackUrl = `https://pdpdemo1.demo.customvirtual.app/v3/agent_conversations/${conversation_id}/conversation_messages/${message_id}/reaction`;
146
+ const payload = {
147
+ reaction: action
148
+ };
149
+ const response = await fetch(feedbackUrl, {
150
+ method: "POST",
151
+ headers: await buildHeaders(),
152
+ body: JSON.stringify(payload)
153
+ });
154
+ return response;
155
+ };
156
+ exports.handleFeedbackActionApi = handleFeedbackActionApi;
157
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_storage","require","buildHeaders","token","Storage","getItem","iid","installationId","parsed","JSON","parse","installationIdentifier","session","Accept","Authorization","Cookie","normaliseMessages","raw","messages","Array","isArray","map","m","index","id","String","role","created_at","Date","now","text","content","createdAt","agent_response","undefined","suggestions","fetchInitialMessages","apiUrl","_params","priceMode","conversations","getJSON","storedId","conversation_id","body","Number","isNaN","res","fetch","method","headers","Object","keys","length","stringify","ok","Error","status","data","json","updatedConversations","setJSON","sendUserMessage","userMessage","_history","query","clearChatHistory","url","URL","searchParams","set","toString","getProducts","params","vdb","page_size","price_mode","vdb_setting","handleFeedbackActionApi","action","message_id","feedbackUrl","payload","reaction","response","exports"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ // Use expo-image on native if available, fallback to RN Image
11
+ let ImageComponent = _reactNative.Image;
12
+ if (_reactNative.Platform.OS !== "web") {
13
+ try {
14
+ const ExpoImage = require("expo-image").Image;
15
+ if (ExpoImage) ImageComponent = ExpoImage;
16
+ } catch {
17
+ // expo-image not installed, use React Native Image
18
+ }
19
+ }
20
+ const CloseIcon = () => {
21
+ return /*#__PURE__*/_react.default.createElement(ImageComponent, {
22
+ source: {
23
+ uri: "https://cdn.jsdelivr.net/npm/feather-icons/dist/icons/x.svg"
24
+ },
25
+ resizeMode: "contain",
26
+ style: {
27
+ width: 20,
28
+ height: 20
29
+ }
30
+ });
31
+ };
32
+ const ChatHeader = ({
33
+ onClose,
34
+ onClearChat
35
+ }) => {
36
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
37
+ style: styles.container
38
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
39
+ style: styles.logoContainer
40
+ }, /*#__PURE__*/_react.default.createElement(ImageComponent, {
41
+ source: {
42
+ uri: "https://getvdb.com/mail_images/web_app_favicon.ico"
43
+ },
44
+ resizeMode: "contain",
45
+ style: {
46
+ width: 30,
47
+ height: 30,
48
+ marginRight: 10
49
+ }
50
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
51
+ style: styles.title
52
+ }, "AI Search")), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
53
+ style: styles.buttonContainer
54
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
55
+ onPress: () => onClearChat?.()
56
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
57
+ style: styles.clearChatText
58
+ }, "Clear Chat")), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
59
+ style: styles.closeButton,
60
+ onPress: () => onClose?.()
61
+ }, /*#__PURE__*/_react.default.createElement(CloseIcon, null))));
62
+ };
63
+ const styles = _reactNative.StyleSheet.create({
64
+ container: {
65
+ padding: 16,
66
+ backgroundColor: "#37363F",
67
+ justifyContent: "space-between",
68
+ flexDirection: "row",
69
+ alignItems: "center"
70
+ },
71
+ logoContainer: {
72
+ flexDirection: "row",
73
+ alignItems: "center"
74
+ },
75
+ title: {
76
+ fontSize: 17,
77
+ fontWeight: "500",
78
+ color: "#FFF"
79
+ },
80
+ closeButton: {
81
+ backgroundColor: "#FFF",
82
+ width: 24,
83
+ height: 24,
84
+ borderRadius: 12,
85
+ justifyContent: "center",
86
+ alignItems: "center"
87
+ },
88
+ closeIconText: {
89
+ fontSize: 14,
90
+ fontWeight: "600",
91
+ color: "#37363F",
92
+ textAlign: "center",
93
+ lineHeight: 16
94
+ },
95
+ closeButtonText: {
96
+ color: "#FFF"
97
+ },
98
+ clearChatText: {
99
+ color: "#FFF",
100
+ fontSize: 14,
101
+ fontWeight: "500",
102
+ textDecorationLine: "none"
103
+ },
104
+ buttonContainer: {
105
+ flexDirection: "row",
106
+ alignItems: "center",
107
+ gap: 16
108
+ }
109
+ });
110
+ var _default = exports.default = ChatHeader;
111
+ //# sourceMappingURL=ChatHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_react","_interopRequireDefault","e","__esModule","default","ImageComponent","Image","Platform","OS","ExpoImage","CloseIcon","createElement","source","uri","resizeMode","style","width","height","ChatHeader","onClose","onClearChat","View","styles","container","logoContainer","marginRight","Text","title","buttonContainer","TouchableOpacity","onPress","clearChatText","closeButton","StyleSheet","create","padding","backgroundColor","justifyContent","flexDirection","alignItems","fontSize","fontWeight","color","borderRadius","closeIconText","textAlign","lineHeight","closeButtonText","textDecorationLine","gap","_default","exports"],"sourceRoot":"../../../src","sources":["components/ChatHeader.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ChatInput = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ // Use expo-image on native if available, fallback to RN Image
11
+ let ImageComponent = _reactNative.Image;
12
+ if (_reactNative.Platform.OS !== "web") {
13
+ try {
14
+ const ExpoImage = require("expo-image").Image;
15
+ if (ExpoImage) ImageComponent = ExpoImage;
16
+ } catch {
17
+ // expo-image not installed, use React Native Image
18
+ }
19
+ }
20
+ const SendIcon = ({
21
+ disabled,
22
+ isEmpty
23
+ }) => {
24
+ const isInactive = disabled || isEmpty;
25
+ return /*#__PURE__*/_react.default.createElement(ImageComponent, {
26
+ source: {
27
+ uri: "https://cdn.vdbapp.com/ai/chat-widget/assets/img/up.svg"
28
+ },
29
+ resizeMode: "contain",
30
+ style: {
31
+ ...styles.buttonIcon,
32
+ tintColor: isInactive ? "#AAA" : "#FFF"
33
+ }
34
+ });
35
+ };
36
+ const ChatInput = ({
37
+ value,
38
+ onChangeText,
39
+ onSend,
40
+ disabled,
41
+ placeholder,
42
+ theme,
43
+ inputRef
44
+ }) => {
45
+ const isInactive = disabled || value.trim() === "";
46
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
47
+ style: [styles.container, _reactNative.Platform.OS === "web" ? styles.webShadow : styles.nativeShadow]
48
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.TextInput, {
49
+ ref: inputRef
50
+ // @ts-ignore - supported on web via react-native-web
51
+ ,
52
+ id: "chat-input",
53
+ style: [styles.input, styles.inputWeb],
54
+ placeholder: placeholder || "What are you looking for?",
55
+ placeholderTextColor: "#999",
56
+ value: value,
57
+ onChangeText: onChangeText,
58
+ onSubmitEditing: onSend,
59
+ editable: !disabled,
60
+ autoFocus: true
61
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
62
+ style: {
63
+ ...styles.button,
64
+ backgroundColor: isInactive ? "#EDEDF2" : "#C000FF"
65
+ },
66
+ onPress: onSend,
67
+ disabled: disabled
68
+ }, /*#__PURE__*/_react.default.createElement(SendIcon, {
69
+ disabled: disabled,
70
+ isEmpty: value.trim() === ""
71
+ })));
72
+ };
73
+ exports.ChatInput = ChatInput;
74
+ const styles = _reactNative.StyleSheet.create({
75
+ container: {
76
+ flexDirection: "row",
77
+ height: 48,
78
+ paddingHorizontal: 16,
79
+ paddingVertical: 0,
80
+ justifyContent: "space-between",
81
+ alignItems: "center",
82
+ alignSelf: "stretch",
83
+ borderRadius: 56,
84
+ backgroundColor: "#FFF",
85
+ margin: 8
86
+ },
87
+ webShadow: {
88
+ ...(_reactNative.Platform.OS === "web" ? {
89
+ boxShadow: "2px 8px 24px -6px rgba(55, 54, 64, 0.26)"
90
+ } : {})
91
+ },
92
+ nativeShadow: {
93
+ shadowColor: "#373640",
94
+ shadowOffset: {
95
+ width: 2,
96
+ height: 8
97
+ },
98
+ shadowOpacity: 0.26,
99
+ shadowRadius: 12,
100
+ elevation: 3
101
+ },
102
+ input: {
103
+ flex: 1,
104
+ color: "#4F4E57",
105
+ fontFamily: "Roboto",
106
+ fontSize: 14,
107
+ fontStyle: "normal",
108
+ fontWeight: "400",
109
+ lineHeight: 20,
110
+ minHeight: 20,
111
+ maxHeight: 120,
112
+ paddingHorizontal: 8,
113
+ paddingVertical: 0,
114
+ backgroundColor: "transparent",
115
+ borderWidth: 0
116
+ },
117
+ inputWeb: {
118
+ ...(_reactNative.Platform.OS === "web" ? {
119
+ outlineStyle: "none",
120
+ outlineWidth: 0,
121
+ boxShadow: "none"
122
+ } : {})
123
+ },
124
+ button: {
125
+ marginLeft: 8,
126
+ padding: 4,
127
+ justifyContent: "center",
128
+ alignItems: "center",
129
+ height: 40,
130
+ aspectRatio: 1,
131
+ borderRadius: 40,
132
+ backgroundColor: "#C000FF"
133
+ },
134
+ buttonIcon: {
135
+ height: 16,
136
+ width: 16
137
+ },
138
+ sendIconText: {
139
+ fontSize: 18,
140
+ fontWeight: "700",
141
+ textAlign: "center"
142
+ }
143
+ });
144
+ //# sourceMappingURL=ChatInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","e","__esModule","default","ImageComponent","Image","Platform","OS","ExpoImage","SendIcon","disabled","isEmpty","isInactive","createElement","source","uri","resizeMode","style","styles","buttonIcon","tintColor","ChatInput","value","onChangeText","onSend","placeholder","theme","inputRef","trim","View","container","webShadow","nativeShadow","TextInput","ref","id","input","inputWeb","placeholderTextColor","onSubmitEditing","editable","autoFocus","TouchableOpacity","button","backgroundColor","onPress","exports","StyleSheet","create","flexDirection","height","paddingHorizontal","paddingVertical","justifyContent","alignItems","alignSelf","borderRadius","margin","boxShadow","shadowColor","shadowOffset","width","shadowOpacity","shadowRadius","elevation","flex","color","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","minHeight","maxHeight","borderWidth","outlineStyle","outlineWidth","marginLeft","padding","aspectRatio","sendIconText","textAlign"],"sourceRoot":"../../../src","sources":["components/ChatInput.tsx"],"mappings":"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","ignoreList":[]}