vdb-ai-chat 1.0.77 → 1.0.78

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 (99) hide show
  1. package/dist/chat-widget.js +461 -1
  2. package/lib/commonjs/api.js +27 -55
  3. package/lib/commonjs/api.js.map +1 -1
  4. package/lib/commonjs/components/ChatHeader.js +0 -2
  5. package/lib/commonjs/components/ChatHeader.js.map +1 -1
  6. package/lib/commonjs/components/ChatWidget.js +21 -55
  7. package/lib/commonjs/components/ChatWidget.js.map +1 -1
  8. package/lib/commonjs/components/LazyProductsFetcher.js +3 -5
  9. package/lib/commonjs/components/LazyProductsFetcher.js.map +1 -1
  10. package/lib/commonjs/components/utils.js +34 -42
  11. package/lib/commonjs/components/utils.js.map +1 -1
  12. package/lib/commonjs/contexts/ThemeProvider.js +21 -44
  13. package/lib/commonjs/contexts/ThemeProvider.js.map +1 -1
  14. package/lib/commonjs/index.web.js +6 -17
  15. package/lib/commonjs/index.web.js.map +1 -1
  16. package/lib/commonjs/storage.js +4 -14
  17. package/lib/commonjs/storage.js.map +1 -1
  18. package/lib/commonjs/theme.js +1 -229
  19. package/lib/commonjs/theme.js.map +1 -1
  20. package/lib/module/api.js +27 -53
  21. package/lib/module/api.js.map +1 -1
  22. package/lib/module/components/ChatHeader.js +0 -2
  23. package/lib/module/components/ChatHeader.js.map +1 -1
  24. package/lib/module/components/ChatWidget.js +22 -56
  25. package/lib/module/components/ChatWidget.js.map +1 -1
  26. package/lib/module/components/LazyProductsFetcher.js +3 -5
  27. package/lib/module/components/LazyProductsFetcher.js.map +1 -1
  28. package/lib/module/components/utils.js +34 -42
  29. package/lib/module/components/utils.js.map +1 -1
  30. package/lib/module/contexts/ThemeProvider.js +16 -39
  31. package/lib/module/contexts/ThemeProvider.js.map +1 -1
  32. package/lib/module/index.web.js +6 -17
  33. package/lib/module/index.web.js.map +1 -1
  34. package/lib/module/storage.js +4 -14
  35. package/lib/module/storage.js.map +1 -1
  36. package/lib/module/theme.js +0 -228
  37. package/lib/module/theme.js.map +1 -1
  38. package/lib/typescript/api.d.ts +2 -12
  39. package/lib/typescript/api.d.ts.map +1 -1
  40. package/lib/typescript/components/ChatHeader.d.ts.map +1 -1
  41. package/lib/typescript/components/ChatWidget.d.ts.map +1 -1
  42. package/lib/typescript/components/LazyProductsFetcher.d.ts +0 -3
  43. package/lib/typescript/components/LazyProductsFetcher.d.ts.map +1 -1
  44. package/lib/typescript/components/utils.d.ts +1 -0
  45. package/lib/typescript/components/utils.d.ts.map +1 -1
  46. package/lib/typescript/contexts/ThemeProvider.d.ts.map +1 -1
  47. package/lib/typescript/index.web.d.ts +1 -23
  48. package/lib/typescript/index.web.d.ts.map +1 -1
  49. package/lib/typescript/storage.d.ts.map +1 -1
  50. package/lib/typescript/theme.d.ts +0 -228
  51. package/lib/typescript/theme.d.ts.map +1 -1
  52. package/lib/typescript/types.d.ts +0 -4
  53. package/lib/typescript/types.d.ts.map +1 -1
  54. package/package.json +1 -2
  55. package/src/api.ts +24 -60
  56. package/src/components/ChatHeader.tsx +0 -2
  57. package/src/components/ChatWidget.tsx +86 -137
  58. package/src/components/LazyProductsFetcher.tsx +2 -7
  59. package/src/components/utils.ts +34 -42
  60. package/src/contexts/ThemeProvider.tsx +10 -32
  61. package/src/index.web.tsx +13 -59
  62. package/src/storage.ts +4 -14
  63. package/src/theme.ts +0 -230
  64. package/src/types.ts +0 -4
  65. package/lib/commonjs/components/ButtonContent.js +0 -54
  66. package/lib/commonjs/components/ButtonContent.js.map +0 -1
  67. package/lib/commonjs/components/FloatingChatButton.js +0 -197
  68. package/lib/commonjs/components/FloatingChatButton.js.map +0 -1
  69. package/lib/commonjs/config/storeConfigLoader.js +0 -161
  70. package/lib/commonjs/config/storeConfigLoader.js.map +0 -1
  71. package/lib/commonjs/config/types.js +0 -2
  72. package/lib/commonjs/config/types.js.map +0 -1
  73. package/lib/commonjs/utils/pluginUrlBuilder.js +0 -288
  74. package/lib/commonjs/utils/pluginUrlBuilder.js.map +0 -1
  75. package/lib/module/components/ButtonContent.js +0 -48
  76. package/lib/module/components/ButtonContent.js.map +0 -1
  77. package/lib/module/components/FloatingChatButton.js +0 -190
  78. package/lib/module/components/FloatingChatButton.js.map +0 -1
  79. package/lib/module/config/storeConfigLoader.js +0 -153
  80. package/lib/module/config/storeConfigLoader.js.map +0 -1
  81. package/lib/module/config/types.js +0 -2
  82. package/lib/module/config/types.js.map +0 -1
  83. package/lib/module/utils/pluginUrlBuilder.js +0 -279
  84. package/lib/module/utils/pluginUrlBuilder.js.map +0 -1
  85. package/lib/typescript/components/ButtonContent.d.ts +0 -5
  86. package/lib/typescript/components/ButtonContent.d.ts.map +0 -1
  87. package/lib/typescript/components/FloatingChatButton.d.ts +0 -8
  88. package/lib/typescript/components/FloatingChatButton.d.ts.map +0 -1
  89. package/lib/typescript/config/storeConfigLoader.d.ts +0 -25
  90. package/lib/typescript/config/storeConfigLoader.d.ts.map +0 -1
  91. package/lib/typescript/config/types.d.ts +0 -49
  92. package/lib/typescript/config/types.d.ts.map +0 -1
  93. package/lib/typescript/utils/pluginUrlBuilder.d.ts +0 -43
  94. package/lib/typescript/utils/pluginUrlBuilder.d.ts.map +0 -1
  95. package/src/components/ButtonContent.tsx +0 -54
  96. package/src/components/FloatingChatButton.tsx +0 -204
  97. package/src/config/storeConfigLoader.ts +0 -175
  98. package/src/config/types.ts +0 -51
  99. package/src/utils/pluginUrlBuilder.ts +0 -528
@@ -1,279 +0,0 @@
1
- /**
2
- * Plugin URL Builder Utilities
3
- *
4
- * Builds Shopify-compatible deep link URLs for plugin mode.
5
- * Used when useAsPlugin is true to generate URLs that work with the Shopify store's
6
- * URL parameter structure.
7
- */
8
-
9
- const DEFAULT_URL_PARAMS = {
10
- structure: "new",
11
- carat_min: "0.00",
12
- carat_max: "20.00",
13
- depth_min: "0.0",
14
- depth_max: "100.0",
15
- table_min: "0.0",
16
- table_max: "100.0",
17
- budget_min: "0.00",
18
- budget_max: "9597850.08",
19
- ratio_min: "0.0",
20
- ratio_max: "100.0"
21
- };
22
- const COLOR_GRADES = ["D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
23
- const CLARITY_GRADES = ["FL", "IF", "VVS1", "VVS2", "VS1", "VS2", "SI1", "SI2", "SI3", "I1", "I2", "I3"];
24
- const CUT_GRADES = ["Ideal", "Excellent", "Very Good", "Good", "Fair", "Poor"];
25
- const POLISH_GRADES = ["Ideal", "Excellent", "Very Good", "Good", "Fair", "Poor"];
26
- const SYMMETRY_GRADES = ["Ideal", "Excellent", "Very Good", "Good", "Fair", "Poor"];
27
-
28
- /**
29
- * Gets all values in a grade array between from and to (inclusive)
30
- */
31
- function getGradesInRange(grades, from, to) {
32
- if (!from && !to) return [];
33
- if (from === "D" && to === "Z") return [];
34
- const fromIndex = from ? grades.indexOf(from) : 0;
35
- const toIndex = to ? grades.indexOf(to) : grades.length - 1;
36
- if (fromIndex === -1 && toIndex === -1) return [];
37
- const startIndex = fromIndex === -1 ? 0 : fromIndex;
38
- const endIndex = toIndex === -1 ? grades.length - 1 : toIndex;
39
- const minIndex = Math.min(startIndex, endIndex);
40
- const maxIndex = Math.max(startIndex, endIndex);
41
- return grades.slice(minIndex, maxIndex + 1);
42
- }
43
-
44
- /**
45
- * Gets the base domain of the parent page by splitting on '?'
46
- */
47
- export function getParentBaseDomain() {
48
- if (typeof window === "undefined") {
49
- return "";
50
- }
51
- return window.location.href.split("?")[0];
52
- }
53
-
54
- /**
55
- * Builds a plugin URL for item press action
56
- * @param itemId - The product ID
57
- * @param pdpTemplate - Optional PDP link template (e.g., "?structure=new&proids={id}")
58
- */
59
- export function buildPluginItemUrl(itemId, pdpTemplate) {
60
- const baseDomain = getParentBaseDomain();
61
- const template = pdpTemplate || "?structure=new&proids={id}";
62
- return baseDomain + template.replace("{id}", String(itemId));
63
- }
64
-
65
- /**
66
- * Builds a plugin URL for view all action with search parameters
67
- * @param aiPayload - The AI search payload
68
- * @param urlDefaults - Optional URL defaults from store config
69
- */
70
- export function buildPluginViewAllUrl(aiPayload, urlDefaults) {
71
- const baseDomain = getParentBaseDomain();
72
- const params = buildSearchParams(aiPayload, urlDefaults);
73
- return `${baseDomain}?${params}`;
74
- }
75
-
76
- /**
77
- * Builds URL search parameters from AI payload
78
- * Only includes base defaults, other params added only if AI provides them
79
- * @param aiPayload - The AI search payload
80
- * @param urlDefaults - Optional URL defaults from store config
81
- */
82
- function buildSearchParams(aiPayload, urlDefaults) {
83
- const params = [];
84
-
85
- // Merge store config defaults with hardcoded defaults
86
- const defaults = {
87
- ...DEFAULT_URL_PARAMS,
88
- ...urlDefaults
89
- };
90
- params.push(`structure=${defaults.structure}`);
91
- const caratMin = aiPayload.size_from ?? defaults.carat_min;
92
- const caratMax = aiPayload.size_to ?? defaults.carat_max;
93
- params.push(`carat_min=${encodeURIComponent(String(caratMin))}`);
94
- params.push(`carat_max=${encodeURIComponent(String(caratMax))}`);
95
- const depthMin = aiPayload.depth_percent_from !== undefined && aiPayload.depth_percent_from !== "0" && aiPayload.depth_percent_to !== "100" ? aiPayload.depth_percent_from : defaults.depth_min;
96
- const depthMax = aiPayload.depth_percent_to !== undefined && aiPayload.depth_percent_from !== "0" && aiPayload.depth_percent_to !== "100" ? aiPayload.depth_percent_to : defaults.depth_max;
97
- params.push(`depth_min=${encodeURIComponent(String(depthMin))}`);
98
- params.push(`depth_max=${encodeURIComponent(String(depthMax))}`);
99
- const tableMin = aiPayload.table_percent_from !== undefined && aiPayload.table_percent_from !== "0" && aiPayload.table_percent_to !== "100" ? aiPayload.table_percent_from : defaults.table_min;
100
- const tableMax = aiPayload.table_percent_to !== undefined && aiPayload.table_percent_from !== "0" && aiPayload.table_percent_to !== "100" ? aiPayload.table_percent_to : defaults.table_max;
101
- params.push(`table_min=${encodeURIComponent(String(tableMin))}`);
102
- params.push(`table_max=${encodeURIComponent(String(tableMax))}`);
103
- const budgetMin = aiPayload.price_total_from ?? defaults.budget_min;
104
- const budgetMax = aiPayload.price_total_to ?? defaults.budget_max;
105
- params.push(`budget_min=${encodeURIComponent(String(budgetMin))}`);
106
- params.push(`budget_max=${encodeURIComponent(String(budgetMax))}`);
107
- params.push(`ratio_min=${defaults.ratio_min}`);
108
- params.push(`ratio_max=${defaults.ratio_max}`);
109
- if (aiPayload.shapes && Array.isArray(aiPayload.shapes) && aiPayload.shapes.length > 0) {
110
- params.push(`shapes=${aiPayload.shapes.map(s => encodeURIComponent(s)).join(",")}`);
111
- }
112
- const colorValues = getGradesInRange(COLOR_GRADES, aiPayload.color_from, aiPayload.color_to);
113
- if (colorValues.length > 0) {
114
- params.push(`colors=${colorValues.map(v => encodeURIComponent(v)).join(",")}`);
115
- }
116
- const clarityValues = getGradesInRange(CLARITY_GRADES, aiPayload.clarity_from, aiPayload.clarity_to);
117
- if (clarityValues.length > 0) {
118
- params.push(`clarity=${clarityValues.map(v => encodeURIComponent(v)).join(",")}`);
119
- }
120
- if (aiPayload.cut_from !== undefined || aiPayload.cut_to !== undefined) {
121
- const cutValues = getGradesInRange(CUT_GRADES, aiPayload.cut_from, aiPayload.cut_to);
122
- if (cutValues.length > 0) {
123
- params.push(`cuts=${cutValues.map(v => encodeURIComponent(v)).join(",")}`);
124
- }
125
- }
126
- if (aiPayload.polish_from !== undefined || aiPayload.polish_to !== undefined) {
127
- const polishValues = getGradesInRange(POLISH_GRADES, aiPayload.polish_from, aiPayload.polish_to);
128
- if (polishValues.length > 0) {
129
- params.push(`polish=${polishValues.map(v => encodeURIComponent(v)).join(",")}`);
130
- }
131
- }
132
- if (aiPayload.symmetry_from !== undefined || aiPayload.symmetry_to !== undefined) {
133
- const symmetryValues = getGradesInRange(SYMMETRY_GRADES, aiPayload.symmetry_from, aiPayload.symmetry_to);
134
- if (symmetryValues.length > 0) {
135
- params.push(`symmetry=${symmetryValues.map(v => encodeURIComponent(v)).join(",")}`);
136
- }
137
- }
138
- if (aiPayload.fluorescence_intensities && Array.isArray(aiPayload.fluorescence_intensities) && aiPayload.fluorescence_intensities.length > 0) {
139
- params.push(`fluor=${aiPayload.fluorescence_intensities.map(f => encodeURIComponent(f)).join(",")}`);
140
- }
141
- if (aiPayload.labs && Array.isArray(aiPayload.labs) && aiPayload.labs.length > 0) {
142
- params.push(`labs=${aiPayload.labs.map(l => encodeURIComponent(l)).join(",")}`);
143
- }
144
- if (aiPayload.enhancements && Array.isArray(aiPayload.enhancements) && aiPayload.enhancements.length > 0) {
145
- params.push(`treatment=${aiPayload.enhancements.map(e => encodeURIComponent(e)).join(",")}`);
146
- }
147
- if (aiPayload.vendor_locations && Array.isArray(aiPayload.vendor_locations) && aiPayload.vendor_locations.length > 0) {
148
- params.push(`origin=${aiPayload.vendor_locations.map(v => encodeURIComponent(v)).join(",")}`);
149
- }
150
- if (aiPayload.with_available_items === true || aiPayload.with_available_items === "true") {
151
- params.push(`own_inventory=${encodeURIComponent("In-Stock Inventory")}`);
152
- }
153
- if (aiPayload.fancy_colors && Array.isArray(aiPayload.fancy_colors) && aiPayload.fancy_colors.length > 0) {
154
- params.push(`fancy=${aiPayload.fancy_colors.map(f => encodeURIComponent(f)).join(",")}`);
155
- }
156
- return params.join("&");
157
- }
158
-
159
- /**
160
- * Default payload for Shopify plugin API calls
161
- */
162
- const DEFAULT_PLUGIN_API_PAYLOAD = {
163
- type: "Diamond",
164
- cut_from: "Good",
165
- cut_to: "Ideal",
166
- polish_from: "Good",
167
- polish_to: "Ideal",
168
- symmetry_from: "Good",
169
- symmetry_to: "Ideal",
170
- depth_percent_from: "0",
171
- depth_percent_to: "100",
172
- table_percent_from: "0.0",
173
- table_percent_to: "100.0",
174
- fluorescence_intensities: ["None", "Faint", "Very Slight", "Medium", "Slight"],
175
- labs: ["GIA", "AGS", "IGI"],
176
- size_from: "0.00",
177
- size_to: "20.00",
178
- price_total_from: "0",
179
- price_total_to: "9590762.18",
180
- page_number: 1,
181
- page_size: 12,
182
- with_images: false,
183
- with_videos: false
184
- };
185
-
186
- /**
187
- * Transforms AI payload to Shopify-compatible API payload
188
- * Starts with defaults and overrides with AI values
189
- * @param aiPayload - The AI search payload
190
- * @param apiDefaults - Optional API defaults from store config
191
- */
192
- export function buildPluginApiPayload(aiPayload, apiDefaults) {
193
- // Merge store config defaults with hardcoded defaults
194
- const payload = {
195
- ...DEFAULT_PLUGIN_API_PAYLOAD,
196
- ...apiDefaults
197
- };
198
- if (aiPayload.shapes && Array.isArray(aiPayload.shapes) && aiPayload.shapes.length > 0) {
199
- payload.shapes = aiPayload.shapes;
200
- }
201
- if (aiPayload.clarity_from !== undefined) {
202
- payload.clarity_from = aiPayload.clarity_from;
203
- }
204
- if (aiPayload.clarity_to !== undefined) {
205
- payload.clarity_to = aiPayload.clarity_to;
206
- }
207
- if (aiPayload.size_from !== undefined) {
208
- payload.size_from = String(aiPayload.size_from);
209
- }
210
- if (aiPayload.size_to !== undefined) {
211
- payload.size_to = String(aiPayload.size_to);
212
- }
213
- if (aiPayload.color_from !== undefined) {
214
- payload.color_from = aiPayload.color_from;
215
- }
216
- if (aiPayload.color_to !== undefined) {
217
- payload.color_to = aiPayload.color_to;
218
- }
219
- if (aiPayload.cut_from !== undefined) {
220
- payload.cut_from = aiPayload.cut_from;
221
- }
222
- if (aiPayload.cut_to !== undefined) {
223
- payload.cut_to = aiPayload.cut_to;
224
- }
225
- if (aiPayload.polish_from !== undefined) {
226
- payload.polish_from = aiPayload.polish_from;
227
- }
228
- if (aiPayload.polish_to !== undefined) {
229
- payload.polish_to = aiPayload.polish_to;
230
- }
231
- if (aiPayload.symmetry_from !== undefined) {
232
- payload.symmetry_from = aiPayload.symmetry_from;
233
- }
234
- if (aiPayload.symmetry_to !== undefined) {
235
- payload.symmetry_to = aiPayload.symmetry_to;
236
- }
237
- if (aiPayload.depth_percent_from !== undefined && aiPayload.depth_percent_from !== "0" && aiPayload.depth_percent_to !== "100") {
238
- payload.depth_percent_from = String(aiPayload.depth_percent_from);
239
- }
240
- if (aiPayload.depth_percent_to !== undefined && aiPayload.depth_percent_from !== "0" && aiPayload.depth_percent_to !== "100") {
241
- payload.depth_percent_to = String(aiPayload.depth_percent_to);
242
- }
243
- if (aiPayload.table_percent_from !== undefined) {
244
- payload.table_percent_from = String(aiPayload.table_percent_from);
245
- }
246
- if (aiPayload.table_percent_to !== undefined) {
247
- payload.table_percent_to = String(aiPayload.table_percent_to);
248
- }
249
- if (aiPayload.fluorescence_intensities && Array.isArray(aiPayload.fluorescence_intensities) && aiPayload.fluorescence_intensities.length > 0) {
250
- payload.fluorescence_intensities = aiPayload.fluorescence_intensities;
251
- }
252
- if (aiPayload.labs && Array.isArray(aiPayload.labs) && aiPayload.labs.length > 0) {
253
- payload.labs = aiPayload.labs;
254
- }
255
- if (aiPayload.price_total_from !== undefined) {
256
- payload.price_total_from = String(aiPayload.price_total_from);
257
- }
258
- if (aiPayload.price_total_to !== undefined) {
259
- payload.price_total_to = String(aiPayload.price_total_to);
260
- }
261
- if (aiPayload.lab_grown === true || aiPayload.lab_grown === "true") {
262
- payload.type = "Lab Grown Diamond";
263
- }
264
- if (aiPayload.fancy_colors && Array.isArray(aiPayload.fancy_colors) && aiPayload.fancy_colors.length > 0) {
265
- payload.fancy_colors = aiPayload.fancy_colors;
266
- }
267
- if (aiPayload.enhancements && Array.isArray(aiPayload.enhancements) && aiPayload.enhancements.length > 0) {
268
- payload.enhancements = aiPayload.enhancements;
269
- }
270
- if (aiPayload.vendor_locations && Array.isArray(aiPayload.vendor_locations) && aiPayload.vendor_locations.length > 0) {
271
- payload.vendor_locations = aiPayload.vendor_locations;
272
- }
273
- if (aiPayload.with_available_items !== undefined) {
274
- payload.with_available_items = aiPayload.with_available_items === true || aiPayload.with_available_items === "true";
275
- }
276
- return payload;
277
- }
278
- export { DEFAULT_URL_PARAMS, DEFAULT_PLUGIN_API_PAYLOAD, COLOR_GRADES, CLARITY_GRADES, CUT_GRADES, POLISH_GRADES, SYMMETRY_GRADES };
279
- //# sourceMappingURL=pluginUrlBuilder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DEFAULT_URL_PARAMS","structure","carat_min","carat_max","depth_min","depth_max","table_min","table_max","budget_min","budget_max","ratio_min","ratio_max","COLOR_GRADES","CLARITY_GRADES","CUT_GRADES","POLISH_GRADES","SYMMETRY_GRADES","getGradesInRange","grades","from","to","fromIndex","indexOf","toIndex","length","startIndex","endIndex","minIndex","Math","min","maxIndex","max","slice","getParentBaseDomain","window","location","href","split","buildPluginItemUrl","itemId","pdpTemplate","baseDomain","template","replace","String","buildPluginViewAllUrl","aiPayload","urlDefaults","params","buildSearchParams","defaults","push","caratMin","size_from","caratMax","size_to","encodeURIComponent","depthMin","depth_percent_from","undefined","depth_percent_to","depthMax","tableMin","table_percent_from","table_percent_to","tableMax","budgetMin","price_total_from","budgetMax","price_total_to","shapes","Array","isArray","map","s","join","colorValues","color_from","color_to","v","clarityValues","clarity_from","clarity_to","cut_from","cut_to","cutValues","polish_from","polish_to","polishValues","symmetry_from","symmetry_to","symmetryValues","fluorescence_intensities","f","labs","l","enhancements","e","vendor_locations","with_available_items","fancy_colors","DEFAULT_PLUGIN_API_PAYLOAD","type","page_number","page_size","with_images","with_videos","buildPluginApiPayload","apiDefaults","payload","lab_grown"],"sourceRoot":"../../../src","sources":["utils/pluginUrlBuilder.ts"],"mappings":"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","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- import React from "react";
2
- export declare const ButtonContent: React.MemoExoticComponent<({ typography }: {
3
- typography: any;
4
- }) => import("react/jsx-runtime").JSX.Element>;
5
- //# sourceMappingURL=ButtonContent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ButtonContent.d.ts","sourceRoot":"","sources":["../../../src/components/ButtonContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAe,MAAM,OAAO,CAAC;AAapC,eAAO,MAAM,aAAa,6CAAyB;IAAE,UAAU,EAAE,GAAG,CAAA;CAAE,6CAmBpE,CAAC"}
@@ -1,8 +0,0 @@
1
- import React from "react";
2
- type AISearchButtonVisualProps = {
3
- typography: any;
4
- height?: number;
5
- };
6
- export declare const AISearchButtonVisual: React.MemoExoticComponent<({ typography, height }: AISearchButtonVisualProps) => import("react/jsx-runtime").JSX.Element>;
7
- export {};
8
- //# sourceMappingURL=FloatingChatButton.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FloatingChatButton.d.ts","sourceRoot":"","sources":["../../../src/components/FloatingChatButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAW/C,KAAK,yBAAyB,GAAG;IAC/B,UAAU,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,oBAAoB,qDACU,yBAAyB,6CAsInE,CAAC"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Store Configuration Loader
3
- *
4
- * Handles loading store-specific configuration from CDN,
5
- * with caching and fallback support.
6
- */
7
- import type { StoreConfig } from "./types";
8
- /**
9
- * Extracts the store name from the current URL hostname.
10
- * Examples:
11
- * - "test-before-live-vdb-app.myshopify.com" → "test-before-live-vdb-app"
12
- * - "shopify.vdbapp.com" → "shopify-vdbapp"
13
- */
14
- export declare function getStoreNameFromUrl(): string | null;
15
- /**
16
- * Loads store configuration.
17
- * Checks cache first, then fetches from CDN if needed.
18
- * Returns null if no config available (will use hardcoded defaults).
19
- */
20
- export declare function loadStoreConfig(): Promise<StoreConfig | null>;
21
- /**
22
- * Clears the cached store configuration.
23
- */
24
- export declare function clearConfigCache(): void;
25
- //# sourceMappingURL=storeConfigLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storeConfigLoader.d.ts","sourceRoot":"","sources":["../../../src/config/storeConfigLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAY3C;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAkBnD;AA6FD;;;;GAIG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAsBnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAMvC"}
@@ -1,49 +0,0 @@
1
- /**
2
- * Store Configuration Types
3
- *
4
- * Defines the structure of store-specific configuration files
5
- * loaded from S3 when useAsPlugin is true.
6
- */
7
- export interface UrlDefaults {
8
- carat_min?: string;
9
- carat_max?: string;
10
- budget_min?: string;
11
- budget_max?: string;
12
- depth_min?: string;
13
- depth_max?: string;
14
- table_min?: string;
15
- table_max?: string;
16
- ratio_min?: string;
17
- ratio_max?: string;
18
- structure?: string;
19
- }
20
- export interface SearchApiDefaults {
21
- type?: string;
22
- cut_from?: string;
23
- cut_to?: string;
24
- polish_from?: string;
25
- polish_to?: string;
26
- symmetry_from?: string;
27
- symmetry_to?: string;
28
- depth_percent_from?: string;
29
- depth_percent_to?: string;
30
- table_percent_from?: string;
31
- table_percent_to?: string;
32
- fluorescence_intensities?: string[];
33
- labs?: string[];
34
- size_from?: string;
35
- size_to?: string;
36
- price_total_from?: string;
37
- price_total_to?: string;
38
- page_number?: number;
39
- page_size?: number;
40
- with_images?: boolean;
41
- with_videos?: boolean;
42
- }
43
- export interface StoreConfig {
44
- userToken?: string;
45
- searchApiDefaults?: SearchApiDefaults;
46
- urlDefaults?: UrlDefaults;
47
- pdpLinkTemplate?: string;
48
- }
49
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
@@ -1,43 +0,0 @@
1
- /**
2
- * Plugin URL Builder Utilities
3
- *
4
- * Builds Shopify-compatible deep link URLs for plugin mode.
5
- * Used when useAsPlugin is true to generate URLs that work with the Shopify store's
6
- * URL parameter structure.
7
- */
8
- import type { UrlDefaults, SearchApiDefaults } from "../config/types";
9
- declare const DEFAULT_URL_PARAMS: UrlDefaults;
10
- declare const COLOR_GRADES: string[];
11
- declare const CLARITY_GRADES: string[];
12
- declare const CUT_GRADES: string[];
13
- declare const POLISH_GRADES: string[];
14
- declare const SYMMETRY_GRADES: string[];
15
- /**
16
- * Gets the base domain of the parent page by splitting on '?'
17
- */
18
- export declare function getParentBaseDomain(): string;
19
- /**
20
- * Builds a plugin URL for item press action
21
- * @param itemId - The product ID
22
- * @param pdpTemplate - Optional PDP link template (e.g., "?structure=new&proids={id}")
23
- */
24
- export declare function buildPluginItemUrl(itemId: string | number, pdpTemplate?: string): string;
25
- /**
26
- * Builds a plugin URL for view all action with search parameters
27
- * @param aiPayload - The AI search payload
28
- * @param urlDefaults - Optional URL defaults from store config
29
- */
30
- export declare function buildPluginViewAllUrl(aiPayload: Record<string, any>, urlDefaults?: UrlDefaults): string;
31
- /**
32
- * Default payload for Shopify plugin API calls
33
- */
34
- declare const DEFAULT_PLUGIN_API_PAYLOAD: SearchApiDefaults;
35
- /**
36
- * Transforms AI payload to Shopify-compatible API payload
37
- * Starts with defaults and overrides with AI values
38
- * @param aiPayload - The AI search payload
39
- * @param apiDefaults - Optional API defaults from store config
40
- */
41
- export declare function buildPluginApiPayload(aiPayload: Record<string, any>, apiDefaults?: SearchApiDefaults): Record<string, any>;
42
- export { DEFAULT_URL_PARAMS, DEFAULT_PLUGIN_API_PAYLOAD, COLOR_GRADES, CLARITY_GRADES, CUT_GRADES, POLISH_GRADES, SYMMETRY_GRADES, };
43
- //# sourceMappingURL=pluginUrlBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pluginUrlBuilder.d.ts","sourceRoot":"","sources":["../../../src/utils/pluginUrlBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,QAAA,MAAM,kBAAkB,EAAE,WAYzB,CAAC;AAEF,QAAA,MAAM,YAAY,UAwBjB,CAAC;AACF,QAAA,MAAM,cAAc,UAanB,CAAC;AACF,QAAA,MAAM,UAAU,UAA8D,CAAC;AAC/E,QAAA,MAAM,aAAa,UAOlB,CAAC;AACF,QAAA,MAAM,eAAe,UAOpB,CAAC;AA2BF;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAIR;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,CAIR;AAuMD;;GAEG;AACH,QAAA,MAAM,0BAA0B,EAAE,iBA4BjC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC9B,WAAW,CAAC,EAAE,iBAAiB,GAC9B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsIrB;AAED,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,cAAc,EACd,UAAU,EACV,aAAa,EACb,eAAe,GAChB,CAAC"}
@@ -1,54 +0,0 @@
1
- import React, { memo } from "react";
2
- import { Platform, StyleSheet, Text } from "react-native";
3
- import styled from "styled-components/native";
4
- import { SvgUri } from "react-native-svg";
5
- import { DefaultTheme } from "styled-components/native";
6
- import { useTranslation } from "react-i18next";
7
- import { useTheme } from "styled-components/native";
8
-
9
- const isWeb = Platform.OS === "web";
10
- const BUTTON_HEIGHT = 48;
11
- const BUTTON_WIDTH = isWeb ? 181 : 167;
12
- const BORDER_WIDTH = 3;
13
-
14
- export const ButtonContent = memo(({ typography }: { typography: any }) => {
15
- const theme = useTheme();
16
- const { t } = useTranslation();
17
-
18
- return (
19
- <ButtonContainer id="widget">
20
- <SvgUri
21
- uri={
22
- "https://cdn.vdbapp.com/ai/chat-widget/assets/img/VDB_LOGO_WHITE.svg"
23
- }
24
- width={84}
25
- height={24}
26
- />
27
-
28
- <Text style={[styles.text, { color: theme["diam-05"] }]}>
29
- {t("AI Search")}
30
- </Text>
31
- </ButtonContainer>
32
- );
33
- });
34
-
35
- const ButtonContainer = styled.View<{
36
- theme: DefaultTheme;
37
- isCustomApp: boolean;
38
- }>`
39
- width: ${BUTTON_WIDTH - BORDER_WIDTH * 2}px;
40
- height: ${BUTTON_HEIGHT - BORDER_WIDTH * 2}px;
41
- border-radius: ${(BUTTON_HEIGHT - BORDER_WIDTH * 2) / 2}px;
42
- background-color: ${({ theme }: { theme: DefaultTheme }) => theme["main-01"]};
43
- align-items: center;
44
- justify-content: center;
45
- flex-direction: row;
46
- gap: 2px;
47
- `;
48
-
49
- const styles = StyleSheet.create({
50
- text: {
51
- fontWeight: "500",
52
- letterSpacing: 0.3,
53
- },
54
- });