@burdenoff/website-sdk 2026.829.4 → 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/index.js CHANGED
@@ -4765,6 +4765,289 @@ function ElectronDownloadLink({
4765
4765
  }
4766
4766
  );
4767
4767
  }
4768
+
4769
+ // src/components/explore-i18n.ts
4770
+ var EXPLORE_LOCALES = ["en", "zh", "hi", "es", "ar", "ta"];
4771
+ var RTL_LOCALES = /* @__PURE__ */ new Set(["ar"]);
4772
+ function isRtlLocale(locale) {
4773
+ return RTL_LOCALES.has(locale);
4774
+ }
4775
+ var EN = {
4776
+ badge: "AI answers, grounded in our documentation",
4777
+ welcomeTitle: "Ask anything about our products",
4778
+ welcomeBody: "Describe what you are trying to do and I will point you at the product, the page and the next step.",
4779
+ tryAsking: "Try asking",
4780
+ focusProduct: "Focus on a product",
4781
+ allProducts: "All products",
4782
+ showAll: "All",
4783
+ showLess: "Show less",
4784
+ sources: "Sources",
4785
+ nextYouCouldAsk: "Next you could ask",
4786
+ placeholder: "Ask anything about our products\u2026",
4787
+ placeholderProduct: "Ask about {product}\u2026",
4788
+ send: "Send",
4789
+ stop: "Stop",
4790
+ newChat: "New chat",
4791
+ history: "History",
4792
+ clearHistory: "Clear history",
4793
+ share: "Share",
4794
+ copied: "Copied",
4795
+ copying: "Copying\u2026",
4796
+ shareUnavailable: "Unavailable",
4797
+ disclaimer: "Disclaimer",
4798
+ disclaimerShort: "Grounded in our docs \u2014 check anything important.",
4799
+ dictate: "Dictate your question",
4800
+ stopDictating: "Stop dictating",
4801
+ noAnswer: "I couldn't find this in our documentation, so the answer below is not grounded in a source. Try rephrasing, or",
4802
+ askHuman: "ask a human",
4803
+ prevSuggestion: "Previous suggestion",
4804
+ nextSuggestion: "Next suggestion",
4805
+ capabilities: [
4806
+ "Grounded in our own docs",
4807
+ "Compare across the ecosystem",
4808
+ "Straight to the right page"
4809
+ ],
4810
+ prompts: [
4811
+ "What does this product actually do?",
4812
+ "Which product fits my team?",
4813
+ "How do I get started, step by step?",
4814
+ "How much does it cost?"
4815
+ ]
4816
+ };
4817
+ var ZH = {
4818
+ badge: "\u57FA\u4E8E\u6211\u4EEC\u6587\u6863\u7684 AI \u56DE\u7B54",
4819
+ welcomeTitle: "\u5173\u4E8E\u6211\u4EEC\u7684\u4EA7\u54C1\uFF0C\u968F\u4FBF\u95EE",
4820
+ 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",
4821
+ tryAsking: "\u8BD5\u7740\u95EE",
4822
+ focusProduct: "\u805A\u7126\u67D0\u4E2A\u4EA7\u54C1",
4823
+ allProducts: "\u5168\u90E8\u4EA7\u54C1",
4824
+ showAll: "\u5168\u90E8",
4825
+ showLess: "\u6536\u8D77",
4826
+ sources: "\u6765\u6E90",
4827
+ nextYouCouldAsk: "\u4F60\u8FD8\u53EF\u4EE5\u95EE",
4828
+ placeholder: "\u5173\u4E8E\u6211\u4EEC\u7684\u4EA7\u54C1\uFF0C\u968F\u4FBF\u95EE\u2026",
4829
+ placeholderProduct: "\u8BE2\u95EE\u5173\u4E8E {product} \u7684\u95EE\u9898\u2026",
4830
+ send: "\u53D1\u9001",
4831
+ stop: "\u505C\u6B62",
4832
+ newChat: "\u65B0\u5BF9\u8BDD",
4833
+ history: "\u5386\u53F2",
4834
+ clearHistory: "\u6E05\u9664\u5386\u53F2",
4835
+ share: "\u5206\u4EAB",
4836
+ copied: "\u5DF2\u590D\u5236",
4837
+ copying: "\u590D\u5236\u4E2D\u2026",
4838
+ shareUnavailable: "\u4E0D\u53EF\u7528",
4839
+ disclaimer: "\u514D\u8D23\u58F0\u660E",
4840
+ disclaimerShort: "\u5185\u5BB9\u57FA\u4E8E\u6211\u4EEC\u7684\u6587\u6863\uFF0C\u91CD\u8981\u4FE1\u606F\u8BF7\u81EA\u884C\u6838\u5BF9\u3002",
4841
+ dictate: "\u8BED\u97F3\u8F93\u5165",
4842
+ stopDictating: "\u505C\u6B62\u8BED\u97F3\u8F93\u5165",
4843
+ 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",
4844
+ askHuman: "\u8054\u7CFB\u6211\u4EEC",
4845
+ prevSuggestion: "\u4E0A\u4E00\u4E2A\u5EFA\u8BAE",
4846
+ nextSuggestion: "\u4E0B\u4E00\u4E2A\u5EFA\u8BAE",
4847
+ capabilities: ["\u57FA\u4E8E\u6211\u4EEC\u81EA\u5DF1\u7684\u6587\u6863", "\u8DE8\u4EA7\u54C1\u5BF9\u6BD4", "\u76F4\u8FBE\u6B63\u786E\u7684\u9875\u9762"],
4848
+ prompts: [
4849
+ "\u8FD9\u4E2A\u4EA7\u54C1\u5230\u5E95\u80FD\u505A\u4EC0\u4E48\uFF1F",
4850
+ "\u54EA\u4E2A\u4EA7\u54C1\u9002\u5408\u6211\u7684\u56E2\u961F\uFF1F",
4851
+ "\u5982\u4F55\u4E00\u6B65\u6B65\u5F00\u59CB\u4F7F\u7528\uFF1F",
4852
+ "\u4EF7\u683C\u662F\u591A\u5C11\uFF1F"
4853
+ ]
4854
+ };
4855
+ var HI = {
4856
+ 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",
4857
+ 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",
4858
+ 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",
4859
+ tryAsking: "\u092F\u0939 \u092A\u0942\u091B\u0915\u0930 \u0926\u0947\u0916\u0947\u0902",
4860
+ focusProduct: "\u0915\u093F\u0938\u0940 \u0909\u0924\u094D\u092A\u093E\u0926 \u092A\u0930 \u0927\u094D\u092F\u093E\u0928 \u0926\u0947\u0902",
4861
+ allProducts: "\u0938\u092D\u0940 \u0909\u0924\u094D\u092A\u093E\u0926",
4862
+ showAll: "\u0938\u092D\u0940",
4863
+ showLess: "\u0915\u092E \u0926\u093F\u0916\u093E\u090F\u0901",
4864
+ sources: "\u0938\u094D\u0930\u094B\u0924",
4865
+ nextYouCouldAsk: "\u0906\u0917\u0947 \u0906\u092A \u092A\u0942\u091B \u0938\u0915\u0924\u0947 \u0939\u0948\u0902",
4866
+ 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",
4867
+ placeholderProduct: "{product} \u0915\u0947 \u092C\u093E\u0930\u0947 \u092E\u0947\u0902 \u092A\u0942\u091B\u0947\u0902\u2026",
4868
+ send: "\u092D\u0947\u091C\u0947\u0902",
4869
+ stop: "\u0930\u094B\u0915\u0947\u0902",
4870
+ newChat: "\u0928\u0908 \u092C\u093E\u0924\u091A\u0940\u0924",
4871
+ history: "\u0907\u0924\u093F\u0939\u093E\u0938",
4872
+ clearHistory: "\u0907\u0924\u093F\u0939\u093E\u0938 \u092E\u093F\u091F\u093E\u090F\u0901",
4873
+ share: "\u0938\u093E\u091D\u093E \u0915\u0930\u0947\u0902",
4874
+ copied: "\u0915\u0949\u092A\u0940 \u0939\u094B \u0917\u092F\u093E",
4875
+ copying: "\u0915\u0949\u092A\u0940 \u0939\u094B \u0930\u0939\u093E \u0939\u0948\u2026",
4876
+ shareUnavailable: "\u0909\u092A\u0932\u092C\u094D\u0927 \u0928\u0939\u0940\u0902",
4877
+ disclaimer: "\u0905\u0938\u094D\u0935\u0940\u0915\u0930\u0923",
4878
+ 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",
4879
+ dictate: "\u092C\u094B\u0932\u0915\u0930 \u092A\u0942\u091B\u0947\u0902",
4880
+ stopDictating: "\u092C\u094B\u0932\u0928\u093E \u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
4881
+ 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",
4882
+ askHuman: "\u0939\u092E\u0938\u0947 \u0938\u0902\u092A\u0930\u094D\u0915 \u0915\u0930\u0947\u0902",
4883
+ prevSuggestion: "\u092A\u093F\u091B\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
4884
+ nextSuggestion: "\u0905\u0917\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
4885
+ capabilities: [
4886
+ "\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",
4887
+ "\u0938\u092D\u0940 \u0909\u0924\u094D\u092A\u093E\u0926\u094B\u0902 \u0915\u0940 \u0924\u0941\u0932\u0928\u093E \u0915\u0930\u0947\u0902",
4888
+ "\u0938\u0940\u0927\u0947 \u0938\u0939\u0940 \u092A\u0947\u091C \u092A\u0930"
4889
+ ],
4890
+ prompts: [
4891
+ "\u092F\u0939 \u0909\u0924\u094D\u092A\u093E\u0926 \u0905\u0938\u0932 \u092E\u0947\u0902 \u0915\u094D\u092F\u093E \u0915\u0930\u0924\u093E \u0939\u0948?",
4892
+ "\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?",
4893
+ "\u0936\u0941\u0930\u0941\u0906\u0924 \u0915\u0948\u0938\u0947 \u0915\u0930\u0947\u0902, \u091A\u0930\u0923 \u0926\u0930 \u091A\u0930\u0923?",
4894
+ "\u0907\u0938\u0915\u0940 \u0915\u0940\u092E\u0924 \u0915\u093F\u0924\u0928\u0940 \u0939\u0948?"
4895
+ ]
4896
+ };
4897
+ var ES = {
4898
+ badge: "Respuestas de IA basadas en nuestra documentaci\xF3n",
4899
+ welcomeTitle: "Pregunta lo que quieras sobre nuestros productos",
4900
+ welcomeBody: "Cu\xE9ntame qu\xE9 necesitas hacer y te indicar\xE9 el producto, la p\xE1gina y el siguiente paso.",
4901
+ tryAsking: "Prueba a preguntar",
4902
+ focusProduct: "Centrarse en un producto",
4903
+ allProducts: "Todos los productos",
4904
+ showAll: "Todos",
4905
+ showLess: "Ver menos",
4906
+ sources: "Fuentes",
4907
+ nextYouCouldAsk: "Tambi\xE9n puedes preguntar",
4908
+ placeholder: "Pregunta lo que quieras sobre nuestros productos\u2026",
4909
+ placeholderProduct: "Pregunta sobre {product}\u2026",
4910
+ send: "Enviar",
4911
+ stop: "Detener",
4912
+ newChat: "Nueva conversaci\xF3n",
4913
+ history: "Historial",
4914
+ clearHistory: "Borrar historial",
4915
+ share: "Compartir",
4916
+ copied: "Copiado",
4917
+ copying: "Copiando\u2026",
4918
+ shareUnavailable: "No disponible",
4919
+ disclaimer: "Aviso",
4920
+ disclaimerShort: "Basado en nuestra documentaci\xF3n: comprueba cualquier dato importante.",
4921
+ dictate: "Dictar tu pregunta",
4922
+ stopDictating: "Dejar de dictar",
4923
+ 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",
4924
+ askHuman: "habla con una persona",
4925
+ prevSuggestion: "Sugerencia anterior",
4926
+ nextSuggestion: "Sugerencia siguiente",
4927
+ capabilities: [
4928
+ "Basado en nuestra documentaci\xF3n",
4929
+ "Compara todo el ecosistema",
4930
+ "Directo a la p\xE1gina correcta"
4931
+ ],
4932
+ prompts: [
4933
+ "\xBFQu\xE9 hace realmente este producto?",
4934
+ "\xBFQu\xE9 producto encaja con mi equipo?",
4935
+ "\xBFC\xF3mo empiezo, paso a paso?",
4936
+ "\xBFCu\xE1nto cuesta?"
4937
+ ]
4938
+ };
4939
+ var AR = {
4940
+ 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",
4941
+ welcomeTitle: "\u0627\u0633\u0623\u0644 \u0623\u064A \u0634\u064A\u0621 \u0639\u0646 \u0645\u0646\u062A\u062C\u0627\u062A\u0646\u0627",
4942
+ 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.",
4943
+ tryAsking: "\u062C\u0631\u0651\u0628 \u0623\u0646 \u062A\u0633\u0623\u0644",
4944
+ focusProduct: "\u0627\u0644\u062A\u0631\u0643\u064A\u0632 \u0639\u0644\u0649 \u0645\u0646\u062A\u062C",
4945
+ allProducts: "\u0643\u0644 \u0627\u0644\u0645\u0646\u062A\u062C\u0627\u062A",
4946
+ showAll: "\u0627\u0644\u0643\u0644",
4947
+ showLess: "\u0639\u0631\u0636 \u0623\u0642\u0644",
4948
+ sources: "\u0627\u0644\u0645\u0635\u0627\u062F\u0631",
4949
+ nextYouCouldAsk: "\u064A\u0645\u0643\u0646\u0643 \u0623\u0646 \u062A\u0633\u0623\u0644 \u0628\u0639\u062F \u0630\u0644\u0643",
4950
+ placeholder: "\u0627\u0633\u0623\u0644 \u0623\u064A \u0634\u064A\u0621 \u0639\u0646 \u0645\u0646\u062A\u062C\u0627\u062A\u0646\u0627\u2026",
4951
+ placeholderProduct: "\u0627\u0633\u0623\u0644 \u0639\u0646 {product}\u2026",
4952
+ send: "\u0625\u0631\u0633\u0627\u0644",
4953
+ stop: "\u0625\u064A\u0642\u0627\u0641",
4954
+ newChat: "\u0645\u062D\u0627\u062F\u062B\u0629 \u062C\u062F\u064A\u062F\u0629",
4955
+ history: "\u0627\u0644\u0633\u062C\u0644",
4956
+ clearHistory: "\u0645\u0633\u062D \u0627\u0644\u0633\u062C\u0644",
4957
+ share: "\u0645\u0634\u0627\u0631\u0643\u0629",
4958
+ copied: "\u062A\u0645 \u0627\u0644\u0646\u0633\u062E",
4959
+ copying: "\u062C\u0627\u0631\u064D \u0627\u0644\u0646\u0633\u062E\u2026",
4960
+ shareUnavailable: "\u063A\u064A\u0631 \u0645\u062A\u0627\u062D",
4961
+ disclaimer: "\u0625\u062E\u0644\u0627\u0621 \u0645\u0633\u0624\u0648\u0644\u064A\u0629",
4962
+ 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.",
4963
+ dictate: "\u0623\u0645\u0644\u0650 \u0633\u0624\u0627\u0644\u0643",
4964
+ stopDictating: "\u0625\u064A\u0642\u0627\u0641 \u0627\u0644\u0625\u0645\u0644\u0627\u0621",
4965
+ 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",
4966
+ askHuman: "\u062A\u062D\u062F\u0651\u062B \u0625\u0644\u0649 \u0634\u062E\u0635",
4967
+ prevSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u0633\u0627\u0628\u0642",
4968
+ nextSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u062A\u0627\u0644\u064A",
4969
+ capabilities: [
4970
+ "\u0645\u0628\u0646\u064A \u0639\u0644\u0649 \u0648\u062B\u0627\u0626\u0642\u0646\u0627",
4971
+ "\u0642\u0627\u0631\u0646 \u0639\u0628\u0631 \u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629",
4972
+ "\u0645\u0628\u0627\u0634\u0631\u0629\u064B \u0625\u0644\u0649 \u0627\u0644\u0635\u0641\u062D\u0629 \u0627\u0644\u0635\u062D\u064A\u062D\u0629"
4973
+ ],
4974
+ prompts: [
4975
+ "\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",
4976
+ "\u0623\u064A \u0645\u0646\u062A\u062C \u064A\u0646\u0627\u0633\u0628 \u0641\u0631\u064A\u0642\u064A\u061F",
4977
+ "\u0643\u064A\u0641 \u0623\u0628\u062F\u0623 \u062E\u0637\u0648\u0629 \u0628\u062E\u0637\u0648\u0629\u061F",
4978
+ "\u0643\u0645 \u062A\u0628\u0644\u063A \u0627\u0644\u062A\u0643\u0644\u0641\u0629\u061F"
4979
+ ]
4980
+ };
4981
+ var TA = {
4982
+ 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",
4983
+ 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",
4984
+ 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.",
4985
+ tryAsking: "\u0B87\u0BA4\u0BC8\u0B95\u0BCD \u0B95\u0BC7\u0B9F\u0BCD\u0B9F\u0BC1\u0BAA\u0BCD \u0BAA\u0BBE\u0BB0\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
4986
+ focusProduct: "\u0B92\u0BB0\u0BC1 \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BBF\u0BB2\u0BCD \u0B95\u0BB5\u0BA9\u0BAE\u0BCD",
4987
+ allProducts: "\u0B85\u0BA9\u0BC8\u0BA4\u0BCD\u0BA4\u0BC1 \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BCD",
4988
+ showAll: "\u0B85\u0BA9\u0BC8\u0BA4\u0BCD\u0BA4\u0BC1\u0BAE\u0BCD",
4989
+ showLess: "\u0B95\u0BC1\u0BB1\u0BC8\u0BB5\u0BBE\u0B95\u0B95\u0BCD \u0B95\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1",
4990
+ sources: "\u0BAE\u0BC2\u0BB2\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
4991
+ nextYouCouldAsk: "\u0B85\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1 \u0BA8\u0BC0\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B95\u0BC7\u0B9F\u0BCD\u0B95\u0BB2\u0BBE\u0BAE\u0BCD",
4992
+ 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",
4993
+ placeholderProduct: "{product} \u0BAA\u0BB1\u0BCD\u0BB1\u0BBF\u0B95\u0BCD \u0B95\u0BC7\u0BB3\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD\u2026",
4994
+ send: "\u0B85\u0BA9\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1",
4995
+ stop: "\u0BA8\u0BBF\u0BB1\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1",
4996
+ newChat: "\u0BAA\u0BC1\u0BA4\u0BBF\u0BAF \u0B89\u0BB0\u0BC8\u0BAF\u0BBE\u0B9F\u0BB2\u0BCD",
4997
+ history: "\u0BB5\u0BB0\u0BB2\u0BBE\u0BB1\u0BC1",
4998
+ clearHistory: "\u0BB5\u0BB0\u0BB2\u0BBE\u0BB1\u0BCD\u0BB1\u0BC8 \u0B85\u0BB4\u0BBF",
4999
+ share: "\u0BAA\u0B95\u0BBF\u0BB0\u0BCD",
5000
+ copied: "\u0BA8\u0B95\u0BB2\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1",
5001
+ copying: "\u0BA8\u0B95\u0BB2\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95\u0BBF\u0BB1\u0BA4\u0BC1\u2026",
5002
+ shareUnavailable: "\u0B95\u0BBF\u0B9F\u0BC8\u0B95\u0BCD\u0B95\u0BB5\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8",
5003
+ disclaimer: "\u0BAA\u0BCA\u0BB1\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1\u0BA4\u0BCD \u0BA4\u0BC1\u0BB1\u0BAA\u0BCD\u0BAA\u0BC1",
5004
+ 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.",
5005
+ 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",
5006
+ stopDictating: "\u0BAA\u0BC7\u0B9A\u0BC1\u0BB5\u0BA4\u0BC8 \u0BA8\u0BBF\u0BB1\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1",
5007
+ 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",
5008
+ 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",
5009
+ prevSuggestion: "\u0BAE\u0BC1\u0BA8\u0BCD\u0BA4\u0BC8\u0BAF \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
5010
+ nextSuggestion: "\u0B85\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4 \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
5011
+ capabilities: [
5012
+ "\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",
5013
+ "\u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BC8 \u0B92\u0BAA\u0BCD\u0BAA\u0BBF\u0B9F\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
5014
+ "\u0BA8\u0BC7\u0BB0\u0BBE\u0B95 \u0B9A\u0BB0\u0BBF\u0BAF\u0BBE\u0BA9 \u0BAA\u0B95\u0BCD\u0B95\u0BA4\u0BCD\u0BA4\u0BBF\u0BB1\u0BCD\u0B95\u0BC1"
5015
+ ],
5016
+ prompts: [
5017
+ "\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?",
5018
+ "\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?",
5019
+ "\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?",
5020
+ "\u0B87\u0BA4\u0BA9\u0BCD \u0BB5\u0BBF\u0BB2\u0BC8 \u0B8E\u0BA9\u0BCD\u0BA9?"
5021
+ ]
5022
+ };
5023
+ var STRINGS = {
5024
+ en: EN,
5025
+ zh: ZH,
5026
+ hi: HI,
5027
+ es: ES,
5028
+ ar: AR,
5029
+ ta: TA
5030
+ };
5031
+ function resolveExploreLocale(explicit) {
5032
+ const candidates = [
5033
+ explicit,
5034
+ typeof document === "undefined" ? void 0 : document.documentElement.lang,
5035
+ typeof navigator === "undefined" ? void 0 : navigator.language
5036
+ ];
5037
+ for (const candidate of candidates) {
5038
+ if (!candidate) continue;
5039
+ const primary = candidate.toLowerCase().split("-")[0];
5040
+ const match = EXPLORE_LOCALES.find((locale) => locale === primary);
5041
+ if (match) return match;
5042
+ }
5043
+ return "en";
5044
+ }
5045
+ function exploreStrings(locale) {
5046
+ return STRINGS[locale] ?? EN;
5047
+ }
5048
+ function fill(template, values) {
5049
+ return template.replace(/\{(\w+)\}/g, (match, key) => values[key] ?? match);
5050
+ }
4768
5051
  var PROSE_CSS = `
4769
5052
  .boff-prose {
4770
5053
  max-width: none;
@@ -6255,6 +6538,39 @@ function useSpeechInput({
6255
6538
  );
6256
6539
  return { supported, listening, interim, error, start, stop, toggle };
6257
6540
  }
6541
+ var SWIPE_THRESHOLD = 40;
6542
+ function useSwipe({
6543
+ onSwipeLeft,
6544
+ onSwipeRight,
6545
+ enabled = true
6546
+ }) {
6547
+ const start = React.useRef(null);
6548
+ const onPointerDown = React.useCallback(
6549
+ (event) => {
6550
+ if (!enabled) return;
6551
+ start.current = { x: event.clientX, y: event.clientY };
6552
+ },
6553
+ [enabled]
6554
+ );
6555
+ const onPointerUp = React.useCallback(
6556
+ (event) => {
6557
+ const from = start.current;
6558
+ start.current = null;
6559
+ if (!enabled || !from) return;
6560
+ const dx = event.clientX - from.x;
6561
+ const dy = event.clientY - from.y;
6562
+ if (Math.abs(dx) < SWIPE_THRESHOLD || Math.abs(dx) <= Math.abs(dy))
6563
+ return;
6564
+ if (dx < 0) onSwipeLeft?.();
6565
+ else onSwipeRight?.();
6566
+ },
6567
+ [enabled, onSwipeLeft, onSwipeRight]
6568
+ );
6569
+ const onPointerCancel = React.useCallback(() => {
6570
+ start.current = null;
6571
+ }, []);
6572
+ return { onPointerDown, onPointerUp, onPointerCancel };
6573
+ }
6258
6574
  var EXPLORE_CSS = `
6259
6575
  @keyframes boff-explore-pulse {
6260
6576
  0%, 80%, 100% { opacity: 0.25; transform: translateY(0); }
@@ -6342,6 +6658,70 @@ var EXPLORE_CSS = `
6342
6658
  max-width: 100%;
6343
6659
  height: auto;
6344
6660
  }
6661
+
6662
+ /* ---- Ambient backdrop -----------------------------------------------------------------
6663
+ Two very low-opacity radial washes behind the welcome state, drifting slowly. Painted on
6664
+ a pseudo-element with pointer-events:none so it can never intercept a click \u2014 a
6665
+ decorative overlay that swallows clicks is a bug we have shipped before.
6666
+ Colours come from the product's own --primary token, so this picks up each site's palette
6667
+ instead of introducing one. */
6668
+ .boff-explore-aura {
6669
+ position: relative;
6670
+ isolation: isolate;
6671
+ }
6672
+ .boff-explore-aura::before {
6673
+ content: "";
6674
+ position: absolute;
6675
+ inset: -10% -20% auto -20%;
6676
+ height: 60%;
6677
+ z-index: -1;
6678
+ pointer-events: none;
6679
+ background:
6680
+ radial-gradient(38% 55% at 22% 30%, hsl(var(--primary) / 0.10), transparent 70%),
6681
+ radial-gradient(32% 48% at 78% 18%, hsl(var(--primary) / 0.07), transparent 72%);
6682
+ filter: blur(6px);
6683
+ animation: boff-explore-drift 26s ease-in-out infinite alternate;
6684
+ }
6685
+ @keyframes boff-explore-drift {
6686
+ from { transform: translate3d(-1.5%, -1%, 0) scale(1); }
6687
+ to { transform: translate3d(1.5%, 1.5%, 0) scale(1.06); }
6688
+ }
6689
+
6690
+ /* Entrance: content settles rather than snapping in. Short, and only once. */
6691
+ @keyframes boff-explore-rise {
6692
+ from { opacity: 0; transform: translateY(6px); }
6693
+ to { opacity: 1; transform: none; }
6694
+ }
6695
+ .boff-explore-rise {
6696
+ animation: boff-explore-rise 380ms cubic-bezier(0.22, 1, 0.36, 1) both;
6697
+ }
6698
+ .boff-explore-rise-1 { animation-delay: 40ms; }
6699
+ .boff-explore-rise-2 { animation-delay: 90ms; }
6700
+ .boff-explore-rise-3 { animation-delay: 140ms; }
6701
+
6702
+ /* A soft sheen that crosses the send button while a turn is in flight \u2014 enough to say
6703
+ "working" without another spinner competing with the thinking dots. */
6704
+ @keyframes boff-explore-sheen {
6705
+ from { transform: translateX(-120%); }
6706
+ to { transform: translateX(220%); }
6707
+ }
6708
+ .boff-explore-busy { position: relative; overflow: hidden; }
6709
+ .boff-explore-busy::after {
6710
+ content: "";
6711
+ position: absolute;
6712
+ inset: 0;
6713
+ pointer-events: none;
6714
+ background: linear-gradient(100deg, transparent 20%, hsl(var(--primary) / 0.22) 50%, transparent 80%);
6715
+ animation: boff-explore-sheen 1.5s ease-in-out infinite;
6716
+ }
6717
+
6718
+ /* Every one of the above is decoration. Reduced motion removes the movement and keeps the
6719
+ final state, rather than leaving content mid-animation and invisible. */
6720
+ @media (prefers-reduced-motion: reduce) {
6721
+ .boff-explore-aura::before,
6722
+ .boff-explore-busy::after { animation: none; }
6723
+ .boff-explore-rise { animation: none; opacity: 1; transform: none; }
6724
+ }
6345
6725
  `;
6346
6726
  function ExploreStyles() {
6347
6727
  return /* @__PURE__ */ jsxRuntime.jsx("style", { dangerouslySetInnerHTML: { __html: EXPLORE_CSS } });
@@ -6550,6 +6930,7 @@ function UserBubble({ message }) {
6550
6930
  ) });
6551
6931
  }
6552
6932
  function AssistantBubble({
6933
+ strings: T,
6553
6934
  message,
6554
6935
  activity,
6555
6936
  onNavigate,
@@ -6566,7 +6947,7 @@ function AssistantBubble({
6566
6947
  ref: anchorRef,
6567
6948
  "data-boff-explore": "assistant",
6568
6949
  "data-status": message.status,
6569
- className: "flex scroll-mt-4 gap-3",
6950
+ className: "boff-explore-rise flex scroll-mt-4 gap-3",
6570
6951
  children: [
6571
6952
  /* @__PURE__ */ jsxRuntime.jsx(
6572
6953
  "span",
@@ -6597,7 +6978,7 @@ function AssistantBubble({
6597
6978
  event.preventDefault();
6598
6979
  onNavigate("/contact");
6599
6980
  },
6600
- children: "ask a human"
6981
+ children: T.askHuman
6601
6982
  }
6602
6983
  ),
6603
6984
  "."
@@ -6612,7 +6993,7 @@ function AssistantBubble({
6612
6993
  streaming ? /* @__PURE__ */ jsxRuntime.jsx(ThinkingIndicator, { activity }) : null,
6613
6994
  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,
6614
6995
  message.references.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
6615
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Sources" }),
6996
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.sources }),
6616
6997
  /* @__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(
6617
6998
  ReferenceCard,
6618
6999
  {
@@ -6632,7 +7013,7 @@ function AssistantBubble({
6632
7013
  `${cta.kind}-${cta.url}`
6633
7014
  )) }) : null,
6634
7015
  message.status === "COMPLETED" && (message.followUps?.length ?? 0) > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1.5 pt-0.5", children: [
6635
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-medium text-muted-foreground", children: "Next you could ask" }),
7016
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-medium text-muted-foreground", children: T.nextYouCouldAsk }),
6636
7017
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-1.5", children: (message.followUps ?? []).map((question) => /* @__PURE__ */ jsxRuntime.jsxs(
6637
7018
  "button",
6638
7019
  {
@@ -6694,6 +7075,7 @@ function ErrorBanner({
6694
7075
  );
6695
7076
  }
6696
7077
  function PromptCarousel({
7078
+ strings: T,
6697
7079
  prompts,
6698
7080
  onPrompt,
6699
7081
  disabled
@@ -6708,6 +7090,11 @@ function PromptCarousel({
6708
7090
  },
6709
7091
  [count]
6710
7092
  );
7093
+ const swipe = useSwipe({
7094
+ onSwipeLeft: () => go(1),
7095
+ onSwipeRight: () => go(-1),
7096
+ enabled: count > 1
7097
+ });
6711
7098
  React.useEffect(() => {
6712
7099
  if (paused || disabled || count < 2) return;
6713
7100
  if (typeof window !== "undefined" && window.matchMedia?.("(prefers-reduced-motion: reduce)").matches) {
@@ -6720,7 +7107,7 @@ function PromptCarousel({
6720
7107
  return /* @__PURE__ */ jsxRuntime.jsxs(
6721
7108
  "div",
6722
7109
  {
6723
- className: "flex min-w-0 items-center gap-1.5",
7110
+ className: "flex min-w-0 touch-pan-y items-center gap-1.5",
6724
7111
  role: "group",
6725
7112
  "aria-roledescription": "carousel",
6726
7113
  "aria-label": "Example questions",
@@ -6728,14 +7115,15 @@ function PromptCarousel({
6728
7115
  onMouseLeave: () => setPaused(false),
6729
7116
  onFocusCapture: () => setPaused(true),
6730
7117
  onBlurCapture: () => setPaused(false),
7118
+ ...swipe,
6731
7119
  children: [
6732
7120
  count > 1 ? /* @__PURE__ */ jsxRuntime.jsx(
6733
7121
  "button",
6734
7122
  {
6735
7123
  type: "button",
6736
- "aria-label": "Previous suggestion",
7124
+ "aria-label": T.prevSuggestion,
6737
7125
  onClick: () => go(-1),
6738
- className: "hidden 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 sm:inline-flex",
7126
+ 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",
6739
7127
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { className: "h-4 w-4" })
6740
7128
  }
6741
7129
  ) : null,
@@ -6762,7 +7150,7 @@ function PromptCarousel({
6762
7150
  "button",
6763
7151
  {
6764
7152
  type: "button",
6765
- "aria-label": "Next suggestion",
7153
+ "aria-label": T.nextSuggestion,
6766
7154
  onClick: () => go(1),
6767
7155
  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",
6768
7156
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, { className: "h-4 w-4" })
@@ -6773,6 +7161,7 @@ function PromptCarousel({
6773
7161
  );
6774
7162
  }
6775
7163
  function ProductStrip({
7164
+ strings: T,
6776
7165
  products,
6777
7166
  focusProduct,
6778
7167
  onFocus
@@ -6807,7 +7196,7 @@ function ProductStrip({
6807
7196
  "aria-pressed": focusProduct === null,
6808
7197
  onClick: () => onFocus(null),
6809
7198
  className: chipClass(focusProduct === null),
6810
- children: "All products"
7199
+ children: T.allProducts
6811
7200
  }
6812
7201
  ),
6813
7202
  products.map((product) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -6836,7 +7225,7 @@ function ProductStrip({
6836
7225
  "aria-expanded": expanded,
6837
7226
  onClick: () => setExpanded((v) => !v),
6838
7227
  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",
6839
- children: expanded ? "Show less" : `All ${products.length}`
7228
+ children: expanded ? T.showLess : `${T.showAll} ${products.length}`
6840
7229
  }
6841
7230
  ) : null
6842
7231
  ]
@@ -6944,6 +7333,7 @@ function DisclaimerDialog({
6944
7333
  );
6945
7334
  }
6946
7335
  function WelcomeState({
7336
+ strings: T,
6947
7337
  title,
6948
7338
  body,
6949
7339
  prompts,
@@ -6953,43 +7343,45 @@ function WelcomeState({
6953
7343
  onFocus,
6954
7344
  disabled
6955
7345
  }) {
6956
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto w-full max-w-3xl px-4 py-8 sm:py-12", children: [
6957
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
7346
+ 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: [
7347
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "boff-explore-rise text-center", children: [
6958
7348
  /* @__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: [
6959
7349
  /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Sparkles, { className: "h-3.5 w-3.5" }),
6960
- "AI answers, grounded in our documentation"
7350
+ T.badge
6961
7351
  ] }),
6962
7352
  /* @__PURE__ */ jsxRuntime.jsx("h1", { className: "mt-4 text-balance break-words text-2xl font-bold tracking-tight sm:text-4xl", children: title }),
6963
7353
  /* @__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 })
6964
7354
  ] }),
6965
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "mt-7 grid gap-2.5 sm:grid-cols-3", children: CAPABILITIES.map(({ icon: Icon, title: capTitle, body: capBody }) => /* @__PURE__ */ jsxRuntime.jsxs(
7355
+ /* @__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(
6966
7356
  "li",
6967
7357
  {
6968
- className: "rounded-xl border border-border/70 bg-card/60 p-3.5 text-left transition-colors hover:border-border",
7358
+ 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",
6969
7359
  children: [
6970
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2.5 flex h-8 w-8 items-center justify-center rounded-lg bg-primary/10 text-primary", children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: "h-4 w-4" }) }),
6971
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold text-card-foreground", children: capTitle }),
6972
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs leading-relaxed text-muted-foreground", children: capBody })
7360
+ /* @__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" }) }),
7361
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-[11px] font-semibold leading-tight text-card-foreground sm:text-sm sm:leading-normal", children: T.capabilities[i] ?? "" }),
7362
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 hidden text-xs leading-relaxed text-muted-foreground sm:block", children: capBody })
6973
7363
  ]
6974
7364
  },
6975
- capTitle
7365
+ i
6976
7366
  )) }),
6977
- prompts.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-8", children: [
6978
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Try asking" }),
7367
+ prompts.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "boff-explore-rise boff-explore-rise-2 mt-8", children: [
7368
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.tryAsking }),
6979
7369
  /* @__PURE__ */ jsxRuntime.jsx(
6980
7370
  PromptCarousel,
6981
7371
  {
7372
+ strings: T,
6982
7373
  prompts,
6983
7374
  onPrompt,
6984
7375
  disabled
6985
7376
  }
6986
7377
  )
6987
7378
  ] }) : null,
6988
- products.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-6", children: [
6989
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: "Focus on a product" }),
7379
+ products.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "boff-explore-rise boff-explore-rise-3 mt-6", children: [
7380
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.focusProduct }),
6990
7381
  /* @__PURE__ */ jsxRuntime.jsx(
6991
7382
  ProductStrip,
6992
7383
  {
7384
+ strings: T,
6993
7385
  products,
6994
7386
  focusProduct,
6995
7387
  onFocus
@@ -7008,7 +7400,8 @@ function ExplorePage({
7008
7400
  onNavigate,
7009
7401
  onSend,
7010
7402
  welcomeTitle,
7011
- welcomeBody
7403
+ welcomeBody,
7404
+ locale
7012
7405
  }) {
7013
7406
  const pageUrl = React.useMemo(
7014
7407
  () => typeof window === "undefined" ? void 0 : window.location.href,
@@ -7052,6 +7445,12 @@ function ExplorePage({
7052
7445
  }
7053
7446
  });
7054
7447
  speechStopRef.current = speech.stop;
7448
+ const activeLocale = React.useMemo(
7449
+ () => resolveExploreLocale(locale),
7450
+ [locale]
7451
+ );
7452
+ const T = React.useMemo(() => exploreStrings(activeLocale), [activeLocale]);
7453
+ const rtl = isRtlLocale(activeLocale);
7055
7454
  const [disclaimerOpen, setDisclaimerOpen] = React.useState(false);
7056
7455
  const [shareLabel, setShareLabel] = React.useState("Share");
7057
7456
  const [shareUrl, setShareUrl] = React.useState(null);
@@ -7166,6 +7565,8 @@ function ExplorePage({
7166
7565
  {
7167
7566
  "data-boff-explore": "page",
7168
7567
  "data-phase": phase,
7568
+ "data-locale": activeLocale,
7569
+ dir: rtl ? "rtl" : void 0,
7169
7570
  className: cn(
7170
7571
  "flex w-full min-w-0 flex-col overflow-x-hidden bg-background text-foreground",
7171
7572
  heightMode === "auto" && "min-h-[70vh]",
@@ -7327,10 +7728,17 @@ function ExplorePage({
7327
7728
  role: "log",
7328
7729
  "aria-live": "polite",
7329
7730
  "aria-label": "Explore conversation",
7330
- className: "boff-explore-scroll min-h-0 min-w-0 flex-1 overflow-y-auto overflow-x-hidden",
7731
+ className: cn(
7732
+ "boff-explore-scroll min-h-0 min-w-0 flex-1 overflow-y-auto overflow-x-hidden",
7733
+ // Only while the welcome state is showing: a flex column is what lets its
7734
+ // `my-auto` centre the block on a tall screen. The transcript must NOT be a flex
7735
+ // column — that would fight the natural top-down flow of messages.
7736
+ showWelcome && "flex flex-col"
7737
+ ),
7331
7738
  children: showWelcome ? /* @__PURE__ */ jsxRuntime.jsx(
7332
7739
  WelcomeState,
7333
7740
  {
7741
+ strings: T,
7334
7742
  title: resolvedTitle,
7335
7743
  body: resolvedBody,
7336
7744
  prompts,
@@ -7344,6 +7752,7 @@ function ExplorePage({
7344
7752
  (message) => message.role === "USER" ? /* @__PURE__ */ jsxRuntime.jsx(UserBubble, { message }, message.id) : /* @__PURE__ */ jsxRuntime.jsx(
7345
7753
  AssistantBubble,
7346
7754
  {
7755
+ strings: T,
7347
7756
  message,
7348
7757
  activity,
7349
7758
  onNavigate,
@@ -7380,6 +7789,7 @@ function ExplorePage({
7380
7789
  {
7381
7790
  className: cn(
7382
7791
  "flex min-w-0 items-end gap-2 rounded-2xl border bg-card p-2 shadow-sm transition-all",
7792
+ busy && "boff-explore-busy",
7383
7793
  overLimit ? "border-destructive/60" : "border-border focus-within:border-primary/40 focus-within:ring-1 focus-within:ring-ring"
7384
7794
  ),
7385
7795
  children: [
@@ -7399,7 +7809,9 @@ function ExplorePage({
7399
7809
  composingRef.current = false;
7400
7810
  },
7401
7811
  "aria-label": "Ask a question",
7402
- placeholder: composerDisabled ? phase === "limited" ? "Message limit reached \u2014 please try again later" : "Explore is unavailable right now" : focusedProductName ? `Ask about ${focusedProductName}\u2026` : "Ask anything about our products\u2026",
7812
+ placeholder: composerDisabled ? phase === "limited" ? "Message limit reached \u2014 please try again later" : "Explore is unavailable right now" : focusedProductName ? fill(T.placeholderProduct, {
7813
+ product: focusedProductName
7814
+ }) : T.placeholder,
7403
7815
  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"
7404
7816
  }
7405
7817
  ),
@@ -7412,9 +7824,9 @@ function ExplorePage({
7412
7824
  size: "icon",
7413
7825
  variant: speech.listening ? "default" : "ghost",
7414
7826
  disabled: composerDisabled,
7415
- "aria-label": speech.listening ? "Stop dictating" : "Dictate your question",
7827
+ "aria-label": speech.listening ? T.stopDictating : T.dictate,
7416
7828
  "aria-pressed": speech.listening,
7417
- title: speech.listening ? "Stop dictating" : "Dictate your question",
7829
+ title: speech.listening ? T.stopDictating : T.dictate,
7418
7830
  onClick: speech.toggle,
7419
7831
  className: cn(speech.listening && "animate-pulse"),
7420
7832
  children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Mic, { className: "h-4 w-4" })
@@ -7514,7 +7926,7 @@ function ExplorePage({
7514
7926
  )
7515
7927
  ] }) : null,
7516
7928
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground", children: [
7517
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children: "Grounded in our docs \u2014 check anything important." }),
7929
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 truncate", children: T.disclaimerShort }),
7518
7930
  /* @__PURE__ */ jsxRuntime.jsx(
7519
7931
  "button",
7520
7932
  {
@@ -7522,7 +7934,7 @@ function ExplorePage({
7522
7934
  "data-boff-explore": "disclaimer",
7523
7935
  onClick: () => setDisclaimerOpen(true),
7524
7936
  className: "shrink-0 underline underline-offset-2 transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
7525
- children: "Disclaimer"
7937
+ children: T.disclaimer
7526
7938
  }
7527
7939
  )
7528
7940
  ] })
@@ -12208,6 +12620,7 @@ exports.DEFAULT_CONTACT_CATEGORIES = DEFAULT_CONTACT_CATEGORIES;
12208
12620
  exports.DEFAULT_EXPLORE_EXAMPLE_PROMPTS = DEFAULT_EXPLORE_EXAMPLE_PROMPTS;
12209
12621
  exports.ECOSYSTEM_PRODUCTS = ECOSYSTEM_PRODUCTS;
12210
12622
  exports.EXPLORE_CATALOG_QUERY = EXPLORE_CATALOG_QUERY;
12623
+ exports.EXPLORE_LOCALES = EXPLORE_LOCALES;
12211
12624
  exports.EXPLORE_MESSAGE_QUERY = EXPLORE_MESSAGE_QUERY;
12212
12625
  exports.EXPLORE_RECAPTCHA_ACTION = EXPLORE_RECAPTCHA_ACTION;
12213
12626
  exports.ElectronDownloadLink = ElectronDownloadLink;