@burdenoff/website-sdk 2026.922.2 → 2026.922.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.
- package/dist/components/explore.d.mts +12 -2
- package/dist/components/explore.d.ts +12 -2
- package/dist/components/explore.js +534 -139
- package/dist/components/explore.js.map +1 -1
- package/dist/components/explore.mjs +535 -140
- package/dist/components/explore.mjs.map +1 -1
- package/dist/{explore-types-CLw19R76.d.mts → explore-types-CPF1QoMn.d.mts} +40 -3
- package/dist/{explore-types-CLw19R76.d.ts → explore-types-CPF1QoMn.d.ts} +40 -3
- package/dist/hooks/index.d.mts +2 -2
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.js +68 -3
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +68 -3
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/index.d.mts +29 -2
- package/dist/index.d.ts +29 -2
- package/dist/index.js +534 -139
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +535 -140
- package/dist/index.mjs.map +1 -1
- package/dist/{use-explore-chat-DC47G-C3.d.mts → use-explore-chat--CxNtkrJ.d.ts} +13 -1
- package/dist/{use-explore-chat-DyPMkzXA.d.ts → use-explore-chat-C6Y8JQMj.d.mts} +13 -1
- package/package.json +1 -1
|
@@ -82,10 +82,30 @@ var EN = {
|
|
|
82
82
|
noAnswer: "I couldn't find this in our documentation, so the answer below is not grounded in a source. Try rephrasing, or",
|
|
83
83
|
answerDidNotArrive: "That answer didn't come through. Try asking again.",
|
|
84
84
|
askHuman: "ask a human",
|
|
85
|
+
// An offer, not a demand: this row sits under every answer on 38 marketing sites, so the
|
|
86
|
+
// wording has to be shruggable. "Was this helpful?" invites; "Please rate this answer"
|
|
87
|
+
// conscripts.
|
|
88
|
+
feedbackPrompt: "Was this helpful?",
|
|
89
|
+
feedbackHelpful: "Helpful",
|
|
90
|
+
feedbackNotHelpful: "Not helpful",
|
|
91
|
+
feedbackReasonTitle: "What was off?",
|
|
92
|
+
feedbackReasonInaccurate: "Inaccurate",
|
|
93
|
+
feedbackReasonIncomplete: "Incomplete",
|
|
94
|
+
feedbackReasonOffTopic: "Off topic",
|
|
95
|
+
feedbackReasonHardToFollow: "Hard to follow",
|
|
96
|
+
feedbackReasonOther: "Something else",
|
|
97
|
+
feedbackCommentPlaceholder: "Add a detail (optional)",
|
|
98
|
+
feedbackSend: "Send",
|
|
99
|
+
feedbackDismiss: "Dismiss",
|
|
100
|
+
feedbackThanks: "Thanks \u2014 that helps.",
|
|
101
|
+
feedbackNotSent: "That didn't send.",
|
|
85
102
|
prevSuggestion: "Previous suggestion",
|
|
86
103
|
nextSuggestion: "Next suggestion",
|
|
87
104
|
conceptIllustration: "Concept illustration",
|
|
88
105
|
opensInNewTab: "opens in a new tab",
|
|
106
|
+
seoTitle: "Describe a problem, get an answer",
|
|
107
|
+
seoDescription: "Describe the problem you're facing in your own words and get an answer drawn from our product documentation, with links to the exact pages it came from.",
|
|
108
|
+
seoDescriptionProduct: "Describe the problem you're facing in your own words and get an answer drawn from {product}'s documentation \u2014 and every other product we build \u2014 with links to the exact pages it came from.",
|
|
89
109
|
capabilities: [
|
|
90
110
|
"Grounded in our own docs",
|
|
91
111
|
"Compare across the ecosystem",
|
|
@@ -133,10 +153,27 @@ var ZH = {
|
|
|
133
153
|
noAnswer: "\u6211\u5728\u6587\u6863\u4E2D\u6CA1\u6709\u627E\u5230\u76F8\u5173\u5185\u5BB9\uFF0C\u4E0B\u9762\u7684\u56DE\u7B54\u6CA1\u6709\u6765\u6E90\u652F\u6301\u3002\u8BF7\u6362\u4E2A\u8BF4\u6CD5\uFF0C\u6216",
|
|
134
154
|
answerDidNotArrive: "\u8FD9\u6761\u56DE\u7B54\u6CA1\u6709\u8FD4\u56DE\u3002\u8BF7\u518D\u95EE\u4E00\u6B21\u3002",
|
|
135
155
|
askHuman: "\u8054\u7CFB\u6211\u4EEC",
|
|
156
|
+
feedbackPrompt: "\u8FD9\u4E2A\u56DE\u7B54\u6709\u5E2E\u52A9\u5417\uFF1F",
|
|
157
|
+
feedbackHelpful: "\u6709\u5E2E\u52A9",
|
|
158
|
+
feedbackNotHelpful: "\u6CA1\u6709\u5E2E\u52A9",
|
|
159
|
+
feedbackReasonTitle: "\u54EA\u91CC\u4E0D\u5BF9\uFF1F",
|
|
160
|
+
feedbackReasonInaccurate: "\u4E0D\u51C6\u786E",
|
|
161
|
+
feedbackReasonIncomplete: "\u4E0D\u5B8C\u6574",
|
|
162
|
+
feedbackReasonOffTopic: "\u7B54\u975E\u6240\u95EE",
|
|
163
|
+
feedbackReasonHardToFollow: "\u770B\u4E0D\u592A\u61C2",
|
|
164
|
+
feedbackReasonOther: "\u5176\u4ED6\u539F\u56E0",
|
|
165
|
+
feedbackCommentPlaceholder: "\u8865\u5145\u8BF4\u660E\uFF08\u53EF\u9009\uFF09",
|
|
166
|
+
feedbackSend: "\u63D0\u4EA4",
|
|
167
|
+
feedbackDismiss: "\u5173\u95ED",
|
|
168
|
+
feedbackThanks: "\u8C22\u8C22\uFF0C\u8FD9\u5BF9\u6211\u4EEC\u5F88\u6709\u5E2E\u52A9\u3002",
|
|
169
|
+
feedbackNotSent: "\u6CA1\u6709\u63D0\u4EA4\u6210\u529F\u3002",
|
|
136
170
|
prevSuggestion: "\u4E0A\u4E00\u4E2A\u5EFA\u8BAE",
|
|
137
171
|
nextSuggestion: "\u4E0B\u4E00\u4E2A\u5EFA\u8BAE",
|
|
138
172
|
conceptIllustration: "\u6982\u5FF5\u793A\u610F\u56FE",
|
|
139
173
|
opensInNewTab: "\u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6253\u5F00",
|
|
174
|
+
seoTitle: "\u63CF\u8FF0\u95EE\u9898\uFF0C\u83B7\u5F97\u7B54\u6848",
|
|
175
|
+
seoDescription: "\u7528\u4F60\u81EA\u5DF1\u7684\u8BDD\u63CF\u8FF0\u9047\u5230\u7684\u95EE\u9898\uFF0C\u5373\u53EF\u83B7\u5F97\u6765\u81EA\u6211\u4EEC\u4EA7\u54C1\u6587\u6863\u7684\u56DE\u7B54\uFF0C\u5E76\u9644\u4E0A\u7B54\u6848\u51FA\u5904\u7684\u9875\u9762\u94FE\u63A5\u3002",
|
|
176
|
+
seoDescriptionProduct: "\u7528\u4F60\u81EA\u5DF1\u7684\u8BDD\u63CF\u8FF0\u9047\u5230\u7684\u95EE\u9898\uFF0C\u5373\u53EF\u83B7\u5F97\u6765\u81EA {product} \u53CA\u6211\u4EEC\u5176\u4ED6\u4EA7\u54C1\u6587\u6863\u7684\u56DE\u7B54\uFF0C\u5E76\u9644\u4E0A\u7B54\u6848\u51FA\u5904\u7684\u9875\u9762\u94FE\u63A5\u3002",
|
|
140
177
|
capabilities: ["\u57FA\u4E8E\u6211\u4EEC\u81EA\u5DF1\u7684\u6587\u6863", "\u8DE8\u4EA7\u54C1\u5BF9\u6BD4", "\u76F4\u8FBE\u6B63\u786E\u7684\u9875\u9762"],
|
|
141
178
|
prompts: [
|
|
142
179
|
"\u6BCF\u95E8\u8BFE\u7A0B\u90FD\u8BB0\u5728\u4E0D\u540C\u7684\u8868\u683C\u91CC\u3002",
|
|
@@ -180,10 +217,27 @@ var HI = {
|
|
|
180
217
|
noAnswer: "\u092F\u0939 \u092E\u0941\u091D\u0947 \u0939\u092E\u093E\u0930\u0947 \u0926\u0938\u094D\u0924\u093E\u0935\u0947\u091C\u093C\u094B\u0902 \u092E\u0947\u0902 \u0928\u0939\u0940\u0902 \u092E\u093F\u0932\u093E, \u0907\u0938\u0932\u093F\u090F \u0928\u0940\u091A\u0947 \u0926\u093F\u092F\u093E \u0909\u0924\u094D\u0924\u0930 \u0915\u093F\u0938\u0940 \u0938\u094D\u0930\u094B\u0924 \u092A\u0930 \u0906\u0927\u093E\u0930\u093F\u0924 \u0928\u0939\u0940\u0902 \u0939\u0948\u0964 \u0926\u0942\u0938\u0930\u0947 \u0936\u092C\u094D\u0926\u094B\u0902 \u092E\u0947\u0902 \u092A\u0942\u091B\u0947\u0902, \u092F\u093E",
|
|
181
218
|
answerDidNotArrive: "\u0935\u0939 \u0909\u0924\u094D\u0924\u0930 \u0928\u0939\u0940\u0902 \u0906 \u0938\u0915\u093E\u0964 \u0915\u0943\u092A\u092F\u093E \u0926\u094B\u092C\u093E\u0930\u093E \u092A\u0942\u091B\u0947\u0902\u0964",
|
|
182
219
|
askHuman: "\u0939\u092E\u0938\u0947 \u0938\u0902\u092A\u0930\u094D\u0915 \u0915\u0930\u0947\u0902",
|
|
220
|
+
feedbackPrompt: "\u0915\u094D\u092F\u093E \u092F\u0939 \u0909\u0924\u094D\u0924\u0930 \u092E\u0926\u0926\u0917\u093E\u0930 \u0925\u093E?",
|
|
221
|
+
feedbackHelpful: "\u092E\u0926\u0926\u0917\u093E\u0930",
|
|
222
|
+
feedbackNotHelpful: "\u092E\u0926\u0926\u0917\u093E\u0930 \u0928\u0939\u0940\u0902",
|
|
223
|
+
feedbackReasonTitle: "\u0915\u094D\u092F\u093E \u0920\u0940\u0915 \u0928\u0939\u0940\u0902 \u0925\u093E?",
|
|
224
|
+
feedbackReasonInaccurate: "\u0917\u093C\u0932\u0924 \u091C\u093E\u0928\u0915\u093E\u0930\u0940",
|
|
225
|
+
feedbackReasonIncomplete: "\u0905\u0927\u0942\u0930\u093E",
|
|
226
|
+
feedbackReasonOffTopic: "\u0935\u093F\u0937\u092F \u0938\u0947 \u0939\u091F\u0915\u0930",
|
|
227
|
+
feedbackReasonHardToFollow: "\u0938\u092E\u091D\u0928\u0947 \u092E\u0947\u0902 \u092E\u0941\u0936\u094D\u0915\u093F\u0932",
|
|
228
|
+
feedbackReasonOther: "\u0915\u0941\u091B \u0914\u0930",
|
|
229
|
+
feedbackCommentPlaceholder: "\u0915\u0941\u091B \u0914\u0930 \u092C\u0924\u093E\u090F\u0902 (\u0935\u0948\u0915\u0932\u094D\u092A\u093F\u0915)",
|
|
230
|
+
feedbackSend: "\u092D\u0947\u091C\u0947\u0902",
|
|
231
|
+
feedbackDismiss: "\u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
|
|
232
|
+
feedbackThanks: "\u0927\u0928\u094D\u092F\u0935\u093E\u0926, \u0907\u0938\u0938\u0947 \u092E\u0926\u0926 \u092E\u093F\u0932\u0924\u0940 \u0939\u0948\u0964",
|
|
233
|
+
feedbackNotSent: "\u092F\u0939 \u092D\u0947\u091C\u093E \u0928\u0939\u0940\u0902 \u091C\u093E \u0938\u0915\u093E\u0964",
|
|
183
234
|
prevSuggestion: "\u092A\u093F\u091B\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
|
|
184
235
|
nextSuggestion: "\u0905\u0917\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
|
|
185
236
|
conceptIllustration: "\u0905\u0935\u0927\u093E\u0930\u0923\u093E \u091A\u093F\u0924\u094D\u0930\u0923",
|
|
186
237
|
opensInNewTab: "\u0928\u090F \u091F\u0948\u092C \u092E\u0947\u0902 \u0916\u0941\u0932\u0924\u093E \u0939\u0948",
|
|
238
|
+
seoTitle: "\u0938\u092E\u0938\u094D\u092F\u093E \u092C\u0924\u093E\u090F\u0902, \u091C\u0935\u093E\u092C \u092A\u093E\u090F\u0902",
|
|
239
|
+
seoDescription: "\u0905\u092A\u0928\u0940 \u0938\u092E\u0938\u094D\u092F\u093E \u0905\u092A\u0928\u0947 \u0936\u092C\u094D\u0926\u094B\u0902 \u092E\u0947\u0902 \u092C\u0924\u093E\u090F\u0902 \u0914\u0930 \u0939\u092E\u093E\u0930\u0947 \u0909\u0924\u094D\u092A\u093E\u0926 \u0926\u0938\u094D\u0924\u093E\u0935\u0947\u091C\u093C\u094B\u0902 \u0938\u0947 \u0932\u093F\u092F\u093E \u0917\u092F\u093E \u091C\u0935\u093E\u092C \u092A\u093E\u090F\u0902, \u0938\u093E\u0925 \u092E\u0947\u0902 \u0909\u0928\u094D\u0939\u0940\u0902 \u092A\u0928\u094D\u0928\u094B\u0902 \u0915\u0947 \u0932\u093F\u0902\u0915 \u091C\u0939\u093E\u0901 \u0938\u0947 \u0935\u0939 \u0906\u092F\u093E \u0939\u0948\u0964",
|
|
240
|
+
seoDescriptionProduct: "\u0905\u092A\u0928\u0940 \u0938\u092E\u0938\u094D\u092F\u093E \u0905\u092A\u0928\u0947 \u0936\u092C\u094D\u0926\u094B\u0902 \u092E\u0947\u0902 \u092C\u0924\u093E\u090F\u0902 \u0914\u0930 {product} \u0924\u0925\u093E \u0939\u092E\u093E\u0930\u0947 \u092C\u093E\u0915\u0940 \u0909\u0924\u094D\u092A\u093E\u0926\u094B\u0902 \u0915\u0947 \u0926\u0938\u094D\u0924\u093E\u0935\u0947\u091C\u093C\u094B\u0902 \u0938\u0947 \u0932\u093F\u092F\u093E \u0917\u092F\u093E \u091C\u0935\u093E\u092C \u092A\u093E\u090F\u0902, \u0938\u093E\u0925 \u092E\u0947\u0902 \u0909\u0928\u094D\u0939\u0940\u0902 \u092A\u0928\u094D\u0928\u094B\u0902 \u0915\u0947 \u0932\u093F\u0902\u0915 \u091C\u0939\u093E\u0901 \u0938\u0947 \u0935\u0939 \u0906\u092F\u093E \u0939\u0948\u0964",
|
|
187
241
|
capabilities: [
|
|
188
242
|
"\u0939\u092E\u093E\u0930\u0947 \u0905\u092A\u0928\u0947 \u0926\u0938\u094D\u0924\u093E\u0935\u0947\u091C\u093C\u094B\u0902 \u092A\u0930 \u0906\u0927\u093E\u0930\u093F\u0924",
|
|
189
243
|
"\u0938\u092D\u0940 \u0909\u0924\u094D\u092A\u093E\u0926\u094B\u0902 \u0915\u0940 \u0924\u0941\u0932\u0928\u093E \u0915\u0930\u0947\u0902",
|
|
@@ -231,10 +285,27 @@ var ES = {
|
|
|
231
285
|
noAnswer: "No he encontrado esto en nuestra documentaci\xF3n, as\xED que la respuesta de abajo no se apoya en ninguna fuente. Prueba a reformularla, o",
|
|
232
286
|
answerDidNotArrive: "Esa respuesta no lleg\xF3. Int\xE9ntalo de nuevo.",
|
|
233
287
|
askHuman: "habla con una persona",
|
|
288
|
+
feedbackPrompt: "\xBFTe ha servido?",
|
|
289
|
+
feedbackHelpful: "Me sirve",
|
|
290
|
+
feedbackNotHelpful: "No me sirve",
|
|
291
|
+
feedbackReasonTitle: "\xBFQu\xE9 ha fallado?",
|
|
292
|
+
feedbackReasonInaccurate: "Es inexacta",
|
|
293
|
+
feedbackReasonIncomplete: "Est\xE1 incompleta",
|
|
294
|
+
feedbackReasonOffTopic: "No viene al caso",
|
|
295
|
+
feedbackReasonHardToFollow: "Cuesta seguirla",
|
|
296
|
+
feedbackReasonOther: "Otra cosa",
|
|
297
|
+
feedbackCommentPlaceholder: "A\xF1ade un detalle (opcional)",
|
|
298
|
+
feedbackSend: "Enviar",
|
|
299
|
+
feedbackDismiss: "Cerrar",
|
|
300
|
+
feedbackThanks: "Gracias, nos sirve.",
|
|
301
|
+
feedbackNotSent: "No se ha podido enviar.",
|
|
234
302
|
prevSuggestion: "Sugerencia anterior",
|
|
235
303
|
nextSuggestion: "Sugerencia siguiente",
|
|
236
304
|
conceptIllustration: "Ilustraci\xF3n del concepto",
|
|
237
305
|
opensInNewTab: "se abre en una pesta\xF1a nueva",
|
|
306
|
+
seoTitle: "Describe un problema y obt\xE9n una respuesta",
|
|
307
|
+
seoDescription: "Describe con tus palabras el problema que tienes y recibe una respuesta extra\xEDda de la documentaci\xF3n de nuestros productos, con enlaces a las p\xE1ginas exactas de las que procede.",
|
|
308
|
+
seoDescriptionProduct: "Describe con tus palabras el problema que tienes y recibe una respuesta extra\xEDda de la documentaci\xF3n de {product} y del resto de nuestros productos, con enlaces a las p\xE1ginas exactas de las que procede.",
|
|
238
309
|
capabilities: [
|
|
239
310
|
"Basado en nuestra documentaci\xF3n",
|
|
240
311
|
"Compara todo el ecosistema",
|
|
@@ -282,10 +353,27 @@ var AR = {
|
|
|
282
353
|
noAnswer: "\u0644\u0645 \u0623\u062C\u062F \u0647\u0630\u0627 \u0641\u064A \u0648\u062B\u0627\u0626\u0642\u0646\u0627\u060C \u0644\u0630\u0627 \u0641\u0627\u0644\u0625\u062C\u0627\u0628\u0629 \u0623\u062F\u0646\u0627\u0647 \u063A\u064A\u0631 \u0645\u0633\u062A\u0646\u062F\u0629 \u0625\u0644\u0649 \u0645\u0635\u062F\u0631. \u062D\u0627\u0648\u0644 \u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0635\u064A\u0627\u063A\u0629\u060C \u0623\u0648",
|
|
283
354
|
answerDidNotArrive: "\u0644\u0645 \u062A\u0635\u0644 \u0647\u0630\u0647 \u0627\u0644\u0625\u062C\u0627\u0628\u0629. \u064A\u0631\u062C\u0649 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.",
|
|
284
355
|
askHuman: "\u062A\u062D\u062F\u0651\u062B \u0625\u0644\u0649 \u0634\u062E\u0635",
|
|
356
|
+
feedbackPrompt: "\u0647\u0644 \u0643\u0627\u0646\u062A \u0647\u0630\u0647 \u0627\u0644\u0625\u062C\u0627\u0628\u0629 \u0645\u0641\u064A\u062F\u0629\u061F",
|
|
357
|
+
feedbackHelpful: "\u0645\u0641\u064A\u062F\u0629",
|
|
358
|
+
feedbackNotHelpful: "\u063A\u064A\u0631 \u0645\u0641\u064A\u062F\u0629",
|
|
359
|
+
feedbackReasonTitle: "\u0645\u0627 \u0627\u0644\u062E\u0637\u0623 \u0641\u064A\u0647\u0627\u061F",
|
|
360
|
+
feedbackReasonInaccurate: "\u063A\u064A\u0631 \u062F\u0642\u064A\u0642\u0629",
|
|
361
|
+
feedbackReasonIncomplete: "\u0646\u0627\u0642\u0635\u0629",
|
|
362
|
+
feedbackReasonOffTopic: "\u062E\u0627\u0631\u062C \u0627\u0644\u0645\u0648\u0636\u0648\u0639",
|
|
363
|
+
feedbackReasonHardToFollow: "\u0635\u0639\u0628\u0629 \u0627\u0644\u0641\u0647\u0645",
|
|
364
|
+
feedbackReasonOther: "\u0634\u064A\u0621 \u0622\u062E\u0631",
|
|
365
|
+
feedbackCommentPlaceholder: "\u0623\u0636\u0641 \u062A\u0641\u0635\u064A\u0644\u0627\u064B (\u0627\u062E\u062A\u064A\u0627\u0631\u064A)",
|
|
366
|
+
feedbackSend: "\u0625\u0631\u0633\u0627\u0644",
|
|
367
|
+
feedbackDismiss: "\u0625\u063A\u0644\u0627\u0642",
|
|
368
|
+
feedbackThanks: "\u0634\u0643\u0631\u064B\u0627\u060C \u0647\u0630\u0627 \u064A\u0633\u0627\u0639\u062F\u0646\u0627.",
|
|
369
|
+
feedbackNotSent: "\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0625\u0631\u0633\u0627\u0644.",
|
|
285
370
|
prevSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u0633\u0627\u0628\u0642",
|
|
286
371
|
nextSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u062A\u0627\u0644\u064A",
|
|
287
372
|
conceptIllustration: "\u0631\u0633\u0645 \u062A\u0648\u0636\u064A\u062D\u064A \u0644\u0644\u0645\u0641\u0647\u0648\u0645",
|
|
288
373
|
opensInNewTab: "\u064A\u064F\u0641\u062A\u062D \u0641\u064A \u0639\u0644\u0627\u0645\u0629 \u062A\u0628\u0648\u064A\u0628 \u062C\u062F\u064A\u062F\u0629",
|
|
374
|
+
seoTitle: "\u0635\u0641 \u0645\u0634\u0643\u0644\u062A\u0643 \u0648\u0627\u062D\u0635\u0644 \u0639\u0644\u0649 \u0625\u062C\u0627\u0628\u0629",
|
|
375
|
+
seoDescription: "\u0635\u0641 \u0627\u0644\u0645\u0634\u0643\u0644\u0629 \u0627\u0644\u062A\u064A \u062A\u0648\u0627\u062C\u0647\u0647\u0627 \u0628\u0643\u0644\u0645\u0627\u062A\u0643 \u0648\u0627\u062D\u0635\u0644 \u0639\u0644\u0649 \u0625\u062C\u0627\u0628\u0629 \u0645\u0633\u062A\u0645\u062F\u0629 \u0645\u0646 \u0648\u062B\u0627\u0626\u0642 \u0645\u0646\u062A\u062C\u0627\u062A\u0646\u0627\u060C \u0645\u0639 \u0631\u0648\u0627\u0628\u0637 \u0625\u0644\u0649 \u0627\u0644\u0635\u0641\u062D\u0627\u062A \u0627\u0644\u062A\u064A \u062C\u0627\u0621\u062A \u0645\u0646\u0647\u0627.",
|
|
376
|
+
seoDescriptionProduct: "\u0635\u0641 \u0627\u0644\u0645\u0634\u0643\u0644\u0629 \u0627\u0644\u062A\u064A \u062A\u0648\u0627\u062C\u0647\u0647\u0627 \u0628\u0643\u0644\u0645\u0627\u062A\u0643 \u0648\u0627\u062D\u0635\u0644 \u0639\u0644\u0649 \u0625\u062C\u0627\u0628\u0629 \u0645\u0633\u062A\u0645\u062F\u0629 \u0645\u0646 \u0648\u062B\u0627\u0626\u0642 {product} \u0648\u0628\u0642\u064A\u0629 \u0645\u0646\u062A\u062C\u0627\u062A\u0646\u0627\u060C \u0645\u0639 \u0631\u0648\u0627\u0628\u0637 \u0625\u0644\u0649 \u0627\u0644\u0635\u0641\u062D\u0627\u062A \u0627\u0644\u062A\u064A \u062C\u0627\u0621\u062A \u0645\u0646\u0647\u0627.",
|
|
289
377
|
capabilities: [
|
|
290
378
|
"\u0645\u0628\u0646\u064A \u0639\u0644\u0649 \u0648\u062B\u0627\u0626\u0642\u0646\u0627",
|
|
291
379
|
"\u0642\u0627\u0631\u0646 \u0639\u0628\u0631 \u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629",
|
|
@@ -333,10 +421,27 @@ var TA = {
|
|
|
333
421
|
noAnswer: "\u0B87\u0BA4\u0BC1 \u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B86\u0BB5\u0BA3\u0B99\u0BCD\u0B95\u0BB3\u0BBF\u0BB2\u0BCD \u0B95\u0BBF\u0B9F\u0BC8\u0B95\u0BCD\u0B95\u0BB5\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8, \u0B8E\u0BA9\u0BB5\u0BC7 \u0B95\u0BC0\u0BB4\u0BC7 \u0B89\u0BB3\u0BCD\u0BB3 \u0BAA\u0BA4\u0BBF\u0BB2\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0BAE\u0BC2\u0BB2\u0BAE\u0BCD \u0B87\u0BB2\u0BCD\u0BB2\u0BC8. \u0BB5\u0BC7\u0BB1\u0BC1 \u0BB5\u0B95\u0BC8\u0BAF\u0BBF\u0BB2\u0BCD \u0B95\u0BC7\u0BB3\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD, \u0B85\u0BB2\u0BCD\u0BB2\u0BA4\u0BC1",
|
|
334
422
|
answerDidNotArrive: "\u0B85\u0BA8\u0BCD\u0BA4\u0BAA\u0BCD \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD \u0BB5\u0BB0\u0BB5\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8. \u0BAE\u0BC0\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD \u0B95\u0BC7\u0B9F\u0BCD\u0B9F\u0BC1\u0BAA\u0BCD \u0BAA\u0BBE\u0BB0\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD.",
|
|
335
423
|
askHuman: "\u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BC8\u0BA4\u0BCD \u0BA4\u0BCA\u0B9F\u0BB0\u0BCD\u0BAA\u0BC1 \u0B95\u0BCA\u0BB3\u0BCD\u0BB3\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
424
|
+
feedbackPrompt: "\u0B87\u0BA8\u0BCD\u0BA4\u0BAA\u0BCD \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD \u0BAA\u0BAF\u0BA9\u0BC1\u0BB3\u0BCD\u0BB3\u0BA4\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BA4\u0BBE?",
|
|
425
|
+
feedbackHelpful: "\u0BAA\u0BAF\u0BA9\u0BC1\u0BB3\u0BCD\u0BB3\u0BA4\u0BC1",
|
|
426
|
+
feedbackNotHelpful: "\u0BAA\u0BAF\u0BA9\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8",
|
|
427
|
+
feedbackReasonTitle: "\u0B8E\u0BA9\u0BCD\u0BA9 \u0B9A\u0BB0\u0BBF\u0BAF\u0BBE\u0B95 \u0B87\u0BB2\u0BCD\u0BB2\u0BC8?",
|
|
428
|
+
feedbackReasonInaccurate: "\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BA4\u0B95\u0BB5\u0BB2\u0BCD",
|
|
429
|
+
feedbackReasonIncomplete: "\u0BAE\u0BC1\u0BB4\u0BC1\u0BAE\u0BC8\u0BAF\u0BB1\u0BCD\u0BB1\u0BA4\u0BC1",
|
|
430
|
+
feedbackReasonOffTopic: "\u0BA4\u0BB2\u0BC8\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B85\u0BAA\u0BCD\u0BAA\u0BBE\u0BB1\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1",
|
|
431
|
+
feedbackReasonHardToFollow: "\u0BAA\u0BC1\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0B95\u0BCA\u0BB3\u0BCD\u0BB3 \u0B95\u0B9F\u0BBF\u0BA9\u0BAE\u0BCD",
|
|
432
|
+
feedbackReasonOther: "\u0BB5\u0BC7\u0BB1\u0BC1 \u0B8F\u0BA4\u0BCB",
|
|
433
|
+
feedbackCommentPlaceholder: "\u0BAE\u0BC7\u0BB2\u0BC1\u0BAE\u0BCD \u0BB5\u0BBF\u0BB5\u0BB0\u0BAE\u0BCD (\u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD)",
|
|
434
|
+
feedbackSend: "\u0B85\u0BA9\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1",
|
|
435
|
+
feedbackDismiss: "\u0BAE\u0BC2\u0B9F\u0BC1",
|
|
436
|
+
feedbackThanks: "\u0BA8\u0BA9\u0BCD\u0BB1\u0BBF, \u0B87\u0BA4\u0BC1 \u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B89\u0BA4\u0BB5\u0BC1\u0B95\u0BBF\u0BB1\u0BA4\u0BC1.",
|
|
437
|
+
feedbackNotSent: "\u0B85\u0BA9\u0BC1\u0BAA\u0BCD\u0BAA \u0BAE\u0BC1\u0B9F\u0BBF\u0BAF\u0BB5\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8.",
|
|
336
438
|
prevSuggestion: "\u0BAE\u0BC1\u0BA8\u0BCD\u0BA4\u0BC8\u0BAF \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
|
|
337
439
|
nextSuggestion: "\u0B85\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4 \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
|
|
338
440
|
conceptIllustration: "\u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1 \u0BB5\u0BBF\u0BB3\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BAE\u0BCD",
|
|
339
441
|
opensInNewTab: "\u0BAA\u0BC1\u0BA4\u0BBF\u0BAF \u0BA4\u0BBE\u0BB5\u0BB2\u0BBF\u0BB2\u0BCD \u0BA4\u0BBF\u0BB1\u0B95\u0BCD\u0B95\u0BC1\u0BAE\u0BCD",
|
|
442
|
+
seoTitle: "\u0B9A\u0BBF\u0B95\u0BCD\u0B95\u0BB2\u0BC8 \u0BB5\u0BBF\u0BB5\u0BB0\u0BBF\u0BAF\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD, \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD \u0BAA\u0BC6\u0BB1\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
443
|
+
seoDescription: "\u0BA8\u0BC0\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0B95\u0BCA\u0BB3\u0BCD\u0BB3\u0BC1\u0BAE\u0BCD \u0B9A\u0BBF\u0B95\u0BCD\u0B95\u0BB2\u0BC8 \u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B9A\u0BCA\u0BA8\u0BCD\u0BA4 \u0BB5\u0BBE\u0BB0\u0BCD\u0BA4\u0BCD\u0BA4\u0BC8\u0B95\u0BB3\u0BBF\u0BB2\u0BCD \u0BB5\u0BBF\u0BB5\u0BB0\u0BBF\u0BAF\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD; \u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1 \u0B86\u0BB5\u0BA3\u0B99\u0BCD\u0B95\u0BB3\u0BBF\u0BB2\u0BBF\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BC1 \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD \u0B95\u0BBF\u0B9F\u0BC8\u0B95\u0BCD\u0B95\u0BC1\u0BAE\u0BCD, \u0B85\u0BA4\u0BC1 \u0BB5\u0BA8\u0BCD\u0BA4 \u0BAA\u0B95\u0BCD\u0B95\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BBE\u0BA9 \u0B87\u0BA3\u0BC8\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BC1\u0B9F\u0BA9\u0BCD.",
|
|
444
|
+
seoDescriptionProduct: "{product} \u0BAE\u0BB1\u0BCD\u0BB1\u0BC1\u0BAE\u0BCD \u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0BAA\u0BBF\u0BB1 \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BBF\u0BA9\u0BCD \u0B86\u0BB5\u0BA3\u0B99\u0BCD\u0B95\u0BB3\u0BBF\u0BB2\u0BBF\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BC1 \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD \u0BAA\u0BC6\u0BB1, \u0BA8\u0BC0\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0B95\u0BCA\u0BB3\u0BCD\u0BB3\u0BC1\u0BAE\u0BCD \u0B9A\u0BBF\u0B95\u0BCD\u0B95\u0BB2\u0BC8 \u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B9A\u0BCA\u0BA8\u0BCD\u0BA4 \u0BB5\u0BBE\u0BB0\u0BCD\u0BA4\u0BCD\u0BA4\u0BC8\u0B95\u0BB3\u0BBF\u0BB2\u0BCD \u0BB5\u0BBF\u0BB5\u0BB0\u0BBF\u0BAF\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u2014 \u0B85\u0BA4\u0BC1 \u0BB5\u0BA8\u0BCD\u0BA4 \u0BAA\u0B95\u0BCD\u0B95\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BBE\u0BA9 \u0B87\u0BA3\u0BC8\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BC1\u0B9F\u0BA9\u0BCD.",
|
|
340
445
|
capabilities: [
|
|
341
446
|
"\u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B9A\u0BCA\u0BA8\u0BCD\u0BA4 \u0B86\u0BB5\u0BA3\u0B99\u0BCD\u0B95\u0BB3\u0BBF\u0BA9\u0BCD \u0B85\u0B9F\u0BBF\u0BAA\u0BCD\u0BAA\u0B9F\u0BC8\u0BAF\u0BBF\u0BB2\u0BCD",
|
|
342
447
|
"\u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BC8 \u0B92\u0BAA\u0BCD\u0BAA\u0BBF\u0B9F\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
@@ -377,6 +482,171 @@ function exploreStrings(locale) {
|
|
|
377
482
|
function fill(template, values) {
|
|
378
483
|
return template.replace(/\{(\w+)\}/g, (match, key) => values[key] ?? match);
|
|
379
484
|
}
|
|
485
|
+
|
|
486
|
+
// src/components/explore-types.ts
|
|
487
|
+
var EXPLORE_FEEDBACK_REASONS = [
|
|
488
|
+
"INACCURATE",
|
|
489
|
+
"INCOMPLETE",
|
|
490
|
+
"OFF_TOPIC",
|
|
491
|
+
"HARD_TO_FOLLOW",
|
|
492
|
+
"OTHER"
|
|
493
|
+
];
|
|
494
|
+
var EXPLORE_MESSAGE_FIELDS = (
|
|
495
|
+
/* GraphQL */
|
|
496
|
+
`
|
|
497
|
+
id
|
|
498
|
+
conversationId
|
|
499
|
+
role
|
|
500
|
+
status
|
|
501
|
+
content
|
|
502
|
+
partialContent
|
|
503
|
+
activity
|
|
504
|
+
references {
|
|
505
|
+
url
|
|
506
|
+
title
|
|
507
|
+
description
|
|
508
|
+
product
|
|
509
|
+
imageUrl
|
|
510
|
+
index
|
|
511
|
+
}
|
|
512
|
+
ctas {
|
|
513
|
+
kind
|
|
514
|
+
label
|
|
515
|
+
url
|
|
516
|
+
product
|
|
517
|
+
}
|
|
518
|
+
followUps
|
|
519
|
+
answered
|
|
520
|
+
attachments {
|
|
521
|
+
name
|
|
522
|
+
mimeType
|
|
523
|
+
size
|
|
524
|
+
textExtracted
|
|
525
|
+
}
|
|
526
|
+
errorCode
|
|
527
|
+
createdAt
|
|
528
|
+
completedAt
|
|
529
|
+
`
|
|
530
|
+
);
|
|
531
|
+
var EXPLORE_OWN_MESSAGE_FIELDS = (
|
|
532
|
+
/* GraphQL */
|
|
533
|
+
`
|
|
534
|
+
${EXPLORE_MESSAGE_FIELDS}
|
|
535
|
+
feedback {
|
|
536
|
+
rating
|
|
537
|
+
reason
|
|
538
|
+
comment
|
|
539
|
+
createdAt
|
|
540
|
+
}
|
|
541
|
+
`
|
|
542
|
+
);
|
|
543
|
+
var EXPLORE_CATALOG_QUERY = (
|
|
544
|
+
/* GraphQL */
|
|
545
|
+
`
|
|
546
|
+
query ExploreCatalog($productSlug: String) {
|
|
547
|
+
exploreCatalog(productSlug: $productSlug) {
|
|
548
|
+
enabled
|
|
549
|
+
products {
|
|
550
|
+
slug
|
|
551
|
+
name
|
|
552
|
+
tagline
|
|
553
|
+
website
|
|
554
|
+
}
|
|
555
|
+
examplePrompts
|
|
556
|
+
welcomeTitle
|
|
557
|
+
welcomeBody
|
|
558
|
+
limits {
|
|
559
|
+
maxMessageLength
|
|
560
|
+
maxTurnsPerConversation
|
|
561
|
+
messagesPerDay
|
|
562
|
+
historyTurns
|
|
563
|
+
}
|
|
564
|
+
captchaRequired
|
|
565
|
+
recaptchaSiteKey
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
`
|
|
569
|
+
);
|
|
570
|
+
var EXPLORE_MESSAGE_QUERY = (
|
|
571
|
+
/* GraphQL */
|
|
572
|
+
`
|
|
573
|
+
query ExploreMessage($conversationToken: String!, $id: ID!) {
|
|
574
|
+
exploreMessage(conversationToken: $conversationToken, id: $id) {
|
|
575
|
+
${EXPLORE_OWN_MESSAGE_FIELDS}
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
`
|
|
579
|
+
);
|
|
580
|
+
var SEND_EXPLORE_MESSAGE_MUTATION = (
|
|
581
|
+
/* GraphQL */
|
|
582
|
+
`
|
|
583
|
+
mutation SendExploreMessage($input: SendExploreMessageInput!) {
|
|
584
|
+
sendExploreMessage(input: $input) {
|
|
585
|
+
conversation {
|
|
586
|
+
id
|
|
587
|
+
token
|
|
588
|
+
productSlug
|
|
589
|
+
turnCount
|
|
590
|
+
createdAt
|
|
591
|
+
}
|
|
592
|
+
userMessage {
|
|
593
|
+
${EXPLORE_OWN_MESSAGE_FIELDS}
|
|
594
|
+
}
|
|
595
|
+
assistantMessage {
|
|
596
|
+
${EXPLORE_OWN_MESSAGE_FIELDS}
|
|
597
|
+
}
|
|
598
|
+
remainingToday
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
`
|
|
602
|
+
);
|
|
603
|
+
var RECORD_EXPLORE_CLICK_MUTATION = (
|
|
604
|
+
/* GraphQL */
|
|
605
|
+
`
|
|
606
|
+
mutation RecordExploreClick($input: RecordExploreClickInput!) {
|
|
607
|
+
recordExploreClick(input: $input) {
|
|
608
|
+
recorded
|
|
609
|
+
}
|
|
610
|
+
}
|
|
611
|
+
`
|
|
612
|
+
);
|
|
613
|
+
var SUBMIT_EXPLORE_FEEDBACK_MUTATION = (
|
|
614
|
+
/* GraphQL */
|
|
615
|
+
`
|
|
616
|
+
mutation SubmitExploreFeedback($input: SubmitExploreFeedbackInput!) {
|
|
617
|
+
submitExploreFeedback(input: $input) {
|
|
618
|
+
recorded
|
|
619
|
+
feedback {
|
|
620
|
+
rating
|
|
621
|
+
reason
|
|
622
|
+
comment
|
|
623
|
+
createdAt
|
|
624
|
+
}
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
`
|
|
628
|
+
);
|
|
629
|
+
var EXPLORE_FEEDBACK_COMMENT_SOFT_MAX = 500;
|
|
630
|
+
var CREATE_EXPLORE_SHARE_LINK_MUTATION = (
|
|
631
|
+
/* GraphQL */
|
|
632
|
+
`
|
|
633
|
+
mutation CreateExploreShareLink($conversationToken: String!) {
|
|
634
|
+
createExploreShareLink(conversationToken: $conversationToken) {
|
|
635
|
+
shareToken
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
`
|
|
639
|
+
);
|
|
640
|
+
var EXPLORE_SHARED_CONVERSATION_QUERY = (
|
|
641
|
+
/* GraphQL */
|
|
642
|
+
`
|
|
643
|
+
query ExploreSharedConversation($shareToken: String!) {
|
|
644
|
+
exploreSharedConversation(shareToken: $shareToken) {
|
|
645
|
+
${EXPLORE_MESSAGE_FIELDS}
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
`
|
|
649
|
+
);
|
|
380
650
|
function MarkdownLink({
|
|
381
651
|
href,
|
|
382
652
|
children,
|
|
@@ -816,135 +1086,6 @@ function useWebSDK() {
|
|
|
816
1086
|
return client;
|
|
817
1087
|
}
|
|
818
1088
|
|
|
819
|
-
// src/components/explore-types.ts
|
|
820
|
-
var EXPLORE_MESSAGE_FIELDS = (
|
|
821
|
-
/* GraphQL */
|
|
822
|
-
`
|
|
823
|
-
id
|
|
824
|
-
conversationId
|
|
825
|
-
role
|
|
826
|
-
status
|
|
827
|
-
content
|
|
828
|
-
partialContent
|
|
829
|
-
activity
|
|
830
|
-
references {
|
|
831
|
-
url
|
|
832
|
-
title
|
|
833
|
-
description
|
|
834
|
-
product
|
|
835
|
-
imageUrl
|
|
836
|
-
index
|
|
837
|
-
}
|
|
838
|
-
ctas {
|
|
839
|
-
kind
|
|
840
|
-
label
|
|
841
|
-
url
|
|
842
|
-
product
|
|
843
|
-
}
|
|
844
|
-
followUps
|
|
845
|
-
answered
|
|
846
|
-
attachments {
|
|
847
|
-
name
|
|
848
|
-
mimeType
|
|
849
|
-
size
|
|
850
|
-
textExtracted
|
|
851
|
-
}
|
|
852
|
-
errorCode
|
|
853
|
-
createdAt
|
|
854
|
-
completedAt
|
|
855
|
-
`
|
|
856
|
-
);
|
|
857
|
-
var EXPLORE_CATALOG_QUERY = (
|
|
858
|
-
/* GraphQL */
|
|
859
|
-
`
|
|
860
|
-
query ExploreCatalog($productSlug: String) {
|
|
861
|
-
exploreCatalog(productSlug: $productSlug) {
|
|
862
|
-
enabled
|
|
863
|
-
products {
|
|
864
|
-
slug
|
|
865
|
-
name
|
|
866
|
-
tagline
|
|
867
|
-
website
|
|
868
|
-
}
|
|
869
|
-
examplePrompts
|
|
870
|
-
welcomeTitle
|
|
871
|
-
welcomeBody
|
|
872
|
-
limits {
|
|
873
|
-
maxMessageLength
|
|
874
|
-
maxTurnsPerConversation
|
|
875
|
-
messagesPerDay
|
|
876
|
-
historyTurns
|
|
877
|
-
}
|
|
878
|
-
captchaRequired
|
|
879
|
-
recaptchaSiteKey
|
|
880
|
-
}
|
|
881
|
-
}
|
|
882
|
-
`
|
|
883
|
-
);
|
|
884
|
-
var EXPLORE_MESSAGE_QUERY = (
|
|
885
|
-
/* GraphQL */
|
|
886
|
-
`
|
|
887
|
-
query ExploreMessage($conversationToken: String!, $id: ID!) {
|
|
888
|
-
exploreMessage(conversationToken: $conversationToken, id: $id) {
|
|
889
|
-
${EXPLORE_MESSAGE_FIELDS}
|
|
890
|
-
}
|
|
891
|
-
}
|
|
892
|
-
`
|
|
893
|
-
);
|
|
894
|
-
var SEND_EXPLORE_MESSAGE_MUTATION = (
|
|
895
|
-
/* GraphQL */
|
|
896
|
-
`
|
|
897
|
-
mutation SendExploreMessage($input: SendExploreMessageInput!) {
|
|
898
|
-
sendExploreMessage(input: $input) {
|
|
899
|
-
conversation {
|
|
900
|
-
id
|
|
901
|
-
token
|
|
902
|
-
productSlug
|
|
903
|
-
turnCount
|
|
904
|
-
createdAt
|
|
905
|
-
}
|
|
906
|
-
userMessage {
|
|
907
|
-
${EXPLORE_MESSAGE_FIELDS}
|
|
908
|
-
}
|
|
909
|
-
assistantMessage {
|
|
910
|
-
${EXPLORE_MESSAGE_FIELDS}
|
|
911
|
-
}
|
|
912
|
-
remainingToday
|
|
913
|
-
}
|
|
914
|
-
}
|
|
915
|
-
`
|
|
916
|
-
);
|
|
917
|
-
var RECORD_EXPLORE_CLICK_MUTATION = (
|
|
918
|
-
/* GraphQL */
|
|
919
|
-
`
|
|
920
|
-
mutation RecordExploreClick($input: RecordExploreClickInput!) {
|
|
921
|
-
recordExploreClick(input: $input) {
|
|
922
|
-
recorded
|
|
923
|
-
}
|
|
924
|
-
}
|
|
925
|
-
`
|
|
926
|
-
);
|
|
927
|
-
var CREATE_EXPLORE_SHARE_LINK_MUTATION = (
|
|
928
|
-
/* GraphQL */
|
|
929
|
-
`
|
|
930
|
-
mutation CreateExploreShareLink($conversationToken: String!) {
|
|
931
|
-
createExploreShareLink(conversationToken: $conversationToken) {
|
|
932
|
-
shareToken
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
`
|
|
936
|
-
);
|
|
937
|
-
var EXPLORE_SHARED_CONVERSATION_QUERY = (
|
|
938
|
-
/* GraphQL */
|
|
939
|
-
`
|
|
940
|
-
query ExploreSharedConversation($shareToken: String!) {
|
|
941
|
-
exploreSharedConversation(shareToken: $shareToken) {
|
|
942
|
-
${EXPLORE_MESSAGE_FIELDS}
|
|
943
|
-
}
|
|
944
|
-
}
|
|
945
|
-
`
|
|
946
|
-
);
|
|
947
|
-
|
|
948
1089
|
// src/data/products.ts
|
|
949
1090
|
var ECOSYSTEM_PRODUCTS = [
|
|
950
1091
|
{
|
|
@@ -1972,6 +2113,42 @@ function useExploreChat(options = {}) {
|
|
|
1972
2113
|
},
|
|
1973
2114
|
[client]
|
|
1974
2115
|
);
|
|
2116
|
+
const submitFeedback = React.useCallback(
|
|
2117
|
+
async (messageId, rating, detail) => {
|
|
2118
|
+
const token = conversationTokenRef.current;
|
|
2119
|
+
if (!token) return false;
|
|
2120
|
+
const comment = detail?.comment?.trim();
|
|
2121
|
+
const input = {
|
|
2122
|
+
conversationToken: token,
|
|
2123
|
+
messageId,
|
|
2124
|
+
rating,
|
|
2125
|
+
// Only meaningful with NOT_HELPFUL. The server stores null for HELPFUL either
|
|
2126
|
+
// way; sending it would just be noise the backend has to defend against.
|
|
2127
|
+
reason: rating === "NOT_HELPFUL" ? detail?.reason ?? null : null,
|
|
2128
|
+
comment: comment ? comment : null
|
|
2129
|
+
};
|
|
2130
|
+
try {
|
|
2131
|
+
const res = await client.mutate(
|
|
2132
|
+
SUBMIT_EXPLORE_FEEDBACK_MUTATION,
|
|
2133
|
+
{ input }
|
|
2134
|
+
);
|
|
2135
|
+
const result = res?.data?.submitExploreFeedback;
|
|
2136
|
+
if (!result?.recorded) return false;
|
|
2137
|
+
const recorded = result.feedback;
|
|
2138
|
+
if (recorded && mountedRef.current) {
|
|
2139
|
+
setMessages(
|
|
2140
|
+
(current) => current.map(
|
|
2141
|
+
(message) => message.id === messageId ? { ...message, feedback: recorded } : message
|
|
2142
|
+
)
|
|
2143
|
+
);
|
|
2144
|
+
}
|
|
2145
|
+
return true;
|
|
2146
|
+
} catch {
|
|
2147
|
+
return false;
|
|
2148
|
+
}
|
|
2149
|
+
},
|
|
2150
|
+
[client]
|
|
2151
|
+
);
|
|
1975
2152
|
return {
|
|
1976
2153
|
phase,
|
|
1977
2154
|
catalog,
|
|
@@ -1991,6 +2168,7 @@ function useExploreChat(options = {}) {
|
|
|
1991
2168
|
deleteConversation,
|
|
1992
2169
|
clearHistory,
|
|
1993
2170
|
recordClick,
|
|
2171
|
+
submitFeedback,
|
|
1994
2172
|
createShareLink,
|
|
1995
2173
|
isSharedView
|
|
1996
2174
|
};
|
|
@@ -3046,6 +3224,206 @@ function ThinkingIndicator({ activity }) {
|
|
|
3046
3224
|
}
|
|
3047
3225
|
);
|
|
3048
3226
|
}
|
|
3227
|
+
function AnswerFeedback({
|
|
3228
|
+
strings: T,
|
|
3229
|
+
messageId,
|
|
3230
|
+
feedback,
|
|
3231
|
+
onSubmit
|
|
3232
|
+
}) {
|
|
3233
|
+
const [local, setLocal] = React.useState(null);
|
|
3234
|
+
const [failed, setFailed] = React.useState(false);
|
|
3235
|
+
const [sending, setSending] = React.useState(false);
|
|
3236
|
+
const [chooserOpen, setChooserOpen] = React.useState(false);
|
|
3237
|
+
const [reason, setReason] = React.useState(null);
|
|
3238
|
+
const [comment, setComment] = React.useState("");
|
|
3239
|
+
const downRef = React.useRef(null);
|
|
3240
|
+
const firstReasonRef = React.useRef(null);
|
|
3241
|
+
const inFlightRef = React.useRef(false);
|
|
3242
|
+
const panelId = `boff-explore-feedback-${messageId}`;
|
|
3243
|
+
const rating = local ?? feedback?.rating ?? null;
|
|
3244
|
+
const rated = rating !== null;
|
|
3245
|
+
const reasonLabels = {
|
|
3246
|
+
INACCURATE: T.feedbackReasonInaccurate,
|
|
3247
|
+
INCOMPLETE: T.feedbackReasonIncomplete,
|
|
3248
|
+
OFF_TOPIC: T.feedbackReasonOffTopic,
|
|
3249
|
+
HARD_TO_FOLLOW: T.feedbackReasonHardToFollow,
|
|
3250
|
+
OTHER: T.feedbackReasonOther
|
|
3251
|
+
};
|
|
3252
|
+
const closeChooser = React.useCallback(() => {
|
|
3253
|
+
setChooserOpen(false);
|
|
3254
|
+
downRef.current?.focus();
|
|
3255
|
+
}, []);
|
|
3256
|
+
const submit = React.useCallback(
|
|
3257
|
+
async (next, detail) => {
|
|
3258
|
+
if (inFlightRef.current) return;
|
|
3259
|
+
inFlightRef.current = true;
|
|
3260
|
+
setSending(true);
|
|
3261
|
+
setFailed(false);
|
|
3262
|
+
setLocal(next);
|
|
3263
|
+
const recorded = await onSubmit(next, detail);
|
|
3264
|
+
inFlightRef.current = false;
|
|
3265
|
+
setSending(false);
|
|
3266
|
+
if (recorded) return;
|
|
3267
|
+
setLocal(null);
|
|
3268
|
+
setFailed(true);
|
|
3269
|
+
},
|
|
3270
|
+
[onSubmit]
|
|
3271
|
+
);
|
|
3272
|
+
const onThumbUp = React.useCallback(() => {
|
|
3273
|
+
setChooserOpen(false);
|
|
3274
|
+
void submit("HELPFUL");
|
|
3275
|
+
}, [submit]);
|
|
3276
|
+
const onThumbDown = React.useCallback(() => {
|
|
3277
|
+
setChooserOpen((open) => !open);
|
|
3278
|
+
}, []);
|
|
3279
|
+
const onSendReason = React.useCallback(() => {
|
|
3280
|
+
setChooserOpen(false);
|
|
3281
|
+
void submit("NOT_HELPFUL", { reason, comment });
|
|
3282
|
+
}, [comment, reason, submit]);
|
|
3283
|
+
React.useEffect(() => {
|
|
3284
|
+
if (!chooserOpen) return;
|
|
3285
|
+
firstReasonRef.current?.focus();
|
|
3286
|
+
}, [chooserOpen]);
|
|
3287
|
+
const thumbClass = (active) => cn(
|
|
3288
|
+
"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border transition-colors",
|
|
3289
|
+
"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
3290
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
3291
|
+
active ? "border-primary/40 bg-accent text-primary" : "border-border bg-card text-muted-foreground hover:border-primary/40 hover:bg-accent hover:text-foreground"
|
|
3292
|
+
);
|
|
3293
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3294
|
+
"div",
|
|
3295
|
+
{
|
|
3296
|
+
"data-boff-explore": "feedback",
|
|
3297
|
+
"data-rating": rating ?? "none",
|
|
3298
|
+
className: "pt-0.5",
|
|
3299
|
+
children: [
|
|
3300
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1", children: [
|
|
3301
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3302
|
+
"p",
|
|
3303
|
+
{
|
|
3304
|
+
"data-boff-explore": "feedback-status",
|
|
3305
|
+
role: "status",
|
|
3306
|
+
className: "text-xs text-muted-foreground",
|
|
3307
|
+
children: failed ? T.feedbackNotSent : rated ? T.feedbackThanks : T.feedbackPrompt
|
|
3308
|
+
}
|
|
3309
|
+
),
|
|
3310
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
3311
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3312
|
+
"button",
|
|
3313
|
+
{
|
|
3314
|
+
"data-boff-explore": "feedback-up",
|
|
3315
|
+
type: "button",
|
|
3316
|
+
disabled: sending,
|
|
3317
|
+
"aria-label": T.feedbackHelpful,
|
|
3318
|
+
title: T.feedbackHelpful,
|
|
3319
|
+
"aria-pressed": rating === "HELPFUL",
|
|
3320
|
+
onClick: onThumbUp,
|
|
3321
|
+
className: thumbClass(rating === "HELPFUL"),
|
|
3322
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ThumbsUp, { className: "h-3.5 w-3.5", "aria-hidden": "true" })
|
|
3323
|
+
}
|
|
3324
|
+
),
|
|
3325
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3326
|
+
"button",
|
|
3327
|
+
{
|
|
3328
|
+
ref: downRef,
|
|
3329
|
+
"data-boff-explore": "feedback-down",
|
|
3330
|
+
type: "button",
|
|
3331
|
+
disabled: sending,
|
|
3332
|
+
"aria-label": T.feedbackNotHelpful,
|
|
3333
|
+
title: T.feedbackNotHelpful,
|
|
3334
|
+
"aria-pressed": rating === "NOT_HELPFUL",
|
|
3335
|
+
"aria-expanded": chooserOpen,
|
|
3336
|
+
"aria-controls": chooserOpen ? panelId : void 0,
|
|
3337
|
+
onClick: onThumbDown,
|
|
3338
|
+
className: thumbClass(rating === "NOT_HELPFUL" || chooserOpen),
|
|
3339
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ThumbsDown, { className: "h-3.5 w-3.5", "aria-hidden": "true" })
|
|
3340
|
+
}
|
|
3341
|
+
)
|
|
3342
|
+
] })
|
|
3343
|
+
] }),
|
|
3344
|
+
chooserOpen ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
3345
|
+
"div",
|
|
3346
|
+
{
|
|
3347
|
+
id: panelId,
|
|
3348
|
+
"data-boff-explore": "feedback-reasons",
|
|
3349
|
+
role: "group",
|
|
3350
|
+
"aria-label": T.feedbackReasonTitle,
|
|
3351
|
+
onKeyDown: (event) => {
|
|
3352
|
+
if (event.key !== "Escape") return;
|
|
3353
|
+
event.stopPropagation();
|
|
3354
|
+
closeChooser();
|
|
3355
|
+
},
|
|
3356
|
+
className: "boff-explore-fade mt-2 rounded-xl border border-border bg-card p-3",
|
|
3357
|
+
children: [
|
|
3358
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-medium text-card-foreground", children: T.feedbackReasonTitle }),
|
|
3359
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: EXPLORE_FEEDBACK_REASONS.map((code, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
3360
|
+
"button",
|
|
3361
|
+
{
|
|
3362
|
+
ref: index === 0 ? firstReasonRef : void 0,
|
|
3363
|
+
"data-boff-explore": "feedback-reason",
|
|
3364
|
+
"data-reason": code,
|
|
3365
|
+
type: "button",
|
|
3366
|
+
"aria-pressed": reason === code,
|
|
3367
|
+
onClick: () => setReason((current) => current === code ? null : code),
|
|
3368
|
+
className: cn(
|
|
3369
|
+
"inline-flex max-w-full items-center rounded-full border px-3 py-1 text-xs transition-colors",
|
|
3370
|
+
"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
3371
|
+
reason === code ? "border-primary/40 bg-accent text-primary" : "border-border bg-background text-muted-foreground hover:border-primary/40 hover:bg-accent hover:text-foreground"
|
|
3372
|
+
),
|
|
3373
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate", children: reasonLabels[code] })
|
|
3374
|
+
},
|
|
3375
|
+
code
|
|
3376
|
+
)) }),
|
|
3377
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex flex-wrap items-center gap-2", children: [
|
|
3378
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3379
|
+
"input",
|
|
3380
|
+
{
|
|
3381
|
+
"data-boff-explore": "feedback-comment",
|
|
3382
|
+
type: "text",
|
|
3383
|
+
value: comment,
|
|
3384
|
+
onChange: (event) => setComment(event.target.value),
|
|
3385
|
+
onKeyDown: (event) => {
|
|
3386
|
+
if (event.key !== "Enter") return;
|
|
3387
|
+
event.preventDefault();
|
|
3388
|
+
onSendReason();
|
|
3389
|
+
},
|
|
3390
|
+
"aria-label": T.feedbackCommentPlaceholder,
|
|
3391
|
+
placeholder: T.feedbackCommentPlaceholder,
|
|
3392
|
+
maxLength: EXPLORE_FEEDBACK_COMMENT_SOFT_MAX,
|
|
3393
|
+
className: "min-w-0 flex-1 rounded-md border border-border bg-background px-2 py-1 text-base text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring sm:text-sm"
|
|
3394
|
+
}
|
|
3395
|
+
),
|
|
3396
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3397
|
+
Button,
|
|
3398
|
+
{
|
|
3399
|
+
"data-boff-explore": "feedback-send",
|
|
3400
|
+
type: "button",
|
|
3401
|
+
size: "sm",
|
|
3402
|
+
disabled: sending,
|
|
3403
|
+
onClick: onSendReason,
|
|
3404
|
+
children: T.feedbackSend
|
|
3405
|
+
}
|
|
3406
|
+
),
|
|
3407
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3408
|
+
Button,
|
|
3409
|
+
{
|
|
3410
|
+
"data-boff-explore": "feedback-dismiss",
|
|
3411
|
+
type: "button",
|
|
3412
|
+
size: "sm",
|
|
3413
|
+
variant: "ghost",
|
|
3414
|
+
className: "text-muted-foreground",
|
|
3415
|
+
onClick: closeChooser,
|
|
3416
|
+
children: T.feedbackDismiss
|
|
3417
|
+
}
|
|
3418
|
+
)
|
|
3419
|
+
] })
|
|
3420
|
+
]
|
|
3421
|
+
}
|
|
3422
|
+
) : null
|
|
3423
|
+
]
|
|
3424
|
+
}
|
|
3425
|
+
);
|
|
3426
|
+
}
|
|
3049
3427
|
function UserBubble({
|
|
3050
3428
|
strings: T,
|
|
3051
3429
|
message
|
|
@@ -3094,7 +3472,8 @@ function AssistantBubble({
|
|
|
3094
3472
|
onNavigate,
|
|
3095
3473
|
anchorRef,
|
|
3096
3474
|
onFollow,
|
|
3097
|
-
onFollowUp
|
|
3475
|
+
onFollowUp,
|
|
3476
|
+
onFeedback
|
|
3098
3477
|
}) {
|
|
3099
3478
|
const streaming = message.status === "PENDING" || message.status === "RUNNING";
|
|
3100
3479
|
const body = message.content || message.partialContent || "";
|
|
@@ -3205,7 +3584,16 @@ function AssistantBubble({
|
|
|
3205
3584
|
},
|
|
3206
3585
|
question
|
|
3207
3586
|
)) })
|
|
3208
|
-
] }) : null
|
|
3587
|
+
] }) : null,
|
|
3588
|
+
completed && onFeedback ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
3589
|
+
AnswerFeedback,
|
|
3590
|
+
{
|
|
3591
|
+
strings: T,
|
|
3592
|
+
messageId: message.id,
|
|
3593
|
+
feedback: message.feedback,
|
|
3594
|
+
onSubmit: onFeedback
|
|
3595
|
+
}
|
|
3596
|
+
) : null
|
|
3209
3597
|
] })
|
|
3210
3598
|
]
|
|
3211
3599
|
}
|
|
@@ -3609,6 +3997,7 @@ function ExplorePage({
|
|
|
3609
3997
|
deleteConversation,
|
|
3610
3998
|
clearHistory,
|
|
3611
3999
|
recordClick,
|
|
4000
|
+
submitFeedback,
|
|
3612
4001
|
createShareLink,
|
|
3613
4002
|
isSharedView
|
|
3614
4003
|
} = useExploreChat({
|
|
@@ -3665,6 +4054,10 @@ function ExplorePage({
|
|
|
3665
4054
|
() => catalog.products.find((p) => p.slug === focusProduct)?.name ?? null,
|
|
3666
4055
|
[catalog.products, focusProduct]
|
|
3667
4056
|
);
|
|
4057
|
+
const headProductName = React.useMemo(
|
|
4058
|
+
() => productSlug ? catalog.products.find((p) => p.slug === productSlug)?.name ?? null : null,
|
|
4059
|
+
[catalog.products, productSlug]
|
|
4060
|
+
);
|
|
3668
4061
|
const imageOrigins = React.useMemo(
|
|
3669
4062
|
() => inlineImageOrigins(catalog.products),
|
|
3670
4063
|
[catalog.products]
|
|
@@ -4029,16 +4422,17 @@ function ExplorePage({
|
|
|
4029
4422
|
),
|
|
4030
4423
|
style: rootStyle,
|
|
4031
4424
|
children: [
|
|
4032
|
-
|
|
4425
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4033
4426
|
PageHead,
|
|
4034
4427
|
{
|
|
4035
|
-
title: seo
|
|
4036
|
-
description: seo
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
4428
|
+
title: seo?.title ?? T.seoTitle,
|
|
4429
|
+
description: seo?.description ?? (headProductName ? fill(T.seoDescriptionProduct, { product: headProductName }) : T.seoDescription),
|
|
4430
|
+
productName: seo?.title ? void 0 : headProductName ?? void 0,
|
|
4431
|
+
keywords: seo?.keywords,
|
|
4432
|
+
image: seo?.image,
|
|
4433
|
+
url: seo?.url
|
|
4040
4434
|
}
|
|
4041
|
-
)
|
|
4435
|
+
),
|
|
4042
4436
|
/* @__PURE__ */ jsxRuntime.jsx(ProseStyles, {}),
|
|
4043
4437
|
/* @__PURE__ */ jsxRuntime.jsx(ExploreStyles, {}),
|
|
4044
4438
|
!showWelcome ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2.5 border-b border-border px-4 py-2.5", children: [
|
|
@@ -4215,7 +4609,8 @@ function ExplorePage({
|
|
|
4215
4609
|
onNavigate,
|
|
4216
4610
|
anchorRef: message.id === latestAssistantId ? latestAssistantRef : void 0,
|
|
4217
4611
|
onFollow: (kind, url) => recordClick(message.id, kind, url),
|
|
4218
|
-
onFollowUp: sendPrompt
|
|
4612
|
+
onFollowUp: sendPrompt,
|
|
4613
|
+
onFeedback: isSharedView ? void 0 : (rating, detail) => submitFeedback(message.id, rating, detail)
|
|
4219
4614
|
},
|
|
4220
4615
|
message.id
|
|
4221
4616
|
)
|