@burdenoff/website-sdk 2026.922.2 → 2026.922.4
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 +81 -3
- package/dist/components/explore.d.ts +81 -3
- package/dist/components/explore.js +1022 -143
- package/dist/components/explore.js.map +1 -1
- package/dist/components/explore.mjs +1020 -145
- package/dist/components/explore.mjs.map +1 -1
- package/dist/{explore-types-CLw19R76.d.mts → explore-types-DvQPiL1t.d.mts} +97 -4
- package/dist/{explore-types-CLw19R76.d.ts → explore-types-DvQPiL1t.d.ts} +97 -4
- package/dist/hooks/index.d.mts +2 -2
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.js +129 -11
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +129 -11
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/index.d.mts +63 -2
- package/dist/index.d.ts +63 -2
- package/dist/index.js +1019 -143
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1020 -145
- package/dist/index.mjs.map +1 -1
- package/dist/{use-explore-chat-DC47G-C3.d.mts → use-explore-chat-CNEdKBc1.d.ts} +13 -1
- package/dist/{use-explore-chat-DyPMkzXA.d.ts → use-explore-chat-Dgm-jf96.d.mts} +13 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { createContext, useMemo, useContext, useState, useCallback, useLayoutEffect, useRef, useEffect, useId, version } from 'react';
|
|
3
3
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
4
|
-
import { Instagram, Youtube, Facebook, Github, Linkedin, Twitter, Mail, Phone, MapPin, Clock, Send, CheckCircle, Upload, Globe, ChevronDown, Search, Rocket, ArrowRight, Download, ImageIcon, ChevronRight, Maximize2, Check, ArrowLeft, Sparkles, RotateCcw, Link2, History, Trash2, Paperclip, X, Mic, Square, ArrowUp, Info, ChevronLeft, BookOpenText, Layers, TriangleAlert, FileText, ExternalLink } from 'lucide-react';
|
|
4
|
+
import { Instagram, Youtube, Facebook, Github, Linkedin, Twitter, Mail, Phone, MapPin, Clock, Send, CheckCircle, Upload, Globe, ChevronDown, Search, Rocket, ArrowRight, Download, ImageIcon, ChevronRight, Maximize2, Check, ArrowLeft, Sparkles, RotateCcw, Link2, History, Trash2, Paperclip, X, Mic, Square, ArrowUp, Info, ChevronLeft, BookOpenText, Layers, TriangleAlert, FileText, ExternalLink, Copy, ThumbsUp, ThumbsDown } from 'lucide-react';
|
|
5
5
|
import ReCAPTCHA4 from 'react-google-recaptcha';
|
|
6
6
|
import { toast } from 'sonner';
|
|
7
7
|
import { Helmet } from 'react-helmet-async';
|
|
@@ -5953,10 +5953,44 @@ var EN = {
|
|
|
5953
5953
|
noAnswer: "I couldn't find this in our documentation, so the answer below is not grounded in a source. Try rephrasing, or",
|
|
5954
5954
|
answerDidNotArrive: "That answer didn't come through. Try asking again.",
|
|
5955
5955
|
askHuman: "ask a human",
|
|
5956
|
+
// An offer, not a demand: this row sits under every answer on 38 marketing sites, so the
|
|
5957
|
+
// wording has to be shruggable. "Was this helpful?" invites; "Please rate this answer"
|
|
5958
|
+
// conscripts.
|
|
5959
|
+
feedbackPrompt: "Was this helpful?",
|
|
5960
|
+
feedbackHelpful: "Helpful",
|
|
5961
|
+
feedbackNotHelpful: "Not helpful",
|
|
5962
|
+
feedbackReasonTitle: "What was off?",
|
|
5963
|
+
feedbackReasonInaccurate: "Inaccurate",
|
|
5964
|
+
feedbackReasonIncomplete: "Incomplete",
|
|
5965
|
+
feedbackReasonOffTopic: "Off topic",
|
|
5966
|
+
feedbackReasonHardToFollow: "Hard to follow",
|
|
5967
|
+
feedbackReasonOther: "Something else",
|
|
5968
|
+
feedbackCommentPlaceholder: "Add a detail (optional)",
|
|
5969
|
+
feedbackSend: "Send",
|
|
5970
|
+
feedbackDismiss: "Dismiss",
|
|
5971
|
+
feedbackThanks: "Thanks \u2014 that helps.",
|
|
5972
|
+
feedbackNotSent: "That didn't send.",
|
|
5956
5973
|
prevSuggestion: "Previous suggestion",
|
|
5957
5974
|
nextSuggestion: "Next suggestion",
|
|
5958
5975
|
conceptIllustration: "Concept illustration",
|
|
5959
5976
|
opensInNewTab: "opens in a new tab",
|
|
5977
|
+
conceptStripTitle: "Or start from a concept",
|
|
5978
|
+
conceptStripLabel: "Concepts you can ask about",
|
|
5979
|
+
conceptAsk: "Ask about {title} in {product}",
|
|
5980
|
+
conceptAskQuestion: "How does {title} work in {product}?",
|
|
5981
|
+
copyAnswer: "Copy answer",
|
|
5982
|
+
copyFailed: "Couldn't copy",
|
|
5983
|
+
groundedIn: "What this answer is based on",
|
|
5984
|
+
sourceCountOne: "1 source",
|
|
5985
|
+
sourceCountMany: "{count} sources",
|
|
5986
|
+
sourceKindConcept: "Concept",
|
|
5987
|
+
sourceKindDocs: "Documentation",
|
|
5988
|
+
sourceKindPricing: "Pricing",
|
|
5989
|
+
sourceKindUseCase: "Use case",
|
|
5990
|
+
sourceKindPage: "Product page",
|
|
5991
|
+
seoTitle: "Describe a problem, get an answer",
|
|
5992
|
+
seoDescription: "Describe the problem you're facing in your own words and get an answer drawn from our product documentation, with links to the exact pages it came from.",
|
|
5993
|
+
seoDescriptionProduct: "Describe the problem you're facing in your own words and get an answer drawn from {product}'s documentation \u2014 and every other product we build \u2014 with links to the exact pages it came from.",
|
|
5960
5994
|
capabilities: [
|
|
5961
5995
|
"Grounded in our own docs",
|
|
5962
5996
|
"Compare across the ecosystem",
|
|
@@ -6004,10 +6038,41 @@ var ZH = {
|
|
|
6004
6038
|
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",
|
|
6005
6039
|
answerDidNotArrive: "\u8FD9\u6761\u56DE\u7B54\u6CA1\u6709\u8FD4\u56DE\u3002\u8BF7\u518D\u95EE\u4E00\u6B21\u3002",
|
|
6006
6040
|
askHuman: "\u8054\u7CFB\u6211\u4EEC",
|
|
6041
|
+
feedbackPrompt: "\u8FD9\u4E2A\u56DE\u7B54\u6709\u5E2E\u52A9\u5417\uFF1F",
|
|
6042
|
+
feedbackHelpful: "\u6709\u5E2E\u52A9",
|
|
6043
|
+
feedbackNotHelpful: "\u6CA1\u6709\u5E2E\u52A9",
|
|
6044
|
+
feedbackReasonTitle: "\u54EA\u91CC\u4E0D\u5BF9\uFF1F",
|
|
6045
|
+
feedbackReasonInaccurate: "\u4E0D\u51C6\u786E",
|
|
6046
|
+
feedbackReasonIncomplete: "\u4E0D\u5B8C\u6574",
|
|
6047
|
+
feedbackReasonOffTopic: "\u7B54\u975E\u6240\u95EE",
|
|
6048
|
+
feedbackReasonHardToFollow: "\u770B\u4E0D\u592A\u61C2",
|
|
6049
|
+
feedbackReasonOther: "\u5176\u4ED6\u539F\u56E0",
|
|
6050
|
+
feedbackCommentPlaceholder: "\u8865\u5145\u8BF4\u660E\uFF08\u53EF\u9009\uFF09",
|
|
6051
|
+
feedbackSend: "\u63D0\u4EA4",
|
|
6052
|
+
feedbackDismiss: "\u5173\u95ED",
|
|
6053
|
+
feedbackThanks: "\u8C22\u8C22\uFF0C\u8FD9\u5BF9\u6211\u4EEC\u5F88\u6709\u5E2E\u52A9\u3002",
|
|
6054
|
+
feedbackNotSent: "\u6CA1\u6709\u63D0\u4EA4\u6210\u529F\u3002",
|
|
6007
6055
|
prevSuggestion: "\u4E0A\u4E00\u4E2A\u5EFA\u8BAE",
|
|
6008
6056
|
nextSuggestion: "\u4E0B\u4E00\u4E2A\u5EFA\u8BAE",
|
|
6009
6057
|
conceptIllustration: "\u6982\u5FF5\u793A\u610F\u56FE",
|
|
6010
6058
|
opensInNewTab: "\u5728\u65B0\u6807\u7B7E\u9875\u4E2D\u6253\u5F00",
|
|
6059
|
+
conceptStripTitle: "\u6216\u8005\u4ECE\u4E00\u4E2A\u6982\u5FF5\u5F00\u59CB",
|
|
6060
|
+
conceptStripLabel: "\u4F60\u53EF\u4EE5\u8BE2\u95EE\u7684\u6982\u5FF5",
|
|
6061
|
+
conceptAsk: "\u8BE2\u95EE {product} \u4E2D\u7684 {title}",
|
|
6062
|
+
conceptAskQuestion: "{product} \u7684 {title} \u662F\u600E\u4E48\u8FD0\u4F5C\u7684\uFF1F",
|
|
6063
|
+
copyAnswer: "\u590D\u5236\u56DE\u7B54",
|
|
6064
|
+
copyFailed: "\u590D\u5236\u5931\u8D25",
|
|
6065
|
+
groundedIn: "\u8FD9\u4E2A\u56DE\u7B54\u7684\u4F9D\u636E",
|
|
6066
|
+
sourceCountOne: "1 \u4E2A\u6765\u6E90",
|
|
6067
|
+
sourceCountMany: "{count} \u4E2A\u6765\u6E90",
|
|
6068
|
+
sourceKindConcept: "\u6982\u5FF5",
|
|
6069
|
+
sourceKindDocs: "\u6587\u6863",
|
|
6070
|
+
sourceKindPricing: "\u4EF7\u683C",
|
|
6071
|
+
sourceKindUseCase: "\u5E94\u7528\u573A\u666F",
|
|
6072
|
+
sourceKindPage: "\u4EA7\u54C1\u9875\u9762",
|
|
6073
|
+
seoTitle: "\u63CF\u8FF0\u95EE\u9898\uFF0C\u83B7\u5F97\u7B54\u6848",
|
|
6074
|
+
seoDescription: "\u7528\u4F60\u81EA\u5DF1\u7684\u8BDD\u63CF\u8FF0\u9047\u5230\u7684\u95EE\u9898\uFF0C\u5373\u53EF\u83B7\u5F97\u6765\u81EA\u6211\u4EEC\u4EA7\u54C1\u6587\u6863\u7684\u56DE\u7B54\uFF0C\u5E76\u9644\u4E0A\u7B54\u6848\u51FA\u5904\u7684\u9875\u9762\u94FE\u63A5\u3002",
|
|
6075
|
+
seoDescriptionProduct: "\u7528\u4F60\u81EA\u5DF1\u7684\u8BDD\u63CF\u8FF0\u9047\u5230\u7684\u95EE\u9898\uFF0C\u5373\u53EF\u83B7\u5F97\u6765\u81EA {product} \u53CA\u6211\u4EEC\u5176\u4ED6\u4EA7\u54C1\u6587\u6863\u7684\u56DE\u7B54\uFF0C\u5E76\u9644\u4E0A\u7B54\u6848\u51FA\u5904\u7684\u9875\u9762\u94FE\u63A5\u3002",
|
|
6011
6076
|
capabilities: ["\u57FA\u4E8E\u6211\u4EEC\u81EA\u5DF1\u7684\u6587\u6863", "\u8DE8\u4EA7\u54C1\u5BF9\u6BD4", "\u76F4\u8FBE\u6B63\u786E\u7684\u9875\u9762"],
|
|
6012
6077
|
prompts: [
|
|
6013
6078
|
"\u6BCF\u95E8\u8BFE\u7A0B\u90FD\u8BB0\u5728\u4E0D\u540C\u7684\u8868\u683C\u91CC\u3002",
|
|
@@ -6051,10 +6116,41 @@ var HI = {
|
|
|
6051
6116
|
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",
|
|
6052
6117
|
answerDidNotArrive: "\u0935\u0939 \u0909\u0924\u094D\u0924\u0930 \u0928\u0939\u0940\u0902 \u0906 \u0938\u0915\u093E\u0964 \u0915\u0943\u092A\u092F\u093E \u0926\u094B\u092C\u093E\u0930\u093E \u092A\u0942\u091B\u0947\u0902\u0964",
|
|
6053
6118
|
askHuman: "\u0939\u092E\u0938\u0947 \u0938\u0902\u092A\u0930\u094D\u0915 \u0915\u0930\u0947\u0902",
|
|
6119
|
+
feedbackPrompt: "\u0915\u094D\u092F\u093E \u092F\u0939 \u0909\u0924\u094D\u0924\u0930 \u092E\u0926\u0926\u0917\u093E\u0930 \u0925\u093E?",
|
|
6120
|
+
feedbackHelpful: "\u092E\u0926\u0926\u0917\u093E\u0930",
|
|
6121
|
+
feedbackNotHelpful: "\u092E\u0926\u0926\u0917\u093E\u0930 \u0928\u0939\u0940\u0902",
|
|
6122
|
+
feedbackReasonTitle: "\u0915\u094D\u092F\u093E \u0920\u0940\u0915 \u0928\u0939\u0940\u0902 \u0925\u093E?",
|
|
6123
|
+
feedbackReasonInaccurate: "\u0917\u093C\u0932\u0924 \u091C\u093E\u0928\u0915\u093E\u0930\u0940",
|
|
6124
|
+
feedbackReasonIncomplete: "\u0905\u0927\u0942\u0930\u093E",
|
|
6125
|
+
feedbackReasonOffTopic: "\u0935\u093F\u0937\u092F \u0938\u0947 \u0939\u091F\u0915\u0930",
|
|
6126
|
+
feedbackReasonHardToFollow: "\u0938\u092E\u091D\u0928\u0947 \u092E\u0947\u0902 \u092E\u0941\u0936\u094D\u0915\u093F\u0932",
|
|
6127
|
+
feedbackReasonOther: "\u0915\u0941\u091B \u0914\u0930",
|
|
6128
|
+
feedbackCommentPlaceholder: "\u0915\u0941\u091B \u0914\u0930 \u092C\u0924\u093E\u090F\u0902 (\u0935\u0948\u0915\u0932\u094D\u092A\u093F\u0915)",
|
|
6129
|
+
feedbackSend: "\u092D\u0947\u091C\u0947\u0902",
|
|
6130
|
+
feedbackDismiss: "\u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
|
|
6131
|
+
feedbackThanks: "\u0927\u0928\u094D\u092F\u0935\u093E\u0926, \u0907\u0938\u0938\u0947 \u092E\u0926\u0926 \u092E\u093F\u0932\u0924\u0940 \u0939\u0948\u0964",
|
|
6132
|
+
feedbackNotSent: "\u092F\u0939 \u092D\u0947\u091C\u093E \u0928\u0939\u0940\u0902 \u091C\u093E \u0938\u0915\u093E\u0964",
|
|
6054
6133
|
prevSuggestion: "\u092A\u093F\u091B\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
|
|
6055
6134
|
nextSuggestion: "\u0905\u0917\u0932\u093E \u0938\u0941\u091D\u093E\u0935",
|
|
6056
6135
|
conceptIllustration: "\u0905\u0935\u0927\u093E\u0930\u0923\u093E \u091A\u093F\u0924\u094D\u0930\u0923",
|
|
6057
6136
|
opensInNewTab: "\u0928\u090F \u091F\u0948\u092C \u092E\u0947\u0902 \u0916\u0941\u0932\u0924\u093E \u0939\u0948",
|
|
6137
|
+
conceptStripTitle: "\u092F\u093E \u0915\u093F\u0938\u0940 \u0905\u0935\u0927\u093E\u0930\u0923\u093E \u0938\u0947 \u0936\u0941\u0930\u0942 \u0915\u0930\u0947\u0902",
|
|
6138
|
+
conceptStripLabel: "\u091C\u093F\u0928 \u0905\u0935\u0927\u093E\u0930\u0923\u093E\u0913\u0902 \u0915\u0947 \u092C\u093E\u0930\u0947 \u092E\u0947\u0902 \u0906\u092A \u092A\u0942\u091B \u0938\u0915\u0924\u0947 \u0939\u0948\u0902",
|
|
6139
|
+
conceptAsk: "{product} \u092E\u0947\u0902 {title} \u0915\u0947 \u092C\u093E\u0930\u0947 \u092E\u0947\u0902 \u092A\u0942\u091B\u0947\u0902",
|
|
6140
|
+
conceptAskQuestion: "{product} \u092E\u0947\u0902 {title} \u0915\u0948\u0938\u0947 \u0915\u093E\u092E \u0915\u0930\u0924\u093E \u0939\u0948?",
|
|
6141
|
+
copyAnswer: "\u0909\u0924\u094D\u0924\u0930 \u0915\u0949\u092A\u0940 \u0915\u0930\u0947\u0902",
|
|
6142
|
+
copyFailed: "\u0915\u0949\u092A\u0940 \u0928\u0939\u0940\u0902 \u0939\u094B \u0938\u0915\u093E",
|
|
6143
|
+
groundedIn: "\u092F\u0939 \u0909\u0924\u094D\u0924\u0930 \u0915\u093F\u0938 \u092A\u0930 \u0906\u0927\u093E\u0930\u093F\u0924 \u0939\u0948",
|
|
6144
|
+
sourceCountOne: "1 \u0938\u094D\u0930\u094B\u0924",
|
|
6145
|
+
sourceCountMany: "{count} \u0938\u094D\u0930\u094B\u0924",
|
|
6146
|
+
sourceKindConcept: "\u0905\u0935\u0927\u093E\u0930\u0923\u093E",
|
|
6147
|
+
sourceKindDocs: "\u0926\u0938\u094D\u0924\u093E\u0935\u0947\u091C\u093C",
|
|
6148
|
+
sourceKindPricing: "\u092E\u0942\u0932\u094D\u092F",
|
|
6149
|
+
sourceKindUseCase: "\u0909\u092A\u092F\u094B\u0917 \u0915\u093E \u0909\u0926\u093E\u0939\u0930\u0923",
|
|
6150
|
+
sourceKindPage: "\u0909\u0924\u094D\u092A\u093E\u0926 \u092A\u0947\u091C",
|
|
6151
|
+
seoTitle: "\u0938\u092E\u0938\u094D\u092F\u093E \u092C\u0924\u093E\u090F\u0902, \u091C\u0935\u093E\u092C \u092A\u093E\u090F\u0902",
|
|
6152
|
+
seoDescription: "\u0905\u092A\u0928\u0940 \u0938\u092E\u0938\u094D\u092F\u093E \u0905\u092A\u0928\u0947 \u0936\u092C\u094D\u0926\u094B\u0902 \u092E\u0947\u0902 \u092C\u0924\u093E\u090F\u0902 \u0914\u0930 \u0939\u092E\u093E\u0930\u0947 \u0909\u0924\u094D\u092A\u093E\u0926 \u0926\u0938\u094D\u0924\u093E\u0935\u0947\u091C\u093C\u094B\u0902 \u0938\u0947 \u0932\u093F\u092F\u093E \u0917\u092F\u093E \u091C\u0935\u093E\u092C \u092A\u093E\u090F\u0902, \u0938\u093E\u0925 \u092E\u0947\u0902 \u0909\u0928\u094D\u0939\u0940\u0902 \u092A\u0928\u094D\u0928\u094B\u0902 \u0915\u0947 \u0932\u093F\u0902\u0915 \u091C\u0939\u093E\u0901 \u0938\u0947 \u0935\u0939 \u0906\u092F\u093E \u0939\u0948\u0964",
|
|
6153
|
+
seoDescriptionProduct: "\u0905\u092A\u0928\u0940 \u0938\u092E\u0938\u094D\u092F\u093E \u0905\u092A\u0928\u0947 \u0936\u092C\u094D\u0926\u094B\u0902 \u092E\u0947\u0902 \u092C\u0924\u093E\u090F\u0902 \u0914\u0930 {product} \u0924\u0925\u093E \u0939\u092E\u093E\u0930\u0947 \u092C\u093E\u0915\u0940 \u0909\u0924\u094D\u092A\u093E\u0926\u094B\u0902 \u0915\u0947 \u0926\u0938\u094D\u0924\u093E\u0935\u0947\u091C\u093C\u094B\u0902 \u0938\u0947 \u0932\u093F\u092F\u093E \u0917\u092F\u093E \u091C\u0935\u093E\u092C \u092A\u093E\u090F\u0902, \u0938\u093E\u0925 \u092E\u0947\u0902 \u0909\u0928\u094D\u0939\u0940\u0902 \u092A\u0928\u094D\u0928\u094B\u0902 \u0915\u0947 \u0932\u093F\u0902\u0915 \u091C\u0939\u093E\u0901 \u0938\u0947 \u0935\u0939 \u0906\u092F\u093E \u0939\u0948\u0964",
|
|
6058
6154
|
capabilities: [
|
|
6059
6155
|
"\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",
|
|
6060
6156
|
"\u0938\u092D\u0940 \u0909\u0924\u094D\u092A\u093E\u0926\u094B\u0902 \u0915\u0940 \u0924\u0941\u0932\u0928\u093E \u0915\u0930\u0947\u0902",
|
|
@@ -6102,10 +6198,41 @@ var ES = {
|
|
|
6102
6198
|
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",
|
|
6103
6199
|
answerDidNotArrive: "Esa respuesta no lleg\xF3. Int\xE9ntalo de nuevo.",
|
|
6104
6200
|
askHuman: "habla con una persona",
|
|
6201
|
+
feedbackPrompt: "\xBFTe ha servido?",
|
|
6202
|
+
feedbackHelpful: "Me sirve",
|
|
6203
|
+
feedbackNotHelpful: "No me sirve",
|
|
6204
|
+
feedbackReasonTitle: "\xBFQu\xE9 ha fallado?",
|
|
6205
|
+
feedbackReasonInaccurate: "Es inexacta",
|
|
6206
|
+
feedbackReasonIncomplete: "Est\xE1 incompleta",
|
|
6207
|
+
feedbackReasonOffTopic: "No viene al caso",
|
|
6208
|
+
feedbackReasonHardToFollow: "Cuesta seguirla",
|
|
6209
|
+
feedbackReasonOther: "Otra cosa",
|
|
6210
|
+
feedbackCommentPlaceholder: "A\xF1ade un detalle (opcional)",
|
|
6211
|
+
feedbackSend: "Enviar",
|
|
6212
|
+
feedbackDismiss: "Cerrar",
|
|
6213
|
+
feedbackThanks: "Gracias, nos sirve.",
|
|
6214
|
+
feedbackNotSent: "No se ha podido enviar.",
|
|
6105
6215
|
prevSuggestion: "Sugerencia anterior",
|
|
6106
6216
|
nextSuggestion: "Sugerencia siguiente",
|
|
6107
6217
|
conceptIllustration: "Ilustraci\xF3n del concepto",
|
|
6108
6218
|
opensInNewTab: "se abre en una pesta\xF1a nueva",
|
|
6219
|
+
conceptStripTitle: "O empieza por un concepto",
|
|
6220
|
+
conceptStripLabel: "Conceptos sobre los que puedes preguntar",
|
|
6221
|
+
conceptAsk: "Preguntar por {title} en {product}",
|
|
6222
|
+
conceptAskQuestion: "\xBFC\xF3mo funciona {title} en {product}?",
|
|
6223
|
+
copyAnswer: "Copiar respuesta",
|
|
6224
|
+
copyFailed: "No se pudo copiar",
|
|
6225
|
+
groundedIn: "En qu\xE9 se basa esta respuesta",
|
|
6226
|
+
sourceCountOne: "1 fuente",
|
|
6227
|
+
sourceCountMany: "{count} fuentes",
|
|
6228
|
+
sourceKindConcept: "Concepto",
|
|
6229
|
+
sourceKindDocs: "Documentaci\xF3n",
|
|
6230
|
+
sourceKindPricing: "Precios",
|
|
6231
|
+
sourceKindUseCase: "Caso de uso",
|
|
6232
|
+
sourceKindPage: "P\xE1gina de producto",
|
|
6233
|
+
seoTitle: "Describe un problema y obt\xE9n una respuesta",
|
|
6234
|
+
seoDescription: "Describe con tus palabras el problema que tienes y recibe una respuesta extra\xEDda de la documentaci\xF3n de nuestros productos, con enlaces a las p\xE1ginas exactas de las que procede.",
|
|
6235
|
+
seoDescriptionProduct: "Describe con tus palabras el problema que tienes y recibe una respuesta extra\xEDda de la documentaci\xF3n de {product} y del resto de nuestros productos, con enlaces a las p\xE1ginas exactas de las que procede.",
|
|
6109
6236
|
capabilities: [
|
|
6110
6237
|
"Basado en nuestra documentaci\xF3n",
|
|
6111
6238
|
"Compara todo el ecosistema",
|
|
@@ -6153,10 +6280,41 @@ var AR = {
|
|
|
6153
6280
|
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",
|
|
6154
6281
|
answerDidNotArrive: "\u0644\u0645 \u062A\u0635\u0644 \u0647\u0630\u0647 \u0627\u0644\u0625\u062C\u0627\u0628\u0629. \u064A\u0631\u062C\u0649 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649.",
|
|
6155
6282
|
askHuman: "\u062A\u062D\u062F\u0651\u062B \u0625\u0644\u0649 \u0634\u062E\u0635",
|
|
6283
|
+
feedbackPrompt: "\u0647\u0644 \u0643\u0627\u0646\u062A \u0647\u0630\u0647 \u0627\u0644\u0625\u062C\u0627\u0628\u0629 \u0645\u0641\u064A\u062F\u0629\u061F",
|
|
6284
|
+
feedbackHelpful: "\u0645\u0641\u064A\u062F\u0629",
|
|
6285
|
+
feedbackNotHelpful: "\u063A\u064A\u0631 \u0645\u0641\u064A\u062F\u0629",
|
|
6286
|
+
feedbackReasonTitle: "\u0645\u0627 \u0627\u0644\u062E\u0637\u0623 \u0641\u064A\u0647\u0627\u061F",
|
|
6287
|
+
feedbackReasonInaccurate: "\u063A\u064A\u0631 \u062F\u0642\u064A\u0642\u0629",
|
|
6288
|
+
feedbackReasonIncomplete: "\u0646\u0627\u0642\u0635\u0629",
|
|
6289
|
+
feedbackReasonOffTopic: "\u062E\u0627\u0631\u062C \u0627\u0644\u0645\u0648\u0636\u0648\u0639",
|
|
6290
|
+
feedbackReasonHardToFollow: "\u0635\u0639\u0628\u0629 \u0627\u0644\u0641\u0647\u0645",
|
|
6291
|
+
feedbackReasonOther: "\u0634\u064A\u0621 \u0622\u062E\u0631",
|
|
6292
|
+
feedbackCommentPlaceholder: "\u0623\u0636\u0641 \u062A\u0641\u0635\u064A\u0644\u0627\u064B (\u0627\u062E\u062A\u064A\u0627\u0631\u064A)",
|
|
6293
|
+
feedbackSend: "\u0625\u0631\u0633\u0627\u0644",
|
|
6294
|
+
feedbackDismiss: "\u0625\u063A\u0644\u0627\u0642",
|
|
6295
|
+
feedbackThanks: "\u0634\u0643\u0631\u064B\u0627\u060C \u0647\u0630\u0627 \u064A\u0633\u0627\u0639\u062F\u0646\u0627.",
|
|
6296
|
+
feedbackNotSent: "\u0644\u0645 \u064A\u062A\u0645 \u0627\u0644\u0625\u0631\u0633\u0627\u0644.",
|
|
6156
6297
|
prevSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u0633\u0627\u0628\u0642",
|
|
6157
6298
|
nextSuggestion: "\u0627\u0644\u0627\u0642\u062A\u0631\u0627\u062D \u0627\u0644\u062A\u0627\u0644\u064A",
|
|
6158
6299
|
conceptIllustration: "\u0631\u0633\u0645 \u062A\u0648\u0636\u064A\u062D\u064A \u0644\u0644\u0645\u0641\u0647\u0648\u0645",
|
|
6159
6300
|
opensInNewTab: "\u064A\u064F\u0641\u062A\u062D \u0641\u064A \u0639\u0644\u0627\u0645\u0629 \u062A\u0628\u0648\u064A\u0628 \u062C\u062F\u064A\u062F\u0629",
|
|
6301
|
+
conceptStripTitle: "\u0623\u0648 \u0627\u0628\u062F\u0623 \u0645\u0646 \u0645\u0641\u0647\u0648\u0645",
|
|
6302
|
+
conceptStripLabel: "\u0645\u0641\u0627\u0647\u064A\u0645 \u064A\u0645\u0643\u0646\u0643 \u0627\u0644\u0633\u0624\u0627\u0644 \u0639\u0646\u0647\u0627",
|
|
6303
|
+
conceptAsk: "\u0627\u0633\u0623\u0644 \u0639\u0646 {title} \u0641\u064A {product}",
|
|
6304
|
+
conceptAskQuestion: "\u0643\u064A\u0641 \u064A\u0639\u0645\u0644 {title} \u0641\u064A {product}\u061F",
|
|
6305
|
+
copyAnswer: "\u0646\u0633\u062E \u0627\u0644\u0625\u062C\u0627\u0628\u0629",
|
|
6306
|
+
copyFailed: "\u062A\u0639\u0630\u0651\u0631 \u0627\u0644\u0646\u0633\u062E",
|
|
6307
|
+
groundedIn: "\u0639\u0644\u0649 \u0645\u0627\u0630\u0627 \u062A\u0633\u062A\u0646\u062F \u0647\u0630\u0647 \u0627\u0644\u0625\u062C\u0627\u0628\u0629",
|
|
6308
|
+
sourceCountOne: "\u0645\u0635\u062F\u0631 \u0648\u0627\u062D\u062F",
|
|
6309
|
+
sourceCountMany: "{count} \u0645\u0635\u0627\u062F\u0631",
|
|
6310
|
+
sourceKindConcept: "\u0645\u0641\u0647\u0648\u0645",
|
|
6311
|
+
sourceKindDocs: "\u0627\u0644\u062A\u0648\u062B\u064A\u0642",
|
|
6312
|
+
sourceKindPricing: "\u0627\u0644\u0623\u0633\u0639\u0627\u0631",
|
|
6313
|
+
sourceKindUseCase: "\u062D\u0627\u0644\u0629 \u0627\u0633\u062A\u062E\u062F\u0627\u0645",
|
|
6314
|
+
sourceKindPage: "\u0635\u0641\u062D\u0629 \u0627\u0644\u0645\u0646\u062A\u062C",
|
|
6315
|
+
seoTitle: "\u0635\u0641 \u0645\u0634\u0643\u0644\u062A\u0643 \u0648\u0627\u062D\u0635\u0644 \u0639\u0644\u0649 \u0625\u062C\u0627\u0628\u0629",
|
|
6316
|
+
seoDescription: "\u0635\u0641 \u0627\u0644\u0645\u0634\u0643\u0644\u0629 \u0627\u0644\u062A\u064A \u062A\u0648\u0627\u062C\u0647\u0647\u0627 \u0628\u0643\u0644\u0645\u0627\u062A\u0643 \u0648\u0627\u062D\u0635\u0644 \u0639\u0644\u0649 \u0625\u062C\u0627\u0628\u0629 \u0645\u0633\u062A\u0645\u062F\u0629 \u0645\u0646 \u0648\u062B\u0627\u0626\u0642 \u0645\u0646\u062A\u062C\u0627\u062A\u0646\u0627\u060C \u0645\u0639 \u0631\u0648\u0627\u0628\u0637 \u0625\u0644\u0649 \u0627\u0644\u0635\u0641\u062D\u0627\u062A \u0627\u0644\u062A\u064A \u062C\u0627\u0621\u062A \u0645\u0646\u0647\u0627.",
|
|
6317
|
+
seoDescriptionProduct: "\u0635\u0641 \u0627\u0644\u0645\u0634\u0643\u0644\u0629 \u0627\u0644\u062A\u064A \u062A\u0648\u0627\u062C\u0647\u0647\u0627 \u0628\u0643\u0644\u0645\u0627\u062A\u0643 \u0648\u0627\u062D\u0635\u0644 \u0639\u0644\u0649 \u0625\u062C\u0627\u0628\u0629 \u0645\u0633\u062A\u0645\u062F\u0629 \u0645\u0646 \u0648\u062B\u0627\u0626\u0642 {product} \u0648\u0628\u0642\u064A\u0629 \u0645\u0646\u062A\u062C\u0627\u062A\u0646\u0627\u060C \u0645\u0639 \u0631\u0648\u0627\u0628\u0637 \u0625\u0644\u0649 \u0627\u0644\u0635\u0641\u062D\u0627\u062A \u0627\u0644\u062A\u064A \u062C\u0627\u0621\u062A \u0645\u0646\u0647\u0627.",
|
|
6160
6318
|
capabilities: [
|
|
6161
6319
|
"\u0645\u0628\u0646\u064A \u0639\u0644\u0649 \u0648\u062B\u0627\u0626\u0642\u0646\u0627",
|
|
6162
6320
|
"\u0642\u0627\u0631\u0646 \u0639\u0628\u0631 \u0627\u0644\u0645\u0646\u0638\u0648\u0645\u0629",
|
|
@@ -6204,10 +6362,41 @@ var TA = {
|
|
|
6204
6362
|
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",
|
|
6205
6363
|
answerDidNotArrive: "\u0B85\u0BA8\u0BCD\u0BA4\u0BAA\u0BCD \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD \u0BB5\u0BB0\u0BB5\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8. \u0BAE\u0BC0\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD \u0B95\u0BC7\u0B9F\u0BCD\u0B9F\u0BC1\u0BAA\u0BCD \u0BAA\u0BBE\u0BB0\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD.",
|
|
6206
6364
|
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",
|
|
6365
|
+
feedbackPrompt: "\u0B87\u0BA8\u0BCD\u0BA4\u0BAA\u0BCD \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD \u0BAA\u0BAF\u0BA9\u0BC1\u0BB3\u0BCD\u0BB3\u0BA4\u0BBE\u0B95 \u0B87\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BA4\u0BBE?",
|
|
6366
|
+
feedbackHelpful: "\u0BAA\u0BAF\u0BA9\u0BC1\u0BB3\u0BCD\u0BB3\u0BA4\u0BC1",
|
|
6367
|
+
feedbackNotHelpful: "\u0BAA\u0BAF\u0BA9\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8",
|
|
6368
|
+
feedbackReasonTitle: "\u0B8E\u0BA9\u0BCD\u0BA9 \u0B9A\u0BB0\u0BBF\u0BAF\u0BBE\u0B95 \u0B87\u0BB2\u0BCD\u0BB2\u0BC8?",
|
|
6369
|
+
feedbackReasonInaccurate: "\u0BA4\u0BB5\u0BB1\u0BBE\u0BA9 \u0BA4\u0B95\u0BB5\u0BB2\u0BCD",
|
|
6370
|
+
feedbackReasonIncomplete: "\u0BAE\u0BC1\u0BB4\u0BC1\u0BAE\u0BC8\u0BAF\u0BB1\u0BCD\u0BB1\u0BA4\u0BC1",
|
|
6371
|
+
feedbackReasonOffTopic: "\u0BA4\u0BB2\u0BC8\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B85\u0BAA\u0BCD\u0BAA\u0BBE\u0BB1\u0BCD\u0BAA\u0B9F\u0BCD\u0B9F\u0BA4\u0BC1",
|
|
6372
|
+
feedbackReasonHardToFollow: "\u0BAA\u0BC1\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0B95\u0BCA\u0BB3\u0BCD\u0BB3 \u0B95\u0B9F\u0BBF\u0BA9\u0BAE\u0BCD",
|
|
6373
|
+
feedbackReasonOther: "\u0BB5\u0BC7\u0BB1\u0BC1 \u0B8F\u0BA4\u0BCB",
|
|
6374
|
+
feedbackCommentPlaceholder: "\u0BAE\u0BC7\u0BB2\u0BC1\u0BAE\u0BCD \u0BB5\u0BBF\u0BB5\u0BB0\u0BAE\u0BCD (\u0BB5\u0BBF\u0BB0\u0BC1\u0BAA\u0BCD\u0BAA\u0BAE\u0BCD)",
|
|
6375
|
+
feedbackSend: "\u0B85\u0BA9\u0BC1\u0BAA\u0BCD\u0BAA\u0BC1",
|
|
6376
|
+
feedbackDismiss: "\u0BAE\u0BC2\u0B9F\u0BC1",
|
|
6377
|
+
feedbackThanks: "\u0BA8\u0BA9\u0BCD\u0BB1\u0BBF, \u0B87\u0BA4\u0BC1 \u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BC1 \u0B89\u0BA4\u0BB5\u0BC1\u0B95\u0BBF\u0BB1\u0BA4\u0BC1.",
|
|
6378
|
+
feedbackNotSent: "\u0B85\u0BA9\u0BC1\u0BAA\u0BCD\u0BAA \u0BAE\u0BC1\u0B9F\u0BBF\u0BAF\u0BB5\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8.",
|
|
6207
6379
|
prevSuggestion: "\u0BAE\u0BC1\u0BA8\u0BCD\u0BA4\u0BC8\u0BAF \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
|
|
6208
6380
|
nextSuggestion: "\u0B85\u0B9F\u0BC1\u0BA4\u0BCD\u0BA4 \u0BAA\u0BB0\u0BBF\u0BA8\u0BCD\u0BA4\u0BC1\u0BB0\u0BC8",
|
|
6209
6381
|
conceptIllustration: "\u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1 \u0BB5\u0BBF\u0BB3\u0B95\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0B9F\u0BAE\u0BCD",
|
|
6210
6382
|
opensInNewTab: "\u0BAA\u0BC1\u0BA4\u0BBF\u0BAF \u0BA4\u0BBE\u0BB5\u0BB2\u0BBF\u0BB2\u0BCD \u0BA4\u0BBF\u0BB1\u0B95\u0BCD\u0B95\u0BC1\u0BAE\u0BCD",
|
|
6383
|
+
conceptStripTitle: "\u0B85\u0BB2\u0BCD\u0BB2\u0BA4\u0BC1 \u0B92\u0BB0\u0BC1 \u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BBF\u0BB2\u0BBF\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BC1 \u0BA4\u0BCA\u0B9F\u0B99\u0BCD\u0B95\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
6384
|
+
conceptStripLabel: "\u0BA8\u0BC0\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B95\u0BC7\u0B9F\u0BCD\u0B95\u0B95\u0BCD\u0B95\u0BC2\u0B9F\u0BBF\u0BAF \u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BB3\u0BCD",
|
|
6385
|
+
conceptAsk: "{product} \u0B87\u0BB2\u0BCD {title} \u0BAA\u0BB1\u0BCD\u0BB1\u0BBF\u0B95\u0BCD \u0B95\u0BC7\u0BB3\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
6386
|
+
conceptAskQuestion: "{product} \u0B87\u0BB2\u0BCD {title} \u0B8E\u0BAA\u0BCD\u0BAA\u0B9F\u0BBF \u0BB5\u0BC7\u0BB2\u0BC8 \u0B9A\u0BC6\u0BAF\u0BCD\u0B95\u0BBF\u0BB1\u0BA4\u0BC1?",
|
|
6387
|
+
copyAnswer: "\u0BAA\u0BA4\u0BBF\u0BB2\u0BC8 \u0BA8\u0B95\u0BB2\u0BC6\u0B9F\u0BC1",
|
|
6388
|
+
copyFailed: "\u0BA8\u0B95\u0BB2\u0BC6\u0B9F\u0BC1\u0B95\u0BCD\u0B95 \u0BAE\u0BC1\u0B9F\u0BBF\u0BAF\u0BB5\u0BBF\u0BB2\u0BCD\u0BB2\u0BC8",
|
|
6389
|
+
groundedIn: "\u0B87\u0BA8\u0BCD\u0BA4\u0BAA\u0BCD \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD \u0B8E\u0BA4\u0BC8 \u0B85\u0B9F\u0BBF\u0BAA\u0BCD\u0BAA\u0B9F\u0BC8\u0BAF\u0BBE\u0B95\u0B95\u0BCD \u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BA4\u0BC1",
|
|
6390
|
+
sourceCountOne: "1 \u0BAE\u0BC2\u0BB2\u0BAE\u0BCD",
|
|
6391
|
+
sourceCountMany: "{count} \u0BAE\u0BC2\u0BB2\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
6392
|
+
sourceKindConcept: "\u0B95\u0BB0\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1",
|
|
6393
|
+
sourceKindDocs: "\u0B86\u0BB5\u0BA3\u0BAE\u0BCD",
|
|
6394
|
+
sourceKindPricing: "\u0BB5\u0BBF\u0BB2\u0BC8",
|
|
6395
|
+
sourceKindUseCase: "\u0BAA\u0BAF\u0BA9\u0BCD\u0BAA\u0BBE\u0B9F\u0BCD\u0B9F\u0BC1 \u0BA8\u0BBF\u0BB2\u0BC8",
|
|
6396
|
+
sourceKindPage: "\u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0BAA\u0BCD \u0BAA\u0B95\u0BCD\u0B95\u0BAE\u0BCD",
|
|
6397
|
+
seoTitle: "\u0B9A\u0BBF\u0B95\u0BCD\u0B95\u0BB2\u0BC8 \u0BB5\u0BBF\u0BB5\u0BB0\u0BBF\u0BAF\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD, \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD \u0BAA\u0BC6\u0BB1\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
6398
|
+
seoDescription: "\u0BA8\u0BC0\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0B95\u0BCA\u0BB3\u0BCD\u0BB3\u0BC1\u0BAE\u0BCD \u0B9A\u0BBF\u0B95\u0BCD\u0B95\u0BB2\u0BC8 \u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B9A\u0BCA\u0BA8\u0BCD\u0BA4 \u0BB5\u0BBE\u0BB0\u0BCD\u0BA4\u0BCD\u0BA4\u0BC8\u0B95\u0BB3\u0BBF\u0BB2\u0BCD \u0BB5\u0BBF\u0BB5\u0BB0\u0BBF\u0BAF\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD; \u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1 \u0B86\u0BB5\u0BA3\u0B99\u0BCD\u0B95\u0BB3\u0BBF\u0BB2\u0BBF\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BC1 \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD \u0B95\u0BBF\u0B9F\u0BC8\u0B95\u0BCD\u0B95\u0BC1\u0BAE\u0BCD, \u0B85\u0BA4\u0BC1 \u0BB5\u0BA8\u0BCD\u0BA4 \u0BAA\u0B95\u0BCD\u0B95\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BBE\u0BA9 \u0B87\u0BA3\u0BC8\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BC1\u0B9F\u0BA9\u0BCD.",
|
|
6399
|
+
seoDescriptionProduct: "{product} \u0BAE\u0BB1\u0BCD\u0BB1\u0BC1\u0BAE\u0BCD \u0B8E\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0BAA\u0BBF\u0BB1 \u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BBF\u0BA9\u0BCD \u0B86\u0BB5\u0BA3\u0B99\u0BCD\u0B95\u0BB3\u0BBF\u0BB2\u0BBF\u0BB0\u0BC1\u0BA8\u0BCD\u0BA4\u0BC1 \u0BAA\u0BA4\u0BBF\u0BB2\u0BCD \u0BAA\u0BC6\u0BB1, \u0BA8\u0BC0\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B8E\u0BA4\u0BBF\u0BB0\u0BCD\u0B95\u0BCA\u0BB3\u0BCD\u0BB3\u0BC1\u0BAE\u0BCD \u0B9A\u0BBF\u0B95\u0BCD\u0B95\u0BB2\u0BC8 \u0B89\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u0B9A\u0BCA\u0BA8\u0BCD\u0BA4 \u0BB5\u0BBE\u0BB0\u0BCD\u0BA4\u0BCD\u0BA4\u0BC8\u0B95\u0BB3\u0BBF\u0BB2\u0BCD \u0BB5\u0BBF\u0BB5\u0BB0\u0BBF\u0BAF\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD \u2014 \u0B85\u0BA4\u0BC1 \u0BB5\u0BA8\u0BCD\u0BA4 \u0BAA\u0B95\u0BCD\u0B95\u0B99\u0BCD\u0B95\u0BB3\u0BC1\u0B95\u0BCD\u0B95\u0BBE\u0BA9 \u0B87\u0BA3\u0BC8\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BC1\u0B9F\u0BA9\u0BCD.",
|
|
6211
6400
|
capabilities: [
|
|
6212
6401
|
"\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",
|
|
6213
6402
|
"\u0BA4\u0BAF\u0BBE\u0BB0\u0BBF\u0BAA\u0BCD\u0BAA\u0BC1\u0B95\u0BB3\u0BC8 \u0B92\u0BAA\u0BCD\u0BAA\u0BBF\u0B9F\u0BC1\u0B99\u0BCD\u0B95\u0BB3\u0BCD",
|
|
@@ -6248,6 +6437,193 @@ function exploreStrings(locale) {
|
|
|
6248
6437
|
function fill(template, values) {
|
|
6249
6438
|
return template.replace(/\{(\w+)\}/g, (match, key) => values[key] ?? match);
|
|
6250
6439
|
}
|
|
6440
|
+
|
|
6441
|
+
// src/components/explore-types.ts
|
|
6442
|
+
var EXPLORE_FEEDBACK_REASONS = [
|
|
6443
|
+
"INACCURATE",
|
|
6444
|
+
"INCOMPLETE",
|
|
6445
|
+
"OFF_TOPIC",
|
|
6446
|
+
"HARD_TO_FOLLOW",
|
|
6447
|
+
"OTHER"
|
|
6448
|
+
];
|
|
6449
|
+
var EXPLORE_MESSAGE_FIELDS = (
|
|
6450
|
+
/* GraphQL */
|
|
6451
|
+
`
|
|
6452
|
+
id
|
|
6453
|
+
conversationId
|
|
6454
|
+
role
|
|
6455
|
+
status
|
|
6456
|
+
content
|
|
6457
|
+
partialContent
|
|
6458
|
+
activity
|
|
6459
|
+
references {
|
|
6460
|
+
url
|
|
6461
|
+
title
|
|
6462
|
+
description
|
|
6463
|
+
product
|
|
6464
|
+
imageUrl
|
|
6465
|
+
index
|
|
6466
|
+
}
|
|
6467
|
+
ctas {
|
|
6468
|
+
kind
|
|
6469
|
+
label
|
|
6470
|
+
url
|
|
6471
|
+
product
|
|
6472
|
+
}
|
|
6473
|
+
followUps
|
|
6474
|
+
answered
|
|
6475
|
+
attachments {
|
|
6476
|
+
name
|
|
6477
|
+
mimeType
|
|
6478
|
+
size
|
|
6479
|
+
textExtracted
|
|
6480
|
+
}
|
|
6481
|
+
errorCode
|
|
6482
|
+
createdAt
|
|
6483
|
+
completedAt
|
|
6484
|
+
`
|
|
6485
|
+
);
|
|
6486
|
+
var EXPLORE_OWN_MESSAGE_FIELDS = (
|
|
6487
|
+
/* GraphQL */
|
|
6488
|
+
`
|
|
6489
|
+
${EXPLORE_MESSAGE_FIELDS}
|
|
6490
|
+
feedback {
|
|
6491
|
+
rating
|
|
6492
|
+
reason
|
|
6493
|
+
comment
|
|
6494
|
+
createdAt
|
|
6495
|
+
}
|
|
6496
|
+
`
|
|
6497
|
+
);
|
|
6498
|
+
var EXPLORE_CATALOG_ESTABLISHED_FIELDS = (
|
|
6499
|
+
/* GraphQL */
|
|
6500
|
+
`
|
|
6501
|
+
enabled
|
|
6502
|
+
products {
|
|
6503
|
+
slug
|
|
6504
|
+
name
|
|
6505
|
+
tagline
|
|
6506
|
+
website
|
|
6507
|
+
}
|
|
6508
|
+
examplePrompts
|
|
6509
|
+
welcomeTitle
|
|
6510
|
+
welcomeBody
|
|
6511
|
+
limits {
|
|
6512
|
+
maxMessageLength
|
|
6513
|
+
maxTurnsPerConversation
|
|
6514
|
+
messagesPerDay
|
|
6515
|
+
historyTurns
|
|
6516
|
+
}
|
|
6517
|
+
captchaRequired
|
|
6518
|
+
recaptchaSiteKey`
|
|
6519
|
+
);
|
|
6520
|
+
var EXPLORE_CATALOG_HIGHLIGHT_FIELD = (
|
|
6521
|
+
/* GraphQL */
|
|
6522
|
+
`
|
|
6523
|
+
conceptHighlights {
|
|
6524
|
+
product
|
|
6525
|
+
productName
|
|
6526
|
+
title
|
|
6527
|
+
url
|
|
6528
|
+
imageUrl
|
|
6529
|
+
alt
|
|
6530
|
+
}`
|
|
6531
|
+
);
|
|
6532
|
+
function exploreCatalogDocument(extraFields) {
|
|
6533
|
+
return (
|
|
6534
|
+
/* GraphQL */
|
|
6535
|
+
`
|
|
6536
|
+
query ExploreCatalog($productSlug: String) {
|
|
6537
|
+
exploreCatalog(productSlug: $productSlug) {${EXPLORE_CATALOG_ESTABLISHED_FIELDS}${extraFields}
|
|
6538
|
+
}
|
|
6539
|
+
}
|
|
6540
|
+
`
|
|
6541
|
+
);
|
|
6542
|
+
}
|
|
6543
|
+
var EXPLORE_CATALOG_QUERY = exploreCatalogDocument(
|
|
6544
|
+
EXPLORE_CATALOG_HIGHLIGHT_FIELD
|
|
6545
|
+
);
|
|
6546
|
+
var EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS = exploreCatalogDocument("");
|
|
6547
|
+
var EXPLORE_MESSAGE_QUERY = (
|
|
6548
|
+
/* GraphQL */
|
|
6549
|
+
`
|
|
6550
|
+
query ExploreMessage($conversationToken: String!, $id: ID!) {
|
|
6551
|
+
exploreMessage(conversationToken: $conversationToken, id: $id) {
|
|
6552
|
+
${EXPLORE_OWN_MESSAGE_FIELDS}
|
|
6553
|
+
}
|
|
6554
|
+
}
|
|
6555
|
+
`
|
|
6556
|
+
);
|
|
6557
|
+
var SEND_EXPLORE_MESSAGE_MUTATION = (
|
|
6558
|
+
/* GraphQL */
|
|
6559
|
+
`
|
|
6560
|
+
mutation SendExploreMessage($input: SendExploreMessageInput!) {
|
|
6561
|
+
sendExploreMessage(input: $input) {
|
|
6562
|
+
conversation {
|
|
6563
|
+
id
|
|
6564
|
+
token
|
|
6565
|
+
productSlug
|
|
6566
|
+
turnCount
|
|
6567
|
+
createdAt
|
|
6568
|
+
}
|
|
6569
|
+
userMessage {
|
|
6570
|
+
${EXPLORE_OWN_MESSAGE_FIELDS}
|
|
6571
|
+
}
|
|
6572
|
+
assistantMessage {
|
|
6573
|
+
${EXPLORE_OWN_MESSAGE_FIELDS}
|
|
6574
|
+
}
|
|
6575
|
+
remainingToday
|
|
6576
|
+
}
|
|
6577
|
+
}
|
|
6578
|
+
`
|
|
6579
|
+
);
|
|
6580
|
+
var RECORD_EXPLORE_CLICK_MUTATION = (
|
|
6581
|
+
/* GraphQL */
|
|
6582
|
+
`
|
|
6583
|
+
mutation RecordExploreClick($input: RecordExploreClickInput!) {
|
|
6584
|
+
recordExploreClick(input: $input) {
|
|
6585
|
+
recorded
|
|
6586
|
+
}
|
|
6587
|
+
}
|
|
6588
|
+
`
|
|
6589
|
+
);
|
|
6590
|
+
var SUBMIT_EXPLORE_FEEDBACK_MUTATION = (
|
|
6591
|
+
/* GraphQL */
|
|
6592
|
+
`
|
|
6593
|
+
mutation SubmitExploreFeedback($input: SubmitExploreFeedbackInput!) {
|
|
6594
|
+
submitExploreFeedback(input: $input) {
|
|
6595
|
+
recorded
|
|
6596
|
+
feedback {
|
|
6597
|
+
rating
|
|
6598
|
+
reason
|
|
6599
|
+
comment
|
|
6600
|
+
createdAt
|
|
6601
|
+
}
|
|
6602
|
+
}
|
|
6603
|
+
}
|
|
6604
|
+
`
|
|
6605
|
+
);
|
|
6606
|
+
var EXPLORE_FEEDBACK_COMMENT_SOFT_MAX = 500;
|
|
6607
|
+
var CREATE_EXPLORE_SHARE_LINK_MUTATION = (
|
|
6608
|
+
/* GraphQL */
|
|
6609
|
+
`
|
|
6610
|
+
mutation CreateExploreShareLink($conversationToken: String!) {
|
|
6611
|
+
createExploreShareLink(conversationToken: $conversationToken) {
|
|
6612
|
+
shareToken
|
|
6613
|
+
}
|
|
6614
|
+
}
|
|
6615
|
+
`
|
|
6616
|
+
);
|
|
6617
|
+
var EXPLORE_SHARED_CONVERSATION_QUERY = (
|
|
6618
|
+
/* GraphQL */
|
|
6619
|
+
`
|
|
6620
|
+
query ExploreSharedConversation($shareToken: String!) {
|
|
6621
|
+
exploreSharedConversation(shareToken: $shareToken) {
|
|
6622
|
+
${EXPLORE_MESSAGE_FIELDS}
|
|
6623
|
+
}
|
|
6624
|
+
}
|
|
6625
|
+
`
|
|
6626
|
+
);
|
|
6251
6627
|
var PROSE_CSS = `
|
|
6252
6628
|
.boff-prose {
|
|
6253
6629
|
max-width: none;
|
|
@@ -6425,135 +6801,6 @@ function ProseStyles() {
|
|
|
6425
6801
|
return /* @__PURE__ */ jsx("style", { dangerouslySetInnerHTML: { __html: PROSE_CSS } });
|
|
6426
6802
|
}
|
|
6427
6803
|
|
|
6428
|
-
// src/components/explore-types.ts
|
|
6429
|
-
var EXPLORE_MESSAGE_FIELDS = (
|
|
6430
|
-
/* GraphQL */
|
|
6431
|
-
`
|
|
6432
|
-
id
|
|
6433
|
-
conversationId
|
|
6434
|
-
role
|
|
6435
|
-
status
|
|
6436
|
-
content
|
|
6437
|
-
partialContent
|
|
6438
|
-
activity
|
|
6439
|
-
references {
|
|
6440
|
-
url
|
|
6441
|
-
title
|
|
6442
|
-
description
|
|
6443
|
-
product
|
|
6444
|
-
imageUrl
|
|
6445
|
-
index
|
|
6446
|
-
}
|
|
6447
|
-
ctas {
|
|
6448
|
-
kind
|
|
6449
|
-
label
|
|
6450
|
-
url
|
|
6451
|
-
product
|
|
6452
|
-
}
|
|
6453
|
-
followUps
|
|
6454
|
-
answered
|
|
6455
|
-
attachments {
|
|
6456
|
-
name
|
|
6457
|
-
mimeType
|
|
6458
|
-
size
|
|
6459
|
-
textExtracted
|
|
6460
|
-
}
|
|
6461
|
-
errorCode
|
|
6462
|
-
createdAt
|
|
6463
|
-
completedAt
|
|
6464
|
-
`
|
|
6465
|
-
);
|
|
6466
|
-
var EXPLORE_CATALOG_QUERY = (
|
|
6467
|
-
/* GraphQL */
|
|
6468
|
-
`
|
|
6469
|
-
query ExploreCatalog($productSlug: String) {
|
|
6470
|
-
exploreCatalog(productSlug: $productSlug) {
|
|
6471
|
-
enabled
|
|
6472
|
-
products {
|
|
6473
|
-
slug
|
|
6474
|
-
name
|
|
6475
|
-
tagline
|
|
6476
|
-
website
|
|
6477
|
-
}
|
|
6478
|
-
examplePrompts
|
|
6479
|
-
welcomeTitle
|
|
6480
|
-
welcomeBody
|
|
6481
|
-
limits {
|
|
6482
|
-
maxMessageLength
|
|
6483
|
-
maxTurnsPerConversation
|
|
6484
|
-
messagesPerDay
|
|
6485
|
-
historyTurns
|
|
6486
|
-
}
|
|
6487
|
-
captchaRequired
|
|
6488
|
-
recaptchaSiteKey
|
|
6489
|
-
}
|
|
6490
|
-
}
|
|
6491
|
-
`
|
|
6492
|
-
);
|
|
6493
|
-
var EXPLORE_MESSAGE_QUERY = (
|
|
6494
|
-
/* GraphQL */
|
|
6495
|
-
`
|
|
6496
|
-
query ExploreMessage($conversationToken: String!, $id: ID!) {
|
|
6497
|
-
exploreMessage(conversationToken: $conversationToken, id: $id) {
|
|
6498
|
-
${EXPLORE_MESSAGE_FIELDS}
|
|
6499
|
-
}
|
|
6500
|
-
}
|
|
6501
|
-
`
|
|
6502
|
-
);
|
|
6503
|
-
var SEND_EXPLORE_MESSAGE_MUTATION = (
|
|
6504
|
-
/* GraphQL */
|
|
6505
|
-
`
|
|
6506
|
-
mutation SendExploreMessage($input: SendExploreMessageInput!) {
|
|
6507
|
-
sendExploreMessage(input: $input) {
|
|
6508
|
-
conversation {
|
|
6509
|
-
id
|
|
6510
|
-
token
|
|
6511
|
-
productSlug
|
|
6512
|
-
turnCount
|
|
6513
|
-
createdAt
|
|
6514
|
-
}
|
|
6515
|
-
userMessage {
|
|
6516
|
-
${EXPLORE_MESSAGE_FIELDS}
|
|
6517
|
-
}
|
|
6518
|
-
assistantMessage {
|
|
6519
|
-
${EXPLORE_MESSAGE_FIELDS}
|
|
6520
|
-
}
|
|
6521
|
-
remainingToday
|
|
6522
|
-
}
|
|
6523
|
-
}
|
|
6524
|
-
`
|
|
6525
|
-
);
|
|
6526
|
-
var RECORD_EXPLORE_CLICK_MUTATION = (
|
|
6527
|
-
/* GraphQL */
|
|
6528
|
-
`
|
|
6529
|
-
mutation RecordExploreClick($input: RecordExploreClickInput!) {
|
|
6530
|
-
recordExploreClick(input: $input) {
|
|
6531
|
-
recorded
|
|
6532
|
-
}
|
|
6533
|
-
}
|
|
6534
|
-
`
|
|
6535
|
-
);
|
|
6536
|
-
var CREATE_EXPLORE_SHARE_LINK_MUTATION = (
|
|
6537
|
-
/* GraphQL */
|
|
6538
|
-
`
|
|
6539
|
-
mutation CreateExploreShareLink($conversationToken: String!) {
|
|
6540
|
-
createExploreShareLink(conversationToken: $conversationToken) {
|
|
6541
|
-
shareToken
|
|
6542
|
-
}
|
|
6543
|
-
}
|
|
6544
|
-
`
|
|
6545
|
-
);
|
|
6546
|
-
var EXPLORE_SHARED_CONVERSATION_QUERY = (
|
|
6547
|
-
/* GraphQL */
|
|
6548
|
-
`
|
|
6549
|
-
query ExploreSharedConversation($shareToken: String!) {
|
|
6550
|
-
exploreSharedConversation(shareToken: $shareToken) {
|
|
6551
|
-
${EXPLORE_MESSAGE_FIELDS}
|
|
6552
|
-
}
|
|
6553
|
-
}
|
|
6554
|
-
`
|
|
6555
|
-
);
|
|
6556
|
-
|
|
6557
6804
|
// src/data/products.ts
|
|
6558
6805
|
var ECOSYSTEM_PRODUCTS = [
|
|
6559
6806
|
{
|
|
@@ -6837,7 +7084,12 @@ function buildFallbackCatalog(examplePrompts, welcome) {
|
|
|
6837
7084
|
welcomeBody: welcome?.body ?? FALLBACK_WELCOME_BODY,
|
|
6838
7085
|
limits: FALLBACK_EXPLORE_LIMITS,
|
|
6839
7086
|
captchaRequired: false,
|
|
6840
|
-
recaptchaSiteKey: null
|
|
7087
|
+
recaptchaSiteKey: null,
|
|
7088
|
+
// Empty, and deliberately not synthesised from `ECOSYSTEM_PRODUCTS`: a concept highlight
|
|
7089
|
+
// needs a real published illustration URL, and this SDK has no registry of them. An
|
|
7090
|
+
// invented path would render 38 broken frames on the one screen every prerender captures.
|
|
7091
|
+
// The strip renders nothing at all when the list is empty, which is the honest fallback.
|
|
7092
|
+
conceptHighlights: []
|
|
6841
7093
|
};
|
|
6842
7094
|
}
|
|
6843
7095
|
function normalizeCatalog(raw, fallback) {
|
|
@@ -6854,9 +7106,27 @@ function normalizeCatalog(raw, fallback) {
|
|
|
6854
7106
|
historyTurns: raw.limits?.historyTurns || fallback.limits.historyTurns
|
|
6855
7107
|
},
|
|
6856
7108
|
captchaRequired: raw.captchaRequired === true,
|
|
6857
|
-
recaptchaSiteKey: raw.recaptchaSiteKey ?? null
|
|
7109
|
+
recaptchaSiteKey: raw.recaptchaSiteKey ?? null,
|
|
7110
|
+
// `[ExploreConceptHighlight!]!` on the wire, so a gateway that KNOWS the field always
|
|
7111
|
+
// sends an array. The one response that arrives without it is the retry against an older
|
|
7112
|
+
// supergraph (`EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS`) — that gateway does not answer
|
|
7113
|
+
// the full document at all, it refuses it. Either way
|
|
7114
|
+
// `catalog.conceptHighlights.filter(...)` on `undefined` would throw inside render,
|
|
7115
|
+
// blanking the welcome screen over a decorative strip.
|
|
7116
|
+
conceptHighlights: raw.conceptHighlights?.length ? raw.conceptHighlights : fallback.conceptHighlights
|
|
6858
7117
|
};
|
|
6859
7118
|
}
|
|
7119
|
+
var CATALOG_DOCUMENT_REJECTED_CODES = /* @__PURE__ */ new Set([
|
|
7120
|
+
"GRAPHQL_VALIDATION_FAILED",
|
|
7121
|
+
"HTTP_400"
|
|
7122
|
+
]);
|
|
7123
|
+
function catalogRejectedTheHighlightField(res) {
|
|
7124
|
+
if (res.data?.exploreCatalog) return false;
|
|
7125
|
+
return (res.errors ?? []).some((error) => {
|
|
7126
|
+
const code = error.extensions?.code;
|
|
7127
|
+
return typeof code === "string" && CATALOG_DOCUMENT_REJECTED_CODES.has(code) || error.message.includes("conceptHighlights");
|
|
7128
|
+
});
|
|
7129
|
+
}
|
|
6860
7130
|
var RATE_LIMIT_CODES = /* @__PURE__ */ new Set([
|
|
6861
7131
|
"RATE_LIMITED",
|
|
6862
7132
|
"HTTP_429",
|
|
@@ -7196,11 +7466,19 @@ function useExploreChat(options = {}) {
|
|
|
7196
7466
|
useEffect(() => {
|
|
7197
7467
|
let cancelled = false;
|
|
7198
7468
|
const load = async () => {
|
|
7199
|
-
const
|
|
7469
|
+
const variables = { productSlug: productSlug ?? null };
|
|
7470
|
+
let res = await client.query(
|
|
7200
7471
|
EXPLORE_CATALOG_QUERY,
|
|
7201
|
-
|
|
7472
|
+
variables
|
|
7202
7473
|
);
|
|
7203
7474
|
if (cancelled || !mountedRef.current) return;
|
|
7475
|
+
if (catalogRejectedTheHighlightField(res)) {
|
|
7476
|
+
res = await client.query(
|
|
7477
|
+
EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS,
|
|
7478
|
+
variables
|
|
7479
|
+
);
|
|
7480
|
+
if (cancelled || !mountedRef.current) return;
|
|
7481
|
+
}
|
|
7204
7482
|
const raw = res.data?.exploreCatalog;
|
|
7205
7483
|
if (res.errors?.length || !raw) {
|
|
7206
7484
|
console.warn(
|
|
@@ -7581,6 +7859,42 @@ function useExploreChat(options = {}) {
|
|
|
7581
7859
|
},
|
|
7582
7860
|
[client]
|
|
7583
7861
|
);
|
|
7862
|
+
const submitFeedback = useCallback(
|
|
7863
|
+
async (messageId, rating, detail) => {
|
|
7864
|
+
const token = conversationTokenRef.current;
|
|
7865
|
+
if (!token) return false;
|
|
7866
|
+
const comment = detail?.comment?.trim();
|
|
7867
|
+
const input = {
|
|
7868
|
+
conversationToken: token,
|
|
7869
|
+
messageId,
|
|
7870
|
+
rating,
|
|
7871
|
+
// Only meaningful with NOT_HELPFUL. The server stores null for HELPFUL either
|
|
7872
|
+
// way; sending it would just be noise the backend has to defend against.
|
|
7873
|
+
reason: rating === "NOT_HELPFUL" ? detail?.reason ?? null : null,
|
|
7874
|
+
comment: comment ? comment : null
|
|
7875
|
+
};
|
|
7876
|
+
try {
|
|
7877
|
+
const res = await client.mutate(
|
|
7878
|
+
SUBMIT_EXPLORE_FEEDBACK_MUTATION,
|
|
7879
|
+
{ input }
|
|
7880
|
+
);
|
|
7881
|
+
const result = res?.data?.submitExploreFeedback;
|
|
7882
|
+
if (!result?.recorded) return false;
|
|
7883
|
+
const recorded = result.feedback;
|
|
7884
|
+
if (recorded && mountedRef.current) {
|
|
7885
|
+
setMessages(
|
|
7886
|
+
(current) => current.map(
|
|
7887
|
+
(message) => message.id === messageId ? { ...message, feedback: recorded } : message
|
|
7888
|
+
)
|
|
7889
|
+
);
|
|
7890
|
+
}
|
|
7891
|
+
return true;
|
|
7892
|
+
} catch {
|
|
7893
|
+
return false;
|
|
7894
|
+
}
|
|
7895
|
+
},
|
|
7896
|
+
[client]
|
|
7897
|
+
);
|
|
7584
7898
|
return {
|
|
7585
7899
|
phase,
|
|
7586
7900
|
catalog,
|
|
@@ -7600,6 +7914,7 @@ function useExploreChat(options = {}) {
|
|
|
7600
7914
|
deleteConversation,
|
|
7601
7915
|
clearHistory,
|
|
7602
7916
|
recordClick,
|
|
7917
|
+
submitFeedback,
|
|
7603
7918
|
createShareLink,
|
|
7604
7919
|
isSharedView
|
|
7605
7920
|
};
|
|
@@ -8330,6 +8645,122 @@ function isInlineImageAllowed(src, origins) {
|
|
|
8330
8645
|
if (url.protocol !== "https:" || url.username || url.password) return false;
|
|
8331
8646
|
return origins.has(url.origin);
|
|
8332
8647
|
}
|
|
8648
|
+
var REFERENCE_KIND_ORDER = [
|
|
8649
|
+
"CONCEPT",
|
|
8650
|
+
"DOCS",
|
|
8651
|
+
"PRICING",
|
|
8652
|
+
"USE_CASE",
|
|
8653
|
+
"PAGE"
|
|
8654
|
+
];
|
|
8655
|
+
var PRODUCT_SUBDOMAINS = [
|
|
8656
|
+
"alphadocs.",
|
|
8657
|
+
"alphaapp.",
|
|
8658
|
+
"docs.",
|
|
8659
|
+
"alpha.",
|
|
8660
|
+
"app.",
|
|
8661
|
+
"www."
|
|
8662
|
+
];
|
|
8663
|
+
function readCatalogUrl(raw) {
|
|
8664
|
+
let parsed;
|
|
8665
|
+
try {
|
|
8666
|
+
parsed = new URL(raw);
|
|
8667
|
+
} catch {
|
|
8668
|
+
return null;
|
|
8669
|
+
}
|
|
8670
|
+
if (parsed.protocol !== "https:") return null;
|
|
8671
|
+
const host = parsed.hostname.toLowerCase();
|
|
8672
|
+
const prefix = PRODUCT_SUBDOMAINS.find(
|
|
8673
|
+
(candidate) => host.startsWith(candidate)
|
|
8674
|
+
);
|
|
8675
|
+
const apex = prefix === void 0 ? host : host.slice(prefix.length);
|
|
8676
|
+
const port = parsed.port ? `:${parsed.port}` : "";
|
|
8677
|
+
return {
|
|
8678
|
+
origin: `https://${apex}${port}`,
|
|
8679
|
+
prefix,
|
|
8680
|
+
pathname: parsed.pathname
|
|
8681
|
+
};
|
|
8682
|
+
}
|
|
8683
|
+
function referenceKindOf(url, origins) {
|
|
8684
|
+
const parsed = readCatalogUrl(url);
|
|
8685
|
+
if (parsed === null || !origins.has(parsed.origin)) return null;
|
|
8686
|
+
if (parsed.prefix === "docs." || parsed.prefix === "alphadocs.")
|
|
8687
|
+
return "DOCS";
|
|
8688
|
+
const segment = parsed.pathname.toLowerCase().split("/").filter(Boolean)[0] ?? "";
|
|
8689
|
+
if (segment === "concept" || segment === "concepts") return "CONCEPT";
|
|
8690
|
+
if (segment === "docs") return "DOCS";
|
|
8691
|
+
if (segment === "pricing" || segment === "plans") return "PRICING";
|
|
8692
|
+
if (segment === "use-case" || segment === "use-cases" || segment === "solutions") {
|
|
8693
|
+
return "USE_CASE";
|
|
8694
|
+
}
|
|
8695
|
+
return "PAGE";
|
|
8696
|
+
}
|
|
8697
|
+
function productNamesByOrigin(products) {
|
|
8698
|
+
const names = /* @__PURE__ */ new Map();
|
|
8699
|
+
for (const product of products) {
|
|
8700
|
+
let url;
|
|
8701
|
+
try {
|
|
8702
|
+
url = new URL(product.website);
|
|
8703
|
+
} catch {
|
|
8704
|
+
continue;
|
|
8705
|
+
}
|
|
8706
|
+
if (url.protocol !== "https:") continue;
|
|
8707
|
+
const apex = url.hostname.replace(/^www\./, "");
|
|
8708
|
+
const port = url.port ? `:${url.port}` : "";
|
|
8709
|
+
const key = `https://${apex}${port}`;
|
|
8710
|
+
if (!names.has(key)) names.set(key, product.name);
|
|
8711
|
+
}
|
|
8712
|
+
return names;
|
|
8713
|
+
}
|
|
8714
|
+
function summariseReferences(references, origins, productNames) {
|
|
8715
|
+
const counts = /* @__PURE__ */ new Map();
|
|
8716
|
+
const products = [];
|
|
8717
|
+
for (const reference of references) {
|
|
8718
|
+
const kind = referenceKindOf(reference.url, origins);
|
|
8719
|
+
if (kind !== null) counts.set(kind, (counts.get(kind) ?? 0) + 1);
|
|
8720
|
+
const parsed = readCatalogUrl(reference.url);
|
|
8721
|
+
const name = (parsed === null ? void 0 : productNames.get(parsed.origin)) ?? (reference.product || null);
|
|
8722
|
+
if (name != null && !products.includes(name)) products.push(name);
|
|
8723
|
+
}
|
|
8724
|
+
return {
|
|
8725
|
+
total: references.length,
|
|
8726
|
+
kinds: REFERENCE_KIND_ORDER.filter((kind) => counts.has(kind)).map(
|
|
8727
|
+
(kind) => ({ kind, count: counts.get(kind) ?? 0 })
|
|
8728
|
+
),
|
|
8729
|
+
products
|
|
8730
|
+
};
|
|
8731
|
+
}
|
|
8732
|
+
var CODE_FENCE = /^\s*(?:```|~~~)/;
|
|
8733
|
+
function answerPlainText(markdown) {
|
|
8734
|
+
const lines = [];
|
|
8735
|
+
let inFence = false;
|
|
8736
|
+
for (const raw of markdown.split("\n")) {
|
|
8737
|
+
if (CODE_FENCE.test(raw)) {
|
|
8738
|
+
inFence = !inFence;
|
|
8739
|
+
continue;
|
|
8740
|
+
}
|
|
8741
|
+
if (inFence) {
|
|
8742
|
+
lines.push(raw);
|
|
8743
|
+
continue;
|
|
8744
|
+
}
|
|
8745
|
+
let line = raw;
|
|
8746
|
+
line = line.replace(/!\[[^\]]*\]\([^)\s]*(?:\s+"[^"]*")?\)/g, "");
|
|
8747
|
+
line = line.replace(/\[([^\]]+)\]\(([^)\s]+)(?:\s+"[^"]*")?\)/g, "$1 ($2)");
|
|
8748
|
+
line = line.replace(/<(https?:\/\/[^>\s]+)>/g, "$1");
|
|
8749
|
+
line = line.replace(/^\s{0,3}#{1,6}\s+/, "");
|
|
8750
|
+
line = line.replace(/^\s{0,3}>\s?/, "");
|
|
8751
|
+
if (/^\s{0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/.test(line)) {
|
|
8752
|
+
lines.push("");
|
|
8753
|
+
continue;
|
|
8754
|
+
}
|
|
8755
|
+
line = line.replace(/`([^`]+)`/g, "$1");
|
|
8756
|
+
line = line.replace(/\*\*([^*]+)\*\*/g, "$1");
|
|
8757
|
+
line = line.replace(/__([^_]+)__/g, "$1");
|
|
8758
|
+
line = line.replace(/(^|[^*\w])\*([^*\n]+)\*(?![*\w])/g, "$1$2");
|
|
8759
|
+
line = line.replace(/(^|[^_\w])_([^_\n]+)_(?![_\w])/g, "$1$2");
|
|
8760
|
+
lines.push(line.replace(/[ \t]+$/, ""));
|
|
8761
|
+
}
|
|
8762
|
+
return lines.join("\n").replace(/\n{3,}/g, "\n\n").trim();
|
|
8763
|
+
}
|
|
8333
8764
|
var InlineImageScopeContext = createContext(null);
|
|
8334
8765
|
var InsideLinkContext = createContext(false);
|
|
8335
8766
|
function AnswerLink(props) {
|
|
@@ -8527,6 +8958,315 @@ function ThinkingIndicator({ activity }) {
|
|
|
8527
8958
|
}
|
|
8528
8959
|
);
|
|
8529
8960
|
}
|
|
8961
|
+
function AnswerFeedback({
|
|
8962
|
+
strings: T,
|
|
8963
|
+
messageId,
|
|
8964
|
+
feedback,
|
|
8965
|
+
onSubmit
|
|
8966
|
+
}) {
|
|
8967
|
+
const [local, setLocal] = useState(null);
|
|
8968
|
+
const [failed, setFailed] = useState(false);
|
|
8969
|
+
const [sending, setSending] = useState(false);
|
|
8970
|
+
const [chooserOpen, setChooserOpen] = useState(false);
|
|
8971
|
+
const [reason, setReason] = useState(null);
|
|
8972
|
+
const [comment, setComment] = useState("");
|
|
8973
|
+
const downRef = useRef(null);
|
|
8974
|
+
const firstReasonRef = useRef(null);
|
|
8975
|
+
const inFlightRef = useRef(false);
|
|
8976
|
+
const panelId = `boff-explore-feedback-${messageId}`;
|
|
8977
|
+
const rating = local ?? feedback?.rating ?? null;
|
|
8978
|
+
const rated = rating !== null;
|
|
8979
|
+
const reasonLabels = {
|
|
8980
|
+
INACCURATE: T.feedbackReasonInaccurate,
|
|
8981
|
+
INCOMPLETE: T.feedbackReasonIncomplete,
|
|
8982
|
+
OFF_TOPIC: T.feedbackReasonOffTopic,
|
|
8983
|
+
HARD_TO_FOLLOW: T.feedbackReasonHardToFollow,
|
|
8984
|
+
OTHER: T.feedbackReasonOther
|
|
8985
|
+
};
|
|
8986
|
+
const closeChooser = useCallback(() => {
|
|
8987
|
+
setChooserOpen(false);
|
|
8988
|
+
downRef.current?.focus();
|
|
8989
|
+
}, []);
|
|
8990
|
+
const submit = useCallback(
|
|
8991
|
+
async (next, detail) => {
|
|
8992
|
+
if (inFlightRef.current) return;
|
|
8993
|
+
inFlightRef.current = true;
|
|
8994
|
+
setSending(true);
|
|
8995
|
+
setFailed(false);
|
|
8996
|
+
setLocal(next);
|
|
8997
|
+
const recorded = await onSubmit(next, detail);
|
|
8998
|
+
inFlightRef.current = false;
|
|
8999
|
+
setSending(false);
|
|
9000
|
+
if (recorded) return;
|
|
9001
|
+
setLocal(null);
|
|
9002
|
+
setFailed(true);
|
|
9003
|
+
},
|
|
9004
|
+
[onSubmit]
|
|
9005
|
+
);
|
|
9006
|
+
const onThumbUp = useCallback(() => {
|
|
9007
|
+
setChooserOpen(false);
|
|
9008
|
+
void submit("HELPFUL");
|
|
9009
|
+
}, [submit]);
|
|
9010
|
+
const onThumbDown = useCallback(() => {
|
|
9011
|
+
setChooserOpen((open) => !open);
|
|
9012
|
+
}, []);
|
|
9013
|
+
const onSendReason = useCallback(() => {
|
|
9014
|
+
setChooserOpen(false);
|
|
9015
|
+
void submit("NOT_HELPFUL", { reason, comment });
|
|
9016
|
+
}, [comment, reason, submit]);
|
|
9017
|
+
useEffect(() => {
|
|
9018
|
+
if (!chooserOpen) return;
|
|
9019
|
+
firstReasonRef.current?.focus();
|
|
9020
|
+
}, [chooserOpen]);
|
|
9021
|
+
const thumbClass = (active) => cn(
|
|
9022
|
+
"inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border transition-colors",
|
|
9023
|
+
"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
9024
|
+
"disabled:pointer-events-none disabled:opacity-50",
|
|
9025
|
+
active ? "border-primary/40 bg-accent text-primary" : "border-border bg-card text-muted-foreground hover:border-primary/40 hover:bg-accent hover:text-foreground"
|
|
9026
|
+
);
|
|
9027
|
+
return /* @__PURE__ */ jsxs(
|
|
9028
|
+
"div",
|
|
9029
|
+
{
|
|
9030
|
+
"data-boff-explore": "feedback",
|
|
9031
|
+
"data-rating": rating ?? "none",
|
|
9032
|
+
className: "pt-0.5",
|
|
9033
|
+
children: [
|
|
9034
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-1", children: [
|
|
9035
|
+
/* @__PURE__ */ jsx(
|
|
9036
|
+
"p",
|
|
9037
|
+
{
|
|
9038
|
+
"data-boff-explore": "feedback-status",
|
|
9039
|
+
role: "status",
|
|
9040
|
+
className: "text-xs text-muted-foreground",
|
|
9041
|
+
children: failed ? T.feedbackNotSent : rated ? T.feedbackThanks : T.feedbackPrompt
|
|
9042
|
+
}
|
|
9043
|
+
),
|
|
9044
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
9045
|
+
/* @__PURE__ */ jsx(
|
|
9046
|
+
"button",
|
|
9047
|
+
{
|
|
9048
|
+
"data-boff-explore": "feedback-up",
|
|
9049
|
+
type: "button",
|
|
9050
|
+
disabled: sending,
|
|
9051
|
+
"aria-label": T.feedbackHelpful,
|
|
9052
|
+
title: T.feedbackHelpful,
|
|
9053
|
+
"aria-pressed": rating === "HELPFUL",
|
|
9054
|
+
onClick: onThumbUp,
|
|
9055
|
+
className: thumbClass(rating === "HELPFUL"),
|
|
9056
|
+
children: /* @__PURE__ */ jsx(ThumbsUp, { className: "h-3.5 w-3.5", "aria-hidden": "true" })
|
|
9057
|
+
}
|
|
9058
|
+
),
|
|
9059
|
+
/* @__PURE__ */ jsx(
|
|
9060
|
+
"button",
|
|
9061
|
+
{
|
|
9062
|
+
ref: downRef,
|
|
9063
|
+
"data-boff-explore": "feedback-down",
|
|
9064
|
+
type: "button",
|
|
9065
|
+
disabled: sending,
|
|
9066
|
+
"aria-label": T.feedbackNotHelpful,
|
|
9067
|
+
title: T.feedbackNotHelpful,
|
|
9068
|
+
"aria-pressed": rating === "NOT_HELPFUL",
|
|
9069
|
+
"aria-expanded": chooserOpen,
|
|
9070
|
+
"aria-controls": chooserOpen ? panelId : void 0,
|
|
9071
|
+
onClick: onThumbDown,
|
|
9072
|
+
className: thumbClass(rating === "NOT_HELPFUL" || chooserOpen),
|
|
9073
|
+
children: /* @__PURE__ */ jsx(ThumbsDown, { className: "h-3.5 w-3.5", "aria-hidden": "true" })
|
|
9074
|
+
}
|
|
9075
|
+
)
|
|
9076
|
+
] })
|
|
9077
|
+
] }),
|
|
9078
|
+
chooserOpen ? /* @__PURE__ */ jsxs(
|
|
9079
|
+
"div",
|
|
9080
|
+
{
|
|
9081
|
+
id: panelId,
|
|
9082
|
+
"data-boff-explore": "feedback-reasons",
|
|
9083
|
+
role: "group",
|
|
9084
|
+
"aria-label": T.feedbackReasonTitle,
|
|
9085
|
+
onKeyDown: (event) => {
|
|
9086
|
+
if (event.key !== "Escape") return;
|
|
9087
|
+
event.stopPropagation();
|
|
9088
|
+
closeChooser();
|
|
9089
|
+
},
|
|
9090
|
+
className: "boff-explore-fade mt-2 rounded-xl border border-border bg-card p-3",
|
|
9091
|
+
children: [
|
|
9092
|
+
/* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-medium text-card-foreground", children: T.feedbackReasonTitle }),
|
|
9093
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1.5", children: EXPLORE_FEEDBACK_REASONS.map((code, index) => /* @__PURE__ */ jsx(
|
|
9094
|
+
"button",
|
|
9095
|
+
{
|
|
9096
|
+
ref: index === 0 ? firstReasonRef : void 0,
|
|
9097
|
+
"data-boff-explore": "feedback-reason",
|
|
9098
|
+
"data-reason": code,
|
|
9099
|
+
type: "button",
|
|
9100
|
+
"aria-pressed": reason === code,
|
|
9101
|
+
onClick: () => setReason((current) => current === code ? null : code),
|
|
9102
|
+
className: cn(
|
|
9103
|
+
"inline-flex max-w-full items-center rounded-full border px-3 py-1 text-xs transition-colors",
|
|
9104
|
+
"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
9105
|
+
reason === code ? "border-primary/40 bg-accent text-primary" : "border-border bg-background text-muted-foreground hover:border-primary/40 hover:bg-accent hover:text-foreground"
|
|
9106
|
+
),
|
|
9107
|
+
children: /* @__PURE__ */ jsx("span", { className: "truncate", children: reasonLabels[code] })
|
|
9108
|
+
},
|
|
9109
|
+
code
|
|
9110
|
+
)) }),
|
|
9111
|
+
/* @__PURE__ */ jsxs("div", { className: "mt-2 flex flex-wrap items-center gap-2", children: [
|
|
9112
|
+
/* @__PURE__ */ jsx(
|
|
9113
|
+
"input",
|
|
9114
|
+
{
|
|
9115
|
+
"data-boff-explore": "feedback-comment",
|
|
9116
|
+
type: "text",
|
|
9117
|
+
value: comment,
|
|
9118
|
+
onChange: (event) => setComment(event.target.value),
|
|
9119
|
+
onKeyDown: (event) => {
|
|
9120
|
+
if (event.key !== "Enter") return;
|
|
9121
|
+
event.preventDefault();
|
|
9122
|
+
onSendReason();
|
|
9123
|
+
},
|
|
9124
|
+
"aria-label": T.feedbackCommentPlaceholder,
|
|
9125
|
+
placeholder: T.feedbackCommentPlaceholder,
|
|
9126
|
+
maxLength: EXPLORE_FEEDBACK_COMMENT_SOFT_MAX,
|
|
9127
|
+
className: "min-w-0 flex-1 rounded-md border border-border bg-background px-2 py-1 text-base text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring sm:text-sm"
|
|
9128
|
+
}
|
|
9129
|
+
),
|
|
9130
|
+
/* @__PURE__ */ jsx(
|
|
9131
|
+
Button,
|
|
9132
|
+
{
|
|
9133
|
+
"data-boff-explore": "feedback-send",
|
|
9134
|
+
type: "button",
|
|
9135
|
+
size: "sm",
|
|
9136
|
+
disabled: sending,
|
|
9137
|
+
onClick: onSendReason,
|
|
9138
|
+
children: T.feedbackSend
|
|
9139
|
+
}
|
|
9140
|
+
),
|
|
9141
|
+
/* @__PURE__ */ jsx(
|
|
9142
|
+
Button,
|
|
9143
|
+
{
|
|
9144
|
+
"data-boff-explore": "feedback-dismiss",
|
|
9145
|
+
type: "button",
|
|
9146
|
+
size: "sm",
|
|
9147
|
+
variant: "ghost",
|
|
9148
|
+
className: "text-muted-foreground",
|
|
9149
|
+
onClick: closeChooser,
|
|
9150
|
+
children: T.feedbackDismiss
|
|
9151
|
+
}
|
|
9152
|
+
)
|
|
9153
|
+
] })
|
|
9154
|
+
]
|
|
9155
|
+
}
|
|
9156
|
+
) : null
|
|
9157
|
+
]
|
|
9158
|
+
}
|
|
9159
|
+
);
|
|
9160
|
+
}
|
|
9161
|
+
var PROVENANCE_CHIP = "inline-flex max-w-full items-center gap-1 rounded-full border border-border bg-muted/60 px-2 py-0.5 text-[11px] leading-5 text-muted-foreground";
|
|
9162
|
+
function ProvenanceChips({
|
|
9163
|
+
strings: T,
|
|
9164
|
+
provenance
|
|
9165
|
+
}) {
|
|
9166
|
+
if (provenance.total === 0) return null;
|
|
9167
|
+
const kindLabels = {
|
|
9168
|
+
CONCEPT: T.sourceKindConcept,
|
|
9169
|
+
DOCS: T.sourceKindDocs,
|
|
9170
|
+
PRICING: T.sourceKindPricing,
|
|
9171
|
+
USE_CASE: T.sourceKindUseCase,
|
|
9172
|
+
PAGE: T.sourceKindPage
|
|
9173
|
+
};
|
|
9174
|
+
return /* @__PURE__ */ jsxs(
|
|
9175
|
+
"ul",
|
|
9176
|
+
{
|
|
9177
|
+
"data-boff-explore": "provenance",
|
|
9178
|
+
"aria-label": T.groundedIn,
|
|
9179
|
+
className: "flex flex-wrap items-center gap-1.5",
|
|
9180
|
+
children: [
|
|
9181
|
+
/* @__PURE__ */ jsxs("li", { "data-boff-explore": "provenance-count", className: PROVENANCE_CHIP, children: [
|
|
9182
|
+
/* @__PURE__ */ jsx(BookOpenText, { className: "h-3 w-3 shrink-0", "aria-hidden": "true" }),
|
|
9183
|
+
/* @__PURE__ */ jsx("span", { className: "truncate", children: provenance.total === 1 ? T.sourceCountOne : fill(T.sourceCountMany, { count: String(provenance.total) }) })
|
|
9184
|
+
] }),
|
|
9185
|
+
provenance.kinds.map(({ kind, count }) => /* @__PURE__ */ jsx(
|
|
9186
|
+
"li",
|
|
9187
|
+
{
|
|
9188
|
+
"data-boff-explore": "provenance-kind",
|
|
9189
|
+
"data-kind": kind,
|
|
9190
|
+
"data-count": count,
|
|
9191
|
+
className: PROVENANCE_CHIP,
|
|
9192
|
+
children: /* @__PURE__ */ jsx("span", { className: "truncate", children: count > 1 ? `${kindLabels[kind]} \xB7 ${count}` : kindLabels[kind] })
|
|
9193
|
+
},
|
|
9194
|
+
kind
|
|
9195
|
+
)),
|
|
9196
|
+
provenance.products.map((name) => /* @__PURE__ */ jsx(
|
|
9197
|
+
"li",
|
|
9198
|
+
{
|
|
9199
|
+
"data-boff-explore": "provenance-product",
|
|
9200
|
+
className: PROVENANCE_CHIP,
|
|
9201
|
+
children: /* @__PURE__ */ jsx("span", { className: "truncate", children: name })
|
|
9202
|
+
},
|
|
9203
|
+
name
|
|
9204
|
+
))
|
|
9205
|
+
]
|
|
9206
|
+
}
|
|
9207
|
+
);
|
|
9208
|
+
}
|
|
9209
|
+
var COPY_FEEDBACK_MS = 2500;
|
|
9210
|
+
function AnswerActions({
|
|
9211
|
+
strings: T,
|
|
9212
|
+
text
|
|
9213
|
+
}) {
|
|
9214
|
+
const [outcome, setOutcome] = useState("idle");
|
|
9215
|
+
const resetRef = useRef(null);
|
|
9216
|
+
useEffect(
|
|
9217
|
+
() => () => {
|
|
9218
|
+
if (resetRef.current !== null) clearTimeout(resetRef.current);
|
|
9219
|
+
},
|
|
9220
|
+
[]
|
|
9221
|
+
);
|
|
9222
|
+
const copy = useCallback(async () => {
|
|
9223
|
+
let copied = false;
|
|
9224
|
+
try {
|
|
9225
|
+
const clipboard = typeof navigator === "undefined" ? void 0 : navigator.clipboard;
|
|
9226
|
+
if (typeof clipboard?.writeText === "function") {
|
|
9227
|
+
await clipboard.writeText(text);
|
|
9228
|
+
copied = true;
|
|
9229
|
+
}
|
|
9230
|
+
} catch {
|
|
9231
|
+
copied = false;
|
|
9232
|
+
}
|
|
9233
|
+
setOutcome(copied ? "copied" : "failed");
|
|
9234
|
+
if (resetRef.current !== null) clearTimeout(resetRef.current);
|
|
9235
|
+
resetRef.current = setTimeout(() => setOutcome("idle"), COPY_FEEDBACK_MS);
|
|
9236
|
+
}, [text]);
|
|
9237
|
+
const label = outcome === "copied" ? T.copied : outcome === "failed" ? T.copyFailed : T.copyAnswer;
|
|
9238
|
+
return /* @__PURE__ */ jsxs(
|
|
9239
|
+
"div",
|
|
9240
|
+
{
|
|
9241
|
+
"data-boff-explore": "answer-actions",
|
|
9242
|
+
className: "flex flex-wrap items-center gap-2 pt-0.5",
|
|
9243
|
+
children: [
|
|
9244
|
+
/* @__PURE__ */ jsxs(
|
|
9245
|
+
"button",
|
|
9246
|
+
{
|
|
9247
|
+
"data-boff-explore": "copy-answer",
|
|
9248
|
+
"data-outcome": outcome,
|
|
9249
|
+
type: "button",
|
|
9250
|
+
title: label,
|
|
9251
|
+
onClick: () => {
|
|
9252
|
+
void copy();
|
|
9253
|
+
},
|
|
9254
|
+
className: cn(
|
|
9255
|
+
"inline-flex max-w-full items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs transition-colors",
|
|
9256
|
+
"focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
9257
|
+
outcome === "failed" ? "border-destructive/40 bg-card text-destructive" : "border-border bg-card text-muted-foreground hover:border-primary/40 hover:bg-accent hover:text-foreground"
|
|
9258
|
+
),
|
|
9259
|
+
children: [
|
|
9260
|
+
outcome === "copied" ? /* @__PURE__ */ jsx(Check, { className: "h-3 w-3 shrink-0", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(Copy, { className: "h-3 w-3 shrink-0", "aria-hidden": "true" }),
|
|
9261
|
+
/* @__PURE__ */ jsx("span", { className: "truncate", children: label })
|
|
9262
|
+
]
|
|
9263
|
+
}
|
|
9264
|
+
),
|
|
9265
|
+
/* @__PURE__ */ jsx("span", { "data-boff-explore": "copy-status", role: "status", className: "sr-only", children: outcome === "idle" ? "" : label })
|
|
9266
|
+
]
|
|
9267
|
+
}
|
|
9268
|
+
);
|
|
9269
|
+
}
|
|
8530
9270
|
function UserBubble({
|
|
8531
9271
|
strings: T,
|
|
8532
9272
|
message
|
|
@@ -8572,10 +9312,12 @@ function AssistantBubble({
|
|
|
8572
9312
|
message,
|
|
8573
9313
|
activity,
|
|
8574
9314
|
imageOrigins,
|
|
9315
|
+
productNames,
|
|
8575
9316
|
onNavigate,
|
|
8576
9317
|
anchorRef,
|
|
8577
9318
|
onFollow,
|
|
8578
|
-
onFollowUp
|
|
9319
|
+
onFollowUp,
|
|
9320
|
+
onFeedback
|
|
8579
9321
|
}) {
|
|
8580
9322
|
const streaming = message.status === "PENDING" || message.status === "RUNNING";
|
|
8581
9323
|
const body = message.content || message.partialContent || "";
|
|
@@ -8599,6 +9341,15 @@ function AssistantBubble({
|
|
|
8599
9341
|
}),
|
|
8600
9342
|
[T, completed, imageOrigins, failedImages, markImageFailed]
|
|
8601
9343
|
);
|
|
9344
|
+
const provenance = useMemo(
|
|
9345
|
+
() => summariseReferences(message.references, imageOrigins, productNames),
|
|
9346
|
+
[message.references, imageOrigins, productNames]
|
|
9347
|
+
);
|
|
9348
|
+
const copyText = useMemo(
|
|
9349
|
+
() => answerPlainText(message.content),
|
|
9350
|
+
[message.content]
|
|
9351
|
+
);
|
|
9352
|
+
const grounded = completed && message.answered !== false;
|
|
8602
9353
|
return /* @__PURE__ */ jsxs(
|
|
8603
9354
|
"div",
|
|
8604
9355
|
{
|
|
@@ -8648,6 +9399,7 @@ function AssistantBubble({
|
|
|
8648
9399
|
/* @__PURE__ */ jsx("div", { className: "boff-prose boff-prose-sm boff-explore-body min-w-0 text-card-foreground", children: /* @__PURE__ */ jsx(InlineImageScopeContext.Provider, { value: imageScope, children: /* @__PURE__ */ jsx(Markdown, { components: ANSWER_MARKDOWN_COMPONENTS, children: body }) }) }),
|
|
8649
9400
|
streaming ? /* @__PURE__ */ jsx("span", { className: "boff-explore-caret", "aria-hidden": "true" }) : null
|
|
8650
9401
|
] }) : null,
|
|
9402
|
+
grounded && provenance.total > 0 ? /* @__PURE__ */ jsx(ProvenanceChips, { strings: T, provenance }) : null,
|
|
8651
9403
|
streaming ? /* @__PURE__ */ jsx(ThinkingIndicator, { activity }) : null,
|
|
8652
9404
|
failed && !body ? /* @__PURE__ */ jsx("div", { className: "rounded-2xl rounded-tl-md border border-border bg-muted px-4 py-3 text-sm text-muted-foreground", children: T.answerDidNotArrive }) : null,
|
|
8653
9405
|
message.references.length > 0 ? /* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -8686,7 +9438,17 @@ function AssistantBubble({
|
|
|
8686
9438
|
},
|
|
8687
9439
|
question
|
|
8688
9440
|
)) })
|
|
8689
|
-
] }) : null
|
|
9441
|
+
] }) : null,
|
|
9442
|
+
completed && copyText !== "" ? /* @__PURE__ */ jsx(AnswerActions, { strings: T, text: copyText }) : null,
|
|
9443
|
+
completed && onFeedback ? /* @__PURE__ */ jsx(
|
|
9444
|
+
AnswerFeedback,
|
|
9445
|
+
{
|
|
9446
|
+
strings: T,
|
|
9447
|
+
messageId: message.id,
|
|
9448
|
+
feedback: message.feedback,
|
|
9449
|
+
onSubmit: onFeedback
|
|
9450
|
+
}
|
|
9451
|
+
) : null
|
|
8690
9452
|
] })
|
|
8691
9453
|
]
|
|
8692
9454
|
}
|
|
@@ -8890,6 +9652,96 @@ function ProductStrip({
|
|
|
8890
9652
|
}
|
|
8891
9653
|
);
|
|
8892
9654
|
}
|
|
9655
|
+
var MAX_CONCEPT_CARDS = 6;
|
|
9656
|
+
function ConceptStrip({
|
|
9657
|
+
strings: T,
|
|
9658
|
+
highlights,
|
|
9659
|
+
onAsk,
|
|
9660
|
+
disabled
|
|
9661
|
+
}) {
|
|
9662
|
+
const [failed, setFailed] = useState(() => /* @__PURE__ */ new Set());
|
|
9663
|
+
const markFailed = useCallback((src) => {
|
|
9664
|
+
setFailed(
|
|
9665
|
+
(current) => current.has(src) ? current : new Set(current).add(src)
|
|
9666
|
+
);
|
|
9667
|
+
}, []);
|
|
9668
|
+
const visible = highlights.filter(
|
|
9669
|
+
(highlight) => highlight.imageUrl !== "" && !failed.has(highlight.imageUrl)
|
|
9670
|
+
).slice(0, MAX_CONCEPT_CARDS);
|
|
9671
|
+
if (visible.length === 0) return null;
|
|
9672
|
+
return /* @__PURE__ */ jsxs(
|
|
9673
|
+
"div",
|
|
9674
|
+
{
|
|
9675
|
+
"data-boff-explore": "concept-strip-block",
|
|
9676
|
+
className: "boff-explore-rise boff-explore-rise-3 mt-6",
|
|
9677
|
+
children: [
|
|
9678
|
+
/* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.conceptStripTitle }),
|
|
9679
|
+
/* @__PURE__ */ jsx(
|
|
9680
|
+
"ul",
|
|
9681
|
+
{
|
|
9682
|
+
"data-boff-explore": "concept-strip",
|
|
9683
|
+
"aria-label": T.conceptStripLabel,
|
|
9684
|
+
className: "boff-explore-strip flex min-w-0 snap-x gap-3 overflow-x-auto pb-1",
|
|
9685
|
+
children: visible.map((highlight) => /* @__PURE__ */ jsx(
|
|
9686
|
+
"li",
|
|
9687
|
+
{
|
|
9688
|
+
className: "shrink-0 snap-start",
|
|
9689
|
+
children: /* @__PURE__ */ jsxs(
|
|
9690
|
+
"button",
|
|
9691
|
+
{
|
|
9692
|
+
"data-boff-explore": "concept-card",
|
|
9693
|
+
"data-product": highlight.product,
|
|
9694
|
+
type: "button",
|
|
9695
|
+
disabled,
|
|
9696
|
+
"aria-label": fill(T.conceptAsk, {
|
|
9697
|
+
title: highlight.title,
|
|
9698
|
+
product: highlight.productName
|
|
9699
|
+
}),
|
|
9700
|
+
onClick: () => onAsk(
|
|
9701
|
+
fill(T.conceptAskQuestion, {
|
|
9702
|
+
title: highlight.title,
|
|
9703
|
+
product: highlight.productName
|
|
9704
|
+
})
|
|
9705
|
+
),
|
|
9706
|
+
className: "group flex w-40 flex-col overflow-hidden rounded-xl border border-border bg-card text-left shadow-sm transition-colors hover:border-primary/50 hover:bg-accent disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring sm:w-48",
|
|
9707
|
+
children: [
|
|
9708
|
+
/* @__PURE__ */ jsxs("span", { className: "relative block aspect-[16/9] w-full overflow-hidden bg-muted", children: [
|
|
9709
|
+
/* @__PURE__ */ jsx(
|
|
9710
|
+
"img",
|
|
9711
|
+
{
|
|
9712
|
+
src: highlight.imageUrl,
|
|
9713
|
+
alt: highlight.alt,
|
|
9714
|
+
loading: "lazy",
|
|
9715
|
+
decoding: "async",
|
|
9716
|
+
onError: () => markFailed(highlight.imageUrl),
|
|
9717
|
+
className: "h-full w-full object-cover transition-transform duration-300 group-hover:scale-105"
|
|
9718
|
+
}
|
|
9719
|
+
),
|
|
9720
|
+
/* @__PURE__ */ jsx(
|
|
9721
|
+
"span",
|
|
9722
|
+
{
|
|
9723
|
+
"aria-hidden": "true",
|
|
9724
|
+
className: "pointer-events-none absolute left-1.5 top-1.5 rounded-full border border-border bg-background/90 px-1.5 py-0.5 text-[9px] font-semibold uppercase tracking-wide text-foreground",
|
|
9725
|
+
children: T.conceptIllustration
|
|
9726
|
+
}
|
|
9727
|
+
)
|
|
9728
|
+
] }),
|
|
9729
|
+
/* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-col gap-0.5 p-2.5", children: [
|
|
9730
|
+
/* @__PURE__ */ jsx("span", { className: "line-clamp-2 text-xs font-semibold leading-snug text-card-foreground", children: highlight.title }),
|
|
9731
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-[11px] text-muted-foreground", children: highlight.productName })
|
|
9732
|
+
] })
|
|
9733
|
+
]
|
|
9734
|
+
}
|
|
9735
|
+
)
|
|
9736
|
+
},
|
|
9737
|
+
`${highlight.product}:${highlight.url}`
|
|
9738
|
+
))
|
|
9739
|
+
}
|
|
9740
|
+
)
|
|
9741
|
+
]
|
|
9742
|
+
}
|
|
9743
|
+
);
|
|
9744
|
+
}
|
|
8893
9745
|
function DisclaimerDialog({
|
|
8894
9746
|
open,
|
|
8895
9747
|
onClose,
|
|
@@ -8996,6 +9848,7 @@ function WelcomeState({
|
|
|
8996
9848
|
body,
|
|
8997
9849
|
prompts,
|
|
8998
9850
|
products,
|
|
9851
|
+
conceptHighlights,
|
|
8999
9852
|
focusProduct,
|
|
9000
9853
|
onPrompt,
|
|
9001
9854
|
onFocus,
|
|
@@ -9034,6 +9887,15 @@ function WelcomeState({
|
|
|
9034
9887
|
}
|
|
9035
9888
|
)
|
|
9036
9889
|
] }) : null,
|
|
9890
|
+
/* @__PURE__ */ jsx(
|
|
9891
|
+
ConceptStrip,
|
|
9892
|
+
{
|
|
9893
|
+
strings: T,
|
|
9894
|
+
highlights: conceptHighlights,
|
|
9895
|
+
onAsk: onPrompt,
|
|
9896
|
+
disabled
|
|
9897
|
+
}
|
|
9898
|
+
),
|
|
9037
9899
|
products.length > 0 ? /* @__PURE__ */ jsxs("div", { className: "boff-explore-rise boff-explore-rise-3 mt-6", children: [
|
|
9038
9900
|
/* @__PURE__ */ jsx("p", { className: "mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground", children: T.focusProduct }),
|
|
9039
9901
|
/* @__PURE__ */ jsx(
|
|
@@ -9090,6 +9952,7 @@ function ExplorePage({
|
|
|
9090
9952
|
deleteConversation,
|
|
9091
9953
|
clearHistory,
|
|
9092
9954
|
recordClick,
|
|
9955
|
+
submitFeedback,
|
|
9093
9956
|
createShareLink,
|
|
9094
9957
|
isSharedView
|
|
9095
9958
|
} = useExploreChat({
|
|
@@ -9146,10 +10009,18 @@ function ExplorePage({
|
|
|
9146
10009
|
() => catalog.products.find((p) => p.slug === focusProduct)?.name ?? null,
|
|
9147
10010
|
[catalog.products, focusProduct]
|
|
9148
10011
|
);
|
|
10012
|
+
const headProductName = useMemo(
|
|
10013
|
+
() => productSlug ? catalog.products.find((p) => p.slug === productSlug)?.name ?? null : null,
|
|
10014
|
+
[catalog.products, productSlug]
|
|
10015
|
+
);
|
|
9149
10016
|
const imageOrigins = useMemo(
|
|
9150
10017
|
() => inlineImageOrigins(catalog.products),
|
|
9151
10018
|
[catalog.products]
|
|
9152
10019
|
);
|
|
10020
|
+
const productNames = useMemo(
|
|
10021
|
+
() => productNamesByOrigin(catalog.products),
|
|
10022
|
+
[catalog.products]
|
|
10023
|
+
);
|
|
9153
10024
|
useEffect(() => {
|
|
9154
10025
|
const el = textareaRef.current;
|
|
9155
10026
|
if (!el) return;
|
|
@@ -9510,16 +10381,17 @@ function ExplorePage({
|
|
|
9510
10381
|
),
|
|
9511
10382
|
style: rootStyle,
|
|
9512
10383
|
children: [
|
|
9513
|
-
|
|
10384
|
+
/* @__PURE__ */ jsx(
|
|
9514
10385
|
PageHead,
|
|
9515
10386
|
{
|
|
9516
|
-
title: seo
|
|
9517
|
-
description: seo
|
|
9518
|
-
|
|
9519
|
-
|
|
9520
|
-
|
|
10387
|
+
title: seo?.title ?? T.seoTitle,
|
|
10388
|
+
description: seo?.description ?? (headProductName ? fill(T.seoDescriptionProduct, { product: headProductName }) : T.seoDescription),
|
|
10389
|
+
productName: seo?.title ? void 0 : headProductName ?? void 0,
|
|
10390
|
+
keywords: seo?.keywords,
|
|
10391
|
+
image: seo?.image,
|
|
10392
|
+
url: seo?.url
|
|
9521
10393
|
}
|
|
9522
|
-
)
|
|
10394
|
+
),
|
|
9523
10395
|
/* @__PURE__ */ jsx(ProseStyles, {}),
|
|
9524
10396
|
/* @__PURE__ */ jsx(ExploreStyles, {}),
|
|
9525
10397
|
!showWelcome ? /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2.5 border-b border-border px-4 py-2.5", children: [
|
|
@@ -9680,6 +10552,7 @@ function ExplorePage({
|
|
|
9680
10552
|
body: resolvedBody,
|
|
9681
10553
|
prompts,
|
|
9682
10554
|
products: catalog.products,
|
|
10555
|
+
conceptHighlights: catalog.conceptHighlights,
|
|
9683
10556
|
focusProduct,
|
|
9684
10557
|
onPrompt: sendPrompt,
|
|
9685
10558
|
onFocus: setFocusProduct,
|
|
@@ -9693,10 +10566,12 @@ function ExplorePage({
|
|
|
9693
10566
|
message,
|
|
9694
10567
|
activity,
|
|
9695
10568
|
imageOrigins,
|
|
10569
|
+
productNames,
|
|
9696
10570
|
onNavigate,
|
|
9697
10571
|
anchorRef: message.id === latestAssistantId ? latestAssistantRef : void 0,
|
|
9698
10572
|
onFollow: (kind, url) => recordClick(message.id, kind, url),
|
|
9699
|
-
onFollowUp: sendPrompt
|
|
10573
|
+
onFollowUp: sendPrompt,
|
|
10574
|
+
onFeedback: isSharedView ? void 0 : (rating, detail) => submitFeedback(message.id, rating, detail)
|
|
9700
10575
|
},
|
|
9701
10576
|
message.id
|
|
9702
10577
|
)
|
|
@@ -14653,6 +15528,6 @@ function StoreProductDetailPage({
|
|
|
14653
15528
|
] });
|
|
14654
15529
|
}
|
|
14655
15530
|
|
|
14656
|
-
export { BlogListPage, BlogPostPage, Button, CONCEPTS_PATH, CONCEPT_ILLUSTRATION_NOTICE, CONCEPT_PATH_PREFIX, CareersApplyForm, CareersSubmissionForm, CaseStudiesListPage, CaseStudyPage, ChangelogPage, ConceptDetailPage, ConceptsPage, ContactPage, ContentRenderer, ContractsPage, DEFAULT_CONTACT_CATEGORIES, DEFAULT_EXPLORE_EXAMPLE_PROMPTS, ECOSYSTEM_PRODUCTS, EXPLORE_CATALOG_QUERY, EXPLORE_LOCALES, EXPLORE_MESSAGE_QUERY, EXPLORE_RECAPTCHA_ACTION, ElectronDownloadLink, ExploreCta, ExplorePage, FALLBACK_EXPLORE_LIMITS, Input, Label, LaunchCountdown, Markdown, NewsletterForm, NewsletterPage, PageHead, PartnersPage, PressKitPage, PricingPage, PricingSection, ProblemsSolvedSection, ProductCard, ProductProvider, ResourceLinks, RybbitAnalytics, SEND_EXPLORE_MESSAGE_MUTATION, Select, SocialLinks, StarRating, StoreBrowsePage, StoreHomePage, StoreProductDetailPage, Textarea, TypeBadge, UnsubscribePage, WaitlistForm, WaitlistPage, WebSDKClient, WebSDKProvider, WebsiteSwitcher, buttonVariants, classifyExploreError, cn, conceptPath, detectElectronPlatform, fetchPublicJobPosting, fetchPublicJobPostings, fetchPublicJobPostingsForSubmission, formatDownloads, formatPrice2 as formatPrice, getConceptBySlug, getRecaptchaV3Token, isValidUrl, loadRecaptchaV3, useContentPage, useContentPages, useExploreChat, useProduct, useProductConfig, usePublicJobPosting, usePublicJobPostings, usePublicJobPostingsForSubmission, useWebSDK, useWebSDKConfig };
|
|
15531
|
+
export { BlogListPage, BlogPostPage, Button, CONCEPTS_PATH, CONCEPT_ILLUSTRATION_NOTICE, CONCEPT_PATH_PREFIX, CareersApplyForm, CareersSubmissionForm, CaseStudiesListPage, CaseStudyPage, ChangelogPage, ConceptDetailPage, ConceptsPage, ContactPage, ContentRenderer, ContractsPage, DEFAULT_CONTACT_CATEGORIES, DEFAULT_EXPLORE_EXAMPLE_PROMPTS, ECOSYSTEM_PRODUCTS, EXPLORE_CATALOG_QUERY, EXPLORE_CATALOG_QUERY_WITHOUT_HIGHLIGHTS, EXPLORE_LOCALES, EXPLORE_MESSAGE_QUERY, EXPLORE_RECAPTCHA_ACTION, ElectronDownloadLink, ExploreCta, ExplorePage, FALLBACK_EXPLORE_LIMITS, Input, Label, LaunchCountdown, Markdown, NewsletterForm, NewsletterPage, PageHead, PartnersPage, PressKitPage, PricingPage, PricingSection, ProblemsSolvedSection, ProductCard, ProductProvider, ResourceLinks, RybbitAnalytics, SEND_EXPLORE_MESSAGE_MUTATION, Select, SocialLinks, StarRating, StoreBrowsePage, StoreHomePage, StoreProductDetailPage, Textarea, TypeBadge, UnsubscribePage, WaitlistForm, WaitlistPage, WebSDKClient, WebSDKProvider, WebsiteSwitcher, buttonVariants, classifyExploreError, cn, conceptPath, detectElectronPlatform, fetchPublicJobPosting, fetchPublicJobPostings, fetchPublicJobPostingsForSubmission, formatDownloads, formatPrice2 as formatPrice, getConceptBySlug, getRecaptchaV3Token, isValidUrl, loadRecaptchaV3, useContentPage, useContentPages, useExploreChat, useProduct, useProductConfig, usePublicJobPosting, usePublicJobPostings, usePublicJobPostingsForSubmission, useWebSDK, useWebSDKConfig };
|
|
14657
15532
|
//# sourceMappingURL=index.mjs.map
|
|
14658
15533
|
//# sourceMappingURL=index.mjs.map
|