@burdenoff/website-sdk 2026.829.3 → 2026.829.5
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 +7 -1
- package/dist/components/explore.d.ts +7 -1
- package/dist/components/explore.js +468 -32
- package/dist/components/explore.js.map +1 -1
- package/dist/components/explore.mjs +468 -32
- package/dist/components/explore.mjs.map +1 -1
- package/dist/index.d.mts +59 -1
- package/dist/index.d.ts +59 -1
- package/dist/index.js +469 -32
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +469 -33
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -40,6 +40,289 @@ var remarkGfm__default = /*#__PURE__*/_interopDefault(remarkGfm);
|
|
|
40
40
|
var __defProp = Object.defineProperty;
|
|
41
41
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
42
42
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
43
|
+
|
|
44
|
+
// src/components/explore-i18n.ts
|
|
45
|
+
var EXPLORE_LOCALES = ["en", "zh", "hi", "es", "ar", "ta"];
|
|
46
|
+
var RTL_LOCALES = /* @__PURE__ */ new Set(["ar"]);
|
|
47
|
+
function isRtlLocale(locale) {
|
|
48
|
+
return RTL_LOCALES.has(locale);
|
|
49
|
+
}
|
|
50
|
+
var EN = {
|
|
51
|
+
badge: "AI answers, grounded in our documentation",
|
|
52
|
+
welcomeTitle: "Ask anything about our products",
|
|
53
|
+
welcomeBody: "Describe what you are trying to do and I will point you at the product, the page and the next step.",
|
|
54
|
+
tryAsking: "Try asking",
|
|
55
|
+
focusProduct: "Focus on a product",
|
|
56
|
+
allProducts: "All products",
|
|
57
|
+
showAll: "All",
|
|
58
|
+
showLess: "Show less",
|
|
59
|
+
sources: "Sources",
|
|
60
|
+
nextYouCouldAsk: "Next you could ask",
|
|
61
|
+
placeholder: "Ask anything about our products\u2026",
|
|
62
|
+
placeholderProduct: "Ask about {product}\u2026",
|
|
63
|
+
send: "Send",
|
|
64
|
+
stop: "Stop",
|
|
65
|
+
newChat: "New chat",
|
|
66
|
+
history: "History",
|
|
67
|
+
clearHistory: "Clear history",
|
|
68
|
+
share: "Share",
|
|
69
|
+
copied: "Copied",
|
|
70
|
+
copying: "Copying\u2026",
|
|
71
|
+
shareUnavailable: "Unavailable",
|
|
72
|
+
disclaimer: "Disclaimer",
|
|
73
|
+
disclaimerShort: "Grounded in our docs \u2014 check anything important.",
|
|
74
|
+
dictate: "Dictate your question",
|
|
75
|
+
stopDictating: "Stop dictating",
|
|
76
|
+
noAnswer: "I couldn't find this in our documentation, so the answer below is not grounded in a source. Try rephrasing, or",
|
|
77
|
+
askHuman: "ask a human",
|
|
78
|
+
prevSuggestion: "Previous suggestion",
|
|
79
|
+
nextSuggestion: "Next suggestion",
|
|
80
|
+
capabilities: [
|
|
81
|
+
"Grounded in our own docs",
|
|
82
|
+
"Compare across the ecosystem",
|
|
83
|
+
"Straight to the right page"
|
|
84
|
+
],
|
|
85
|
+
prompts: [
|
|
86
|
+
"What does this product actually do?",
|
|
87
|
+
"Which product fits my team?",
|
|
88
|
+
"How do I get started, step by step?",
|
|
89
|
+
"How much does it cost?"
|
|
90
|
+
]
|
|
91
|
+
};
|
|
92
|
+
var ZH = {
|
|
93
|
+
badge: "\u57FA\u4E8E\u6211\u4EEC\u6587\u6863\u7684 AI \u56DE\u7B54",
|
|
94
|
+
welcomeTitle: "\u5173\u4E8E\u6211\u4EEC\u7684\u4EA7\u54C1\uFF0C\u968F\u4FBF\u95EE",
|
|
95
|
+
welcomeBody: "\u63CF\u8FF0\u4F60\u60F3\u505A\u7684\u4E8B\uFF0C\u6211\u4F1A\u4E3A\u4F60\u6307\u51FA\u5BF9\u5E94\u7684\u4EA7\u54C1\u3001\u9875\u9762\u548C\u4E0B\u4E00\u6B65\u3002",
|
|
96
|
+
tryAsking: "\u8BD5\u7740\u95EE",
|
|
97
|
+
focusProduct: "\u805A\u7126\u67D0\u4E2A\u4EA7\u54C1",
|
|
98
|
+
allProducts: "\u5168\u90E8\u4EA7\u54C1",
|
|
99
|
+
showAll: "\u5168\u90E8",
|
|
100
|
+
showLess: "\u6536\u8D77",
|
|
101
|
+
sources: "\u6765\u6E90",
|
|
102
|
+
nextYouCouldAsk: "\u4F60\u8FD8\u53EF\u4EE5\u95EE",
|
|
103
|
+
placeholder: "\u5173\u4E8E\u6211\u4EEC\u7684\u4EA7\u54C1\uFF0C\u968F\u4FBF\u95EE\u2026",
|
|
104
|
+
placeholderProduct: "\u8BE2\u95EE\u5173\u4E8E {product} \u7684\u95EE\u9898\u2026",
|
|
105
|
+
send: "\u53D1\u9001",
|
|
106
|
+
stop: "\u505C\u6B62",
|
|
107
|
+
newChat: "\u65B0\u5BF9\u8BDD",
|
|
108
|
+
history: "\u5386\u53F2",
|
|
109
|
+
clearHistory: "\u6E05\u9664\u5386\u53F2",
|
|
110
|
+
share: "\u5206\u4EAB",
|
|
111
|
+
copied: "\u5DF2\u590D\u5236",
|
|
112
|
+
copying: "\u590D\u5236\u4E2D\u2026",
|
|
113
|
+
shareUnavailable: "\u4E0D\u53EF\u7528",
|
|
114
|
+
disclaimer: "\u514D\u8D23\u58F0\u660E",
|
|
115
|
+
disclaimerShort: "\u5185\u5BB9\u57FA\u4E8E\u6211\u4EEC\u7684\u6587\u6863\uFF0C\u91CD\u8981\u4FE1\u606F\u8BF7\u81EA\u884C\u6838\u5BF9\u3002",
|
|
116
|
+
dictate: "\u8BED\u97F3\u8F93\u5165",
|
|
117
|
+
stopDictating: "\u505C\u6B62\u8BED\u97F3\u8F93\u5165",
|
|
118
|
+
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",
|
|
119
|
+
askHuman: "\u8054\u7CFB\u6211\u4EEC",
|
|
120
|
+
prevSuggestion: "\u4E0A\u4E00\u4E2A\u5EFA\u8BAE",
|
|
121
|
+
nextSuggestion: "\u4E0B\u4E00\u4E2A\u5EFA\u8BAE",
|
|
122
|
+
capabilities: ["\u57FA\u4E8E\u6211\u4EEC\u81EA\u5DF1\u7684\u6587\u6863", "\u8DE8\u4EA7\u54C1\u5BF9\u6BD4", "\u76F4\u8FBE\u6B63\u786E\u7684\u9875\u9762"],
|
|
123
|
+
prompts: [
|
|
124
|
+
"\u8FD9\u4E2A\u4EA7\u54C1\u5230\u5E95\u80FD\u505A\u4EC0\u4E48\uFF1F",
|
|
125
|
+
"\u54EA\u4E2A\u4EA7\u54C1\u9002\u5408\u6211\u7684\u56E2\u961F\uFF1F",
|
|
126
|
+
"\u5982\u4F55\u4E00\u6B65\u6B65\u5F00\u59CB\u4F7F\u7528\uFF1F",
|
|
127
|
+
"\u4EF7\u683C\u662F\u591A\u5C11\uFF1F"
|
|
128
|
+
]
|
|
129
|
+
};
|
|
130
|
+
var HI = {
|
|
131
|
+
badge: "\u0939\u092E\u093E\u0930\u0947 \u0926\u0938\u094D\u0924\u093E\u0935\u0947\u091C\u093C\u094B\u0902 \u092A\u0930 \u0906\u0927\u093E\u0930\u093F\u0924 AI \u0909\u0924\u094D\u0924\u0930",
|
|
132
|
+
welcomeTitle: "\u0939\u092E\u093E\u0930\u0947 \u0909\u0924\u094D\u092A\u093E\u0926\u094B\u0902 \u0915\u0947 \u092C\u093E\u0930\u0947 \u092E\u0947\u0902 \u0915\u0941\u091B \u092D\u0940 \u092A\u0942\u091B\u0947\u0902",
|
|
133
|
+
welcomeBody: "\u092C\u0924\u093E\u0907\u090F \u0906\u092A \u0915\u094D\u092F\u093E \u0915\u0930\u0928\u093E \u091A\u093E\u0939\u0924\u0947 \u0939\u0948\u0902, \u0914\u0930 \u092E\u0948\u0902 \u0906\u092A\u0915\u094B \u0938\u0939\u0940 \u0909\u0924\u094D\u092A\u093E\u0926, \u092A\u0947\u091C \u0914\u0930 \u0905\u0917\u0932\u093E \u0915\u0926\u092E \u092C\u0924\u093E\u090A\u0901\u0917\u093E\u0964",
|
|
134
|
+
tryAsking: "\u092F\u0939 \u092A\u0942\u091B\u0915\u0930 \u0926\u0947\u0916\u0947\u0902",
|
|
135
|
+
focusProduct: "\u0915\u093F\u0938\u0940 \u0909\u0924\u094D\u092A\u093E\u0926 \u092A\u0930 \u0927\u094D\u092F\u093E\u0928 \u0926\u0947\u0902",
|
|
136
|
+
allProducts: "\u0938\u092D\u0940 \u0909\u0924\u094D\u092A\u093E\u0926",
|
|
137
|
+
showAll: "\u0938\u092D\u0940",
|
|
138
|
+
showLess: "\u0915\u092E \u0926\u093F\u0916\u093E\u090F\u0901",
|
|
139
|
+
sources: "\u0938\u094D\u0930\u094B\u0924",
|
|
140
|
+
nextYouCouldAsk: "\u0906\u0917\u0947 \u0906\u092A \u092A\u0942\u091B \u0938\u0915\u0924\u0947 \u0939\u0948\u0902",
|
|
141
|
+
placeholder: "\u0939\u092E\u093E\u0930\u0947 \u0909\u0924\u094D\u092A\u093E\u0926\u094B\u0902 \u0915\u0947 \u092C\u093E\u0930\u0947 \u092E\u0947\u0902 \u0915\u0941\u091B \u092D\u0940 \u092A\u0942\u091B\u0947\u0902\u2026",
|
|
142
|
+
placeholderProduct: "{product} \u0915\u0947 \u092C\u093E\u0930\u0947 \u092E\u0947\u0902 \u092A\u0942\u091B\u0947\u0902\u2026",
|
|
143
|
+
send: "\u092D\u0947\u091C\u0947\u0902",
|
|
144
|
+
stop: "\u0930\u094B\u0915\u0947\u0902",
|
|
145
|
+
newChat: "\u0928\u0908 \u092C\u093E\u0924\u091A\u0940\u0924",
|
|
146
|
+
history: "\u0907\u0924\u093F\u0939\u093E\u0938",
|
|
147
|
+
clearHistory: "\u0907\u0924\u093F\u0939\u093E\u0938 \u092E\u093F\u091F\u093E\u090F\u0901",
|
|
148
|
+
share: "\u0938\u093E\u091D\u093E \u0915\u0930\u0947\u0902",
|
|
149
|
+
copied: "\u0915\u0949\u092A\u0940 \u0939\u094B \u0917\u092F\u093E",
|
|
150
|
+
copying: "\u0915\u0949\u092A\u0940 \u0939\u094B \u0930\u0939\u093E \u0939\u0948\u2026",
|
|
151
|
+
shareUnavailable: "\u0909\u092A\u0932\u092C\u094D\u0927 \u0928\u0939\u0940\u0902",
|
|
152
|
+
disclaimer: "\u0905\u0938\u094D\u0935\u0940\u0915\u0930\u0923",
|
|
153
|
+
disclaimerShort: "\u092F\u0939 \u0939\u092E\u093E\u0930\u0947 \u0926\u0938\u094D\u0924\u093E\u0935\u0947\u091C\u093C\u094B\u0902 \u092A\u0930 \u0906\u0927\u093E\u0930\u093F\u0924 \u0939\u0948 \u2014 \u092E\u0939\u0924\u094D\u0935\u092A\u0942\u0930\u094D\u0923 \u092C\u093E\u0924\u0947\u0902 \u091C\u093C\u0930\u0942\u0930 \u091C\u093E\u0901\u091A \u0932\u0947\u0902\u0964",
|
|
154
|
+
dictate: "\u092C\u094B\u0932\u0915\u0930 \u092A\u0942\u091B\u0947\u0902",
|
|
155
|
+
stopDictating: "\u092C\u094B\u0932\u0928\u093E \u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
|
|
156
|
+
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",
|
|
157
|
+
askHuman: "\u0939\u092E\u0938\u0947 \u0938\u0902\u092A\u0930\u094D\u0915 \u0915\u0930\u0947\u0902",
|
|
158
|
+
prevSuggestion: "\u092A\u093F\u091B\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
|
|
159
|
+
nextSuggestion: "\u0905\u0917\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
|
|
160
|
+
capabilities: [
|
|
161
|
+
"\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",
|
|
162
|
+
"\u0938\u092D\u0940 \u0909\u0924\u094D\u092A\u093E\u0926\u094B\u0902 \u0915\u0940 \u0924\u0941\u0932\u0928\u093E \u0915\u0930\u0947\u0902",
|
|
163
|
+
"\u0938\u0940\u0927\u0947 \u0938\u0939\u0940 \u092A\u0947\u091C \u092A\u0930"
|
|
164
|
+
],
|
|
165
|
+
prompts: [
|
|
166
|
+
"\u092F\u0939 \u0909\u0924\u094D\u092A\u093E\u0926 \u0905\u0938\u0932 \u092E\u0947\u0902 \u0915\u094D\u092F\u093E \u0915\u0930\u0924\u093E \u0939\u0948?",
|
|
167
|
+
"\u092E\u0947\u0930\u0940 \u091F\u0940\u092E \u0915\u0947 \u0932\u093F\u090F \u0915\u094C\u0928 \u0938\u093E \u0909\u0924\u094D\u092A\u093E\u0926 \u0938\u0939\u0940 \u0939\u0948?",
|
|
168
|
+
"\u0936\u0941\u0930\u0941\u0906\u0924 \u0915\u0948\u0938\u0947 \u0915\u0930\u0947\u0902, \u091A\u0930\u0923 \u0926\u0930 \u091A\u0930\u0923?",
|
|
169
|
+
"\u0907\u0938\u0915\u0940 \u0915\u0940\u092E\u0924 \u0915\u093F\u0924\u0928\u0940 \u0939\u0948?"
|
|
170
|
+
]
|
|
171
|
+
};
|
|
172
|
+
var ES = {
|
|
173
|
+
badge: "Respuestas de IA basadas en nuestra documentaci\xF3n",
|
|
174
|
+
welcomeTitle: "Pregunta lo que quieras sobre nuestros productos",
|
|
175
|
+
welcomeBody: "Cu\xE9ntame qu\xE9 necesitas hacer y te indicar\xE9 el producto, la p\xE1gina y el siguiente paso.",
|
|
176
|
+
tryAsking: "Prueba a preguntar",
|
|
177
|
+
focusProduct: "Centrarse en un producto",
|
|
178
|
+
allProducts: "Todos los productos",
|
|
179
|
+
showAll: "Todos",
|
|
180
|
+
showLess: "Ver menos",
|
|
181
|
+
sources: "Fuentes",
|
|
182
|
+
nextYouCouldAsk: "Tambi\xE9n puedes preguntar",
|
|
183
|
+
placeholder: "Pregunta lo que quieras sobre nuestros productos\u2026",
|
|
184
|
+
placeholderProduct: "Pregunta sobre {product}\u2026",
|
|
185
|
+
send: "Enviar",
|
|
186
|
+
stop: "Detener",
|
|
187
|
+
newChat: "Nueva conversaci\xF3n",
|
|
188
|
+
history: "Historial",
|
|
189
|
+
clearHistory: "Borrar historial",
|
|
190
|
+
share: "Compartir",
|
|
191
|
+
copied: "Copiado",
|
|
192
|
+
copying: "Copiando\u2026",
|
|
193
|
+
shareUnavailable: "No disponible",
|
|
194
|
+
disclaimer: "Aviso",
|
|
195
|
+
disclaimerShort: "Basado en nuestra documentaci\xF3n: comprueba cualquier dato importante.",
|
|
196
|
+
dictate: "Dictar tu pregunta",
|
|
197
|
+
stopDictating: "Dejar de dictar",
|
|
198
|
+
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",
|
|
199
|
+
askHuman: "habla con una persona",
|
|
200
|
+
prevSuggestion: "Sugerencia anterior",
|
|
201
|
+
nextSuggestion: "Sugerencia siguiente",
|
|
202
|
+
capabilities: [
|
|
203
|
+
"Basado en nuestra documentaci\xF3n",
|
|
204
|
+
"Compara todo el ecosistema",
|
|
205
|
+
"Directo a la p\xE1gina correcta"
|
|
206
|
+
],
|
|
207
|
+
prompts: [
|
|
208
|
+
"\xBFQu\xE9 hace realmente este producto?",
|
|
209
|
+
"\xBFQu\xE9 producto encaja con mi equipo?",
|
|
210
|
+
"\xBFC\xF3mo empiezo, paso a paso?",
|
|
211
|
+
"\xBFCu\xE1nto cuesta?"
|
|
212
|
+
]
|
|
213
|
+
};
|
|
214
|
+
var AR = {
|
|
215
|
+
badge: "\u0625\u062C\u0627\u0628\u0627\u062A \u0630\u0643\u0627\u0621 \u0627\u0635\u0637\u0646\u0627\u0639\u064A \u0645\u0628\u0646\u064A\u0629 \u0639\u0644\u0649 \u0648\u062B\u0627\u0626\u0642\u0646\u0627",
|
|
216
|
+
welcomeTitle: "\u0627\u0633\u0623\u0644 \u0623\u064A \u0634\u064A\u0621 \u0639\u0646 \u0645\u0646\u062A\u062C\u0627\u062A\u0646\u0627",
|
|
217
|
+
welcomeBody: "\u0635\u0650\u0641 \u0645\u0627 \u062A\u0631\u064A\u062F \u0625\u0646\u062C\u0627\u0632\u0647 \u0648\u0633\u0623\u062F\u0644\u0651\u0643 \u0639\u0644\u0649 \u0627\u0644\u0645\u0646\u062A\u062C \u0648\u0627\u0644\u0635\u0641\u062D\u0629 \u0648\u0627\u0644\u062E\u0637\u0648\u0629 \u0627\u0644\u062A\u0627\u0644\u064A\u0629.",
|
|
218
|
+
tryAsking: "\u062C\u0631\u0651\u0628 \u0623\u0646 \u062A\u0633\u0623\u0644",
|
|
219
|
+
focusProduct: "\u0627\u0644\u062A\u0631\u0643\u064A\u0632 \u0639\u0644\u0649 \u0645\u0646\u062A\u062C",
|
|
220
|
+
allProducts: "\u0643\u0644 \u0627\u0644\u0645\u0646\u062A\u062C\u0627\u062A",
|
|
221
|
+
showAll: "\u0627\u0644\u0643\u0644",
|
|
222
|
+
showLess: "\u0639\u0631\u0636 \u0623\u0642\u0644",
|
|
223
|
+
sources: "\u0627\u0644\u0645\u0635\u0627\u062F\u0631",
|
|
224
|
+
nextYouCouldAsk: "\u064A\u0645\u0643\u0646\u0643 \u0623\u0646 \u062A\u0633\u0623\u0644 \u0628\u0639\u062F \u0630\u0644\u0643",
|
|
225
|
+
placeholder: "\u0627\u0633\u0623\u0644 \u0623\u064A \u0634\u064A\u0621 \u0639\u0646 \u0645\u0646\u062A\u062C\u0627\u062A\u0646\u0627\u2026",
|
|
226
|
+
placeholderProduct: "\u0627\u0633\u0623\u0644 \u0639\u0646 {product}\u2026",
|
|
227
|
+
send: "\u0625\u0631\u0633\u0627\u0644",
|
|
228
|
+
stop: "\u0625\u064A\u0642\u0627\u0641",
|
|
229
|
+
newChat: "\u0645\u062D\u0627\u062F\u062B\u0629 \u062C\u062F\u064A\u062F\u0629",
|
|
230
|
+
history: "\u0627\u0644\u0633\u062C\u0644",
|
|
231
|
+
clearHistory: "\u0645\u0633\u062D \u0627\u0644\u0633\u062C\u0644",
|
|
232
|
+
share: "\u0645\u0634\u0627\u0631\u0643\u0629",
|
|
233
|
+
copied: "\u062A\u0645 \u0627\u0644\u0646\u0633\u062E",
|
|
234
|
+
copying: "\u062C\u0627\u0631\u064D \u0627\u0644\u0646\u0633\u062E\u2026",
|
|
235
|
+
shareUnavailable: "\u063A\u064A\u0631 \u0645\u062A\u0627\u062D",
|
|
236
|
+
disclaimer: "\u0625\u062E\u0644\u0627\u0621 \u0645\u0633\u0624\u0648\u0644\u064A\u0629",
|
|
237
|
+
disclaimerShort: "\u0645\u0628\u0646\u064A \u0639\u0644\u0649 \u0648\u062B\u0627\u0626\u0642\u0646\u0627 \u2014 \u062A\u062D\u0642\u0651\u0642 \u0645\u0646 \u0623\u064A \u0645\u0639\u0644\u0648\u0645\u0629 \u0645\u0647\u0645\u0629.",
|
|
238
|
+
dictate: "\u0623\u0645\u0644\u0650 \u0633\u0624\u0627\u0644\u0643",
|
|
239
|
+
stopDictating: "\u0625\u064A\u0642\u0627\u0641 \u0627\u0644\u0625\u0645\u0644\u0627\u0621",
|
|
240
|
+
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",
|
|
241
|
+
askHuman: "\u062A\u062D\u062F\u0651\u062B \u0625\u0644\u0649 \u0634\u062E\u0635",
|
|
242
|
+
prevSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u0633\u0627\u0628\u0642",
|
|
243
|
+
nextSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u062A\u0627\u0644\u064A",
|
|
244
|
+
capabilities: [
|
|
245
|
+
"\u0645\u0628\u0646\u064A \u0639\u0644\u0649 \u0648\u062B\u0627\u0626\u0642\u0646\u0627",
|
|
246
|
+
"\u0642\u0627\u0631\u0646 \u0639\u0628\u0631 \u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629",
|
|
247
|
+
"\u0645\u0628\u0627\u0634\u0631\u0629\u064B \u0625\u0644\u0649 \u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0635\u062D\u064A\u062D\u0629"
|
|
248
|
+
],
|
|
249
|
+
prompts: [
|
|
250
|
+
"\u0645\u0627 \u0627\u0644\u0630\u064A \u064A\u0641\u0639\u0644\u0647 \u0647\u0630\u0627 \u0627\u0644\u0645\u0646\u062A\u062C \u0641\u0639\u0644\u064A\u064B\u0627\u061F",
|
|
251
|
+
"\u0623\u064A \u0645\u0646\u062A\u062C \u064A\u0646\u0627\u0633\u0628 \u0641\u0631\u064A\u0642\u064A\u061F",
|
|
252
|
+
"\u0643\u064A\u0641 \u0623\u0628\u062F\u0623 \u062E\u0637\u0648\u0629 \u0628\u062E\u0637\u0648\u0629\u061F",
|
|
253
|
+
"\u0643\u0645 \u062A\u0628\u0644\u063A \u0627\u0644\u062A\u0643\u0644\u0641\u0629\u061F"
|
|
254
|
+
]
|
|
255
|
+
};
|
|
256
|
+
var TA = {
|
|
257
|
+
badge: "\u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B86\u0BB5\u0BA3\u0B99\u0BCD\u0B95\u0BB3\u0BC8 \u0B85\u0B9F\u0BBF\u0BAA\u0BCD\u0BAA\u0B9F\u0BC8\u0BAF\u0BBE\u0B95\u0B95\u0BCD \u0B95\u0BCA\u0BA3\u0BCD\u0B9F AI \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD\u0B95\u0BB3\u0BCD",
|
|
258
|
+
welcomeTitle: "\u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD \u0BAA\u0BB1\u0BCD\u0BB1\u0BBF \u0B8E\u0BA4\u0BC8\u0BAF\u0BC1\u0BAE\u0BCD \u0B95\u0BC7\u0BB3\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
259
|
+
welcomeBody: "\u0BA8\u0BC0\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B8E\u0BA9\u0BCD\u0BA9 \u0B9A\u0BC6\u0BAF\u0BCD\u0BAF \u0BB5\u0BBF\u0BB0\u0BC1\u0BAE\u0BCD\u0BAA\u0BC1\u0B95\u0BBF\u0BB1\u0BC0\u0BB0\u0BCD\u0B95\u0BB3\u0BCD \u0B8E\u0BA9\u0BCD\u0BB1\u0BC1 \u0B9A\u0BCA\u0BB2\u0BCD\u0BB2\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD; \u0B9A\u0BB0\u0BBF\u0BAF\u0BBE\u0BA9 \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1, \u0BAA\u0B95\u0BCD\u0B95\u0BAE\u0BCD, \u0B85\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4 \u0BAA\u0B9F\u0BBF \u0B86\u0B95\u0BBF\u0BAF\u0BB5\u0BB1\u0BCD\u0BB1\u0BC8\u0B95\u0BCD \u0B95\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1\u0B95\u0BBF\u0BB1\u0BC7\u0BA9\u0BCD.",
|
|
260
|
+
tryAsking: "\u0B87\u0BA4\u0BC8\u0B95\u0BCD \u0B95\u0BC7\u0B9F\u0BCD\u0B9F\u0BC1\u0BAA\u0BCD \u0BAA\u0BBE\u0BB0\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
261
|
+
focusProduct: "\u0B92\u0BB0\u0BC1 \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BBF\u0BB2\u0BCD \u0B95\u0BB5\u0BA9\u0BAE\u0BCD",
|
|
262
|
+
allProducts: "\u0B85\u0BA9\u0BC8\u0BA4\u0BCD\u0BA4\u0BC1 \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",
|
|
263
|
+
showAll: "\u0B85\u0BA9\u0BC8\u0BA4\u0BCD\u0BA4\u0BC1\u0BAE\u0BCD",
|
|
264
|
+
showLess: "\u0B95\u0BC1\u0BB1\u0BC8\u0BB5\u0BBE\u0B95\u0B95\u0BCD \u0B95\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1",
|
|
265
|
+
sources: "\u0BAE\u0BC2\u0BB2\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
266
|
+
nextYouCouldAsk: "\u0B85\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1 \u0BA8\u0BC0\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B95\u0BC7\u0B9F\u0BCD\u0B95\u0BB2\u0BBE\u0BAE\u0BCD",
|
|
267
|
+
placeholder: "\u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD \u0BAA\u0BB1\u0BCD\u0BB1\u0BBF \u0B8E\u0BA4\u0BC8\u0BAF\u0BC1\u0BAE\u0BCD \u0B95\u0BC7\u0BB3\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD\u2026",
|
|
268
|
+
placeholderProduct: "{product} \u0BAA\u0BB1\u0BCD\u0BB1\u0BBF\u0B95\u0BCD \u0B95\u0BC7\u0BB3\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD\u2026",
|
|
269
|
+
send: "\u0B85\u0BA9\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1",
|
|
270
|
+
stop: "\u0BA8\u0BBF\u0BB1\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1",
|
|
271
|
+
newChat: "\u0BAA\u0BC1\u0BA4\u0BBF\u0BAF \u0B89\u0BB0\u0BC8\u0BAF\u0BBE\u0B9F\u0BB2\u0BCD",
|
|
272
|
+
history: "\u0BB5\u0BB0\u0BB2\u0BBE\u0BB1\u0BC1",
|
|
273
|
+
clearHistory: "\u0BB5\u0BB0\u0BB2\u0BBE\u0BB1\u0BCD\u0BB1\u0BC8 \u0B85\u0BB4\u0BBF",
|
|
274
|
+
share: "\u0BAA\u0B95\u0BBF\u0BB0\u0BCD",
|
|
275
|
+
copied: "\u0BA8\u0B95\u0BB2\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1",
|
|
276
|
+
copying: "\u0BA8\u0B95\u0BB2\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95\u0BBF\u0BB1\u0BA4\u0BC1\u2026",
|
|
277
|
+
shareUnavailable: "\u0B95\u0BBF\u0B9F\u0BC8\u0B95\u0BCD\u0B95\u0BB5\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8",
|
|
278
|
+
disclaimer: "\u0BAA\u0BCA\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0BA4\u0BCD \u0BA4\u0BC1\u0BB1\u0BAA\u0BCD\u0BAA\u0BC1",
|
|
279
|
+
disclaimerShort: "\u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B86\u0BB5\u0BA3\u0B99\u0BCD\u0B95\u0BB3\u0BC8 \u0B85\u0B9F\u0BBF\u0BAA\u0BCD\u0BAA\u0B9F\u0BC8\u0BAF\u0BBE\u0B95\u0B95\u0BCD \u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BA4\u0BC1 \u2014 \u0BAE\u0BC1\u0B95\u0BCD\u0B95\u0BBF\u0BAF\u0BAE\u0BBE\u0BA9\u0BA4\u0BC8\u0B9A\u0BCD \u0B9A\u0BB0\u0BBF\u0BAA\u0BBE\u0BB0\u0BCD\u0B95\u0BCD\u0B95\u0BB5\u0BC1\u0BAE\u0BCD.",
|
|
280
|
+
dictate: "\u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B95\u0BC7\u0BB3\u0BCD\u0BB5\u0BBF\u0BAF\u0BC8\u0BAA\u0BCD \u0BAA\u0BC7\u0B9A\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
281
|
+
stopDictating: "\u0BAA\u0BC7\u0B9A\u0BC1\u0BB5\u0BA4\u0BC8 \u0BA8\u0BBF\u0BB1\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1",
|
|
282
|
+
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",
|
|
283
|
+
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",
|
|
284
|
+
prevSuggestion: "\u0BAE\u0BC1\u0BA8\u0BCD\u0BA4\u0BC8\u0BAF \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
|
|
285
|
+
nextSuggestion: "\u0B85\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4 \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
|
|
286
|
+
capabilities: [
|
|
287
|
+
"\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",
|
|
288
|
+
"\u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BC8 \u0B92\u0BAA\u0BCD\u0BAA\u0BBF\u0B9F\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
289
|
+
"\u0BA8\u0BC7\u0BB0\u0BBE\u0B95 \u0B9A\u0BB0\u0BBF\u0BAF\u0BBE\u0BA9 \u0BAA\u0B95\u0BCD\u0B95\u0BA4\u0BCD\u0BA4\u0BBF\u0BB1\u0BCD\u0B95\u0BC1"
|
|
290
|
+
],
|
|
291
|
+
prompts: [
|
|
292
|
+
"\u0B87\u0BA8\u0BCD\u0BA4\u0BA4\u0BCD \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1 \u0B89\u0BA3\u0BCD\u0BAE\u0BC8\u0BAF\u0BBF\u0BB2\u0BCD \u0B8E\u0BA9\u0BCD\u0BA9 \u0B9A\u0BC6\u0BAF\u0BCD\u0B95\u0BBF\u0BB1\u0BA4\u0BC1?",
|
|
293
|
+
"\u0B8E\u0BA9\u0BCD \u0B95\u0BC1\u0BB4\u0BC1\u0BB5\u0BBF\u0BB1\u0BCD\u0B95\u0BC1 \u0B8E\u0BA8\u0BCD\u0BA4\u0BA4\u0BCD \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1 \u0BAA\u0BCA\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BC1\u0BAE\u0BCD?",
|
|
294
|
+
"\u0BAA\u0B9F\u0BBF\u0BAA\u0BCD\u0BAA\u0B9F\u0BBF\u0BAF\u0BBE\u0B95 \u0B8E\u0BAA\u0BCD\u0BAA\u0B9F\u0BBF\u0BA4\u0BCD \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95\u0BC1\u0BB5\u0BA4\u0BC1?",
|
|
295
|
+
"\u0B87\u0BA4\u0BA9\u0BCD \u0BB5\u0BBF\u0BB2\u0BC8 \u0B8E\u0BA9\u0BCD\u0BA9?"
|
|
296
|
+
]
|
|
297
|
+
};
|
|
298
|
+
var STRINGS = {
|
|
299
|
+
en: EN,
|
|
300
|
+
zh: ZH,
|
|
301
|
+
hi: HI,
|
|
302
|
+
es: ES,
|
|
303
|
+
ar: AR,
|
|
304
|
+
ta: TA
|
|
305
|
+
};
|
|
306
|
+
function resolveExploreLocale(explicit) {
|
|
307
|
+
const candidates = [
|
|
308
|
+
explicit,
|
|
309
|
+
typeof document === "undefined" ? void 0 : document.documentElement.lang,
|
|
310
|
+
typeof navigator === "undefined" ? void 0 : navigator.language
|
|
311
|
+
];
|
|
312
|
+
for (const candidate of candidates) {
|
|
313
|
+
if (!candidate) continue;
|
|
314
|
+
const primary = candidate.toLowerCase().split("-")[0];
|
|
315
|
+
const match = EXPLORE_LOCALES.find((locale) => locale === primary);
|
|
316
|
+
if (match) return match;
|
|
317
|
+
}
|
|
318
|
+
return "en";
|
|
319
|
+
}
|
|
320
|
+
function exploreStrings(locale) {
|
|
321
|
+
return STRINGS[locale] ?? EN;
|
|
322
|
+
}
|
|
323
|
+
function fill(template, values) {
|
|
324
|
+
return template.replace(/\{(\w+)\}/g, (match, key) => values[key] ?? match);
|
|
325
|
+
}
|
|
43
326
|
var defaultComponents = {
|
|
44
327
|
a: ({ href, children, ...props }) => {
|
|
45
328
|
const isExternal = typeof href === "string" && (href.startsWith("http://") || href.startsWith("https://"));
|
|
@@ -1785,6 +2068,39 @@ function useSpeechInput({
|
|
|
1785
2068
|
);
|
|
1786
2069
|
return { supported, listening, interim, error, start, stop, toggle };
|
|
1787
2070
|
}
|
|
2071
|
+
var SWIPE_THRESHOLD = 40;
|
|
2072
|
+
function useSwipe({
|
|
2073
|
+
onSwipeLeft,
|
|
2074
|
+
onSwipeRight,
|
|
2075
|
+
enabled = true
|
|
2076
|
+
}) {
|
|
2077
|
+
const start = React.useRef(null);
|
|
2078
|
+
const onPointerDown = React.useCallback(
|
|
2079
|
+
(event) => {
|
|
2080
|
+
if (!enabled) return;
|
|
2081
|
+
start.current = { x: event.clientX, y: event.clientY };
|
|
2082
|
+
},
|
|
2083
|
+
[enabled]
|
|
2084
|
+
);
|
|
2085
|
+
const onPointerUp = React.useCallback(
|
|
2086
|
+
(event) => {
|
|
2087
|
+
const from = start.current;
|
|
2088
|
+
start.current = null;
|
|
2089
|
+
if (!enabled || !from) return;
|
|
2090
|
+
const dx = event.clientX - from.x;
|
|
2091
|
+
const dy = event.clientY - from.y;
|
|
2092
|
+
if (Math.abs(dx) < SWIPE_THRESHOLD || Math.abs(dx) <= Math.abs(dy))
|
|
2093
|
+
return;
|
|
2094
|
+
if (dx < 0) onSwipeLeft?.();
|
|
2095
|
+
else onSwipeRight?.();
|
|
2096
|
+
},
|
|
2097
|
+
[enabled, onSwipeLeft, onSwipeRight]
|
|
2098
|
+
);
|
|
2099
|
+
const onPointerCancel = React.useCallback(() => {
|
|
2100
|
+
start.current = null;
|
|
2101
|
+
}, []);
|
|
2102
|
+
return { onPointerDown, onPointerUp, onPointerCancel };
|
|
2103
|
+
}
|
|
1788
2104
|
function canonicalFromLocation() {
|
|
1789
2105
|
if (typeof window === "undefined" || !window.location) return void 0;
|
|
1790
2106
|
const { origin, pathname } = window.location;
|
|
@@ -1997,6 +2313,70 @@ var EXPLORE_CSS = `
|
|
|
1997
2313
|
max-width: 100%;
|
|
1998
2314
|
height: auto;
|
|
1999
2315
|
}
|
|
2316
|
+
|
|
2317
|
+
/* ---- Ambient backdrop -----------------------------------------------------------------
|
|
2318
|
+
Two very low-opacity radial washes behind the welcome state, drifting slowly. Painted on
|
|
2319
|
+
a pseudo-element with pointer-events:none so it can never intercept a click \u2014 a
|
|
2320
|
+
decorative overlay that swallows clicks is a bug we have shipped before.
|
|
2321
|
+
Colours come from the product's own --primary token, so this picks up each site's palette
|
|
2322
|
+
instead of introducing one. */
|
|
2323
|
+
.boff-explore-aura {
|
|
2324
|
+
position: relative;
|
|
2325
|
+
isolation: isolate;
|
|
2326
|
+
}
|
|
2327
|
+
.boff-explore-aura::before {
|
|
2328
|
+
content: "";
|
|
2329
|
+
position: absolute;
|
|
2330
|
+
inset: -10% -20% auto -20%;
|
|
2331
|
+
height: 60%;
|
|
2332
|
+
z-index: -1;
|
|
2333
|
+
pointer-events: none;
|
|
2334
|
+
background:
|
|
2335
|
+
radial-gradient(38% 55% at 22% 30%, hsl(var(--primary) / 0.10), transparent 70%),
|
|
2336
|
+
radial-gradient(32% 48% at 78% 18%, hsl(var(--primary) / 0.07), transparent 72%);
|
|
2337
|
+
filter: blur(6px);
|
|
2338
|
+
animation: boff-explore-drift 26s ease-in-out infinite alternate;
|
|
2339
|
+
}
|
|
2340
|
+
@keyframes boff-explore-drift {
|
|
2341
|
+
from { transform: translate3d(-1.5%, -1%, 0) scale(1); }
|
|
2342
|
+
to { transform: translate3d(1.5%, 1.5%, 0) scale(1.06); }
|
|
2343
|
+
}
|
|
2344
|
+
|
|
2345
|
+
/* Entrance: content settles rather than snapping in. Short, and only once. */
|
|
2346
|
+
@keyframes boff-explore-rise {
|
|
2347
|
+
from { opacity: 0; transform: translateY(6px); }
|
|
2348
|
+
to { opacity: 1; transform: none; }
|
|
2349
|
+
}
|
|
2350
|
+
.boff-explore-rise {
|
|
2351
|
+
animation: boff-explore-rise 380ms cubic-bezier(0.22, 1, 0.36, 1) both;
|
|
2352
|
+
}
|
|
2353
|
+
.boff-explore-rise-1 { animation-delay: 40ms; }
|
|
2354
|
+
.boff-explore-rise-2 { animation-delay: 90ms; }
|
|
2355
|
+
.boff-explore-rise-3 { animation-delay: 140ms; }
|
|
2356
|
+
|
|
2357
|
+
/* A soft sheen that crosses the send button while a turn is in flight \u2014 enough to say
|
|
2358
|
+
"working" without another spinner competing with the thinking dots. */
|
|
2359
|
+
@keyframes boff-explore-sheen {
|
|
2360
|
+
from { transform: translateX(-120%); }
|
|
2361
|
+
to { transform: translateX(220%); }
|
|
2362
|
+
}
|
|
2363
|
+
.boff-explore-busy { position: relative; overflow: hidden; }
|
|
2364
|
+
.boff-explore-busy::after {
|
|
2365
|
+
content: "";
|
|
2366
|
+
position: absolute;
|
|
2367
|
+
inset: 0;
|
|
2368
|
+
pointer-events: none;
|
|
2369
|
+
background: linear-gradient(100deg, transparent 20%, hsl(var(--primary) / 0.22) 50%, transparent 80%);
|
|
2370
|
+
animation: boff-explore-sheen 1.5s ease-in-out infinite;
|
|
2371
|
+
}
|
|
2372
|
+
|
|
2373
|
+
/* Every one of the above is decoration. Reduced motion removes the movement and keeps the
|
|
2374
|
+
final state, rather than leaving content mid-animation and invisible. */
|
|
2375
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2376
|
+
.boff-explore-aura::before,
|
|
2377
|
+
.boff-explore-busy::after { animation: none; }
|
|
2378
|
+
.boff-explore-rise { animation: none; opacity: 1; transform: none; }
|
|
2379
|
+
}
|
|
2000
2380
|
`;
|
|
2001
2381
|
function ExploreStyles() {
|
|
2002
2382
|
return /* @__PURE__ */ jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: EXPLORE_CSS } });
|
|
@@ -2205,6 +2585,7 @@ function UserBubble({ message }) {
|
|
|
2205
2585
|
) });
|
|
2206
2586
|
}
|
|
2207
2587
|
function AssistantBubble({
|
|
2588
|
+
strings: T,
|
|
2208
2589
|
message,
|
|
2209
2590
|
activity,
|
|
2210
2591
|
onNavigate,
|
|
@@ -2221,7 +2602,7 @@ function AssistantBubble({
|
|
|
2221
2602
|
ref: anchorRef,
|
|
2222
2603
|
"data-boff-explore": "assistant",
|
|
2223
2604
|
"data-status": message.status,
|
|
2224
|
-
className: "flex scroll-mt-4 gap-3",
|
|
2605
|
+
className: "boff-explore-rise flex scroll-mt-4 gap-3",
|
|
2225
2606
|
children: [
|
|
2226
2607
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2227
2608
|
"span",
|
|
@@ -2252,7 +2633,7 @@ function AssistantBubble({
|
|
|
2252
2633
|
event.preventDefault();
|
|
2253
2634
|
onNavigate("/contact");
|
|
2254
2635
|
},
|
|
2255
|
-
children:
|
|
2636
|
+
children: T.askHuman
|
|
2256
2637
|
}
|
|
2257
2638
|
),
|
|
2258
2639
|
"."
|
|
@@ -2267,7 +2648,7 @@ function AssistantBubble({
|
|
|
2267
2648
|
streaming ? /* @__PURE__ */ jsxRuntime.jsx(ThinkingIndicator, { activity }) : null,
|
|
2268
2649
|
failed && !body ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-2xl rounded-tl-md border border-border bg-muted px-4 py-3 text-sm text-muted-foreground", children: "That answer didn't come through. Try asking again." }) : null,
|
|
2269
2650
|
message.references.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
2270
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children:
|
|
2651
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.sources }),
|
|
2271
2652
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3", children: message.references.map((reference) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2272
2653
|
ReferenceCard,
|
|
2273
2654
|
{
|
|
@@ -2287,7 +2668,7 @@ function AssistantBubble({
|
|
|
2287
2668
|
`${cta.kind}-${cta.url}`
|
|
2288
2669
|
)) }) : null,
|
|
2289
2670
|
message.status === "COMPLETED" && (message.followUps?.length ?? 0) > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5 pt-0.5", children: [
|
|
2290
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-medium text-muted-foreground", children:
|
|
2671
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-medium text-muted-foreground", children: T.nextYouCouldAsk }),
|
|
2291
2672
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: (message.followUps ?? []).map((question) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2292
2673
|
"button",
|
|
2293
2674
|
{
|
|
@@ -2349,6 +2730,7 @@ function ErrorBanner({
|
|
|
2349
2730
|
);
|
|
2350
2731
|
}
|
|
2351
2732
|
function PromptCarousel({
|
|
2733
|
+
strings: T,
|
|
2352
2734
|
prompts,
|
|
2353
2735
|
onPrompt,
|
|
2354
2736
|
disabled
|
|
@@ -2363,6 +2745,11 @@ function PromptCarousel({
|
|
|
2363
2745
|
},
|
|
2364
2746
|
[count]
|
|
2365
2747
|
);
|
|
2748
|
+
const swipe = useSwipe({
|
|
2749
|
+
onSwipeLeft: () => go(1),
|
|
2750
|
+
onSwipeRight: () => go(-1),
|
|
2751
|
+
enabled: count > 1
|
|
2752
|
+
});
|
|
2366
2753
|
React.useEffect(() => {
|
|
2367
2754
|
if (paused || disabled || count < 2) return;
|
|
2368
2755
|
if (typeof window !== "undefined" && window.matchMedia?.("(prefers-reduced-motion: reduce)").matches) {
|
|
@@ -2375,7 +2762,7 @@ function PromptCarousel({
|
|
|
2375
2762
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2376
2763
|
"div",
|
|
2377
2764
|
{
|
|
2378
|
-
className: "flex min-w-0 items-center gap-1.5",
|
|
2765
|
+
className: "flex min-w-0 touch-pan-y items-center gap-1.5",
|
|
2379
2766
|
role: "group",
|
|
2380
2767
|
"aria-roledescription": "carousel",
|
|
2381
2768
|
"aria-label": "Example questions",
|
|
@@ -2383,14 +2770,15 @@ function PromptCarousel({
|
|
|
2383
2770
|
onMouseLeave: () => setPaused(false),
|
|
2384
2771
|
onFocusCapture: () => setPaused(true),
|
|
2385
2772
|
onBlurCapture: () => setPaused(false),
|
|
2773
|
+
...swipe,
|
|
2386
2774
|
children: [
|
|
2387
2775
|
count > 1 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2388
2776
|
"button",
|
|
2389
2777
|
{
|
|
2390
2778
|
type: "button",
|
|
2391
|
-
"aria-label":
|
|
2779
|
+
"aria-label": T.prevSuggestion,
|
|
2392
2780
|
onClick: () => go(-1),
|
|
2393
|
-
className: "
|
|
2781
|
+
className: "inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
2394
2782
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "h-4 w-4" })
|
|
2395
2783
|
}
|
|
2396
2784
|
) : null,
|
|
@@ -2417,7 +2805,7 @@ function PromptCarousel({
|
|
|
2417
2805
|
"button",
|
|
2418
2806
|
{
|
|
2419
2807
|
type: "button",
|
|
2420
|
-
"aria-label":
|
|
2808
|
+
"aria-label": T.nextSuggestion,
|
|
2421
2809
|
onClick: () => go(1),
|
|
2422
2810
|
className: "inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
2423
2811
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4" })
|
|
@@ -2428,6 +2816,7 @@ function PromptCarousel({
|
|
|
2428
2816
|
);
|
|
2429
2817
|
}
|
|
2430
2818
|
function ProductStrip({
|
|
2819
|
+
strings: T,
|
|
2431
2820
|
products,
|
|
2432
2821
|
focusProduct,
|
|
2433
2822
|
onFocus
|
|
@@ -2462,7 +2851,7 @@ function ProductStrip({
|
|
|
2462
2851
|
"aria-pressed": focusProduct === null,
|
|
2463
2852
|
onClick: () => onFocus(null),
|
|
2464
2853
|
className: chipClass(focusProduct === null),
|
|
2465
|
-
children:
|
|
2854
|
+
children: T.allProducts
|
|
2466
2855
|
}
|
|
2467
2856
|
),
|
|
2468
2857
|
products.map((product) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -2491,7 +2880,7 @@ function ProductStrip({
|
|
|
2491
2880
|
"aria-expanded": expanded,
|
|
2492
2881
|
onClick: () => setExpanded((v) => !v),
|
|
2493
2882
|
className: "shrink-0 whitespace-nowrap rounded-full px-2 py-1 text-xs font-medium text-primary underline-offset-4 hover:underline focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
2494
|
-
children: expanded ?
|
|
2883
|
+
children: expanded ? T.showLess : `${T.showAll} ${products.length}`
|
|
2495
2884
|
}
|
|
2496
2885
|
) : null
|
|
2497
2886
|
]
|
|
@@ -2599,6 +2988,7 @@ function DisclaimerDialog({
|
|
|
2599
2988
|
);
|
|
2600
2989
|
}
|
|
2601
2990
|
function WelcomeState({
|
|
2991
|
+
strings: T,
|
|
2602
2992
|
title,
|
|
2603
2993
|
body,
|
|
2604
2994
|
prompts,
|
|
@@ -2608,43 +2998,45 @@ function WelcomeState({
|
|
|
2608
2998
|
onFocus,
|
|
2609
2999
|
disabled
|
|
2610
3000
|
}) {
|
|
2611
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto w-full max-w-3xl px-4 py-
|
|
2612
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
|
|
3001
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "boff-explore-aura mx-auto my-auto w-full max-w-3xl px-4 py-6 sm:py-8 lg:py-10", children: [
|
|
3002
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "boff-explore-rise text-center", children: [
|
|
2613
3003
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "inline-flex items-center gap-1.5 rounded-full border border-border bg-muted px-3 py-1 text-xs font-medium text-muted-foreground", children: [
|
|
2614
3004
|
/* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-3.5 w-3.5" }),
|
|
2615
|
-
|
|
3005
|
+
T.badge
|
|
2616
3006
|
] }),
|
|
2617
3007
|
/* @__PURE__ */ jsxRuntime.jsx("h1", { className: "mt-4 text-balance break-words text-2xl font-bold tracking-tight sm:text-4xl", children: title }),
|
|
2618
3008
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mx-auto mt-2.5 max-w-2xl text-pretty text-sm leading-relaxed text-muted-foreground sm:text-lg", children: body })
|
|
2619
3009
|
] }),
|
|
2620
|
-
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "mt-
|
|
3010
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "boff-explore-rise boff-explore-rise-1 mt-6 grid grid-cols-3 gap-2 sm:mt-7 sm:gap-2.5", children: CAPABILITIES.map(({ icon: Icon, body: capBody }, i) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2621
3011
|
"li",
|
|
2622
3012
|
{
|
|
2623
|
-
className: "rounded-xl border border-border/70 bg-card/60 p-
|
|
3013
|
+
className: "rounded-xl border border-border/70 bg-card/60 p-2.5 text-center transition-colors hover:border-border sm:p-3.5 sm:text-left",
|
|
2624
3014
|
children: [
|
|
2625
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-
|
|
2626
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
2627
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs leading-relaxed text-muted-foreground", children: capBody })
|
|
3015
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mx-auto mb-1.5 flex h-7 w-7 items-center justify-center rounded-lg bg-primary/10 text-primary sm:mx-0 sm:mb-2.5 sm:h-8 sm:w-8", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-3.5 w-3.5 sm:h-4 sm:w-4" }) }),
|
|
3016
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] font-semibold leading-tight text-card-foreground sm:text-sm sm:leading-normal", children: T.capabilities[i] ?? "" }),
|
|
3017
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 hidden text-xs leading-relaxed text-muted-foreground sm:block", children: capBody })
|
|
2628
3018
|
]
|
|
2629
3019
|
},
|
|
2630
|
-
|
|
3020
|
+
i
|
|
2631
3021
|
)) }),
|
|
2632
|
-
prompts.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8", children: [
|
|
2633
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children:
|
|
3022
|
+
prompts.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "boff-explore-rise boff-explore-rise-2 mt-8", children: [
|
|
3023
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.tryAsking }),
|
|
2634
3024
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2635
3025
|
PromptCarousel,
|
|
2636
3026
|
{
|
|
3027
|
+
strings: T,
|
|
2637
3028
|
prompts,
|
|
2638
3029
|
onPrompt,
|
|
2639
3030
|
disabled
|
|
2640
3031
|
}
|
|
2641
3032
|
)
|
|
2642
3033
|
] }) : null,
|
|
2643
|
-
products.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-6", children: [
|
|
2644
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children:
|
|
3034
|
+
products.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "boff-explore-rise boff-explore-rise-3 mt-6", children: [
|
|
3035
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.focusProduct }),
|
|
2645
3036
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2646
3037
|
ProductStrip,
|
|
2647
3038
|
{
|
|
3039
|
+
strings: T,
|
|
2648
3040
|
products,
|
|
2649
3041
|
focusProduct,
|
|
2650
3042
|
onFocus
|
|
@@ -2663,7 +3055,8 @@ function ExplorePage({
|
|
|
2663
3055
|
onNavigate,
|
|
2664
3056
|
onSend,
|
|
2665
3057
|
welcomeTitle,
|
|
2666
|
-
welcomeBody
|
|
3058
|
+
welcomeBody,
|
|
3059
|
+
locale
|
|
2667
3060
|
}) {
|
|
2668
3061
|
const pageUrl = React.useMemo(
|
|
2669
3062
|
() => typeof window === "undefined" ? void 0 : window.location.href,
|
|
@@ -2707,8 +3100,15 @@ function ExplorePage({
|
|
|
2707
3100
|
}
|
|
2708
3101
|
});
|
|
2709
3102
|
speechStopRef.current = speech.stop;
|
|
3103
|
+
const activeLocale = React.useMemo(
|
|
3104
|
+
() => resolveExploreLocale(locale),
|
|
3105
|
+
[locale]
|
|
3106
|
+
);
|
|
3107
|
+
const T = React.useMemo(() => exploreStrings(activeLocale), [activeLocale]);
|
|
3108
|
+
const rtl = isRtlLocale(activeLocale);
|
|
2710
3109
|
const [disclaimerOpen, setDisclaimerOpen] = React.useState(false);
|
|
2711
3110
|
const [shareLabel, setShareLabel] = React.useState("Share");
|
|
3111
|
+
const [shareUrl, setShareUrl] = React.useState(null);
|
|
2712
3112
|
const scrollRef = React.useRef(null);
|
|
2713
3113
|
const latestAssistantRef = React.useRef(null);
|
|
2714
3114
|
const alignedForRef = React.useRef(null);
|
|
@@ -2765,6 +3165,7 @@ function ExplorePage({
|
|
|
2765
3165
|
}, [activity, latestAssistantId, messages]);
|
|
2766
3166
|
const handleShare = React.useCallback(async () => {
|
|
2767
3167
|
setShareLabel("Copying\u2026");
|
|
3168
|
+
setShareUrl(null);
|
|
2768
3169
|
const token = await createShareLink();
|
|
2769
3170
|
if (!token) {
|
|
2770
3171
|
setShareLabel("Unavailable");
|
|
@@ -2776,11 +3177,11 @@ function ExplorePage({
|
|
|
2776
3177
|
try {
|
|
2777
3178
|
await navigator.clipboard.writeText(url);
|
|
2778
3179
|
setShareLabel("Copied");
|
|
3180
|
+
setTimeout(() => setShareLabel("Share"), 2500);
|
|
2779
3181
|
} catch {
|
|
2780
|
-
|
|
3182
|
+
setShareUrl(url);
|
|
2781
3183
|
setShareLabel("Share");
|
|
2782
3184
|
}
|
|
2783
|
-
setTimeout(() => setShareLabel("Share"), 2500);
|
|
2784
3185
|
}, [createShareLink, pageUrl]);
|
|
2785
3186
|
const submitDraft = React.useCallback(() => {
|
|
2786
3187
|
const text = draft.trim();
|
|
@@ -2819,6 +3220,8 @@ function ExplorePage({
|
|
|
2819
3220
|
{
|
|
2820
3221
|
"data-boff-explore": "page",
|
|
2821
3222
|
"data-phase": phase,
|
|
3223
|
+
"data-locale": activeLocale,
|
|
3224
|
+
dir: rtl ? "rtl" : void 0,
|
|
2822
3225
|
className: cn(
|
|
2823
3226
|
"flex w-full min-w-0 flex-col overflow-x-hidden bg-background text-foreground",
|
|
2824
3227
|
heightMode === "auto" && "min-h-[70vh]",
|
|
@@ -2980,10 +3383,17 @@ function ExplorePage({
|
|
|
2980
3383
|
role: "log",
|
|
2981
3384
|
"aria-live": "polite",
|
|
2982
3385
|
"aria-label": "Explore conversation",
|
|
2983
|
-
className:
|
|
3386
|
+
className: cn(
|
|
3387
|
+
"boff-explore-scroll min-h-0 min-w-0 flex-1 overflow-y-auto overflow-x-hidden",
|
|
3388
|
+
// Only while the welcome state is showing: a flex column is what lets its
|
|
3389
|
+
// `my-auto` centre the block on a tall screen. The transcript must NOT be a flex
|
|
3390
|
+
// column — that would fight the natural top-down flow of messages.
|
|
3391
|
+
showWelcome && "flex flex-col"
|
|
3392
|
+
),
|
|
2984
3393
|
children: showWelcome ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2985
3394
|
WelcomeState,
|
|
2986
3395
|
{
|
|
3396
|
+
strings: T,
|
|
2987
3397
|
title: resolvedTitle,
|
|
2988
3398
|
body: resolvedBody,
|
|
2989
3399
|
prompts,
|
|
@@ -2997,6 +3407,7 @@ function ExplorePage({
|
|
|
2997
3407
|
(message) => message.role === "USER" ? /* @__PURE__ */ jsxRuntime.jsx(UserBubble, { message }, message.id) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
2998
3408
|
AssistantBubble,
|
|
2999
3409
|
{
|
|
3410
|
+
strings: T,
|
|
3000
3411
|
message,
|
|
3001
3412
|
activity,
|
|
3002
3413
|
onNavigate,
|
|
@@ -3033,6 +3444,7 @@ function ExplorePage({
|
|
|
3033
3444
|
{
|
|
3034
3445
|
className: cn(
|
|
3035
3446
|
"flex min-w-0 items-end gap-2 rounded-2xl border bg-card p-2 shadow-sm transition-all",
|
|
3447
|
+
busy && "boff-explore-busy",
|
|
3036
3448
|
overLimit ? "border-destructive/60" : "border-border focus-within:border-primary/40 focus-within:ring-1 focus-within:ring-ring"
|
|
3037
3449
|
),
|
|
3038
3450
|
children: [
|
|
@@ -3052,7 +3464,9 @@ function ExplorePage({
|
|
|
3052
3464
|
composingRef.current = false;
|
|
3053
3465
|
},
|
|
3054
3466
|
"aria-label": "Ask a question",
|
|
3055
|
-
placeholder: composerDisabled ? phase === "limited" ? "Message limit reached \u2014 please try again later" : "Explore is unavailable right now" : focusedProductName ?
|
|
3467
|
+
placeholder: composerDisabled ? phase === "limited" ? "Message limit reached \u2014 please try again later" : "Explore is unavailable right now" : focusedProductName ? fill(T.placeholderProduct, {
|
|
3468
|
+
product: focusedProductName
|
|
3469
|
+
}) : T.placeholder,
|
|
3056
3470
|
className: "max-h-[200px] min-h-[44px] w-full min-w-0 flex-1 resize-none border-0 bg-transparent px-2 py-2.5 text-sm shadow-none focus-visible:ring-0 md:text-sm"
|
|
3057
3471
|
}
|
|
3058
3472
|
),
|
|
@@ -3065,9 +3479,9 @@ function ExplorePage({
|
|
|
3065
3479
|
size: "icon",
|
|
3066
3480
|
variant: speech.listening ? "default" : "ghost",
|
|
3067
3481
|
disabled: composerDisabled,
|
|
3068
|
-
"aria-label": speech.listening ?
|
|
3482
|
+
"aria-label": speech.listening ? T.stopDictating : T.dictate,
|
|
3069
3483
|
"aria-pressed": speech.listening,
|
|
3070
|
-
title: speech.listening ?
|
|
3484
|
+
title: speech.listening ? T.stopDictating : T.dictate,
|
|
3071
3485
|
onClick: speech.toggle,
|
|
3072
3486
|
className: cn(speech.listening && "animate-pulse"),
|
|
3073
3487
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mic, { className: "h-4 w-4" })
|
|
@@ -3144,8 +3558,30 @@ function ExplorePage({
|
|
|
3144
3558
|
}
|
|
3145
3559
|
)
|
|
3146
3560
|
] }),
|
|
3561
|
+
shareUrl ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center gap-2", children: [
|
|
3562
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3563
|
+
"input",
|
|
3564
|
+
{
|
|
3565
|
+
"data-boff-explore": "share-url",
|
|
3566
|
+
readOnly: true,
|
|
3567
|
+
value: shareUrl,
|
|
3568
|
+
"aria-label": "Read-only link to this conversation",
|
|
3569
|
+
onFocus: (event) => event.currentTarget.select(),
|
|
3570
|
+
className: "min-w-0 flex-1 rounded-md border border-border bg-muted px-2 py-1 text-xs text-muted-foreground"
|
|
3571
|
+
}
|
|
3572
|
+
),
|
|
3573
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3574
|
+
"button",
|
|
3575
|
+
{
|
|
3576
|
+
type: "button",
|
|
3577
|
+
className: "shrink-0 text-xs underline underline-offset-2",
|
|
3578
|
+
onClick: () => setShareUrl(null),
|
|
3579
|
+
children: "Done"
|
|
3580
|
+
}
|
|
3581
|
+
)
|
|
3582
|
+
] }) : null,
|
|
3147
3583
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground", children: [
|
|
3148
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children:
|
|
3584
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children: T.disclaimerShort }),
|
|
3149
3585
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
3150
3586
|
"button",
|
|
3151
3587
|
{
|
|
@@ -3153,7 +3589,7 @@ function ExplorePage({
|
|
|
3153
3589
|
"data-boff-explore": "disclaimer",
|
|
3154
3590
|
onClick: () => setDisclaimerOpen(true),
|
|
3155
3591
|
className: "shrink-0 underline underline-offset-2 transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
3156
|
-
children:
|
|
3592
|
+
children: T.disclaimer
|
|
3157
3593
|
}
|
|
3158
3594
|
)
|
|
3159
3595
|
] })
|