diff --git a/dist/index.css.map b/dist/index.css.map index 5344f40..d140d4a 100644 --- a/dist/index.css.map +++ b/dist/index.css.map @@ -1 +1 @@ -{"version":3,"sources":["../src/lib/markdown-renderer/styles.module.css"],"sourcesContent":[".img {\n max-width: 100%;\n padding-top: 2vh;\n border-radius: 4px;\n}\n\n.heading::before {\n content: '';\n display: block;\n visibility: hidden;\n pointer-events: none;\n}\n\n.heading :global([data-copy-heading-link]) {\n position: relative;\n top: -0.08em;\n}\n\n.code {\n background-color: unset;\n background-color: var(--md-code-background, #f6f8fa);\n border-radius: 4px;\n color: var(--md-code-text);\n margin: 0;\n padding: 0.2em 0.4em;\n font-size: 0.875em;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\ntable .code {\n word-break: normal;\n}\n\n.blockquote {\n display: grid;\n padding: 20px;\n gap: 20px;\n width: 100%;\n margin: 16px 0px 24px;\n border-radius: 4px;\n align-items: center;\n border: 1px solid #ccced8;\n grid-template-columns: 20px 1fr;\n grid-template-rows: auto;\n word-break: break-word;\n}\n\n.blockquote a {\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\n.blockquote p,\n.blockquote div {\n margin: 0px;\n grid-column: 2 / -1;\n grid-row: 1 / 1;\n}\n\n.blockquote > div {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n}\n\n.blockquote ch-code-scroll-parent {\n width: 100% !important;\n overflow-x: auto !important;\n overflow-y: hidden !important;\n background-color: unset !important;\n}\n\n.blockquote a {\n color: #e31c58 !important;\n -webkit-text-decoration: underline 1px solid;\n text-decoration: underline 1px solid;\n}\n\n.blockquote a:hover {\n color: #c81e51;\n}\n\n.blockquoteIcon {\n display: inline-block;\n flex-shrink: 0;\n grid-row: 1;\n}\n\n.blockquoteInfo {\n background: #f8f7fc;\n border: 1px solid #ccced8;\n}\n\n.blockquoteDanger {\n background: #fdefef;\n border: 1px solid #dc5a41;\n}\n\n.blockquoteWarning {\n background: #fff2d4;\n border: 1px solid #ffb100;\n}\n\n.blockquoteWarning code {\n background-color: #ffe5b5;\n}\n\n.blockquoteInfo code {\n background-color: unset;\n}\n\n.blockquoteSuccess {\n background: #f3f8f3;\n border: 1px solid #80be80;\n}\n\n.flexWrap {\n flex-wrap: wrap;\n justify-content: space-between;\n}\n\n.svgContainer {\n width: 100%;\n}"],"mappings":";AAAA,CAACA;AACC,aAAW;AACX,eAAa;AACb,iBAAe;AACjB;AAEA,CAACC,cAAO;AACN,WAAS;AACT,WAAS;AACT,cAAY;AACZ,kBAAgB;AAClB;AAEA,CAPCA,eAOgB,CAAC;AAChB,YAAU;AACV,OAAK;AACP;AAEA,CAACC;AACC,oBAAkB;AAClB,oBAAkB,IAAI,oBAAoB,EAAE;AAC5C,iBAAe;AACf,SAAO,IAAI;AACX,UAAQ;AACR,WAAS,MAAM;AACf,aAAW;AACX,cAAY;AACZ,iBAAe;AACjB;AAEA,MAAM,CAZLA;AAaC,cAAY;AACd;AAEA,CAACC;AACC,WAAS;AACT,WAAS;AACT,OAAK;AACL,SAAO;AACP,UAAQ,KAAK,IAAI;AACjB,iBAAe;AACf,eAAa;AACb,UAAQ,IAAI,MAAM;AAClB,yBAAuB,KAAK;AAC5B,sBAAoB;AACpB,cAAY;AACd;AAEA,CAdCA,kBAcW;AACV,cAAY;AACZ,iBAAe;AACjB;AAEA,CAnBCA,kBAmBW;AACZ,CApBCA,kBAoBW;AACV,UAAQ;AACR,eAAa,EAAE,EAAE;AACjB,YAAU,EAAE,EAAE;AAChB;AAEA,CA1BCA,kBA0BW,EAAE;AACZ,SAAO;AACP,aAAW;AACX,aAAW;AACb;AAEA,CAhCCA,kBAgCW;AACV,SAAO;AACP,cAAY;AACZ,cAAY;AACZ,oBAAkB;AACpB;AAEA,CAvCCA,kBAuCW;AACV,SAAO;AACP,2BAAyB,UAAU,IAAI;AAC/B,mBAAiB,UAAU,IAAI;AACzC;AAEA,CA7CCA,kBA6CW,CAAC;AACX,SAAO;AACT;AAEA,CAACC;AACC,WAAS;AACT,eAAa;AACb,YAAU;AACZ;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,yBAKkB;AACjB,oBAAkB;AACpB;AAEA,CAnBCF,sBAmBe;AACd,oBAAkB;AACpB;AAEA,CAACG;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,aAAW;AACX,mBAAiB;AACnB;AAEA,CAACC;AACC,SAAO;AACT;","names":["img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer"]} \ No newline at end of file +{"version":3,"sources":["../src/lib/markdown-renderer/styles.module.css"],"sourcesContent":[".img {\r\n max-width: 100%;\r\n padding-top: 2vh;\r\n border-radius: 4px;\r\n}\r\n\r\n.heading::before {\r\n content: '';\r\n display: block;\r\n visibility: hidden;\r\n pointer-events: none;\r\n}\r\n\r\n.heading :global([data-copy-heading-link]) {\r\n position: relative;\r\n top: -0.08em;\r\n}\r\n\r\n.code {\r\n background-color: unset;\r\n background-color: var(--md-code-background, #f6f8fa);\r\n border-radius: 4px;\r\n color: var(--md-code-text);\r\n margin: 0;\r\n padding: 0.2em 0.4em;\r\n font-size: 0.875em;\r\n word-break: break-word;\r\n overflow-wrap: break-word;\r\n}\r\n\r\ntable .code {\r\n word-break: normal;\r\n}\r\n\r\n.blockquote {\r\n display: grid;\r\n padding: 20px;\r\n gap: 20px;\r\n width: 100%;\r\n margin: 16px 0px 24px;\r\n border-radius: 4px;\r\n align-items: center;\r\n border: 1px solid #ccced8;\r\n grid-template-columns: 20px 1fr;\r\n grid-template-rows: auto;\r\n word-break: break-word;\r\n}\r\n\r\n.blockquote a {\r\n word-break: break-word;\r\n overflow-wrap: break-word;\r\n}\r\n\r\n.blockquote p,\r\n.blockquote div {\r\n margin: 0px;\r\n grid-column: 2 / -1;\r\n grid-row: 1 / 1;\r\n}\r\n\r\n.blockquote > div {\r\n width: 100%;\r\n max-width: 100%;\r\n min-width: 0;\r\n}\r\n\r\n.blockquote ch-code-scroll-parent {\r\n width: 100% !important;\r\n overflow-x: auto !important;\r\n overflow-y: hidden !important;\r\n background-color: unset !important;\r\n}\r\n\r\n.blockquote a {\r\n color: #e31c58 !important;\r\n -webkit-text-decoration: underline 1px solid;\r\n text-decoration: underline 1px solid;\r\n}\r\n\r\n.blockquote a:hover {\r\n color: #c81e51;\r\n}\r\n\r\n.blockquoteIcon {\r\n display: inline-block;\r\n flex-shrink: 0;\r\n grid-row: 1;\r\n}\r\n\r\n.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteWarning {\r\n background: #fff2d4;\r\n border: 1px solid #ffb100;\r\n}\r\n\r\n.blockquoteWarning code {\r\n background-color: #ffe5b5;\r\n}\r\n\r\n.blockquoteInfo code {\r\n background-color: unset;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.flexWrap {\r\n flex-wrap: wrap;\r\n justify-content: space-between;\r\n}\r\n\r\n.svgContainer {\r\n width: 100%;\r\n}"],"mappings":";AAAA,CAACA;AACC,aAAW;AACX,eAAa;AACb,iBAAe;AACjB;AAEA,CAACC,cAAO;AACN,WAAS;AACT,WAAS;AACT,cAAY;AACZ,kBAAgB;AAClB;AAEA,CAPCA,eAOgB,CAAC;AAChB,YAAU;AACV,OAAK;AACP;AAEA,CAACC;AACC,oBAAkB;AAClB,oBAAkB,IAAI,oBAAoB,EAAE;AAC5C,iBAAe;AACf,SAAO,IAAI;AACX,UAAQ;AACR,WAAS,MAAM;AACf,aAAW;AACX,cAAY;AACZ,iBAAe;AACjB;AAEA,MAAM,CAZLA;AAaC,cAAY;AACd;AAEA,CAACC;AACC,WAAS;AACT,WAAS;AACT,OAAK;AACL,SAAO;AACP,UAAQ,KAAK,IAAI;AACjB,iBAAe;AACf,eAAa;AACb,UAAQ,IAAI,MAAM;AAClB,yBAAuB,KAAK;AAC5B,sBAAoB;AACpB,cAAY;AACd;AAEA,CAdCA,kBAcW;AACV,cAAY;AACZ,iBAAe;AACjB;AAEA,CAnBCA,kBAmBW;AACZ,CApBCA,kBAoBW;AACV,UAAQ;AACR,eAAa,EAAE,EAAE;AACjB,YAAU,EAAE,EAAE;AAChB;AAEA,CA1BCA,kBA0BW,EAAE;AACZ,SAAO;AACP,aAAW;AACX,aAAW;AACb;AAEA,CAhCCA,kBAgCW;AACV,SAAO;AACP,cAAY;AACZ,cAAY;AACZ,oBAAkB;AACpB;AAEA,CAvCCA,kBAuCW;AACV,SAAO;AACP,2BAAyB,UAAU,IAAI;AAC/B,mBAAiB,UAAU,IAAI;AACzC;AAEA,CA7CCA,kBA6CW,CAAC;AACX,SAAO;AACT;AAEA,CAACC;AACC,WAAS;AACT,eAAa;AACb,YAAU;AACZ;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CALCA,yBAKkB;AACjB,oBAAkB;AACpB;AAEA,CAnBCF,sBAmBe;AACd,oBAAkB;AACpB;AAEA,CAACG;AACC,cAAY;AACZ,UAAQ,IAAI,MAAM;AACpB;AAEA,CAACC;AACC,aAAW;AACX,mBAAiB;AACnB;AAEA,CAACC;AACC,SAAO;AACT;","names":["img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer"]} \ No newline at end of file diff --git a/dist/index.d.mts b/dist/index.d.mts index 9d66628..dc070fb 100644 --- a/dist/index.d.mts +++ b/dist/index.d.mts @@ -199,6 +199,7 @@ type Section = { description: string; Icon: (props: IconProps) => JSX.Element; isExternalLink?: boolean; + excludeFromSearch?: boolean; }; type IconComponent = (props: IconProps) => JSX.Element; diff --git a/dist/index.mjs b/dist/index.mjs index 7db55c0..bf37498 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -12852,7 +12852,7 @@ var createHybridClient = (config) => { const query = params.query || ""; const hitsPerPage2 = params.hitsPerPage || pageSize; const page = params.page || 0; - const { locale, doctypes } = extractHybridFilters(params); + const { locale, doctypes, excludedDoctypes } = extractHybridFilters(params); const cacheKey = JSON.stringify({ q: query, locale: useLanguageFilter ? locale || "" : "", @@ -12895,13 +12895,14 @@ var createHybridClient = (config) => { } return counts; })(); - const [allHits, doctypeCounts] = await Promise.all([ + const [fetchedHits, doctypeCounts] = await Promise.all([ hitsPromise, countsPromise ]); if (doctypeCounts) { cachedCounts = doctypeCounts; } + const allHits = excludeHitsByDoctype(fetchedHits, excludedDoctypes); const initialFilteredHits = filterHitsByDoctype(allHits, doctypes); let listHits = doctypes.length ? initialFilteredHits : allHits; const doctypeDeepCacheKey = doctypes.length === 1 ? JSON.stringify({ @@ -12967,9 +12968,14 @@ var createHybridClient = (config) => { endOffset: start + pageHits.length }); } + const excludedDoctypeSet = new Set( + excludedDoctypes.map((d) => d.toLowerCase()) + ); const doctypeFacetData = {}; if (cachedCounts) { HYBRID_DOCTYPE_IDS.forEach((id) => { + if (excludedDoctypeSet.has(id.toLowerCase())) + return; const count2 = cachedCounts[id]; if (typeof count2 === "number") { doctypeFacetData[id] = count2; @@ -13031,19 +13037,35 @@ function clampUpstreamLimit(raw) { function extractHybridFilters(params) { let locale = ""; const doctypes = []; + const excludedDoctypes = []; const pushDoctype = (raw) => { const value = raw.replace(/^"|"$/g, "").trim(); if (value && !doctypes.includes(value)) doctypes.push(value); }; + const pushExcludedDoctype = (raw) => { + const value = raw.replace(/^"|"$/g, "").trim(); + if (value && !excludedDoctypes.includes(value)) { + excludedDoctypes.push(value); + } + }; const filtersStr = typeof params?.filters === "string" ? params.filters : ""; if (filtersStr) { const langMatch = filtersStr.match(/language\s*:\s*([\w-]+)/i); if (langMatch) locale = langMatch[1]; + const excludedRegex = /NOT\s+doctype\s*:\s*(?:"([^"]+)"|([^\s)]+))/gi; + let excludedMatch; + while ((excludedMatch = excludedRegex.exec(filtersStr)) !== null) { + pushExcludedDoctype(excludedMatch[1] || excludedMatch[2] || ""); + } + const positiveFiltersStr = filtersStr.replace( + /NOT\s+doctype\s*:\s*(?:"[^"]+"|[^\s)]+)/gi, + "" + ); const doctypeRegex = /doctype\s*:\s*(?:"([^"]+)"|([^\s)]+))/gi; let m; - while ((m = doctypeRegex.exec(filtersStr)) !== null) { + while ((m = doctypeRegex.exec(positiveFiltersStr)) !== null) { pushDoctype(m[1] || m[2] || ""); } } @@ -13060,7 +13082,15 @@ function extractHybridFilters(params) { } }; visit(facetFilters); - return { locale, doctypes }; + return { locale, doctypes, excludedDoctypes }; +} +function excludeHitsByDoctype(hits, excludedDoctypes) { + if (!excludedDoctypes.length) + return hits; + const excluded = new Set(excludedDoctypes.map((d) => d.toLowerCase())); + return hits.filter( + (h) => !excluded.has(String(h.doctype || "").toLowerCase()) + ); } function filterHitsByDoctype(hits, doctypes) { if (!doctypes.length) @@ -15029,7 +15059,7 @@ import { jsx as jsx69, jsxs as jsxs55 } from "react/jsx-runtime"; var SearchSections = () => { const { sidebarSections } = useContext20(LibraryContext); const internalOnlySections = sidebarSections.map( - (section) => section.filter((item2) => !item2.isExternalLink) + (section) => section.filter((item2) => !item2.isExternalLink && !item2.excludeFromSearch) ); return /* @__PURE__ */ jsx69(Box27, { sx: styles_default26.container, children: internalOnlySections.map((sections, id) => /* @__PURE__ */ jsxs55( Box27, @@ -15713,10 +15743,12 @@ import { jsx as jsx73, jsxs as jsxs59 } from "react/jsx-runtime"; var SearchResults = () => { const router = useRouter10(); const { filterSelectedSection, ocurrenceCount } = useContext23(SearchContext); - const { locale } = useContext23(LibraryContext); + const { locale, sidebarSections } = useContext23(LibraryContext); + const excludedDoctypesFilter = sidebarSections.flat().filter((section) => section.excludeFromSearch).map((section) => `NOT doctype:"${section.id}"`).join(" AND "); const filters = [ `language:${locale}`, - filterSelectedSection ? `doctype:"${filterSelectedSection}"` : "" + filterSelectedSection ? `doctype:"${filterSelectedSection}"` : "", + excludedDoctypesFilter ].filter(Boolean).join(" AND "); const keyword = String(router.query.keyword ?? ""); const [prevFilter, setPrevFilter] = useState23(""); @@ -15887,7 +15919,7 @@ var SearchFilterTabBar = () => { const { sidebarSections, sidebarDataMaster, locale } = useContext24(LibraryContext); const { ocurrenceCount, filterSelectedSection, changeFilterSelectedSection } = useContext24(SearchContext); const countsLoaded = Object.keys(ocurrenceCount).length > 0; - const visibleSections = sidebarSections.flat().filter((section) => !section.isExternalLink).filter( + const visibleSections = sidebarSections.flat().filter((section) => !section.isExternalLink && !section.excludeFromSearch).filter( (section) => !countsLoaded || hasFilterResults(ocurrenceCount, section.id) ); useEffect22(() => { diff --git a/dist/index.mjs.map b/dist/index.mjs.map index 78c0e5d..b47b040 100644 --- a/dist/index.mjs.map +++ b/dist/index.mjs.map @@ -1 +1 @@ -{"version":3,"sources":["../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/@algolia/cache-common/dist/cache-common.esm.js","../node_modules/@algolia/cache-in-memory/dist/cache-in-memory.esm.js","../node_modules/@algolia/client-analytics/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/requester-common/dist/requester-common.esm.js","../node_modules/@algolia/transporter/dist/transporter.esm.js","../node_modules/@algolia/client-analytics/dist/client-analytics.esm.js","../node_modules/algoliasearch/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-personalization/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-personalization/dist/client-personalization.esm.js","../node_modules/@algolia/client-search/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-search/dist/client-search.esm.js","../node_modules/@algolia/logger-common/dist/logger-common.esm.js","../node_modules/@algolia/recommend/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js","../node_modules/@algolia/recommend/dist/recommend.cjs.js","../node_modules/@algolia/recommend/index.js","../node_modules/algoliasearch/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js","../node_modules/algoliasearch/dist/algoliasearch.cjs.js","../node_modules/algoliasearch/index.js","../node_modules/algoliasearch/lite.js","../src/lib/markdown-renderer/MarkdownRenderer.tsx","../src/lib/markdown-renderer/components.tsx","../src/components/overview-card/styles.ts","../src/components/overview-card/index.tsx","../src/components/overview-card/icons.tsx","../src/components/youtube-frame/index.tsx","../src/components/steps/index.tsx","../src/components/steps/styles.ts","../src/components/lightbox/index.tsx","../src/components/icons/close-icon.tsx","../src/utils/hooks/useClickOutside.ts","../src/components/lightbox/styles.ts","../src/components/whats-next-card/index.tsx","../src/components/whats-next-card/styles.ts","../src/components/insert-account-name/index.tsx","../src/components/tooltip/index.tsx","../src/components/tooltip/styles.ts","../src/components/icons/caret.tsx","../src/utils/context/libraryContext.tsx","../src/messages/en.json","../src/messages/es.json","../src/messages/pt.json","../src/utils/get-message.ts","../src/components/insert-account-name/styles.ts","../src/utils/string-utils.ts","../src/utils/mermaidInit.ts","../src/components/copy-heading-link/index.tsx","../src/components/icons/link-icon.tsx","../src/components/copy-heading-link/styles.ts","../src/lib/markdown-renderer/styles.module.css","../src/lib/table-of-contents/TableOfContents.tsx","../src/lib/table-of-contents/styles.ts","../src/lib/on-this-page/OnThisPage.tsx","../src/components/icons/menu-icon.tsx","../src/lib/on-this-page/styles.ts","../src/lib/contributors/Contributors.tsx","../src/lib/contributors/styles.ts","../src/lib/sidebar/index.tsx","../src/lib/sidebar/styles.ts","../src/lib/sidebar/functions.ts","../src/utils/navigation-utils.ts","../src/utils/sidebar-utils.ts","../src/components/sidebar-section/index.tsx","../src/components/sidebar-section/styles.ts","../src/components/sidebar-section-filter/index.tsx","../src/components/method-category/index.tsx","../src/components/method-category/styles.ts","../src/components/method-category/functions.ts","../src/components/icons/close-filter-icon.tsx","../src/components/sidebar-section-filter/styles.ts","../src/components/sidebar-elements/index.tsx","../src/components/sidebar-elements/styles.ts","../src/components/sidebar-elements/functions.tsx","../src/components/icons/search-icon.tsx","../src/components/icons/sidebar-toggle-icon.tsx","../src/components/icons/arrow-left-icon.tsx","../src/lib/hamburger-menu/index.tsx","../src/lib/hamburger-menu/styles.ts","../src/components/documentation-card/index.tsx","../src/components/documentation-card/styles.ts","../src/components/documentation-card/functions.ts","../src/components/mobile-search/index.tsx","../src/components/search-input/index.tsx","../src/components/search-input/search-box.tsx","../src/components/search-input/styles.ts","../src/components/search-input/results-box.tsx","../src/components/icons/api-guides-icon.tsx","../src/components/icons/api-reference-icon.tsx","../src/components/icons/app-development-icon.tsx","../src/components/icons/release-notes-icon.tsx","../src/components/icons/storefront-development-icon.tsx","../src/components/icons/vtex-io-apps-icon.tsx","../src/components/icons/troubleshooting-icon.tsx","../src/components/icons/added-icon.tsx","../src/components/icons/deprecated-icon.tsx","../src/components/icons/fixed-icon.tsx","../src/components/icons/improved-icon.tsx","../src/components/icons/removed-icon.tsx","../src/utils/search-utils.ts","../src/components/search-input/customHighlight.tsx","../src/components/icons/copy-icon.tsx","../src/components/icons/external-link-icon.tsx","../src/components/icons/paper-icon.tsx","../src/utils/config/search-config.ts","../src/components/mobile-search/styles.ts","../src/components/feedback-section/index.tsx","../src/components/icons/like-icon.tsx","../src/components/icons/like-selected-icon.tsx","../src/components/feedback-section/styles.ts","../src/components/share-button/index.tsx","../src/components/icons/facebook-icon.tsx","../src/components/icons/linkedin-icon.tsx","../src/components/icons/share-icon.tsx","../src/components/icons/twitter-icon.tsx","../src/components/share-button/styles.ts","../src/components/icons/email-icon.tsx","../src/components/suggest-edits/index.tsx","../src/components/icons/edit-icon.tsx","../src/components/suggest-edits/styles.ts","../src/components/feedback-modal/index.tsx","../src/components/icons/check-icon.tsx","../src/components/icons/comment-icon.tsx","../src/components/icons/warning-icon.tsx","../src/components/feedback-modal/modal.tsx","../src/components/feedback-modal/styles.ts","../src/lib/search/index.tsx","../src/components/search-sections/index.tsx","../src/components/search-section/index.tsx","../src/components/search-section/styles.ts","../src/utils/context/search.tsx","../src/components/search-sections/styles.ts","../src/components/search-results/index.tsx","../src/components/search-results/infiniteHits.tsx","../src/components/search-card/index.tsx","../src/components/search-card/styles.ts","../src/components/icons/expanded-results-icon.tsx","../src/components/search-results/styles.ts","../src/components/search-filter-tab-bar/index.tsx","../src/components/search-filter-tab-bar/styles.ts","../src/lib/search/styles.ts","../src/lib/cookie-bar/index.tsx","../src/lib/cookie-bar/styles.ts","../src/components/copy-link-button/index.tsx","../src/components/copy-link-button/styles.ts","../src/components/copy-button/index.tsx","../src/components/copy-button/styles.ts","../src/components/ask-ai/index.tsx","../src/components/icons/chatgpt-icon.tsx","../src/components/icons/copilot-icon.tsx","../src/components/icons/claude-icon.tsx","../src/components/icons/gemini-icon.tsx","../src/components/icons/long-arrow-icon.tsx","../src/components/icons/markdown-icon.tsx","../src/components/ask-ai/styles.ts","../src/components/ask-assistant/index.tsx","../src/components/icons/book-icon.tsx","../src/components/icons/collapse-icon.tsx","../src/components/icons/expand-icon.tsx","../src/components/icons/history-icon.tsx","../src/components/icons/refresh-icon.tsx","../src/components/icons/send-icon.tsx","../src/components/icons/sparkle-icon.tsx","../src/components/icons/new-chat-icon.tsx","../src/components/ask-assistant/default-examples.tsx","../src/components/ask-assistant/history.ts","../src/components/ask-assistant/markdown.tsx","../src/components/ask-assistant/sources.tsx","../src/components/ask-assistant/styles.ts","../src/components/ask-assistant/stream.ts","../src/components/breadcrumb/index.tsx","../src/components/breadcrumb/styles.ts","../src/components/input/index.tsx","../src/components/input/styles.ts","../src/components/subscription-list/index.tsx","../src/utils/get-url.tsx","../src/components/subscription-list/styles.ts","../src/components/footer/index.tsx","../src/components/icons/vtex-logo-footer.tsx","../src/components/icons/instagram-icon.tsx","../src/components/icons/youtube-icon.tsx","../src/components/icons/facebook-circle-icon.tsx","../src/components/icons/linkedin-circle-icon.tsx","../src/components/footer/styles.ts","../src/components/header/index.tsx","../src/components/icons/vtex-devportal-icon.tsx","../src/components/icons/vtex-helpcenter-icon.tsx","../src/components/icons/grid-icon.tsx","../src/components/header/dropdown-menu.tsx","../src/components/header/dropdown-menu.styles.ts","../src/components/header/styles.ts","../src/components/announcement-bar/index.tsx","../src/components/announcement-bar/styles.ts","../src/components/tag/index.tsx","../src/components/tag/styles.ts","../src/components/listing-filter/index.tsx","../src/components/icons/filter-icon.tsx","../src/components/icons/trashcan-icon.tsx","../src/components/listing-filter/normalize.ts","../src/components/listing-filter/styles.ts","../src/components/chip-filter/index.tsx","../src/components/chip-filter/styles.ts","../src/components/author/index.tsx","../src/components/author/styles.ts","../src/components/time-to-read/index.tsx","../src/components/time-to-read/styles.ts","../src/components/date-text/index.tsx","../src/components/date-text/styles.ts","../src/components/article-pagination/index.tsx","../src/utils/format-article-date.ts","../src/components/article-pagination/styles.ts","../src/components/article-render/index.tsx","../src/components/see-also-section/index.tsx","../src/components/see-also-section/functions.ts","../src/components/see-also-section/styles.ts","../src/components/article-render/styles.ts","../src/components/troubleshooting-card/index.tsx","../src/components/troubleshooting-card/styles.ts","../src/utils/troubleshooting/filterItems.ts","../src/utils/troubleshooting/collectFilterOptions.ts","../src/utils/get-days-elapsed.ts","../src/components/icons/gear-troubleshooting-icon.tsx","../src/components/icons/documentation-updates-icon.tsx","../src/components/icons/helpcenter-icon.tsx","../src/components/icons/developer-portal-icon.tsx","../src/components/icons/faq-icon.tsx","../src/components/icons/known-issues-icon.tsx","../src/components/icons/megaphone-icon.tsx","../src/components/icons/graph-icon.tsx","../src/components/icons/start-here-icon.tsx","../src/components/icons/tutorials-icon.tsx","../src/components/icons/announcement-icon.tsx","../src/components/icons/info-icon.tsx","../src/components/icons/new-icon.tsx","../src/components/icons/github-icon.tsx","../src/components/icons/community-icon.tsx","../src/components/icons/twitter-circle-icon.tsx","../src/components/icons/checkbox.tsx","../src/components/icons/resize-icon.tsx","../src/components/icons/arrow-right-icon.tsx"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","// @todo Add logger on options to debug when caches go wrong.\r\nfunction createFallbackableCache(options) {\r\n const caches = [...options.caches];\r\n const current = caches.shift(); // eslint-disable-line functional/immutable-data\r\n if (current === undefined) {\r\n return createNullCache();\r\n }\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return current.get(key, defaultValue, events).catch(() => {\r\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\r\n });\r\n },\r\n set(key, value) {\r\n return current.set(key, value).catch(() => {\r\n return createFallbackableCache({ caches }).set(key, value);\r\n });\r\n },\r\n delete(key) {\r\n return current.delete(key).catch(() => {\r\n return createFallbackableCache({ caches }).delete(key);\r\n });\r\n },\r\n clear() {\r\n return current.clear().catch(() => {\r\n return createFallbackableCache({ caches }).clear();\r\n });\r\n },\r\n };\r\n}\n\nfunction createNullCache() {\r\n return {\r\n get(_key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const value = defaultValue();\r\n return value\r\n .then(result => Promise.all([result, events.miss(result)]))\r\n .then(([result]) => result);\r\n },\r\n set(_key, value) {\r\n return Promise.resolve(value);\r\n },\r\n delete(_key) {\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createFallbackableCache, createNullCache };\n","function createInMemoryCache(options = { serializable: true }) {\r\n // eslint-disable-next-line functional/no-let\r\n let cache = {};\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const keyAsString = JSON.stringify(key);\r\n if (keyAsString in cache) {\r\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\r\n }\r\n const promise = defaultValue();\r\n const miss = (events && events.miss) || (() => Promise.resolve());\r\n return promise.then((value) => miss(value)).then(() => promise);\r\n },\r\n set(key, value) {\r\n // eslint-disable-next-line functional/immutable-data\r\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\r\n return Promise.resolve(value);\r\n },\r\n delete(key) {\r\n // eslint-disable-next-line functional/immutable-data\r\n delete cache[JSON.stringify(key)];\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n cache = {};\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createInMemoryCache };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","const MethodEnum = {\r\n Delete: 'DELETE',\r\n Get: 'GET',\r\n Post: 'POST',\r\n Put: 'PUT',\r\n};\n\nexport { MethodEnum };\n","import { MethodEnum } from '@algolia/requester-common';\n\nfunction createMappedRequestOptions(requestOptions, timeout) {\r\n const options = requestOptions || {};\r\n const data = options.data || {};\r\n Object.keys(options).forEach(key => {\r\n if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {\r\n data[key] = options[key]; // eslint-disable-line functional/immutable-data\r\n }\r\n });\r\n return {\r\n data: Object.entries(data).length > 0 ? data : undefined,\r\n timeout: options.timeout || timeout,\r\n headers: options.headers || {},\r\n queryParameters: options.queryParameters || {},\r\n cacheable: options.cacheable,\r\n };\r\n}\n\nconst CallEnum = {\r\n /**\r\n * If the host is read only.\r\n */\r\n Read: 1,\r\n /**\r\n * If the host is write only.\r\n */\r\n Write: 2,\r\n /**\r\n * If the host is both read and write.\r\n */\r\n Any: 3,\r\n};\n\nconst HostStatusEnum = {\r\n Up: 1,\r\n Down: 2,\r\n Timeouted: 3,\r\n};\n\n// By default, API Clients at Algolia have expiration delay\r\n// of 5 mins. In the JavaScript client, we have 2 mins.\r\nconst EXPIRATION_DELAY = 2 * 60 * 1000;\r\nfunction createStatefulHost(host, status = HostStatusEnum.Up) {\r\n return {\r\n ...host,\r\n status,\r\n lastUpdate: Date.now(),\r\n };\r\n}\r\nfunction isStatefulHostUp(host) {\r\n return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;\r\n}\r\nfunction isStatefulHostTimeouted(host) {\r\n return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);\r\n}\n\nfunction createStatelessHost(options) {\r\n if (typeof options === 'string') {\r\n return {\r\n protocol: 'https',\r\n url: options,\r\n accept: CallEnum.Any,\r\n };\r\n }\r\n return {\r\n protocol: options.protocol || 'https',\r\n url: options.url,\r\n accept: options.accept || CallEnum.Any,\r\n };\r\n}\n\nfunction createRetryableOptions(hostsCache, statelessHosts) {\r\n return Promise.all(statelessHosts.map(statelessHost => {\r\n return hostsCache.get(statelessHost, () => {\r\n return Promise.resolve(createStatefulHost(statelessHost));\r\n });\r\n })).then(statefulHosts => {\r\n const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));\r\n const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));\r\n /**\r\n * Note, we put the hosts that previously timeouted on the end of the list.\r\n */\r\n const hostsAvailable = [...hostsUp, ...hostsTimeouted];\r\n const statelessHostsAvailable = hostsAvailable.length > 0\r\n ? hostsAvailable.map(host => createStatelessHost(host))\r\n : statelessHosts;\r\n return {\r\n getTimeout(timeoutsCount, baseTimeout) {\r\n /**\r\n * Imagine that you have 4 hosts, if timeouts will increase\r\n * on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)\r\n *\r\n * Note that, the very next request, we start from the previous timeout\r\n *\r\n * 5 (timeouted) > 6 (timeouted) > 7 ...\r\n *\r\n * This strategy may need to be reviewed, but is the strategy on the our\r\n * current v3 version.\r\n */\r\n const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0\r\n ? 1\r\n : hostsTimeouted.length + 3 + timeoutsCount;\r\n return timeoutMultiplier * baseTimeout;\r\n },\r\n statelessHosts: statelessHostsAvailable,\r\n };\r\n });\r\n}\n\nconst isNetworkError = ({ isTimedOut, status }) => {\r\n return !isTimedOut && ~~status === 0;\r\n};\r\nconst isRetryable = (response) => {\r\n const status = response.status;\r\n const isTimedOut = response.isTimedOut;\r\n return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));\r\n};\r\nconst isSuccess = ({ status }) => {\r\n return ~~(status / 100) === 2;\r\n};\r\nconst retryDecision = (response, outcomes) => {\r\n if (isRetryable(response)) {\r\n return outcomes.onRetry(response);\r\n }\r\n if (isSuccess(response)) {\r\n return outcomes.onSuccess(response);\r\n }\r\n return outcomes.onFail(response);\r\n};\n\nfunction retryableRequest(transporter, statelessHosts, request, requestOptions) {\r\n const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type\r\n /**\r\n * First we prepare the payload that do not depend from hosts.\r\n */\r\n const data = serializeData(request, requestOptions);\r\n const headers = serializeHeaders(transporter, requestOptions);\r\n const method = request.method;\r\n // On `GET`, the data is proxied to query parameters.\r\n const dataQueryParameters = request.method !== MethodEnum.Get\r\n ? {}\r\n : {\r\n ...request.data,\r\n ...requestOptions.data,\r\n };\r\n const queryParameters = {\r\n 'x-algolia-agent': transporter.userAgent.value,\r\n ...transporter.queryParameters,\r\n ...dataQueryParameters,\r\n ...requestOptions.queryParameters,\r\n };\r\n let timeoutsCount = 0; // eslint-disable-line functional/no-let\r\n const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type\r\n getTimeout) => {\r\n /**\r\n * We iterate on each host, until there is no host left.\r\n */\r\n const host = hosts.pop(); // eslint-disable-line functional/immutable-data\r\n if (host === undefined) {\r\n throw createRetryError(stackTraceWithoutCredentials(stackTrace));\r\n }\r\n const payload = {\r\n data,\r\n headers,\r\n method,\r\n url: serializeUrl(host, request.path, queryParameters),\r\n connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),\r\n responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),\r\n };\r\n /**\r\n * The stackFrame is pushed to the stackTrace so we\r\n * can have information about onRetry and onFailure\r\n * decisions.\r\n */\r\n const pushToStackTrace = (response) => {\r\n const stackFrame = {\r\n request: payload,\r\n response,\r\n host,\r\n triesLeft: hosts.length,\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n stackTrace.push(stackFrame);\r\n return stackFrame;\r\n };\r\n const decisions = {\r\n onSuccess: response => deserializeSuccess(response),\r\n onRetry(response) {\r\n const stackFrame = pushToStackTrace(response);\r\n /**\r\n * If response is a timeout, we increaset the number of\r\n * timeouts so we can increase the timeout later.\r\n */\r\n if (response.isTimedOut) {\r\n timeoutsCount++;\r\n }\r\n return Promise.all([\r\n /**\r\n * Failures are individually send the logger, allowing\r\n * the end user to debug / store stack frames even\r\n * when a retry error does not happen.\r\n */\r\n transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),\r\n /**\r\n * We also store the state of the host in failure cases. If the host, is\r\n * down it will remain down for the next 2 minutes. In a timeout situation,\r\n * this host will be added end of the list of hosts on the next request.\r\n */\r\n transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),\r\n ]).then(() => retry(hosts, getTimeout));\r\n },\r\n onFail(response) {\r\n pushToStackTrace(response);\r\n throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));\r\n },\r\n };\r\n return transporter.requester.send(payload).then(response => {\r\n return retryDecision(response, decisions);\r\n });\r\n };\r\n /**\r\n * Finally, for each retryable host perform request until we got a non\r\n * retryable response. Some notes here:\r\n *\r\n * 1. The reverse here is applied so we can apply a `pop` later on => more performant.\r\n * 2. We also get from the retryable options a timeout multiplier that is tailored\r\n * for the current context.\r\n */\r\n return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {\r\n return retry([...options.statelessHosts].reverse(), options.getTimeout);\r\n });\r\n}\n\nfunction createTransporter(options) {\r\n const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;\r\n const transporter = {\r\n hostsCache,\r\n logger,\r\n requester,\r\n requestsCache,\r\n responsesCache,\r\n timeouts,\r\n userAgent,\r\n headers,\r\n queryParameters,\r\n hosts: hosts.map(host => createStatelessHost(host)),\r\n read(request, requestOptions) {\r\n /**\r\n * First, we compute the user request options. Now, keep in mind,\r\n * that using request options the user is able to modified the intire\r\n * payload of the request. Such as headers, query parameters, and others.\r\n */\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);\r\n const createRetryableRequest = () => {\r\n /**\r\n * Then, we prepare a function factory that contains the construction of\r\n * the retryable request. At this point, we may *not* perform the actual\r\n * request. But we want to have the function factory ready.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);\r\n };\r\n /**\r\n * Once we have the function factory ready, we need to determine of the\r\n * request is \"cacheable\" - should be cached. Note that, once again,\r\n * the user can force this option.\r\n */\r\n const cacheable = mappedRequestOptions.cacheable !== undefined\r\n ? mappedRequestOptions.cacheable\r\n : request.cacheable;\r\n /**\r\n * If is not \"cacheable\", we immediatly trigger the retryable request, no\r\n * need to check cache implementations.\r\n */\r\n if (cacheable !== true) {\r\n return createRetryableRequest();\r\n }\r\n /**\r\n * If the request is \"cacheable\", we need to first compute the key to ask\r\n * the cache implementations if this request is on progress or if the\r\n * response already exists on the cache.\r\n */\r\n const key = {\r\n request,\r\n mappedRequestOptions,\r\n transporter: {\r\n queryParameters: transporter.queryParameters,\r\n headers: transporter.headers,\r\n },\r\n };\r\n /**\r\n * With the computed key, we first ask the responses cache\r\n * implemention if this request was been resolved before.\r\n */\r\n return transporter.responsesCache.get(key, () => {\r\n /**\r\n * If the request has never resolved before, we actually ask if there\r\n * is a current request with the same key on progress.\r\n */\r\n return transporter.requestsCache.get(key, () => {\r\n return (transporter.requestsCache\r\n /**\r\n * Finally, if there is no request in progress with the same key,\r\n * this `createRetryableRequest()` will actually trigger the\r\n * retryable request.\r\n */\r\n .set(key, createRetryableRequest())\r\n .then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))\r\n .then(([_, response]) => response));\r\n });\r\n }, {\r\n /**\r\n * Of course, once we get this response back from the server, we\r\n * tell response cache to actually store the received response\r\n * to be used later.\r\n */\r\n miss: response => transporter.responsesCache.set(key, response),\r\n });\r\n },\r\n write(request, requestOptions) {\r\n /**\r\n * On write requests, no cache mechanisms are applied, and we\r\n * proxy the request immediately to the requester.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));\r\n },\r\n };\r\n return transporter;\r\n}\n\nfunction createUserAgent(version) {\r\n const userAgent = {\r\n value: `Algolia for JavaScript (${version})`,\r\n add(options) {\r\n const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;\r\n if (userAgent.value.indexOf(addedUserAgent) === -1) {\r\n // eslint-disable-next-line functional/immutable-data\r\n userAgent.value = `${userAgent.value}${addedUserAgent}`;\r\n }\r\n return userAgent;\r\n },\r\n };\r\n return userAgent;\r\n}\n\nfunction deserializeSuccess(response) {\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n return JSON.parse(response.content);\r\n }\r\n catch (e) {\r\n throw createDeserializationError(e.message, response);\r\n }\r\n}\r\nfunction deserializeFailure({ content, status }, stackFrame) {\r\n // eslint-disable-next-line functional/no-let\r\n let message = content;\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n message = JSON.parse(content).message;\r\n }\r\n catch (e) {\r\n // ..\r\n }\r\n return createApiError(message, status, stackFrame);\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nfunction serializeUrl(host, path, queryParameters) {\r\n const queryParametersAsString = serializeQueryParameters(queryParameters);\r\n // eslint-disable-next-line functional/no-let\r\n let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;\r\n if (queryParametersAsString.length) {\r\n url += `?${queryParametersAsString}`;\r\n }\r\n return url;\r\n}\r\nfunction serializeQueryParameters(parameters) {\r\n const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||\r\n Object.prototype.toString.call(value) === '[object Array]';\r\n return Object.keys(parameters)\r\n .map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))\r\n .join('&');\r\n}\r\nfunction serializeData(request, requestOptions) {\r\n if (request.method === MethodEnum.Get ||\r\n (request.data === undefined && requestOptions.data === undefined)) {\r\n return undefined;\r\n }\r\n const data = Array.isArray(request.data)\r\n ? request.data\r\n : { ...request.data, ...requestOptions.data };\r\n return JSON.stringify(data);\r\n}\r\nfunction serializeHeaders(transporter, requestOptions) {\r\n const headers = {\r\n ...transporter.headers,\r\n ...requestOptions.headers,\r\n };\r\n const serializedHeaders = {};\r\n Object.keys(headers).forEach(header => {\r\n const value = headers[header];\r\n // @ts-ignore\r\n // eslint-disable-next-line functional/immutable-data\r\n serializedHeaders[header.toLowerCase()] = value;\r\n });\r\n return serializedHeaders;\r\n}\n\nfunction stackTraceWithoutCredentials(stackTrace) {\r\n return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));\r\n}\r\nfunction stackFrameWithoutCredentials(stackFrame) {\r\n const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']\r\n ? { 'x-algolia-api-key': '*****' }\r\n : {};\r\n return {\r\n ...stackFrame,\r\n request: {\r\n ...stackFrame.request,\r\n headers: {\r\n ...stackFrame.request.headers,\r\n ...modifiedHeaders,\r\n },\r\n },\r\n };\r\n}\n\nfunction createApiError(message, status, transporterStackTrace) {\r\n return {\r\n name: 'ApiError',\r\n message,\r\n status,\r\n transporterStackTrace,\r\n };\r\n}\n\nfunction createDeserializationError(message, response) {\r\n return {\r\n name: 'DeserializationError',\r\n message,\r\n response,\r\n };\r\n}\n\nfunction createRetryError(transporterStackTrace) {\r\n return {\r\n name: 'RetryError',\r\n message: 'Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .',\r\n transporterStackTrace,\r\n };\r\n}\n\nexport { CallEnum, HostStatusEnum, createApiError, createDeserializationError, createMappedRequestOptions, createRetryError, createStatefulHost, createStatelessHost, createTransporter, createUserAgent, deserializeFailure, deserializeSuccess, isStatefulHostTimeouted, isStatefulHostUp, serializeData, serializeHeaders, serializeQueryParameters, serializeUrl, stackFrameWithoutCredentials, stackTraceWithoutCredentials };\n","import { createAuth, AuthMode, addMethods, encode } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createAnalyticsClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `analytics.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const appId = options.appId;\r\n return addMethods({ appId, transporter }, options.methods);\r\n};\n\nconst addABTest = (base) => {\r\n return (abTest, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '2/abtests',\r\n data: abTest,\r\n }, requestOptions);\r\n };\r\n};\n\nconst deleteABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTests = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '2/abtests',\r\n }, requestOptions);\r\n };\r\n};\n\nconst stopABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('2/abtests/%s/stop', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nexport { addABTest, createAnalyticsClient, deleteABTest, getABTest, getABTests, stopABTest };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import { createAuth, AuthMode, addMethods } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createPersonalizationClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `personalization.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n return addMethods({ appId: options.appId, transporter }, options.methods);\r\n};\n\nconst getPersonalizationStrategy = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/strategies/personalization',\r\n }, requestOptions);\r\n };\r\n};\n\nconst setPersonalizationStrategy = (base) => {\r\n return (personalizationStrategy, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/strategies/personalization',\r\n data: personalizationStrategy,\r\n }, requestOptions);\r\n };\r\n};\n\nexport { createPersonalizationClient, getPersonalizationStrategy, setPersonalizationStrategy };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import { createAuth, AuthMode, shuffle, addMethods, createWaitablePromise, createRetryablePromise, encode } from '@algolia/client-common';\nimport { createTransporter, CallEnum, createMappedRequestOptions, serializeQueryParameters } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\nimport { createHmac } from 'crypto';\n\nfunction createBrowsablePromise(options) {\r\n const browse = (data) => {\r\n return options.request(data).then(response => {\r\n /**\r\n * First we send to the developer the\r\n * batch retrieved from the API.\r\n */\r\n if (options.batch !== undefined) {\r\n options.batch(response.hits);\r\n }\r\n /**\r\n * Then, we ask to the browse concrete implementation\r\n * if we should stop browsing. As example, the `browseObjects`\r\n * method will stop if the cursor is not present on the response.\r\n */\r\n if (options.shouldStop(response)) {\r\n return undefined;\r\n }\r\n /**\r\n * Finally, if the response contains a cursor, we browse to the next\r\n * batch using that same cursor. Otherwise, we just use the traditional\r\n * browsing using the page element.\r\n */\r\n if (response.cursor) {\r\n return browse({\r\n cursor: response.cursor,\r\n });\r\n }\r\n return browse({\r\n page: (data.page || 0) + 1,\r\n });\r\n });\r\n };\r\n return browse({});\r\n}\n\nconst createSearchClient = options => {\r\n const appId = options.appId;\r\n const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: CallEnum.Write },\r\n ].concat(shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter.requestsCache.clear(),\r\n transporter.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return addMethods(base, options.methods);\r\n};\n\nfunction createMissingObjectIDError() {\r\n return {\r\n name: 'MissingObjectIDError',\r\n message: 'All objects must have an unique objectID ' +\r\n '(like a primary key) to be valid. ' +\r\n 'Algolia is also able to generate objectIDs ' +\r\n \"automatically but *it's not recommended*. \" +\r\n \"To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option.\",\r\n };\r\n}\n\nfunction createObjectNotFoundError() {\r\n return {\r\n name: 'ObjectNotFoundError',\r\n message: 'Object not found.',\r\n };\r\n}\n\nfunction createValidUntilNotFoundError() {\r\n return {\r\n name: 'ValidUntilNotFoundError',\r\n message: 'ValidUntil not found in given secured api key.',\r\n };\r\n}\n\nconst addApiKey = (base) => {\r\n return (acl, requestOptions) => {\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = {\r\n acl,\r\n ...(queryParameters !== undefined ? { queryParameters } : {}),\r\n };\r\n const wait = (response, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(response.key, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/keys',\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst assignUserID = (base) => {\r\n return (userID, clusterName, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping',\r\n data: { cluster: clusterName },\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst assignUserIDs = (base) => {\r\n return (userIDs, clusterName, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/batch',\r\n data: {\r\n users: userIDs,\r\n cluster: clusterName,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst clearDictionaryEntries = (base) => {\r\n return (dictionary, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: {\r\n clearExistingDictionaryEntries: true,\r\n requests: { action: 'addEntry', body: [] },\r\n },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst copyIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'copy',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst copyRules = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Rules],\r\n });\r\n };\r\n};\n\nconst copySettings = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Settings],\r\n });\r\n };\r\n};\n\nconst copySynonyms = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Synonyms],\r\n });\r\n };\r\n};\n\nconst customRequest = (base) => {\r\n return (request, requestOptions) => {\r\n if (request.method === MethodEnum.Get) {\r\n return base.transporter.read(request, requestOptions);\r\n }\r\n return base.transporter.write(request, requestOptions);\r\n };\r\n};\n\nconst deleteApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions)\r\n .then(retry)\r\n .catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst deleteDictionaryEntries = (base) => {\r\n return (dictionary, objectIDs, requestOptions) => {\r\n const requests = objectIDs.map(objectID => ({\r\n action: 'deleteEntry',\r\n body: { objectID },\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst generateSecuredApiKey = () => {\r\n return (parentApiKey, restrictions) => {\r\n const queryParameters = serializeQueryParameters(restrictions);\r\n const securedKey = createHmac('sha256', parentApiKey)\r\n .update(queryParameters)\r\n .digest('hex');\r\n return Buffer.from(securedKey + queryParameters).toString('base64');\r\n };\r\n};\n\nconst getApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/task/%s', taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getDictionarySettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '/1/dictionaries/*/settings',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getLogs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/logs',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSecuredApiKeyRemainingValidity = () => {\r\n return (securedApiKey) => {\r\n const decodedString = Buffer.from(securedApiKey, 'base64').toString('ascii');\r\n const regex = /validUntil=(\\d+)/;\r\n const match = decodedString.match(regex);\r\n if (match === null) {\r\n throw createValidUntilNotFoundError();\r\n }\r\n return parseInt(match[1], 10) - Math.round(new Date().getTime() / 1000);\r\n };\r\n};\n\nconst getTopUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/top',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/clusters/mapping/%s', userID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst hasPendingMappings = (base) => {\r\n return (requestOptions) => {\r\n const { retrieveMappings, ...options } = requestOptions || {};\r\n if (retrieveMappings === true) {\r\n // eslint-disable-next-line functional/immutable-data\r\n options.getClusters = true;\r\n }\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/pending',\r\n }, options);\r\n };\r\n};\n\nconst initIndex = (base) => {\r\n return (indexName, options = {}) => {\r\n const searchIndex = {\r\n transporter: base.transporter,\r\n appId: base.appId,\r\n indexName,\r\n };\r\n return addMethods(searchIndex, options.methods);\r\n };\r\n};\n\nconst listApiKeys = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/keys',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listClusters = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listIndices = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/indexes',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping',\r\n }, requestOptions);\r\n };\r\n};\n\nconst moveIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'move',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleBatch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return Promise.all(Object.keys(response.taskID).map(indexName => {\r\n return initIndex(base)(indexName, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID[indexName], waitRequestOptions);\r\n }));\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/batch',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleGetObjects = (base) => {\r\n return (requests, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleQueries = (base) => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => {\r\n return {\r\n ...query,\r\n params: serializeQueryParameters(query.params || {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/queries',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleSearchForFacetValues = (base) => {\r\n return (queries, requestOptions) => {\r\n return Promise.all(queries.map(query => {\r\n const { facetName, facetQuery, ...params } = query.params;\r\n return initIndex(base)(query.indexName, {\r\n methods: { searchForFacetValues },\r\n }).searchForFacetValues(facetName, facetQuery, {\r\n ...requestOptions,\r\n ...params,\r\n });\r\n }));\r\n };\r\n};\n\nconst removeUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: '1/clusters/mapping',\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst replaceDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: true, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst restoreApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/keys/%s/restore', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst saveDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst searchDictionaryEntries = (base) => {\r\n return (dictionary, query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/search', dictionary),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchUserIDs = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/search',\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setDictionarySettings = (base) => {\r\n return (settings, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: '/1/dictionaries/*/settings',\r\n data: settings,\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst updateApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const updatedFields = Object.assign({}, requestOptions);\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = queryParameters ? { queryParameters } : {};\r\n const apiKeyFields = [\r\n 'acl',\r\n 'indexes',\r\n 'referers',\r\n 'restrictSources',\r\n 'queryParameters',\r\n 'description',\r\n 'maxQueriesPerIPPerHour',\r\n 'maxHitsPerQuery',\r\n ];\r\n // Check that all the fields retrieved through getApiKey are the same as the ones we wanted to update\r\n const hasChanged = (getApiKeyResponse) => {\r\n return Object.keys(updatedFields)\r\n .filter((updatedField) => apiKeyFields.indexOf(updatedField) !== -1)\r\n .every(updatedField => {\r\n // If the field is an array, we need to check that they are the same length and that all the values are the same\r\n if (Array.isArray(getApiKeyResponse[updatedField]) &&\r\n Array.isArray(updatedFields[updatedField])) {\r\n const getApiKeyResponseArray = getApiKeyResponse[updatedField];\r\n return (getApiKeyResponseArray.length === updatedFields[updatedField].length &&\r\n getApiKeyResponseArray.every((value, index) => value === updatedFields[updatedField][index]));\r\n }\r\n else {\r\n return getApiKeyResponse[updatedField] === updatedFields[updatedField];\r\n }\r\n });\r\n };\r\n const wait = (_, waitRequestOptions) => createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).then(getApiKeyResponse => {\r\n return hasChanged(getApiKeyResponse) ? Promise.resolve() : retry();\r\n });\r\n });\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/keys/%s', apiKey),\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst waitAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getAppTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst batch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return waitTask(base)(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/batch', base.indexName),\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst browseObjects = (base) => {\r\n return (requestOptions) => {\r\n return createBrowsablePromise({\r\n shouldStop: response => response.cursor === undefined,\r\n ...requestOptions,\r\n request: (data) => base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/browse', base.indexName),\r\n data,\r\n }, requestOptions),\r\n });\r\n };\r\n};\n\nconst browseRules = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchRules(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(rule => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete rule._highlightResult;\r\n return rule;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst browseSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchSynonyms(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(synonym => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete synonym._highlightResult;\r\n return synonym;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst chunkedBatch = (base) => {\r\n return (bodies, action, requestOptions) => {\r\n const { batchSize, ...options } = requestOptions || {};\r\n const response = {\r\n taskIDs: [],\r\n objectIDs: [],\r\n };\r\n const forEachBatch = (lastIndex = 0) => {\r\n // eslint-disable-next-line functional/prefer-readonly-type\r\n const bodiesChunk = [];\r\n // eslint-disable-next-line functional/no-let\r\n let index;\r\n /* eslint-disable-next-line functional/no-loop-statement */\r\n for (index = lastIndex; index < bodies.length; index++) {\r\n // eslint-disable-next-line functional/immutable-data\r\n bodiesChunk.push(bodies[index]);\r\n if (bodiesChunk.length === (batchSize || 1000)) {\r\n break;\r\n }\r\n }\r\n if (bodiesChunk.length === 0) {\r\n return Promise.resolve(response);\r\n }\r\n return batch(base)(bodiesChunk.map(body => {\r\n return {\r\n action,\r\n body,\r\n };\r\n }), options).then(res => {\r\n response.objectIDs = response.objectIDs.concat(res.objectIDs); // eslint-disable-line functional/immutable-data\r\n response.taskIDs.push(res.taskID); // eslint-disable-line functional/immutable-data\r\n index++;\r\n return forEachBatch(index);\r\n });\r\n };\r\n return createWaitablePromise(forEachBatch(), (chunkedBatchResponse, waitRequestOptions) => {\r\n return Promise.all(chunkedBatchResponse.taskIDs.map(taskID => {\r\n return waitTask(base)(taskID, waitRequestOptions);\r\n }));\r\n });\r\n };\r\n};\n\nconst clearObjects = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/clear', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearRules = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteBy = (base) => {\r\n return (filters, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/deleteByQuery', base.indexName),\r\n data: filters,\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteIndex = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return createWaitablePromise(deleteObjects(base)([objectID], requestOptions).then(response => {\r\n return { taskID: response.taskIDs[0] };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const objects = objectIDs.map(objectID => {\r\n return { objectID };\r\n });\r\n return chunkedBatch(base)(objects, BatchActionEnum.DeleteObject, requestOptions);\r\n };\r\n};\n\nconst deleteRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/synonyms/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst exists = (base) => {\r\n return (requestOptions) => {\r\n return getSettings(base)(requestOptions)\r\n .then(() => true)\r\n .catch(error => {\r\n if (error.status !== 404) {\r\n throw error;\r\n }\r\n return false;\r\n });\r\n };\r\n};\n\nconst findAnswers = (base) => {\r\n return (query, queryLanguages, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/answers/%s/prediction', base.indexName),\r\n data: {\r\n query,\r\n queryLanguages,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst findObject = (base) => {\r\n return (callback, requestOptions) => {\r\n const { query, paginate, ...options } = requestOptions || {};\r\n // eslint-disable-next-line functional/no-let\r\n let page = 0;\r\n const forEachPage = () => {\r\n return search(base)(query || '', { ...options, page }).then(result => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(result.hits)) {\r\n // eslint-disable-next-line promise/no-callback-in-promise\r\n if (callback(hit)) {\r\n return {\r\n object: hit,\r\n position: parseInt(position, 10),\r\n page,\r\n };\r\n }\r\n }\r\n page++;\r\n // paginate if option was set and has next page\r\n if (paginate === false || page >= result.nbPages) {\r\n throw createObjectNotFoundError();\r\n }\r\n return forEachPage();\r\n });\r\n };\r\n return forEachPage();\r\n };\r\n};\n\nconst getObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getObjectPosition = () => {\r\n return (searchResponse, objectID) => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(searchResponse.hits)) {\r\n if (hit.objectID === objectID) {\r\n return parseInt(position, 10);\r\n }\r\n }\r\n return -1;\r\n };\r\n};\n\nconst getObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const { attributesToRetrieve, ...options } = requestOptions || {};\r\n const requests = objectIDs.map(objectID => {\r\n return {\r\n indexName: base.indexName,\r\n objectID,\r\n ...(attributesToRetrieve ? { attributesToRetrieve } : {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, options);\r\n };\r\n};\n\nconst getRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: {\r\n getVersion: 2,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode(`1/indexes/%s/synonyms/%s`, base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/task/%s', base.indexName, taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst partialUpdateObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(partialUpdateObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst partialUpdateObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { createIfNotExists, ...options } = requestOptions || {};\r\n const action = createIfNotExists\r\n ? BatchActionEnum.PartialUpdateObject\r\n : BatchActionEnum.PartialUpdateObjectNoCreate;\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst replaceAllObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { safe, autoGenerateObjectIDIfNotExist, batchSize, ...options } = requestOptions || {};\r\n const operation = (from, to, type, operationRequestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: type,\r\n destination: to,\r\n },\r\n }, operationRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n const randomSuffix = Math.random()\r\n .toString(36)\r\n .substring(7);\r\n const temporaryIndexName = `${base.indexName}_tmp_${randomSuffix}`;\r\n const saveObjectsInTemporary = saveObjects({\r\n appId: base.appId,\r\n transporter: base.transporter,\r\n indexName: temporaryIndexName,\r\n });\r\n // @ts-ignore\r\n // eslint-disable-next-line prefer-const, functional/no-let, functional/prefer-readonly-type\r\n let responses = [];\r\n const copyWaitablePromise = operation(base.indexName, temporaryIndexName, 'copy', {\r\n ...options,\r\n scope: ['settings', 'synonyms', 'rules'],\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(copyWaitablePromise);\r\n const result = (safe\r\n ? copyWaitablePromise.wait(options)\r\n : copyWaitablePromise)\r\n .then(() => {\r\n const saveObjectsWaitablePromise = saveObjectsInTemporary(objects, {\r\n ...options,\r\n autoGenerateObjectIDIfNotExist,\r\n batchSize,\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(saveObjectsWaitablePromise);\r\n return safe ? saveObjectsWaitablePromise.wait(options) : saveObjectsWaitablePromise;\r\n })\r\n .then(() => {\r\n const moveWaitablePromise = operation(temporaryIndexName, base.indexName, 'move', options);\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(moveWaitablePromise);\r\n return safe ? moveWaitablePromise.wait(options) : moveWaitablePromise;\r\n })\r\n .then(() => Promise.all(responses))\r\n .then(([copyResponse, saveObjectsResponse, moveResponse]) => {\r\n return {\r\n objectIDs: saveObjectsResponse.objectIDs,\r\n taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID],\r\n };\r\n });\r\n return createWaitablePromise(result, (_, waitRequestOptions) => {\r\n return Promise.all(responses.map(response => response.wait(waitRequestOptions)));\r\n });\r\n };\r\n};\n\nconst replaceAllRules = (base) => {\r\n return (rules, requestOptions) => {\r\n return saveRules(base)(rules, {\r\n ...requestOptions,\r\n clearExistingRules: true,\r\n });\r\n };\r\n};\n\nconst replaceAllSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n return saveSynonyms(base)(synonyms, {\r\n ...requestOptions,\r\n clearExistingSynonyms: true,\r\n });\r\n };\r\n};\n\nconst saveObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(saveObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { autoGenerateObjectIDIfNotExist, ...options } = requestOptions || {};\r\n const action = autoGenerateObjectIDIfNotExist\r\n ? BatchActionEnum.AddObject\r\n : BatchActionEnum.UpdateObject;\r\n if (action === BatchActionEnum.UpdateObject) {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const object of objects) {\r\n if (object.objectID === undefined) {\r\n return createWaitablePromise(Promise.reject(createMissingObjectIDError()));\r\n }\r\n }\r\n }\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst saveRule = (base) => {\r\n return (rule, requestOptions) => {\r\n return saveRules(base)([rule], requestOptions);\r\n };\r\n};\n\nconst saveRules = (base) => {\r\n return (rules, requestOptions) => {\r\n const { forwardToReplicas, clearExistingRules, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (clearExistingRules) {\r\n mappedRequestOptions.queryParameters.clearExistingRules = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/batch', base.indexName),\r\n data: rules,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveSynonym = (base) => {\r\n return (synonym, requestOptions) => {\r\n return saveSynonyms(base)([synonym], requestOptions);\r\n };\r\n};\n\nconst saveSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n const { forwardToReplicas, clearExistingSynonyms, replaceExistingSynonyms, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (replaceExistingSynonyms || clearExistingSynonyms) {\r\n mappedRequestOptions.queryParameters.replaceExistingSynonyms = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/batch', base.indexName),\r\n data: synonyms,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst search = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/query', base.indexName),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchForFacetValues = (base) => {\r\n return (facetName, facetQuery, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName),\r\n data: {\r\n facetQuery,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchRules = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchSynonyms = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setSettings = (base) => {\r\n return (settings, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: settings,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst waitTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst ApiKeyACLEnum = {\r\n AddObject: 'addObject',\r\n Analytics: 'analytics',\r\n Browser: 'browse',\r\n DeleteIndex: 'deleteIndex',\r\n DeleteObject: 'deleteObject',\r\n EditSettings: 'editSettings',\r\n Inference: 'inference',\r\n ListIndexes: 'listIndexes',\r\n Logs: 'logs',\r\n Personalization: 'personalization',\r\n Recommendation: 'recommendation',\r\n Search: 'search',\r\n SeeUnretrievableAttributes: 'seeUnretrievableAttributes',\r\n Settings: 'settings',\r\n Usage: 'usage',\r\n};\n\nconst BatchActionEnum = {\r\n AddObject: 'addObject',\r\n UpdateObject: 'updateObject',\r\n PartialUpdateObject: 'partialUpdateObject',\r\n PartialUpdateObjectNoCreate: 'partialUpdateObjectNoCreate',\r\n DeleteObject: 'deleteObject',\r\n DeleteIndex: 'delete',\r\n ClearIndex: 'clear',\r\n};\n\nconst ScopeEnum = {\r\n Settings: 'settings',\r\n Synonyms: 'synonyms',\r\n Rules: 'rules',\r\n};\n\nconst StrategyEnum = {\r\n None: 'none',\r\n StopIfEnoughMatches: 'stopIfEnoughMatches',\r\n};\n\nconst SynonymEnum = {\r\n Synonym: 'synonym',\r\n OneWaySynonym: 'oneWaySynonym',\r\n AltCorrection1: 'altCorrection1',\r\n AltCorrection2: 'altCorrection2',\r\n Placeholder: 'placeholder',\r\n};\n\nexport { ApiKeyACLEnum, BatchActionEnum, ScopeEnum, StrategyEnum, SynonymEnum, addApiKey, assignUserID, assignUserIDs, batch, browseObjects, browseRules, browseSynonyms, chunkedBatch, clearDictionaryEntries, clearObjects, clearRules, clearSynonyms, copyIndex, copyRules, copySettings, copySynonyms, createBrowsablePromise, createMissingObjectIDError, createObjectNotFoundError, createSearchClient, createValidUntilNotFoundError, customRequest, deleteApiKey, deleteBy, deleteDictionaryEntries, deleteIndex, deleteObject, deleteObjects, deleteRule, deleteSynonym, exists, findAnswers, findObject, generateSecuredApiKey, getApiKey, getAppTask, getDictionarySettings, getLogs, getObject, getObjectPosition, getObjects, getRule, getSecuredApiKeyRemainingValidity, getSettings, getSynonym, getTask, getTopUserIDs, getUserID, hasPendingMappings, initIndex, listApiKeys, listClusters, listIndices, listUserIDs, moveIndex, multipleBatch, multipleGetObjects, multipleQueries, multipleSearchForFacetValues, partialUpdateObject, partialUpdateObjects, removeUserID, replaceAllObjects, replaceAllRules, replaceAllSynonyms, replaceDictionaryEntries, restoreApiKey, saveDictionaryEntries, saveObject, saveObjects, saveRule, saveRules, saveSynonym, saveSynonyms, search, searchDictionaryEntries, searchForFacetValues, searchRules, searchSynonyms, searchUserIDs, setDictionarySettings, setSettings, updateApiKey, waitAppTask, waitTask };\n","function createNullLogger() {\r\n return {\r\n debug(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n info(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n error(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nconst LogLevelEnum = {\r\n Debug: 1,\r\n Info: 2,\r\n Error: 3,\r\n};\n\nexport { LogLevelEnum, createNullLogger };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import * as http from 'http';\nimport { Agent } from 'http';\nimport * as https from 'https';\nimport { Agent as Agent$1 } from 'https';\nimport { parse } from 'url';\n\n/* eslint functional/prefer-readonly-type: 0 */\r\nconst agentOptions = { keepAlive: true };\r\nconst defaultHttpAgent = new Agent(agentOptions);\r\nconst defaultHttpsAgent = new Agent$1(agentOptions);\r\nfunction createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) {\r\n const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent;\r\n const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent;\r\n return {\r\n send(request) {\r\n return new Promise(resolve => {\r\n const url = parse(request.url);\r\n const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`;\r\n const options = {\r\n ...requesterOptions,\r\n agent: url.protocol === 'https:' ? httpsAgent : httpAgent,\r\n hostname: url.hostname,\r\n path,\r\n method: request.method,\r\n headers: {\r\n ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}),\r\n ...request.headers,\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n response.on('data', chunk => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n });\r\n response.on('end', () => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(connectTimeout);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n status: response.statusCode || 0,\r\n content: Buffer.concat(contentBuffers).toString(),\r\n isTimedOut: false,\r\n });\r\n });\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n req.on('error', error => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n });\r\n req.once('response', () => {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n });\r\n if (request.data !== undefined) {\r\n req.write(request.data);\r\n }\r\n req.end();\r\n });\r\n },\r\n destroy() {\r\n httpAgent.destroy();\r\n httpsAgent.destroy();\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createNodeHttpRequester };\n","'use strict';\n\nvar cacheCommon = require('@algolia/cache-common');\nvar cacheInMemory = require('@algolia/cache-in-memory');\nvar clientCommon = require('@algolia/client-common');\nvar loggerCommon = require('@algolia/logger-common');\nvar requesterNodeHttp = require('@algolia/requester-node-http');\nvar transporter = require('@algolia/transporter');\nvar requesterCommon = require('@algolia/requester-common');\n\nconst createRecommendClient = options => {\r\n const appId = options.appId;\r\n const auth = clientCommon.createAuth(options.authMode !== undefined ? options.authMode : clientCommon.AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter$1 = transporter.createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: transporter.CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: transporter.CallEnum.Write },\r\n ].concat(clientCommon.shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter: transporter$1,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter$1.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter$1.requestsCache.clear(),\r\n transporter$1.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return clientCommon.addMethods(base, options.methods);\r\n};\n\nconst getRecommendations = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getFrequentlyBoughtTogether = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n fallbackParameters: {},\r\n model: 'bought-together',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getRelatedProducts = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n model: 'related-products',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getTrendingFacets = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'trending-facets',\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getTrendingItems = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'trending-items',\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getLookingSimilar = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n model: 'looking-similar',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getRecommendedForYou = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'recommended-for-you',\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nfunction recommend(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 2,\r\n read: 5,\r\n write: 30,\r\n },\r\n requester: requesterNodeHttp.createNodeHttpRequester(),\r\n logger: loggerCommon.createNullLogger(),\r\n responsesCache: cacheCommon.createNullCache(),\r\n requestsCache: cacheCommon.createNullCache(),\r\n hostsCache: cacheInMemory.createInMemoryCache(),\r\n userAgent: transporter.createUserAgent(clientCommon.version)\r\n .add({ segment: 'Recommend', version: clientCommon.version })\r\n .add({ segment: 'Node.js', version: process.versions.node }),\r\n };\r\n return createRecommendClient({\r\n ...commonOptions,\r\n ...options,\r\n methods: {\r\n destroy: clientCommon.destroy,\r\n getFrequentlyBoughtTogether,\r\n getRecommendations,\r\n getRelatedProducts,\r\n getTrendingFacets,\r\n getTrendingItems,\r\n getLookingSimilar,\r\n getRecommendedForYou,\r\n },\r\n });\r\n}\r\n/* eslint-disable functional/immutable-data */\r\nrecommend.version = clientCommon.version;\r\nrecommend.getFrequentlyBoughtTogether = getFrequentlyBoughtTogether;\r\nrecommend.getRecommendations = getRecommendations;\r\nrecommend.getRelatedProducts = getRelatedProducts;\r\nrecommend.getTrendingFacets = getTrendingFacets;\r\nrecommend.getTrendingItems = getTrendingItems;\r\nrecommend.getLookingSimilar = getLookingSimilar;\r\nrecommend.getRecommendedForYou = getRecommendedForYou;\n\nmodule.exports = recommend;\n","/* eslint-disable functional/immutable-data, import/no-commonjs */\nconst recommend = require('./dist/recommend.cjs.js');\n\n/**\n * The Common JS build is the default entry point for the Node environment. Keep in\n * in mind, that for the browser environment, we hint the bundler to use the UMD\n * build instead as specified on the key `browser` of our `package.json` file.\n */\nmodule.exports = recommend;\n\n/**\n * In addition, we also set explicitly the default export below making\n * this Common JS module in compliance with es6 modules specification.\n */\nmodule.exports.default = recommend;\n","import * as http from 'http';\nimport { Agent } from 'http';\nimport * as https from 'https';\nimport { Agent as Agent$1 } from 'https';\nimport { parse } from 'url';\n\n/* eslint functional/prefer-readonly-type: 0 */\r\nconst agentOptions = { keepAlive: true };\r\nconst defaultHttpAgent = new Agent(agentOptions);\r\nconst defaultHttpsAgent = new Agent$1(agentOptions);\r\nfunction createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) {\r\n const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent;\r\n const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent;\r\n return {\r\n send(request) {\r\n return new Promise(resolve => {\r\n const url = parse(request.url);\r\n const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`;\r\n const options = {\r\n ...requesterOptions,\r\n agent: url.protocol === 'https:' ? httpsAgent : httpAgent,\r\n hostname: url.hostname,\r\n path,\r\n method: request.method,\r\n headers: {\r\n ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}),\r\n ...request.headers,\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n response.on('data', chunk => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n });\r\n response.on('end', () => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(connectTimeout);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n status: response.statusCode || 0,\r\n content: Buffer.concat(contentBuffers).toString(),\r\n isTimedOut: false,\r\n });\r\n });\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n req.on('error', error => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n });\r\n req.once('response', () => {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n });\r\n if (request.data !== undefined) {\r\n req.write(request.data);\r\n }\r\n req.end();\r\n });\r\n },\r\n destroy() {\r\n httpAgent.destroy();\r\n httpsAgent.destroy();\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createNodeHttpRequester };\n","'use strict';\n\nvar cacheCommon = require('@algolia/cache-common');\nvar cacheInMemory = require('@algolia/cache-in-memory');\nvar clientAnalytics = require('@algolia/client-analytics');\nvar clientCommon = require('@algolia/client-common');\nvar clientPersonalization = require('@algolia/client-personalization');\nvar clientSearch = require('@algolia/client-search');\nvar loggerCommon = require('@algolia/logger-common');\nvar recommend = require('@algolia/recommend');\nvar requesterNodeHttp = require('@algolia/requester-node-http');\nvar transporter = require('@algolia/transporter');\n\nfunction algoliasearch(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 2,\r\n read: 5,\r\n write: 30,\r\n },\r\n requester: requesterNodeHttp.createNodeHttpRequester(),\r\n logger: loggerCommon.createNullLogger(),\r\n responsesCache: cacheCommon.createNullCache(),\r\n requestsCache: cacheCommon.createNullCache(),\r\n hostsCache: cacheInMemory.createInMemoryCache(),\r\n userAgent: transporter.createUserAgent(clientCommon.version).add({\r\n segment: 'Node.js',\r\n version: process.versions.node,\r\n }),\r\n };\r\n const searchClientOptions = { ...commonOptions, ...options };\r\n const initPersonalization = () => (clientOptions) => {\r\n return clientPersonalization.createPersonalizationClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n getPersonalizationStrategy: clientPersonalization.getPersonalizationStrategy,\r\n setPersonalizationStrategy: clientPersonalization.setPersonalizationStrategy,\r\n },\r\n });\r\n };\r\n return clientSearch.createSearchClient({\r\n ...searchClientOptions,\r\n methods: {\r\n search: clientSearch.multipleQueries,\r\n searchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n multipleBatch: clientSearch.multipleBatch,\r\n multipleGetObjects: clientSearch.multipleGetObjects,\r\n multipleQueries: clientSearch.multipleQueries,\r\n copyIndex: clientSearch.copyIndex,\r\n copySettings: clientSearch.copySettings,\r\n copyRules: clientSearch.copyRules,\r\n copySynonyms: clientSearch.copySynonyms,\r\n moveIndex: clientSearch.moveIndex,\r\n listIndices: clientSearch.listIndices,\r\n getLogs: clientSearch.getLogs,\r\n listClusters: clientSearch.listClusters,\r\n multipleSearchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n getApiKey: clientSearch.getApiKey,\r\n addApiKey: clientSearch.addApiKey,\r\n listApiKeys: clientSearch.listApiKeys,\r\n updateApiKey: clientSearch.updateApiKey,\r\n deleteApiKey: clientSearch.deleteApiKey,\r\n restoreApiKey: clientSearch.restoreApiKey,\r\n assignUserID: clientSearch.assignUserID,\r\n assignUserIDs: clientSearch.assignUserIDs,\r\n getUserID: clientSearch.getUserID,\r\n searchUserIDs: clientSearch.searchUserIDs,\r\n listUserIDs: clientSearch.listUserIDs,\r\n getTopUserIDs: clientSearch.getTopUserIDs,\r\n removeUserID: clientSearch.removeUserID,\r\n hasPendingMappings: clientSearch.hasPendingMappings,\r\n generateSecuredApiKey: clientSearch.generateSecuredApiKey,\r\n getSecuredApiKeyRemainingValidity: clientSearch.getSecuredApiKeyRemainingValidity,\r\n destroy: clientCommon.destroy,\r\n clearDictionaryEntries: clientSearch.clearDictionaryEntries,\r\n deleteDictionaryEntries: clientSearch.deleteDictionaryEntries,\r\n getDictionarySettings: clientSearch.getDictionarySettings,\r\n getAppTask: clientSearch.getAppTask,\r\n replaceDictionaryEntries: clientSearch.replaceDictionaryEntries,\r\n saveDictionaryEntries: clientSearch.saveDictionaryEntries,\r\n searchDictionaryEntries: clientSearch.searchDictionaryEntries,\r\n setDictionarySettings: clientSearch.setDictionarySettings,\r\n waitAppTask: clientSearch.waitAppTask,\r\n customRequest: clientSearch.customRequest,\r\n initIndex: base => (indexName) => {\r\n return clientSearch.initIndex(base)(indexName, {\r\n methods: {\r\n batch: clientSearch.batch,\r\n delete: clientSearch.deleteIndex,\r\n findAnswers: clientSearch.findAnswers,\r\n getObject: clientSearch.getObject,\r\n getObjects: clientSearch.getObjects,\r\n saveObject: clientSearch.saveObject,\r\n saveObjects: clientSearch.saveObjects,\r\n search: clientSearch.search,\r\n searchForFacetValues: clientSearch.searchForFacetValues,\r\n waitTask: clientSearch.waitTask,\r\n setSettings: clientSearch.setSettings,\r\n getSettings: clientSearch.getSettings,\r\n partialUpdateObject: clientSearch.partialUpdateObject,\r\n partialUpdateObjects: clientSearch.partialUpdateObjects,\r\n deleteObject: clientSearch.deleteObject,\r\n deleteObjects: clientSearch.deleteObjects,\r\n deleteBy: clientSearch.deleteBy,\r\n clearObjects: clientSearch.clearObjects,\r\n browseObjects: clientSearch.browseObjects,\r\n getObjectPosition: clientSearch.getObjectPosition,\r\n findObject: clientSearch.findObject,\r\n exists: clientSearch.exists,\r\n saveSynonym: clientSearch.saveSynonym,\r\n saveSynonyms: clientSearch.saveSynonyms,\r\n getSynonym: clientSearch.getSynonym,\r\n searchSynonyms: clientSearch.searchSynonyms,\r\n browseSynonyms: clientSearch.browseSynonyms,\r\n deleteSynonym: clientSearch.deleteSynonym,\r\n clearSynonyms: clientSearch.clearSynonyms,\r\n replaceAllObjects: clientSearch.replaceAllObjects,\r\n replaceAllSynonyms: clientSearch.replaceAllSynonyms,\r\n searchRules: clientSearch.searchRules,\r\n getRule: clientSearch.getRule,\r\n deleteRule: clientSearch.deleteRule,\r\n saveRule: clientSearch.saveRule,\r\n saveRules: clientSearch.saveRules,\r\n replaceAllRules: clientSearch.replaceAllRules,\r\n browseRules: clientSearch.browseRules,\r\n clearRules: clientSearch.clearRules,\r\n },\r\n });\r\n },\r\n initAnalytics: () => (clientOptions) => {\r\n return clientAnalytics.createAnalyticsClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n addABTest: clientAnalytics.addABTest,\r\n getABTest: clientAnalytics.getABTest,\r\n getABTests: clientAnalytics.getABTests,\r\n stopABTest: clientAnalytics.stopABTest,\r\n deleteABTest: clientAnalytics.deleteABTest,\r\n },\r\n });\r\n },\r\n initPersonalization,\r\n initRecommendation: () => (clientOptions) => {\r\n searchClientOptions.logger.info('The `initRecommendation` method is deprecated. Use `initPersonalization` instead.');\r\n return initPersonalization()(clientOptions);\r\n },\r\n getRecommendations: recommend.getRecommendations,\r\n getFrequentlyBoughtTogether: recommend.getFrequentlyBoughtTogether,\r\n getLookingSimilar: recommend.getLookingSimilar,\r\n getRecommendedForYou: recommend.getRecommendedForYou,\r\n getRelatedProducts: recommend.getRelatedProducts,\r\n getTrendingFacets: recommend.getTrendingFacets,\r\n getTrendingItems: recommend.getTrendingItems,\r\n },\r\n });\r\n}\r\n// eslint-disable-next-line functional/immutable-data\r\nalgoliasearch.version = clientCommon.version;\n\nmodule.exports = algoliasearch;\n","/* eslint-disable functional/immutable-data, import/no-commonjs */\nconst algoliasearch = require('./dist/algoliasearch.cjs.js');\n\n/**\n * The Common JS build is the default entry point for the Node environment. Keep in\n * in mind, that for the browser environment, we hint the bundler to use the UMD\n * build instead as specified on the key `browser` of our `package.json` file.\n */\nmodule.exports = algoliasearch;\n\n/**\n * In addition, we also set explicitly the default export below making\n * this Common JS module in compliance with es6 modules specification.\n */\nmodule.exports.default = algoliasearch;\n","// eslint-disable-next-line functional/immutable-data, import/no-commonjs\nmodule.exports = require('./index');\n","import { Box } from '@vtex/brand-ui'\nimport { MDXRemote } from 'next-mdx-remote'\nimport { MarkdownRendererProps } from './MarkdownRenderer.types'\nimport components from './components'\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst MDXRemote2 = MDXRemote as any\n\nconst MarkdownRenderer = ({\n serialized,\n customComponents,\n scope,\n}: MarkdownRendererProps) => {\n if (components && scope) {\n return (\n \n \n \n )\n }\n\n return (\n \n \n \n )\n}\n\nexport default MarkdownRenderer\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { useContext, useEffect, useRef, useState } from 'react'\nimport { Box, Flex } from '@vtex/brand-ui'\nimport {\n ReactSVGPanZoom,\n UncontrolledReactSVGPanZoom,\n} from 'react-svg-pan-zoom'\nimport mermaid from 'mermaid'\nimport parse from 'html-react-parser'\nimport { InView } from 'react-intersection-observer'\n\nimport { CH } from '@code-hike/mdx/components'\nimport OverviewCard from 'components/overview-card'\nimport YoutubeFrame from 'components/youtube-frame'\nimport Steps from 'components/steps'\nimport LightBox from 'components/lightbox'\nimport WhatsNextCard from 'components/whats-next-card'\nimport InsertAccountName from 'components/insert-account-name'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { childrenToString, slugify } from 'utils/string-utils'\nimport mermaidInit from 'utils/mermaidInit'\n\nimport CopyHeadingLink from 'components/copy-heading-link'\nimport { Component, ObservableHeadingProps } from './MarkdownRenderer.types'\nimport styles from './styles.module.css'\nimport { messages } from 'utils/get-message'\n\nmermaidInit()\n\nconst ObservableHeading = ({\n level,\n onEnterView,\n onLeaveView,\n ...headingProps\n}: ObservableHeadingProps) => {\n const [y, setY] = useState(Infinity)\n const { children, ...restHeadingProps } = headingProps\n const toSlugify = childrenToString(children)\n const slug = slugify(toSlugify)\n const headingContent = (\n \n {children}\n \n )\n\n return (\n {\n if (inView) onEnterView(slug)\n else onLeaveView(slug, entry, y)\n\n setY(entry.boundingClientRect.y)\n }}\n >\n {level === 2 ? (\n

\n {headingContent}\n

\n ) : (\n

\n {headingContent}\n

\n )}\n \n )\n}\n\nconst calloutColors: Record = {\n info: '#8C929D',\n danger: '#DC5A41',\n warning: '#FFB100',\n success: '#80BE80',\n}\n\nconst CalloutIcon = ({ type }: { type: string }) => (\n \n \n {type === 'success' ? (\n \n ) : type === 'info' ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n)\n\nexport const Callout = ({ node, icon, ...props }: Component) => {\n const blockquoteType: string = icon ? icon : 'info'\n return (\n \n \n
\n \n )\n}\n\nconst MermaidDiagram = ({ node, ...props }: Component) => {\n const viewerRef = useRef(null)\n const ref = useRef()\n\n const [diagram, setDiagram] = useState('')\n const [width, setWidth] = useState(0)\n const [height, setHeight] = useState(0)\n\n useEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n if (!ref.current) return\n setWidth(ref.current?.clientWidth ?? 0)\n setHeight(ref.current?.clientWidth / 2 ?? 0)\n })\n\n const mermaidRenderer = async function () {\n const { svg } = await mermaid.render('mermaid-id', props.children)\n setDiagram(\n svg.replace('id=\"mermaid-id\"', '').replaceAll('#mermaid-id', '')\n )\n }\n\n mermaidRenderer()\n if (ref.current) resizeObserver.observe(ref.current)\n }, [])\n\n return (\n \n \n \n {parse(diagram)}\n \n \n \n )\n}\n\nconst ImageComponent = ({ node, ...props }: Component) => {\n const [srcHasError, setSrcHasError] = useState(false)\n const { locale } = useContext(LibraryContext)\n const regularImg = (\n // eslint-disable-next-line @next/next/no-img-element\n {props.alt} setSrcHasError(true)} />\n )\n const errorMessage = (\n
\n \n
\n {messages[locale]['image.error_loading']} {props.src}\n
\n
\n )\n\n let data: { base64: string; img: object } = { base64: '', img: {} }\n try {\n data = JSON.parse(props.alt)\n } catch (error) {\n console.log(`Error parsing`, error)\n return errorMessage\n }\n return !srcHasError ? {regularImg} : errorMessage\n}\n\nexport default {\n CH,\n OverviewCard,\n WhatsNextCard,\n YoutubeFrame,\n Steps,\n InsertAccountName,\n Flex: ({ node, ...props }: Component) => (\n \n ),\n table: ({ node, ...props }: Component) => ,\n td: ({ node, ...props }: Component) =>
,\n img: ImageComponent,\n text: ({ node, ...props }: Component) => {\n return \n },\n blockquote: ({ ...props }: Component) => {\n return \n },\n code: ({ node, ...props }: Component) => {\n return \n },\n pre: ({ ...props }: Component) => {\n if (props.className && props.className === 'mermaid')\n return \n\n return
\n  },\n  h2: ({ node, ...props }: Component) => {\n    const { activeItem, setActiveItem, goToPreviousItem } =\n      useContext(LibraryContext)\n\n    return (\n       {\n          setActiveItem(({ item, subItem }) => ({\n            item: slug,\n            subItem: item !== slug ? '' : subItem,\n          }))\n        }}\n        onLeaveView={(slug, entry, y) => {\n          if (entry.boundingClientRect.y > y && activeItem.item === slug) {\n            goToPreviousItem()\n          }\n        }}\n        {...props}\n      />\n    )\n  },\n  h3: ({ node, ...props }: Component) => {\n    const { activeItem, setActiveItem, goToPreviousSubItem } =\n      useContext(LibraryContext)\n\n    return (\n       {\n          setActiveItem(({ item }) => ({\n            item,\n            subItem: slug,\n          }))\n        }}\n        onLeaveView={(slug, entry, y) => {\n          if (entry.boundingClientRect.y > y && activeItem.subItem === slug) {\n            goToPreviousSubItem()\n          }\n        }}\n        {...props}\n      />\n    )\n  },\n}\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst overviewCard: SxStyleProp = {\n  alignItems: 'flex-start',\n  margin: '20px 0px',\n  border: '1px solid #E7E9EE',\n  borderRadius: '4px',\n  padding: '18px 24px 4px',\n  color: '#4A596B',\n  ':active, :hover': {\n    borderColor: 'muted.2',\n    boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n    transition: 'all 0.3 ease-out',\n    '*':{\n      color: '#000711',\n    }\n  },\n  ul: {\n    borderLeft: '1px rgb(202, 203, 204) solid',\n    fontSize: '0.9em',\n    mt: '0',\n    paddingLeft: '1.5em',\n    listStyleType: 'none',\n    display: 'block',\n    textDecoration: 'none',\n  },\n  'h3, h4': {\n    color: '#4A596B',\n    fontSize: '1.125em',\n    fontWeight: '400',\n    my: '0',\n  },\n}\n\nconst overviewIcon: SxStyleProp = {\n  marginRight: '1.25em',\n  marginTop: '0.375em',\n}\n\nexport default {\n  overviewCard,\n  overviewIcon,\n}\n","import styles from './styles'\nimport { Flex, Box } from '@vtex/brand-ui'\nimport * as Icons from './icons'\nimport { IconComponent } from 'utils/typings/types'\nimport Link from 'next/link.js'\n\ninterface IconsI {\n  name: string\n  Icon: IconComponent\n}\n\nconst IconsMap: IconsI[] = [\n  {\n    name: 'StorageUnit',\n    Icon: Icons.StorageUnit,\n  },\n  {\n    name: 'Board',\n    Icon: Icons.Board,\n  },\n  {\n    name: 'Integration',\n    Icon: Icons.Integration,\n  },\n  {\n    name: 'SearchList',\n    Icon: Icons.SearchList,\n  },\n  {\n    name: 'SearchDetails',\n    Icon: Icons.SearchDetails,\n  },\n  {\n    name: 'SwitchArrows',\n    Icon: Icons.SwitchArrows,\n  },\n  {\n    name: 'ChangeCart',\n    Icon: Icons.ChangeCart,\n  },\n  {\n    name: 'ToStore',\n    Icon: Icons.ToStore,\n  },\n  {\n    name: 'PaymentHand',\n    Icon: Icons.PaymentHand,\n  },\n  {\n    name: 'GlobeCart',\n    Icon: Icons.GlobeCart,\n  },\n  {\n    name: 'StoreCart',\n    Icon: Icons.StoreCart,\n  },\n  {\n    name: 'List',\n    Icon: Icons.List,\n  },\n  {\n    name: 'Blocks',\n    Icon: Icons.Blocks,\n  },\n  {\n    name: 'StoreData',\n    Icon: Icons.StoreData,\n  },\n  {\n    name: 'Cart',\n    Icon: Icons.Cart,\n  },\n  {\n    name: 'FileConfiguration',\n    Icon: Icons.FileConfiguration,\n  },\n  {\n    name: 'Platform',\n    Icon: Icons.Platform,\n  },\n  {\n    name: 'RestApis',\n    Icon: Icons.RestApis,\n  },\n  {\n    name: 'Catalog',\n    Icon: Icons.Catalog,\n  },\n  {\n    name: 'Orders',\n    Icon: Icons.Orders,\n  },\n  {\n    name: 'Checkout',\n    Icon: Icons.Checkout,\n  },\n  {\n    name: 'Payments',\n    Icon: Icons.Payments,\n  },\n  {\n    name: 'Promotions',\n    Icon: Icons.Promotions,\n  },\n  {\n    name: 'Pricing',\n    Icon: Icons.Pricing,\n  },\n  {\n    name: 'AccountManagement',\n    Icon: Icons.AccountManagement,\n  },\n  {\n    name: 'StoreSearch',\n    Icon: Icons.StoreSearch,\n  },\n  {\n    name: 'Subscriptions',\n    Icon: Icons.Subscriptions,\n  },\n  {\n    name: 'Fulfillment',\n    Icon: Icons.Fulfillment,\n  },\n]\n\nconst getIcon = (name: string) => {\n  return IconsMap.find((icon) => icon.name === name)?.Icon\n}\n\n//Interfaces\nexport interface OverviewCardProps {\n  icon: string\n  link: string\n  children: string\n}\n\nconst OverviewCard = ({ icon, link, children }: OverviewCardProps) => {\n  const Icon = getIcon(icon)\n  return (\n    \n      \n        {Icon && }\n        {children}\n      \n    \n  )\n}\n\nexport default OverviewCard\n","import React from 'react'\nimport type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StorageUnit = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst Board = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Composable = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Integration = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\n\nconst SearchList = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst SwitchArrows = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst SearchDetails = (props: IconProps) => (\n  \n    \n    \n    \n  \n)\n\nconst List = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst StoreCart = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst GlobeCart = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst PaymentHand = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\n\nconst ToStore = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n  \n)\nconst ChangeCart = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n    \n    \n  \n)\n\nconst Blocks = (props: IconProps) => (\n  \n    {' '}\n    \n      {' '}\n      {' '}\n      {' '}\n      {' '}\n      {' '}\n    \n  \n)\nconst StoreData = (props: IconProps) => (\n  \n    \n    \n    \n    \n    \n  \n)\nconst FileConfiguration = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\nconst Cart = (props: IconProps) => (\n  \n    \n    \n    \n    \n  \n)\n\nconst Platform = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst RestApis = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n    \n  \n)\n\nconst Catalog = (props: IconProps) => (\n  \n    {' '}\n    \n  \n)\n\nconst Orders = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Checkout = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Payments = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Promotions = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst Pricing = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst AccountManagement = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\n\nconst StoreSearch = (props: IconProps) => (\n  \n    {' '}\n    {' '}\n    {' '}\n    {' '}\n    \n  \n)\nconst Subscriptions = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nconst Fulfillment = (props: IconProps) => (\n  \n    \n      \n      \n      \n      \n      \n      \n      \n      \n      \n      \n    \n  \n)\n\nexport {\n  StorageUnit,\n  Board,\n  Composable,\n  Integration,\n  SearchList,\n  SwitchArrows,\n  SearchDetails,\n  ChangeCart,\n  ToStore,\n  PaymentHand,\n  GlobeCart,\n  StoreCart,\n  List,\n  Blocks,\n  StoreData,\n  FileConfiguration,\n  Cart,\n  Platform,\n  RestApis,\n  Catalog,\n  Orders,\n  Checkout,\n  Payments,\n  Promotions,\n  Pricing,\n  AccountManagement,\n  StoreSearch,\n  Subscriptions,\n  Fulfillment,\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nexport interface IYoutubeFrame {\n  embedId: string\n}\nconst YoutubeFrame = ({ embedId }: IYoutubeFrame) => (\n  
\n \n
\n)\n\nYoutubeFrame.propTypes = {\n embedId: PropTypes.string.isRequired,\n}\n\nexport default YoutubeFrame\n","import React from 'react'\nimport { Box } from '@vtex/brand-ui'\nimport styles from './styles'\n\nexport interface StepsProps {\n children: string\n}\nconst Steps = ({ children }: StepsProps) => {\n return {children}\n}\nexport default Steps\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst steps: SxStyleProp = {\n ml: '4px',\n mt: '12px',\n mb: '27px',\n borderLeft: '1px solid #e5e7eb',\n pl: '25px',\n position: 'relative',\n '.heading': {\n counterIncrement: `step`,\n },\n '.heading:before': {\n content: `counter(step)`,\n position: 'absolute',\n border: '4px solid #ffffff',\n width: '2em',\n height: '2em',\n left: '-1.3em',\n color: '#a1a1aa',\n backgroundColor: '#f2f3f6',\n borderRadius: '9999px',\n fontSize: '1em',\n textAlign: 'center',\n lineHeight: '2.1em',\n boxSizing: 'content-box',\n },\n}\n\nexport default {\n steps,\n}\n","import React, { ReactElement, useEffect, useRef, useState } from 'react'\nimport { Box, Button, Flex } from '@vtex/brand-ui'\nimport CloseIcon from 'components/icons/close-icon'\nimport useClickOutside from 'utils/hooks/useClickOutside'\nimport styles from './styles'\n\ninterface Props {\n children: ReactElement\n}\n\nexport default function LightBox({ children }: Props) {\n const [isModalOpen, setIsModalOpen] = useState(false)\n const modalRef = useRef()\n\n useEffect(() => {\n if (isModalOpen) {\n const scrollTop = document.body.getBoundingClientRect().top\n document.body.style.top = `${scrollTop}px`\n document.body.classList.add('modal-open')\n } else {\n document.body.classList.remove('modal-open')\n document.body.style.removeProperty('top')\n }\n }, [isModalOpen])\n\n useClickOutside(modalRef, () => setIsModalOpen(false))\n\n return (\n
\n {isModalOpen && (\n \n }\n onClick={() => setIsModalOpen(false)}\n />\n \n {children}\n \n \n )}\n setIsModalOpen(true)}>\n {children}\n \n
\n )\n}\n","import React from 'react'\nimport type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CloseIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default CloseIcon\n","import { useEffect, MutableRefObject, SetStateAction, Dispatch } from 'react'\n\nexport default function useClickOutside(\n ref: MutableRefObject,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n openModal: Dispatch>\n) {\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n const { body, documentElement } = document\n if (\n ref.current &&\n event.target instanceof Node &&\n !ref.current.contains(event.target)\n ) {\n openModal({ modalToggle: false })\n const scrollTop = body.getBoundingClientRect().top * -1\n body.classList.remove('modal-open')\n documentElement.scrollTop = scrollTop\n body.style.removeProperty('top')\n }\n }\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [])\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst imageContainer: SxStyleProp = {\n cursor: 'pointer',\n borderRadius: '5px',\n width: 'fit-content',\n mt: '16px',\n mb: '24px',\n transition: '0.3s',\n ':hover': {\n boxShadow: '2px 4px 8px 2px rgb(0 0 0 / 10%)',\n },\n\n '> img': {\n maxWidth: '100%',\n display: 'block',\n padding: '0',\n margin: '0',\n border: '1px solid #e7e9ed',\n borderRadius: '4px'\n },\n}\n\nconst container: SxStyleProp = {\n margin: '0',\n width: '100%',\n height: '100%',\n backgroundColor: 'rgba(0,0,0,0.9)',\n position: 'fixed',\n top: '0',\n left: '0',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n zIndex: '10000',\n}\n\nconst modal: SxStyleProp = {\n display: 'inline-block',\n margin: 'auto',\n boxShadow: '2px 4px 16px rgb(0 0 0 / 30%)',\n position: 'relative',\n zIndex: '10001',\n padding: '0',\n\n '> img': {\n display: 'block',\n maxHeight: 'calc(100vh - 50px)',\n maxWidth: 'calc(100vw - 50px)',\n width: 'auto',\n margin: '0',\n padding: '0',\n },\n}\n\nconst closeButton: SxStyleProp = {\n position: 'absolute',\n zIndex: '10002',\n top: '10px',\n right: '10px',\n color: '#FEFEFE',\n\n ':hover': {\n color: 'rgb(100, 100, 100)',\n },\n}\n\nexport default {\n imageContainer,\n container,\n modal,\n closeButton,\n}\n","import React from 'react'\nimport { Box, Flex, IconCaret, Text, Link } from '@vtex/brand-ui'\nimport styles from './styles'\nimport Image from 'next/image.js'\n\nexport type WhatsNextDataElement = {\n title: string\n description?: string\n linkTitle?: string\n linkTo: string\n image?: string\n}\n\nconst WhatsNextCard = ({\n title,\n description,\n linkTitle,\n linkTo,\n image,\n}: WhatsNextDataElement) => {\n return (\n \n {image ? (\n \n \n \n {title}\n \n \n ) : (\n \n \n {title}\n \n {description && (\n \n {description}\n \n )}\n {linkTitle && (\n \n \n {linkTitle}\n \n \n \n )}\n \n )}\n \n )\n}\n\nexport default WhatsNextCard","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n mt: 0,\n padding: '16px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: '100%',\n maxWidth: '100%',\n minWidth: 0,\n height: '100%',\n boxSizing: 'border-box',\n textDecoration: 'none',\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n borderColor: 'muted.2',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n '.title, .description': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n '.link, .caret': {\n transition: 'all 0.3s ease-out',\n color: 'muted.0',\n },\n },\n}\n\nconst title: SxStyleProp = {\n mb: '8px',\n fontSize: '16px',\n fontWeight: '400',\n lineHeight: '22px',\n color: 'muted.0',\n}\n\nconst imageTitle: SxStyleProp = {\n padding: '16px',\n fontSize: '16px',\n fontWeight: '400',\n color: 'muted.0',\n ':after': {\n content: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='rgb(74 89 108)' %3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E\")`,\n position: 'absolute',\n height: '16px',\n width: '16px',\n marginLeft: '3px',\n lineHeight: '30px',\n },\n}\n\nconst description: SxStyleProp = {\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '20px',\n color: 'muted.0',\n}\n\nconst linkContainer: SxStyleProp = {\n mt: '8px',\n alignItems: 'center',\n}\n\nconst link: SxStyleProp = {\n ...description,\n color: 'muted.1',\n}\n\nexport default {\n container,\n title,\n imageTitle,\n description,\n linkContainer,\n link,\n}\n","import { useContext, useState, type ChangeEvent } from 'react'\nimport { Box, Text } from '@vtex/brand-ui'\n\nimport Tooltip from 'components/tooltip'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport styles from './styles'\n\nexport type InsertAccountNameProps = {\n id: string\n}\n\nconst InsertAccountName = ({ id }: InsertAccountNameProps) => {\n const { locale } = useContext(LibraryContext)\n const [accountName, setAccountName] = useState('')\n const [showError, setShowError] = useState(false)\n const [hovered, setHovered] = useState(false)\n\n const handleNavigate = () => {\n if (!accountName.trim()) {\n setShowError(true)\n return\n }\n window.open(\n `https://${accountName.trim()}.myvtex.com/admin/docs/${id}`,\n '_blank'\n )\n }\n\n const handleChange = (e: ChangeEvent) => {\n setAccountName(e.target.value)\n if (showError) setShowError(false)\n }\n\n return (\n \n \n {\n if (e.key === 'Enter') handleNavigate()\n }}\n style={{\n ...styles.input,\n ...(showError ? styles.inputError : {}),\n }}\n />\n \n setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n style={{\n ...styles.button,\n ...(hovered ? styles.buttonHover : {}),\n }}\n >\n {messages[locale]['insert_account_name.button'] ||\n 'Go to documentation'}\n \n \n \n {showError && (\n \n {messages[locale]['insert_account_name.error'] ||\n 'Account name is required'}\n \n )}\n \n )\n}\n\nexport default InsertAccountName\n","import { useEffect, useRef, useState } from 'react'\nimport { Box, Flex, TooltipProps, SxStyleProp } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport CaretIcon from 'components/icons/caret'\ninterface Props extends Pick {\n sx?: SxStyleProp\n isCard?: boolean\n /** When true, the tooltip stays visible even without hover. */\n open?: boolean\n wrapperSx?: SxStyleProp\n}\n\nconst Tooltip = ({\n children,\n label,\n placement,\n sx,\n isCard,\n open,\n wrapperSx,\n}: Props) => {\n const box = useRef()\n const [boxWidth, setBoxWidth] = useState(0)\n const [boxHeight, setBoxHeight] = useState(0)\n const [boxOffsetLeft, setBoxOffsetLeft] = useState(0)\n const [boxOffsetTop, setBoxOffsetTop] = useState(0)\n const [hovered, setHovered] = useState(false)\n const visible = Boolean(open) || hovered\n\n useEffect(() => {\n if (box.current) {\n setBoxWidth(box.current.clientWidth)\n setBoxHeight(box.current.clientHeight)\n setBoxOffsetLeft(box.current.offsetLeft)\n setBoxOffsetTop(box.current.offsetTop)\n }\n }, [\n open,\n box.current,\n box.current?.clientWidth,\n box.current?.clientHeight,\n box.current?.offsetLeft,\n box.current?.offsetTop,\n ])\n\n return (\n \n setHovered(true)}\n onMouseLeave={() => setHovered(false)}\n >\n {children}\n \n {visible && (isCard ?? true) && (\n \n \n {label}\n \n )}\n \n )\n}\n\nexport default Tooltip\n","import { SxStyleProp } from '@vtex/brand-ui'\n\ntype Placement = 'top' | 'right' | 'bottom' | 'left'\n\nconst tooltipContainer: (\n sx: SxStyleProp,\n placement: Placement,\n width: number,\n height: number,\n x: number,\n y: number\n) => SxStyleProp = (sx, placement, width, height, x, y) => {\n const position = {\n bottom: {\n left: `${x + width / 2}px`,\n top: `${y + height + 3}px`,\n },\n left: {\n left: `${x - 1}px`,\n top: `${y + height / 2}px`,\n },\n top: {\n left: `${x + width / 2}px`,\n top: `${y - 3}px`,\n },\n right: {\n left: `${x + width + 1}px`,\n top: `${y + height / 2}px`,\n },\n }\n\n const translation = {\n bottom: 'translateX(-50%)',\n left: 'translateX(-100%) translateY(-50%)',\n top: 'translateX(-50%) translateY(-100%)',\n right: 'translateY(-50%)',\n }\n\n const direction = {\n bottom: 'column',\n left: 'row-reverse',\n top: 'column-reverse',\n right: 'row',\n }\n\n return {\n ...sx,\n zIndex: '100',\n position: 'absolute',\n alignItems: 'center',\n justifyContent: 'center',\n ...position[placement],\n transform: translation[placement],\n flexDirection: direction[placement],\n }\n}\n\nconst caret: (placement: Placement) => SxStyleProp = (placement) => {\n const rotation = {\n bottom: 0,\n left: 90,\n top: 180,\n right: 270,\n }\n\n const translation = {\n bottom: 1,\n left: 3,\n top: 1,\n right: 3,\n }\n\n return {\n width: '8px',\n height: '4px',\n minWidth: 'initial',\n minHeight: 'initial',\n transform: `rotate(${rotation[placement]}deg) translateY(${translation[placement]}px)`,\n }\n}\n\nconst label: SxStyleProp = {\n borderRadius: '4px',\n backgroundColor: 'black',\n color: 'white',\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '130%',\n width: 'max-content',\n minWidth: '64px',\n maxWidth: '240px',\n overflowWrap: 'break-word',\n textAlign: 'center',\n}\n\nconst labelContibutorsContainer: SxStyleProp = {\n ...label,\n padding: '4px 8px',\n}\n\nconst labelDocumentationContainer: SxStyleProp = {\n ...label,\n width: '284px',\n minWidth: '284px',\n maxWidth: '284px',\n textAlign: 'center',\n px: '12px',\n py: '8px',\n}\n\nconst labelStyle = (documentationSection: boolean): SxStyleProp => {\n if (documentationSection) return labelDocumentationContainer\n return labelContibutorsContainer\n}\nexport default { tooltipContainer, caret, labelStyle }\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CaretIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default CaretIcon\n","import type { Dispatch, ReactNode, SetStateAction } from 'react'\nimport { createContext, useCallback, useEffect, useMemo, useState } from 'react'\nimport { Item } from 'lib/table-of-contents/TableOfContents.types'\nimport { Section } from 'utils/typings/types'\nimport { SWRConfig } from 'swr'\n\ninterface Props extends Partial {\n children: ReactNode\n /** The navigation array containing the list of documentations shown in the sidebar. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fallback?: any\n /** Documentation sections, the same sections that divide the fallback. */\n sections: Section[][]\n /** Whether is a branch preview or not. */\n isPreview: boolean\n /** The section currently selected. */\n sectionSelected: string\n /** The sections to be used on the hamburguer menu */\n hamburguerMenuSections: Section[][]\n /** The portal language. The default is english. */\n locale?: 'en' | 'pt' | 'es'\n}\n\nexport type ContextType = {\n headingItems: Item[]\n setHeadingItems: Dispatch>\n activeItem: ActiveItem\n setActiveItem: Dispatch>\n goToPreviousItem: () => void\n goToPreviousSubItem: () => void\n isEditorPreview: boolean\n sidebarSectionHidden: boolean\n activeSectionName: string\n activeSidebarElement: string\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sidebarDataMaster: any\n sidebarElementStatus: Map\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n setSidebarDataMaster: Dispatch>\n setIsEditorPreview: Dispatch>\n setSidebarSectionHidden: Dispatch>\n setActiveSectionName: Dispatch>\n setActiveSidebarElement: Dispatch>\n toggleSidebarElementStatus: (title: string, currentlyOpen?: boolean) => void\n openSidebarElement: (title: string) => void\n closeSidebarElements: (parentsArray: string[]) => void\n setOpenSidebarElements: (parentsArray: string[]) => void\n sidebarSections: Section[][]\n setSidebarSections: Dispatch>\n hamburguerSections: Section[][]\n setHamburguerSections: Dispatch>\n locale: 'en' | 'pt' | 'es'\n}\n\ntype ActiveItem = {\n item: string\n subItem: string\n}\n\nexport const LibraryContext = createContext({\n headingItems: [],\n setHeadingItems: () => undefined,\n activeItem: {\n item: '',\n subItem: '',\n },\n setActiveItem: () => undefined,\n goToPreviousItem: () => undefined,\n goToPreviousSubItem: () => undefined,\n isEditorPreview: false,\n sidebarSectionHidden: false,\n activeSectionName: '',\n activeSidebarElement: '',\n sidebarDataMaster: {},\n setIsEditorPreview: () => undefined,\n sidebarElementStatus: new Map(),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n setSidebarDataMaster: (_: any) => undefined,\n setSidebarSectionHidden: () => undefined,\n setActiveSectionName: () => undefined,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n setActiveSidebarElement: (_: any) => undefined,\n toggleSidebarElementStatus: () => undefined,\n openSidebarElement: () => undefined,\n closeSidebarElements: () => undefined,\n setOpenSidebarElements: () => undefined,\n sidebarSections: [],\n setSidebarSections: () => undefined,\n hamburguerSections: [],\n setHamburguerSections: () => undefined,\n locale: 'en',\n})\n\n/** Provider for the LibraryContext created with React.createContext. The context is used in the following components: feedback, search, sidebar, hamburger menu, markdown renderer and table of contents. */\nconst LibraryContextProvider = ({ children, ...props }: Props) => {\n const [headingItems, setHeadingItems] = useState([])\n const [activeItem, setActiveItem] = useState({\n item: '',\n subItem: '',\n })\n\n const [activeSectionName, setActiveSectionName] = useState(\n props.sectionSelected\n )\n const [sidebarSectionHidden, setSidebarSectionHidden] = useState(false)\n const [activeSidebarElement, setActiveSidebarElement] = useState('')\n const [sidebarElementStatus, setSidebarElementStatus] = useState(new Map())\n const [sidebarDataMaster, setSidebarDataMaster] = useState(props.fallback)\n const [isEditorPreview, setIsEditorPreview] = useState(props.isPreview)\n const [sidebarSections, setSidebarSections] = useState(props.sections)\n const [hamburguerSections, setHamburguerSections] = useState(\n props.hamburguerMenuSections\n )\n const locale = props.locale ?? 'en'\n const fallback = props.fallback\n\n useEffect(() => {\n setSidebarDataMaster(props.fallback)\n }, [props.fallback])\n\n useEffect(() => {\n if (props.sectionSelected === '') setSidebarSectionHidden(true)\n else if (props.sectionSelected !== activeSectionName)\n setActiveSectionName(props.sectionSelected)\n }, [props.sectionSelected])\n\n const toggleSidebarElementStatus = useCallback(\n (title: string, currentlyOpen?: boolean) => {\n setSidebarElementStatus((prev) => {\n const open = prev.has(title) ? !prev.get(title) : !currentlyOpen\n const next = new Map(prev)\n next.set(title, open)\n return next\n })\n },\n []\n )\n\n const closeSidebarElements = useCallback((parentsArray: string[]) => {\n const parentSet = new Set(parentsArray)\n setSidebarElementStatus((prev) => {\n let changed = false\n const next = new Map(prev)\n next.forEach((value, key) => {\n if (!parentSet.has(key) && value) {\n next.set(key, false)\n changed = true\n }\n })\n return changed ? next : prev\n })\n }, [])\n\n const openSidebarElement = useCallback((title: string) => {\n setSidebarElementStatus((prev) => {\n if (prev.get(title) === true) return prev\n const next = new Map(prev)\n next.set(title, true)\n return next\n })\n }, [])\n\n const setOpenSidebarElements = useCallback((parentsArray: string[]) => {\n if (parentsArray.length === 0) {\n setSidebarElementStatus((prev) => (prev.size === 0 ? prev : new Map()))\n return\n }\n\n const parentSet = new Set(parentsArray)\n setSidebarElementStatus((prev) => {\n const next = new Map(prev)\n let changed = false\n next.forEach((value, key) => {\n if (!parentSet.has(key) && value) {\n next.set(key, false)\n changed = true\n }\n })\n parentsArray.forEach((slug) => {\n if (next.get(slug) !== true) {\n next.set(slug, true)\n changed = true\n }\n })\n return changed ? next : prev\n })\n }, [])\n\n const goToPreviousItem = useCallback(() => {\n setActiveItem(({ item, subItem }) => {\n const index = headingItems.findIndex((heading) => heading.slug === item)\n if (index === -1) return { item, subItem }\n\n const previousItem = !index ? '' : headingItems[index - 1].slug\n const previousChildren = !index ? [] : headingItems[index - 1].children\n const previousSubItem = !previousChildren.length\n ? ''\n : previousChildren.slice(-1)[0].slug\n\n return {\n item: previousItem,\n subItem: previousSubItem,\n }\n })\n }, [headingItems])\n\n const goToPreviousSubItem = useCallback(() => {\n setActiveItem(({ item, subItem }) => {\n const heading = headingItems.find((heading) => heading.slug === item)\n const index = heading?.children.findIndex(\n (child) => child.slug === subItem\n )\n\n if (!heading || index === -1) return { item, subItem }\n\n return {\n item,\n subItem: !index ? '' : heading.children[index - 1].slug,\n }\n })\n }, [headingItems])\n\n const contextValue = useMemo(\n () => ({\n headingItems,\n activeItem,\n setHeadingItems,\n setActiveItem,\n goToPreviousItem,\n goToPreviousSubItem,\n isEditorPreview,\n setIsEditorPreview,\n sidebarSectionHidden,\n activeSectionName,\n activeSidebarElement,\n sidebarElementStatus,\n setActiveSectionName,\n setSidebarSectionHidden,\n setActiveSidebarElement,\n toggleSidebarElementStatus,\n openSidebarElement,\n closeSidebarElements,\n setOpenSidebarElements,\n sidebarDataMaster,\n setSidebarDataMaster,\n sidebarSections,\n setSidebarSections,\n hamburguerSections,\n setHamburguerSections,\n locale,\n }),\n [\n headingItems,\n activeItem,\n goToPreviousItem,\n goToPreviousSubItem,\n isEditorPreview,\n sidebarSectionHidden,\n activeSectionName,\n activeSidebarElement,\n sidebarElementStatus,\n toggleSidebarElementStatus,\n openSidebarElement,\n closeSidebarElements,\n setOpenSidebarElements,\n sidebarDataMaster,\n sidebarSections,\n hamburguerSections,\n locale,\n ]\n )\n\n return (\n \n \n {children}\n \n \n )\n}\n\nexport default LibraryContextProvider\n","{\n \"feedback_section.question\": \"Was this helpful?\",\n \"feedback_section.response\": \"Thanks for the feedback!\",\n \"feedback_section.positive\": \"Yes\",\n \"feedback_section.negative\": \"No\",\n \"feedback_section.edit\": \"Suggest Edits (GitHub)\",\n \"feedback_modal.button\": \"Send feedback\",\n \"feedback_modal.title\": \"Send feedback\",\n \"feedback_modal.description\": \"Share suggestions, issues found, or ideas to improve our documentation.\",\n \"feedback_modal.success\": \"Thank you! Your feedback has been received.\",\n \"feedback_modal.error\": \"Sorry, we couldn’t send your feedback. Please try again later.\",\n \"feedback_modal.article\": \"Article\",\n \"feedback_modal.message\": \"Message\",\n \"feedback_modal.type\": \"Feedback type\",\n \"feedback_modal.name\": \"Name\",\n \"feedback_modal.email\": \"Email\",\n \"feedback_modal.cancel\": \"Cancel\",\n \"feedback_modal.submit\": \"Send\",\n \"feedback_modal.submitting\": \"Sending...\",\n \"feedback_modal.close\": \"Close modal\",\n \"feedback_modal.done\": \"Done\",\n \"feedback_modal.message_placeholder\": \"Describe your suggestion, question, or issue...\",\n \"feedback_modal.name_placeholder\": \"Your name\",\n \"feedback_modal.email_placeholder\": \"you@example.com\",\n \"feedback_modal.type.incorrect\": \"Incorrect information\",\n \"feedback_modal.type.page_not_found\": \"Page not found\",\n \"feedback_modal.type.content_improvement\": \"Content improvement\",\n \"feedback_modal.type.new_documentation\": \"New documentation\",\n \"feedback_modal.type.other\": \"Other documentation feedback\",\n \"search_input.empty\": \"No results found. Try different search terms.\",\n \"search_input.placeholder\": \"Search\",\n \"search_input.copy_link\": \"Copy link\",\n \"search_input.copied\": \"Copied\",\n \"heading_link.copy\": \"Copy link\",\n \"heading_link.copied\": \"Copied\",\n \"search_input.open_new_tab\": \"Open in new tab\",\n \"search_input.clear\": \"Clear search\",\n \"search_input.navigate\": \"Navigate\",\n \"search_input.open\": \"Open\",\n \"search_input.close\": \"Close\",\n \"search_input.open_search\": \"Search\",\n \"search_results.showing\": \"Showing\",\n \"search_results.results_for\": \"results for\",\n \"search_results.in\": \"in\",\n \"search_results.all_lowercase\": \"all results\",\n \"sidebar_search.placeholder\": \"Search in\",\n \"search_input.see_all\": \"See all results\",\n \"search_results.summary\": \"Showing {count} results for \\\"{keyword}\\\" in {section}\",\n \"search_results.all\": \"All results\",\n \"search_card.in\": \"In\",\n \"image.error_loading\": \"An error occurred while loading the image\",\n \"api_reference_sidebar_filter_clear\": \"Clear All\",\n \"api_reference_sidebar_filter\": \"Filter By\",\n \"cookie_bar.title\": \"We use cookies\",\n \"cookie_bar.description\": \"This website uses cookies to improve navigation, analyze usage, and assist with our marketing efforts.\",\n \"cookie_bar.accept\": \"I agree\",\n \"cookie_bar.decline\": \"I decline\",\n \"landing_page_subscription.title\": \"Stay up to date with VTEX documentation\",\n \"landing_page_subscription.description\": \"Subscribe to our monthly newsletter to receive information about the latest announcements, release notes, and newly published articles.\",\n \"landing_page_newsletter.Button\": \"Subscribe\",\n \"subscription_list.api_key_error\": \"Newsletter API key is not defined\",\n \"subscription_list.invalid_email\": \"Invalid email address, please try another one.\",\n \"subscription_list.success\": \"You've successfully subscribed!\",\n \"subscription_list.error\": \"Sorry, we couldn't subscribe you. Please try again later.\",\n \"subscription_list.privacy_notice\": \"By subscribing to our newsletter, you agree to our\",\n \"subscription_list.privacy_policy_link\": \"Privacy Policy\",\n \"on_this_page.title\": \"On this page\",\n \"contributors.title\": \"Contributors\",\n \"contributors.toggle_less\": \"Show less\",\n \"contributors.toggle_more\": \"+ {count} contributors\",\n \"contributors.photo_alt\": \"Photo of the contributor {name}\",\n \"footer.github\": \"GitHub\",\n \"footer.developer_portal\": \"Developer Portal\",\n \"footer.help_center\": \"Help Center\",\n \"footer.community\": \"Community\",\n \"footer.feedback\": \"Feedback\",\n \"header.docs\": \"Menu\",\n \"header.feedback\": \"Feedback\",\n \"header.admin_tools\": \"Admin tools\",\n \"header.home_aria\": \"Go back to Home\",\n \"documentation_reading_time.text\": \"{minutes} min read\",\n \"date_text.created\": \"Published on\",\n \"date_text.updated\": \"Last updated on\",\n \"date_text.last_update\": \"Last update:\",\n \"article_pagination.previous\": \"Previous\",\n \"article_pagination.next\": \"Next\",\n \"see_also_section.title\": \"See also\",\n \"insert_account_name.placeholder\": \"Account name\",\n \"insert_account_name.button\": \"Go to documentation\",\n \"insert_account_name.tooltip\": \"View documentation page on VTEX Admin\",\n \"insert_account_name.error\": \"Account name is required\",\n \"ask_ai.copy\": \"Copy markdown\",\n \"ask_ai.view\": \"View markdown\",\n \"ask_ai.copied\": \"Copied\",\n \"ask_assistant.button\": \"Ask Assistant\",\n \"ask_assistant.title\": \"Assistant\",\n \"ask_assistant.hero_title\": \"How can I help you?\",\n \"ask_assistant.hero_subtitle\": \"Get answers from VTEX documentation.\",\n \"ask_assistant.placeholder\": \"Ask a question...\",\n \"ask_assistant.examples\": \"Examples:\",\n \"ask_assistant.send\": \"Send\",\n \"ask_assistant.close\": \"Close\",\n \"ask_assistant.clear\": \"New chat\",\n \"ask_assistant.history\": \"History\",\n \"ask_assistant.history_clear\": \"clear\",\n \"ask_assistant.expand\": \"Expand\",\n \"ask_assistant.collapse\": \"Collapse\",\n \"ask_assistant.copy\": \"Copy\",\n \"ask_assistant.copied\": \"Copied\",\n \"ask_assistant.regenerate\": \"Regenerate\",\n \"ask_assistant.helpful\": \"Helpful\",\n \"ask_assistant.not_helpful\": \"Not helpful\",\n \"ask_assistant.error\": \"Could not reach the assistant. Please try again.\",\n \"ask_assistant.searching\": \"Searching...\",\n \"ask_assistant.searching_docs\": \"Searching documentation\",\n \"ask_assistant.searching_endpoints\": \"Searching endpoints\",\n \"ask_assistant.reading_endpoints\": \"Reading endpoint details\",\n \"ask_assistant.reading_document\": \"Reading document\",\n \"ask_assistant.read_file\": \"Read 1 file\",\n \"ask_assistant.read_files\": \"Read {count} files\",\n \"ask_assistant.found_endpoint\": \"Found 1 endpoint\",\n \"ask_assistant.found_endpoints\": \"Found {count} endpoints\",\n \"ask_assistant.tool\": \"Tool\",\n \"ask_assistant.process_running\": \"Processing...\",\n \"ask_assistant.process_completed\": \"Process completed ({count} steps)\",\n \"ask_assistant.process_completed_one\": \"Process completed (1 step)\",\n \"ask_assistant.step_search_docs\": \"Search documentation\",\n \"ask_assistant.step_search_endpoints\": \"Search endpoints\",\n \"ask_assistant.step_read_endpoints\": \"Read endpoint details\",\n \"ask_assistant.step_read_document\": \"Read document\",\n \"ask_assistant.step_create_response\": \"Create response\",\n \"ask_assistant.step_search\": \"Search\",\n \"ask_assistant.sources\": \"Sources\"\n}\n","{\n \"feedback_section.question\": \"¿Te ha parecido útil?\",\n \"feedback_section.response\": \"Gracias por tu feedback\",\n \"feedback_section.positive\": \"Sí\",\n \"feedback_section.negative\": \"No\",\n \"feedback_section.edit\": \"Sugerir cambios (GitHub)\",\n \"feedback_modal.button\": \"Enviar feedback\",\n \"feedback_modal.title\": \"Enviar feedback\",\n \"feedback_modal.description\": \"Comparte sugerencias, problemas encontrados o ideas para mejorar nuestra documentación.\",\n \"feedback_modal.success\": \"¡Gracias! Hemos recibido tu feedback.\",\n \"feedback_modal.error\": \"No pudimos enviar tu feedback. Inténtalo de nuevo más tarde.\",\n \"feedback_modal.article\": \"Artículo\",\n \"feedback_modal.message\": \"Mensaje\",\n \"feedback_modal.type\": \"Tipo de feedback\",\n \"feedback_modal.name\": \"Nombre\",\n \"feedback_modal.email\": \"Correo electrónico\",\n \"feedback_modal.cancel\": \"Cancelar\",\n \"feedback_modal.submit\": \"Enviar\",\n \"feedback_modal.submitting\": \"Enviando...\",\n \"feedback_modal.close\": \"Cerrar modal\",\n \"feedback_modal.done\": \"Listo\",\n \"feedback_modal.message_placeholder\": \"Describe tu sugerencia, pregunta o problema...\",\n \"feedback_modal.name_placeholder\": \"Tu nombre\",\n \"feedback_modal.email_placeholder\": \"tu@ejemplo.com\",\n \"feedback_modal.type.incorrect\": \"Incorrect information\",\n \"feedback_modal.type.page_not_found\": \"Page not found\",\n \"feedback_modal.type.content_improvement\": \"Content improvement\",\n \"feedback_modal.type.new_documentation\": \"New documentation\",\n \"feedback_modal.type.other\": \"Other documentation feedback\",\n \"search_input.empty\": \"No se encontraron resultados. Intenta utilizar otros términos.\",\n \"search_input.placeholder\": \"Buscar\",\n \"search_input.copy_link\": \"Copiar enlace\",\n \"search_input.copied\": \"Copiado\",\n \"heading_link.copy\": \"Copiar enlace\",\n \"heading_link.copied\": \"Copiado\",\n \"search_input.open_new_tab\": \"Abrir en nueva pestaña\",\n \"search_input.clear\": \"Limpiar búsqueda\",\n \"search_input.navigate\": \"Navegar\",\n \"search_input.open\": \"Abrir\",\n \"search_input.close\": \"Cerrar\",\n \"search_input.open_search\": \"Buscar\",\n \"sidebar_search.placeholder\": \"Buscar en\",\n \"search_results.showing\": \"Mostrando\",\n \"search_results.results_for\": \"resultados para\",\n \"search_results.in\": \"en\",\n \"search_results.all_lowercase\": \"todos los resultados\",\n \"search_input.see_all\": \"Ver todos los resultados\",\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" en {section}\",\n \"search_results.all\": \"Todos los resultados\",\n \"search_card.in\": \"En\",\n \"image.error_loading\": \"Se produjo un error al cargar la imagen\",\n \"api_reference_sidebar_filter_clear\": \"Limpiar todo\",\n \"api_reference_sidebar_filter\": \"Filtrar por\",\n \"cookie_bar.title\": \"Utilizamos cookies\",\n \"cookie_bar.description\": \"Este sitio web utiliza cookies para optimizar la navegación, analizar el uso e impulsar nuestros esfuerzos de marketing.\",\n \"cookie_bar.accept\": \"Acepto\",\n \"cookie_bar.decline\": \"Rechazo\",\n \"landing_page_subscription.title\": \"Mantente al día con la documentación de VTEX\",\n \"landing_page_subscription.description\": \"Suscríbete a nuestro newsletter mensual para recibir información sobre los últimos anuncios, release notes y artículos recién publicados.\",\n \"landing_page_newsletter.Button\": \"Inscríbete\",\n \"subscription_list.api_key_error\": \"La clave de API de la newsletter no está definida\",\n \"subscription_list.invalid_email\": \"Dirección de email inválida, por favor intenta con otra.\",\n \"subscription_list.success\": \"¡Te has suscrito con éxito!\",\n \"subscription_list.error\": \"Lo sentimos, no pudimos suscribirte. Por favor, inténtalo de nuevo más tarde.\",\n \"subscription_list.privacy_notice\": \"Al suscribirte a nuestra newsletter, aceptas nuestro\",\n \"subscription_list.privacy_policy_link\": \"Aviso de privacidad\",\n \"on_this_page.title\": \"En esta página\",\n \"contributors.title\": \"Contribuidores\",\n \"contributors.toggle_less\": \"Mostrar menos\",\n \"contributors.toggle_more\": \"+ {count} contribuidores\",\n \"contributors.photo_alt\": \"Foto del contribuidor {name}\",\n \"footer.github\": \"GitHub\",\n \"footer.developer_portal\": \"Developer Portal\",\n \"footer.help_center\": \"Help Center\",\n \"footer.community\": \"Comunidad\",\n \"footer.feedback\": \"Feedback\",\n \"header.docs\": \"Menú\",\n \"header.feedback\": \"Feedback\",\n \"header.admin_tools\": \"Herramientas de admin\",\n \"header.home_aria\": \"Volver al inicio\",\n \"copy_heading_link.copy\": \"Copiar enlace\",\n \"copy_heading_link.copied\": \"Copiado\",\n \"documentation_reading_time.text\": \"{minutes} min de lectura\",\n \"date_text.created\": \"Publicado el\",\n \"date_text.updated\": \"Última actualización el\",\n \"date_text.last_update\": \"Última actualización:\",\n \"article_pagination.previous\": \"Anterior\",\n \"article_pagination.next\": \"Siguiente\",\n \"see_also_section.title\": \"Véase también\",\n \"insert_account_name.placeholder\": \"Nombre de cuenta\",\n \"insert_account_name.button\": \"Ir a la documentación\",\n \"insert_account_name.tooltip\": \"Ver página de documentación en VTEX Admin\",\n \"insert_account_name.error\": \"El nombre de cuenta es obligatorio\",\n \"ask_ai.copy\": \"Copiar markdown\",\n \"ask_ai.view\": \"Ver markdown\",\n \"ask_ai.copied\": \"Copiado\",\n \"ask_assistant.button\": \"Preguntar al Assistant\",\n \"ask_assistant.title\": \"Assistant\",\n \"ask_assistant.hero_title\": \"¿Cómo puedo ayudarte?\",\n \"ask_assistant.hero_subtitle\": \"Obtén respuestas de la documentación de VTEX.\",\n \"ask_assistant.placeholder\": \"Haz una pregunta...\",\n \"ask_assistant.examples\": \"Ejemplos:\",\n \"ask_assistant.send\": \"Enviar\",\n \"ask_assistant.close\": \"Cerrar\",\n \"ask_assistant.clear\": \"Nueva conversación\",\n \"ask_assistant.history\": \"Historial\",\n \"ask_assistant.history_clear\": \"borrar\",\n \"ask_assistant.expand\": \"Expandir\",\n \"ask_assistant.collapse\": \"Contraer\",\n \"ask_assistant.copy\": \"Copiar\",\n \"ask_assistant.copied\": \"Copiado\",\n \"ask_assistant.regenerate\": \"Volver a generar\",\n \"ask_assistant.helpful\": \"Útil\",\n \"ask_assistant.not_helpful\": \"No fue útil\",\n \"ask_assistant.error\": \"No se pudo contactar al assistant. Inténtalo de nuevo.\",\n \"ask_assistant.searching\": \"Buscando...\",\n \"ask_assistant.searching_docs\": \"Buscando documentación\",\n \"ask_assistant.searching_endpoints\": \"Buscando endpoints\",\n \"ask_assistant.reading_endpoints\": \"Leyendo detalles del endpoint\",\n \"ask_assistant.reading_document\": \"Leyendo documento\",\n \"ask_assistant.read_file\": \"Leyó 1 archivo\",\n \"ask_assistant.read_files\": \"Leyó {count} archivos\",\n \"ask_assistant.found_endpoint\": \"Encontró 1 endpoint\",\n \"ask_assistant.found_endpoints\": \"Encontró {count} endpoints\",\n \"ask_assistant.tool\": \"Herramienta\",\n \"ask_assistant.process_running\": \"Procesando...\",\n \"ask_assistant.process_completed\": \"Proceso completado ({count} pasos)\",\n \"ask_assistant.process_completed_one\": \"Proceso completado (1 paso)\",\n \"ask_assistant.step_search_docs\": \"Buscar documentación\",\n \"ask_assistant.step_search_endpoints\": \"Buscar endpoints\",\n \"ask_assistant.step_read_endpoints\": \"Leer detalles del endpoint\",\n \"ask_assistant.step_read_document\": \"Leer documento\",\n \"ask_assistant.step_create_response\": \"Crear respuesta\",\n \"ask_assistant.step_search\": \"Buscar\",\n \"ask_assistant.sources\": \"Fuentes\"\n}\n","{\n \"feedback_section.question\": \"Isso foi útil?\",\n \"feedback_section.response\": \"Agradecemos pelo seu feedback.\",\n \"feedback_section.positive\": \"Sim\",\n \"feedback_section.negative\": \"Não\",\n \"feedback_section.edit\": \"Sugerir edições (GitHub)\",\n \"feedback_modal.button\": \"Enviar feedback\",\n \"feedback_modal.title\": \"Enviar feedback\",\n \"feedback_modal.description\": \"Compartilhe sugestões, problemas encontrados ou ideias para melhorar nossa documentação.\",\n \"feedback_modal.success\": \"Obrigado! Seu feedback foi recebido.\",\n \"feedback_modal.error\": \"Não foi possível enviar seu feedback. Tente novamente mais tarde.\",\n \"feedback_modal.article\": \"Artigo\",\n \"feedback_modal.message\": \"Mensagem\",\n \"feedback_modal.type\": \"Tipo de feedback\",\n \"feedback_modal.name\": \"Nome\",\n \"feedback_modal.email\": \"E-mail\",\n \"feedback_modal.cancel\": \"Cancelar\",\n \"feedback_modal.submit\": \"Enviar\",\n \"feedback_modal.submitting\": \"Enviando...\",\n \"feedback_modal.close\": \"Fechar modal\",\n \"feedback_modal.done\": \"Concluir\",\n \"feedback_modal.message_placeholder\": \"Descreva sua sugestão, dúvida ou problema...\",\n \"feedback_modal.name_placeholder\": \"Seu nome\",\n \"feedback_modal.email_placeholder\": \"voce@exemplo.com\",\n \"feedback_modal.type.incorrect\": \"Incorrect information\",\n \"feedback_modal.type.page_not_found\": \"Page not found\",\n \"feedback_modal.type.content_improvement\": \"Content improvement\",\n \"feedback_modal.type.new_documentation\": \"New documentation\",\n \"feedback_modal.type.other\": \"Other documentation feedback\",\n \"search_input.empty\": \"Nenhum resultado encontrado. Tente buscar por outros termos.\",\n \"search_input.placeholder\": \"Buscar\",\n \"search_input.copy_link\": \"Copiar link\",\n \"search_input.copied\": \"Copiado\",\n \"heading_link.copy\": \"Copiar link\",\n \"heading_link.copied\": \"Copiado\",\n \"search_input.open_new_tab\": \"Abrir em nova aba\",\n \"search_input.clear\": \"Limpar busca\",\n \"search_input.navigate\": \"Navegar\",\n \"search_input.open\": \"Abrir\",\n \"search_input.close\": \"Fechar\",\n \"search_input.open_search\": \"Buscar\",\n \"sidebar_search.placeholder\": \"Buscar em\",\n \"search_results.showing\": \"Mostrando\",\n \"search_results.results_for\": \"resultados para\",\n \"search_results.in\": \"em\",\n \"search_results.all_lowercase\": \"todos os resultados\",\n \"search_input.see_all\": \"Ver todos os resultados\",\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" em {section}\",\n \"search_results.all\": \"Todos os resultados\",\n \"search_card.in\": \"Em\",\n \"image.error_loading\": \"Ocorreu um erro ao carregar a imagem\",\n \"api_reference_sidebar_filter_clear\": \"Limpar tudo\",\n \"api_reference_sidebar_filter\": \"Filtrar por\",\n \"cookie_bar.title\": \"Nós usamos cookies\",\n \"cookie_bar.description\": \"Este site utiliza cookies para melhorar a navegação, analisar a experiência de uso e auxiliar em nossas ações de marketing.\",\n \"cookie_bar.accept\": \"Concordo\",\n \"cookie_bar.decline\": \"Discordo\",\n \"landing_page_subscription.title\": \"Mantenha-se em dia com a documentação da VTEX\",\n \"landing_page_subscription.description\": \"Assine nossa newsletter mensal para receber informações sobre os Announcements mais recentes, Release Notes e os artigos recém-publicados.\",\n \"landing_page_newsletter.Button\": \"Inscreva-se\",\n \"subscription_list.api_key_error\": \"A chave da API da newsletter não está definida\",\n \"subscription_list.invalid_email\": \"Endereço de email inválido, por favor tente outro.\",\n \"subscription_list.success\": \"Você se inscreveu com sucesso!\",\n \"subscription_list.error\": \"Desculpe, não foi possível realizar sua inscrição. Por favor, tente novamente mais tarde.\",\n \"subscription_list.privacy_notice\": \"Ao assinar nossa newsletter, você concorda com a nossa\",\n \"subscription_list.privacy_policy_link\": \"Política de Privacidade\",\n \"on_this_page.title\": \"Nesta página\",\n \"contributors.title\": \"Contribuidores\",\n \"contributors.toggle_less\": \"Ver menos\",\n \"contributors.toggle_more\": \"+ {count} contribuidores\",\n \"contributors.photo_alt\": \"Foto do contribuidor {name}\",\n \"footer.github\": \"GitHub\",\n \"footer.developer_portal\": \"Developer Portal\",\n \"footer.help_center\": \"Help Center\",\n \"footer.community\": \"Comunidade\",\n \"footer.feedback\": \"Feedback\",\n \"header.docs\": \"Menu\",\n \"header.feedback\": \"Feedback\",\n \"header.admin_tools\": \"Ferramentas de admin\",\n \"header.home_aria\": \"Voltar para o início\",\n \"copy_heading_link.copy\": \"Copiar link\",\n \"copy_heading_link.copied\": \"Copiado\",\n \"documentation_reading_time.text\": \"{minutes} min de leitura\",\n \"date_text.created\": \"Publicado em\",\n \"date_text.updated\": \"Última atualização em\",\n \"date_text.last_update\": \"Última atualização:\",\n \"article_pagination.previous\": \"Anterior\",\n \"article_pagination.next\": \"Próximo\",\n \"see_also_section.title\": \"Veja também\",\n \"insert_account_name.placeholder\": \"Nome da conta\",\n \"insert_account_name.button\": \"Acessar documentação\",\n \"insert_account_name.tooltip\": \"Ver página de documentação no Admin VTEX\",\n \"insert_account_name.error\": \"O nome da conta é obrigatório\",\n \"ask_ai.copy\": \"Copiar markdown\",\n \"ask_ai.view\": \"Ver markdown\",\n \"ask_ai.copied\": \"Copiado\",\n \"ask_assistant.button\": \"Perguntar ao Assistant\",\n \"ask_assistant.title\": \"Assistant\",\n \"ask_assistant.hero_title\": \"Como posso te ajudar?\",\n \"ask_assistant.hero_subtitle\": \"Obtenha respostas da documentação da VTEX.\",\n \"ask_assistant.placeholder\": \"Faça uma pergunta...\",\n \"ask_assistant.examples\": \"Exemplos:\",\n \"ask_assistant.send\": \"Enviar\",\n \"ask_assistant.close\": \"Fechar\",\n \"ask_assistant.clear\": \"Nova conversa\",\n \"ask_assistant.history\": \"Histórico\",\n \"ask_assistant.history_clear\": \"limpar\",\n \"ask_assistant.expand\": \"Expandir\",\n \"ask_assistant.collapse\": \"Recolher\",\n \"ask_assistant.copy\": \"Copiar\",\n \"ask_assistant.copied\": \"Copiado\",\n \"ask_assistant.regenerate\": \"Gerar novamente\",\n \"ask_assistant.helpful\": \"Útil\",\n \"ask_assistant.not_helpful\": \"Não foi útil\",\n \"ask_assistant.error\": \"Não foi possível falar com o assistant. Tente novamente.\",\n \"ask_assistant.searching\": \"Buscando...\",\n \"ask_assistant.searching_docs\": \"Buscando documentação\",\n \"ask_assistant.searching_endpoints\": \"Buscando endpoints\",\n \"ask_assistant.reading_endpoints\": \"Lendo detalhes do endpoint\",\n \"ask_assistant.reading_document\": \"Lendo documento\",\n \"ask_assistant.read_file\": \"Leu 1 arquivo\",\n \"ask_assistant.read_files\": \"Leu {count} arquivos\",\n \"ask_assistant.found_endpoint\": \"Encontrou 1 endpoint\",\n \"ask_assistant.found_endpoints\": \"Encontrou {count} endpoints\",\n \"ask_assistant.tool\": \"Ferramenta\",\n \"ask_assistant.process_running\": \"Processando...\",\n \"ask_assistant.process_completed\": \"Processo concluído ({count} passos)\",\n \"ask_assistant.process_completed_one\": \"Processo concluído (1 passo)\",\n \"ask_assistant.step_search_docs\": \"Buscar documentação\",\n \"ask_assistant.step_search_endpoints\": \"Buscar endpoints\",\n \"ask_assistant.step_read_endpoints\": \"Ler detalhes do endpoint\",\n \"ask_assistant.step_read_document\": \"Ler documento\",\n \"ask_assistant.step_create_response\": \"Criar resposta\",\n \"ask_assistant.step_search\": \"Buscar\",\n \"ask_assistant.sources\": \"Fontes\"\n}\n","import enMessages from '../messages/en.json'\nimport esMessages from '../messages/es.json'\nimport ptMessages from '../messages/pt.json'\nimport { MessagesType } from './typings/messages-types'\n\nconst getMessages = (): {\n en: MessagesType\n es: MessagesType\n pt: MessagesType\n} => {\n const messages = {\n en: enMessages,\n es: esMessages,\n pt: ptMessages,\n }\n\n return messages\n}\n\nexport const messages = getMessages()\n","import type { SxStyleProp } from '@vtex/brand-ui'\nimport type { CSSProperties } from 'react'\n\nconst wrapper: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '4px',\n my: '16px',\n}\n\nconst container: SxStyleProp = {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '8px',\n}\n\nconst input: CSSProperties = {\n width: '280px',\n height: '40px',\n padding: '0 12px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n fontSize: '14px',\n boxSizing: 'border-box',\n transition: 'border-color 0.3s ease-out',\n}\n\nconst inputError: CSSProperties = {\n borderColor: '#E31C58',\n outline: 'none',\n}\n\nconst button: CSSProperties = {\n height: '40px',\n padding: '0 16px',\n border: '1px solid #ccc',\n borderRadius: '4px',\n fontSize: '14px',\n background: 'transparent',\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n boxSizing: 'border-box',\n transition: 'all 0.3s ease-out',\n}\n\nconst buttonHover: CSSProperties = {\n background: '#F8F7FC',\n borderColor: '#5E6E84',\n color: '#E31C58',\n}\n\nconst errorText: SxStyleProp = {\n fontSize: '12px',\n color: '#E31C58',\n}\n\nexport default {\n wrapper,\n container,\n input,\n inputError,\n button,\n buttonHover,\n errorText,\n}\n","export const removeHTML = (str: string) => str.replace(/<\\/?[^>]+>/g, '')\n\nconst SYMBOL_RUN_THRESHOLD = 3\n\n/**\n * Strips Markdown syntax from text snippets to render as plain text.\n * Removes headings, bold, italic, inline code, images, and links while preserving\n * the readable content. Also handles tokens left truncated by the upstream\n * snippet (e.g. an image/link cut off mid-URL with no closing paren).\n */\nexport const stripMarkdownForSnippet = (str: string): string => {\n if (!str) return ''\n\n let cleaned = str\n // Drop closed fenced blocks (code, mermaid, etc.) including their contents\n .replace(/```[\\s\\S]*?```/g, '')\n // Drop unclosed/truncated fenced blocks at the end of a snippet\n .replace(/```[^\\n]*(?:\\n[\\s\\S]*)?$/g, '')\n // Remove markdown images ![alt](url) entirely (alt is usually a filename)\n .replace(/!\\[[^\\]]*\\]\\([^)]*\\)/g, '')\n // Remove markdown links [text](url) - keep only the text\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\n // Remove truncated markdown images/links left dangling at the end of a\n // snippet (upstream cuts the string mid-token, e.g. \"![alt](https://...\" )\n .replace(/!?\\[[^\\]]*\\]\\([^)]*$/g, '')\n // Remove a dangling image/link label with no closing bracket (\"![alt\" )\n .replace(/!?\\[[^\\]]*$/g, '')\n // Remove markdown headings (# ## ### etc.) at line start\n .replace(/^#{1,6}\\s+/gm, '')\n // Remove markdown headings anywhere in text\n .replace(/\\s#{1,6}\\s+/g, ' ')\n // Remove bold (**text** or __text__)\n .replace(/\\*\\*(.+?)\\*\\*/g, '$1')\n .replace(/__(.+?)__/g, '$1')\n // Remove italic (*text* or _text_)\n .replace(/\\*(.+?)\\*/g, '$1')\n .replace(/_(.+?)_/g, '$1')\n // Remove inline code (`text`) — keep readable inner text\n .replace(/`([^`]+)`/g, '$1')\n // Remove horizontal rules (---, ***, ___)\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\n // Remove blockquotes (>)\n .replace(/^>\\s+/gm, '')\n // Remove table separator rows (| --- | :--: | etc.)\n .replace(/^\\s*\\|?\\s*:?-{3,}:?\\s*(\\|\\s*:?-{3,}:?\\s*)*\\|?\\s*$/gm, '')\n // Replace remaining table pipes with spaces so cell content stays readable\n .replace(/\\s*\\|\\s*/g, ' ')\n // Collapse stray horizontal-rule / table-separator symbol runs\n .replace(new RegExp(`-{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n .replace(new RegExp(`={${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n .replace(new RegExp(`\\\\|{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\n // Remove extra whitespace and normalize spaces\n .replace(/\\s+/g, ' ')\n .trim()\n\n // If the snippet starts mid-word (lowercase letter), try to find the start of the next word\n if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) {\n const firstSpaceIndex = cleaned.indexOf(' ')\n if (firstSpaceIndex > 0 && firstSpaceIndex < 50) {\n cleaned = cleaned.substring(firstSpaceIndex + 1).trim()\n }\n }\n\n return cleaned\n}\n\nexport const capitalizeFirstLetter = (str: string) => {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport const toCamelCase = (str: string) => {\n const [firstWord, ...otherWords] = str.split('-')\n return `${firstWord}${otherWords.map(capitalizeFirstLetter).join('')}`\n}\n\nexport const slugify = (str: string) => {\n return str\n .normalize('NFD') // Decomposes diacritics (e.g., \"é\" → \"é\")\n .replace(/[\\u0300-\\u036f]/g, '') // Removes diacritic marks\n .toLowerCase()\n .replace(/[^\\w\\s-]/g, '') // Removes non-word characters except spaces and hyphens\n .replace(/\\s+/g, '-') // Replaces spaces with hyphens\n .replace(/-+/g, '-') // Removes multiple consecutive hyphens\n .trim() // Trims leading/trailing spaces\n}\n\ntype Child = string | { props: { children: Child[] } }\n\nexport const childrenToString: (children: Child[]) => string = (children) => {\n if (!children) return ''\n else if (Array.isArray(children))\n return children\n .map((child) => {\n if (typeof child === 'string') return child\n return childrenToString(child.props.children)\n })\n .join('')\n else {\n if (typeof children === 'string') return children\n return childrenToString(children['props']['children'])\n }\n}\n\nexport const matrixToMarkdownTable: (matrix: string[][]) => string = (\n matrix\n) => {\n const matrixRowToMarkdownTableRow = (matrixRow: string[]) =>\n `|${matrixRow\n .map((matrixElement) => ` ${matrixElement.replace(/\\n/g, '
')} |`)\n .join('')}`\n\n let table = matrixRowToMarkdownTableRow(matrix[0]) + '\\n|'\n for (let i = 0; i < matrix[0].length; i++) table += ' --- |'\n\n table += '\\n'\n for (let i = 1; i < matrix.length; i++)\n table += matrixRowToMarkdownTableRow(matrix[i]) + '\\n'\n\n return table\n}\n","import mermaid from 'mermaid'\n\nconst mermaidInit = () => {\n mermaid.initialize({\n theme: 'base',\n themeVariables: {\n primaryColor: '#FFFFFF',\n primaryTextColor: '#142032',\n primaryBorderColor: '#A1AAB7',\n labelBoxBorderColor: '#E31C58',\n labelTextColor: '#E31C58',\n labelBoxBkgColor: '#FFF3F6',\n lineColor: '#A1AAB7',\n mainBkg: '#F8F7FC',\n },\n })\n}\n\nexport default mermaidInit\n","import {\n Children,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n type MouseEvent,\n type ReactNode,\n} from 'react'\nimport { Box } from '@vtex/brand-ui'\nimport type { SxStyleProp } from '@vtex/brand-ui'\nimport copy from 'copy-text-to-clipboard'\n\nimport LinkIcon from 'components/icons/link-icon'\nimport Tooltip from 'components/tooltip'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport styles from './styles'\n\nexport type CopyHeadingLinkProps = {\n /**\n * Heading `id` used as the URL hash. An empty slug means the heading is an\n * h1 (the page title), so the copied URL has no hash.\n */\n slug?: string\n size?: number\n sx?: SxStyleProp\n /**\n * Heading text. When set, the copy control is glued to the last word so it\n * never wraps onto a line by itself.\n */\n children?: ReactNode\n}\n\nconst LAST_WORD = /^(.*?)(\\s+)(\\S+)$/su\n\nconst glueToLastWord = (content: ReactNode, tail: ReactNode): ReactNode => {\n const glued = (word: ReactNode) => (\n \n {word}\n {tail}\n \n )\n\n if (content == null || typeof content === 'boolean') return tail\n\n if (typeof content === 'string' || typeof content === 'number') {\n const text = String(content)\n const match = text.match(LAST_WORD)\n if (!match) return glued(text)\n return (\n <>\n {match[1]}\n {match[2]}\n {glued(match[3])}\n \n )\n }\n\n const items = Children.toArray(content)\n if (items.length === 0) return tail\n\n const last = items[items.length - 1]\n const gluedLast =\n typeof last === 'string' || typeof last === 'number'\n ? glueToLastWord(last, tail)\n : glued(last)\n\n if (items.length === 1) return gluedLast\n\n return (\n <>\n {items.slice(0, -1)}\n {gluedLast}\n \n )\n}\n\nexport const getHeadingUrl = (slug = '') => {\n const { origin, pathname, search } = window.location\n const pageUrl = `${origin}${pathname}${search}`\n if (!slug) return pageUrl\n\n const hash = slug.startsWith('#') ? slug : `#${slug}`\n return `${pageUrl}${hash}`\n}\n\nconst CopyHeadingLink = ({\n slug = '',\n size = 16,\n sx = {},\n children,\n}: CopyHeadingLinkProps) => {\n const { locale } = useContext(LibraryContext)\n const [copied, setCopied] = useState(false)\n const copyTimeout = useRef(undefined)\n\n const copyLabel = messages[locale]['heading_link.copy'] || 'Copy link'\n const copiedLabel = messages[locale]['heading_link.copied'] || 'Copied'\n const label = copied ? copiedLabel : copyLabel\n\n const handleCopy = useCallback(\n (event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n\n copy(getHeadingUrl(slug))\n setCopied(true)\n window.clearTimeout(copyTimeout.current)\n copyTimeout.current = window.setTimeout(() => {\n setCopied(false)\n }, 2000)\n },\n [slug]\n )\n\n useEffect(() => () => window.clearTimeout(copyTimeout.current), [])\n\n const control = (\n \n event.preventDefault()}\n >\n \n \n \n )\n\n if (children == null) return control\n return <>{glueToLastWord(children, control)}\n}\n\nexport default CopyHeadingLink\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LinkIcon\n\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst muted = '#A1AAB7'\nconst mutedHover = '#5E6E84'\nconst pink = '#E31C58'\n\nconst lastWord: SxStyleProp = {\n display: 'inline-block',\n whiteSpace: 'nowrap',\n overflowWrap: 'normal',\n wordBreak: 'normal',\n verticalAlign: 'baseline',\n}\n\nconst tooltipWrapper: SxStyleProp = {\n display: 'inline-flex',\n verticalAlign: 'middle',\n position: 'relative',\n lineHeight: 0,\n}\n\nconst button: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n ml: '8px',\n p: 0,\n border: 'none',\n background: 'transparent',\n color: muted,\n cursor: 'pointer',\n verticalAlign: 'middle',\n lineHeight: 0,\n userSelect: 'none',\n transition: 'color 0.15s ease',\n ':hover': {\n color: mutedHover,\n },\n ':focus-visible': {\n outline: `2px solid ${pink}`,\n outlineOffset: '2px',\n borderRadius: '2px',\n },\n}\n\nconst buttonCopied: SxStyleProp = {\n ...button,\n color: mutedHover,\n}\n\nexport default { lastWord, tooltipWrapper, button, buttonCopied }\n",".img {\n max-width: 100%;\n padding-top: 2vh;\n border-radius: 4px;\n}\n\n.heading::before {\n content: '';\n display: block;\n visibility: hidden;\n pointer-events: none;\n}\n\n.heading :global([data-copy-heading-link]) {\n position: relative;\n top: -0.08em;\n}\n\n.code {\n background-color: unset;\n background-color: var(--md-code-background, #f6f8fa);\n border-radius: 4px;\n color: var(--md-code-text);\n margin: 0;\n padding: 0.2em 0.4em;\n font-size: 0.875em;\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\ntable .code {\n word-break: normal;\n}\n\n.blockquote {\n display: grid;\n padding: 20px;\n gap: 20px;\n width: 100%;\n margin: 16px 0px 24px;\n border-radius: 4px;\n align-items: center;\n border: 1px solid #ccced8;\n grid-template-columns: 20px 1fr;\n grid-template-rows: auto;\n word-break: break-word;\n}\n\n.blockquote a {\n word-break: break-word;\n overflow-wrap: break-word;\n}\n\n.blockquote p,\n.blockquote div {\n margin: 0px;\n grid-column: 2 / -1;\n grid-row: 1 / 1;\n}\n\n.blockquote > div {\n width: 100%;\n max-width: 100%;\n min-width: 0;\n}\n\n.blockquote ch-code-scroll-parent {\n width: 100% !important;\n overflow-x: auto !important;\n overflow-y: hidden !important;\n background-color: unset !important;\n}\n\n.blockquote a {\n color: #e31c58 !important;\n -webkit-text-decoration: underline 1px solid;\n text-decoration: underline 1px solid;\n}\n\n.blockquote a:hover {\n color: #c81e51;\n}\n\n.blockquoteIcon {\n display: inline-block;\n flex-shrink: 0;\n grid-row: 1;\n}\n\n.blockquoteInfo {\n background: #f8f7fc;\n border: 1px solid #ccced8;\n}\n\n.blockquoteDanger {\n background: #fdefef;\n border: 1px solid #dc5a41;\n}\n\n.blockquoteWarning {\n background: #fff2d4;\n border: 1px solid #ffb100;\n}\n\n.blockquoteWarning code {\n background-color: #ffe5b5;\n}\n\n.blockquoteInfo code {\n background-color: unset;\n}\n\n.blockquoteSuccess {\n background: #f3f8f3;\n border: 1px solid #80be80;\n}\n\n.flexWrap {\n flex-wrap: wrap;\n justify-content: space-between;\n}\n\n.svgContainer {\n width: 100%;\n}","import { useContext, useEffect } from 'react'\nimport Link from 'next/link.js'\nimport { useRouter } from 'next/router.js'\nimport { Box, Text } from '@vtex/brand-ui'\nimport AnimateHeight from 'react-animate-height'\n\nimport { removeHTML } from 'utils/string-utils'\nimport { Item } from './TableOfContents.types'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\nimport styles from './styles'\n\nconst MARKDOWN_HEADINGS_SELECTOR = [\n '[data-markdown-renderer] h2',\n '[data-markdown-renderer] h3',\n '[data-markdown-renderer] h4',\n '[data-markdown-renderer] h5',\n '[data-markdown-renderer] h6',\n].join(', ')\n\nconst headingTitle = (heading: Element) => {\n const clone = heading.cloneNode(true) as HTMLElement\n clone\n .querySelectorAll('[data-copy-heading-link]')\n .forEach((node) => node.remove())\n return removeHTML(clone.innerHTML).replace(':', '').trim()\n}\n\nconst collectHeadingsFromDom = (): Item[] => {\n const headings: Item[] = []\n document.querySelectorAll(MARKDOWN_HEADINGS_SELECTOR).forEach((heading) => {\n const item = {\n title: headingTitle(heading),\n slug: heading.id,\n }\n\n if (heading.tagName === 'H2') {\n headings.push({ ...item, children: [] })\n } else if (headings.length > 0) {\n headings[headings.length - 1].children.push({ ...item })\n } else {\n headings.push({ ...item, children: [] })\n }\n })\n return headings\n}\n\ninterface Props {\n /** List of headings in the current documentation page */\n headingList?: Item[]\n children?: React.ReactNode\n}\n\n/** Table of contents for documentation pages. */\nconst TableOfContents = ({ headingList, children }: Props) => {\n const router = useRouter()\n const { headingItems, activeItem, setHeadingItems, setActiveItem, locale } =\n useContext(LibraryContext)\n\n useEffect(() => {\n if (headingList) {\n setHeadingItems(headingList)\n return\n }\n\n const applyFromDom = () => {\n const headings = collectHeadingsFromDom()\n if (!headings.length) return false\n setHeadingItems(headings)\n return true\n }\n\n if (applyFromDom()) return\n\n // MarkdownRenderer uses `lazy`, so headings may appear after this effect.\n const observer = new MutationObserver(() => {\n if (applyFromDom()) observer.disconnect()\n })\n observer.observe(document.body, { childList: true, subtree: true })\n return () => observer.disconnect()\n }, [router.asPath, headingList, setHeadingItems])\n\n const items = headingList?.length ? headingList : headingItems\n\n const Item = ({\n title,\n slug,\n level,\n active,\n }: {\n title: string\n slug: string\n level: number\n active: boolean\n }) => {\n return (\n {\n setActiveItem(({ item }) => ({\n item: level === 1 ? slug : item,\n subItem: level === 1 ? '' : slug,\n }))\n }}\n >\n {title}\n \n )\n }\n\n return (\n \n {items.length > 0 && (\n \n {messages[locale]['on_this_page.title']}\n \n )}\n \n {items.map((item) => (\n \n \n \n \n {item.children.map((subItem) => (\n \n ))}\n \n \n \n ))}\n \n {children}\n \n )\n}\n\nexport default TableOfContents\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst itemsContainer: SxStyleProp = {\n position: 'sticky',\n top: 'calc(5rem + 32px)',\n}\n\nconst tocTitle: SxStyleProp = {\n fontSize: '10px',\n fontWeight: '600',\n textTransform: 'uppercase',\n mb: '6px',\n color: 'muted.0',\n}\n\nconst headings: SxStyleProp = {\n borderLeft: '1px solid #E7E9EE',\n mb: '16px',\n}\n\nconst item: (level: number, active: boolean) => SxStyleProp = (\n level,\n active\n) => {\n const defaultLineHeight = `${level === 1 ? 18 : 22}px`\n return {\n ml: '-1px',\n pl: `${level * 8}px`,\n py: ['6px', '6px', '6px', '6px', '4px', '4px'],\n borderLeft: `1px solid ${active && level === 1 ? '#E31C58' : '#E7E9EE'}`,\n fontSize: ['16px', '16px', '16px', '16px', '12px', '16px'],\n lineHeight: [\n defaultLineHeight,\n defaultLineHeight,\n defaultLineHeight,\n defaultLineHeight,\n `${level === 1 ? 16 : 18}px`,\n defaultLineHeight,\n ],\n fontWeight: `${active ? '600' : '400'}`,\n color: `${active ? '#0C1522' : 'muted.0'}`,\n\n ':hover': {\n color: '#000711',\n },\n }\n}\n\nconst subItemsContainer: SxStyleProp = {\n ml: '16px',\n borderLeft: '1px solid #E7E9EE',\n}\n\nexport default { tocTitle, itemsContainer, item, subItemsContainer, headings }\n","import { useContext, useState } from 'react'\nimport { Box, Flex, Text } from '@vtex/brand-ui'\nimport AnimateHeight from 'react-animate-height'\n\nimport TableOfContents from 'lib/table-of-contents'\nimport MenuIcon from 'components/icons/menu-icon'\nimport CloseIcon from 'components/icons/close-icon'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\nimport styles from './styles'\nimport { OnThisPageProps } from './OnThisPage.types'\n\n/** Mobile floating table of contents for documentation pages. */\nconst OnThisPage = ({ headingList }: OnThisPageProps) => {\n const { locale } = useContext(LibraryContext)\n const [isOpen, setIsOpen] = useState(false)\n const title = messages[locale]['on_this_page.title']\n\n return (\n \n \n \n \n \n \n \n \n\n setIsOpen((open) => !open)}\n >\n {title}\n \n {!isOpen ? : }\n \n \n \n )\n}\n\nexport default OnThisPage\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst MenuIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n)\n\nexport default MenuIcon\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n left: '20px',\n bottom: '20px',\n position: 'fixed',\n alignItems: 'flex-end',\n display: ['flex', 'flex', 'flex', 'flex', 'none'],\n flexDirection: ['column-reverse', 'row'],\n}\n\nconst contentContainer: SxStyleProp = {\n mt: ['8px', 0],\n mb: ['-20px', 0],\n mr: ['-20px', '8px'],\n width: ['100vw', '360px'],\n padding: '16px',\n borderRadius: ['8px 8px 0px 0px', '8px'],\n backgroundColor: 'white',\n border: '1px solid #CCCED8',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n}\n\nconst onThisPageTitle: SxStyleProp = {\n mb: '16px',\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '16px',\n color: '#4A4A4A',\n}\n\nconst buttonContainer: SxStyleProp = {\n cursor: 'pointer',\n alignItems: 'center',\n backgroundColor: 'muted.4',\n border: '1px solid #CCCED8',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n borderRadius: '8px',\n}\n\nconst iconContainer: SxStyleProp = {\n width: '32px',\n height: '32px',\n padding: '6px',\n boxSizing: 'initial',\n borderRadius: '8px',\n backgroundColor: 'white',\n borderLeft: '1px solid #CCCED8',\n}\n\nconst title: (open: boolean) => SxStyleProp = (open) => ({\n color: 'black',\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '16px',\n padding: open ? '0px' : '8px',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n width: open ? '0px' : 'min-width',\n transition: 'all 0.3s ease-in-out',\n transitionDelay: open ? '0s' : '0.3s',\n})\n\nexport default {\n container,\n contentContainer,\n onThisPageTitle,\n buttonContainer,\n iconContainer,\n title,\n}\n","import { useContext, useEffect, useRef, useState } from 'react'\nimport { Box, Flex, Grid, IconCaret, Text } from '@vtex/brand-ui'\n\nimport Tooltip from 'components/tooltip'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\nimport styles from './styles'\nimport { ContributorsProps } from './Contributors.types'\n\n/** List of GitHub contributors for a documentation page. */\nconst Contributors = ({ contributors }: ContributorsProps) => {\n const { locale } = useContext(LibraryContext)\n\n const [showAll, setShowAll] = useState(false)\n const [pageWidth, setPageWidth] = useState(0)\n const [photosPerRow, setPhotosPerRow] = useState(0)\n const [minRows, setMinRows] = useState(0)\n const [isClient, setIsClient] = useState(false)\n const photosContainer = useRef(null)\n\n useEffect(() => {\n setIsClient(true)\n setPageWidth(window.innerWidth)\n\n const updatePageWidth = () => {\n setPageWidth(window.innerWidth)\n }\n\n window.addEventListener('resize', updatePageWidth)\n return () => window.removeEventListener('resize', updatePageWidth)\n }, [])\n\n useEffect(() => {\n if (isClient && photosContainer.current) {\n const gridStyle = window.getComputedStyle(photosContainer.current)\n setPhotosPerRow(gridStyle.gridTemplateColumns.split(' ').length)\n }\n }, [pageWidth, isClient])\n\n useEffect(() => {\n setMinRows(photosPerRow === 6 ? 1 : 2)\n }, [photosPerRow])\n\n const visibleRows = photosPerRow\n ? showAll\n ? Math.ceil(contributors.length / photosPerRow)\n : Math.min(Math.ceil(contributors.length / photosPerRow), minRows)\n : minRows\n const hiddenCount = contributors.length - minRows * photosPerRow\n\n return (\n \n \n {messages[locale]['contributors.title']}\n {contributors.length}\n \n\n \n {contributors.map((contributor) => (\n \n \n \n {/* eslint-disable-next-line @next/next/no-img-element */}\n \n \n \n \n ))}\n \n\n {contributors.length > minRows * photosPerRow && (\n {\n setShowAll(!showAll)\n }}\n >\n \n {showAll\n ? messages[locale]['contributors.toggle_less']\n : messages[locale]['contributors.toggle_more'].replace(\n '{count}',\n String(hiddenCount)\n )}\n \n \n \n )}\n \n )\n}\n\nexport default Contributors\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n mb: '32px',\n flexDirection: 'column',\n alignItems: ['initial', 'center', 'center', 'center', 'initial'],\n}\n\nconst titleContainer: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst title: SxStyleProp = {\n fontWeight: '400',\n fontSize: ['12px', '16px', '16px', '16px', '12px', '16px'],\n lineHeight: ['16px', '18px', '18px', '18px', '16px', '18px'],\n color: '#4A4A4A',\n}\n\nconst count: SxStyleProp = {\n px: '8px',\n ml: '8px',\n width: '30px',\n height: '16px',\n borderRadius: '24px',\n backgroundColor: 'muted.4',\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '16px',\n textAlign: 'center',\n color: '#4A4A4A',\n}\n\nconst photosContainer: (rows: number) => SxStyleProp = (rows) => ({\n mt: '16px',\n gap: '8px',\n gridTemplateColumns: [\n '1fr 1fr 1fr 1fr',\n '1fr 1fr 1fr 1fr 1fr 1fr',\n '1fr 1fr 1fr 1fr 1fr 1fr',\n '1fr 1fr 1fr 1fr 1fr 1fr',\n '1fr 1fr 1fr 1fr',\n '1fr 1fr 1fr 1fr 1fr',\n ],\n overflow: 'hidden',\n width: [0, 'min-content', 'min-content', 'min-content', '152px', '192px'],\n maxHeight: `${32 * rows + 8 * (rows - 1)}px`,\n transition: 'max-height 0.3s ease-in-out',\n})\n\nconst photo: SxStyleProp = {\n width: '32px',\n height: '32px',\n img: {\n width: '32px',\n height: '32px',\n borderRadius: '100%',\n },\n}\n\nconst collapseButton: SxStyleProp = {\n ...title,\n mt: '8px',\n height: '24px',\n color: 'muted.0',\n cursor: 'pointer',\n alignItems: 'center',\n\n ':active': {\n color: '#0C1522',\n },\n\n ':hover': {\n color: '#000711',\n },\n}\n\nexport default {\n container,\n titleContainer,\n title,\n count,\n photosContainer,\n photo,\n collapseButton,\n}\n","import {\n Fragment,\n useEffect,\n useMemo,\n useRef,\n useState,\n useContext,\n} from 'react'\nimport { Flex, Text, Box } from '@vtex/brand-ui'\nimport Link from 'next/link.js'\n\nimport styles from './styles'\nimport { iconTooltipStyle } from './functions'\n\nimport { Section } from 'utils/typings/types'\nimport Tooltip from 'components/tooltip'\nimport { updateOpenPage, getSectionLabel } from 'utils/sidebar-utils'\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nexport interface SideBarSectionState {\n /** Array containing the name of the parents of the expanded page in the menu. */\n parentsArray?: string[]\n}\n\ninterface SideBarIconProps extends Section {\n expandDelayStatus: boolean\n isEditorPreview: boolean\n activeSectionName: string\n setActiveSectionName: (id: string) => void\n}\n\nconst SideBarIcon = ({\n expandDelayStatus,\n isEditorPreview,\n activeSectionName,\n setActiveSectionName,\n ...sectionElement\n}: SideBarIconProps) => {\n const [iconTooltip, setIconTooltip] = useState(false)\n const [tooltipLabel, setTooltipLabel] = useState(sectionElement.title)\n const titleRef = useRef()\n\n useEffect(() => {\n setTooltipLabel(sectionElement.title)\n }, [sectionElement.title])\n\n useEffect(() => {\n const target = titleRef.current\n if (!target) return\n\n const updateTooltip = () => {\n setIconTooltip(target.offsetWidth < target.scrollWidth)\n if (target.offsetWidth > 0) setTooltipLabel(target.innerText)\n }\n\n updateTooltip()\n const resizeObserver = new MutationObserver(updateTooltip)\n resizeObserver.observe(target, {\n childList: true,\n characterData: true,\n subtree: true,\n })\n return () => {\n resizeObserver.disconnect()\n }\n }, [])\n\n return (\n \n \n {\n if (isEditorPreview) {\n e.preventDefault()\n }\n setActiveSectionName(sectionElement.id)\n }}\n passHref\n aria-label={sectionElement.title}\n >\n \n \n \n {sectionElement.title}\n \n \n \n \n \n )\n}\n\n/**\n * Sidebar component.\n */\nconst Sidebar = ({ parentsArray = [] }: SideBarSectionState) => {\n const [expandDelayStatus, setExpandDelayStatus] = useState(true)\n\n const context = useContext(LibraryContext)\n const {\n isEditorPreview,\n setActiveSectionName,\n activeSectionName,\n sidebarSections,\n sidebarDataMaster,\n locale,\n } = context\n\n const sidebarSectionContent = useMemo(() => {\n if (!Array.isArray(sidebarDataMaster)) return undefined\n return sidebarDataMaster.find(\n (section: SidebarSectionProps) =>\n section.documentation === activeSectionName\n ) as SidebarSectionProps | undefined\n }, [sidebarDataMaster, activeSectionName])\n\n updateOpenPage({\n parentsArray,\n context,\n })\n\n useEffect(() => {\n let timer: NodeJS.Timeout | undefined = undefined\n if (sidebarSectionContent?.categories?.length)\n timer = setTimeout(() => setExpandDelayStatus(false), 5000)\n else setExpandDelayStatus(true)\n\n return () => {\n timer && clearTimeout(timer)\n }\n }, [activeSectionName, sidebarSectionContent?.categories?.length])\n\n return (\n \n \n {sidebarSections.map((section, id) => (\n \n {id > 0 && (\n \n
\n
\n )}\n \n {section.map((element) => {\n const title = getSectionLabel(\n element,\n sidebarDataMaster,\n locale\n )\n return (\n \n )\n })}\n \n
\n ))}\n
\n {activeSectionName && sidebarSectionContent ? (\n \n ) : null}\n \n )\n}\n\nexport default Sidebar\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sidebar: SxStyleProp = {\n display: [\n 'none !important',\n 'none !important',\n 'none !important',\n 'flex !important',\n ],\n position: 'sticky',\n left: '0',\n top: '5rem',\n flex: '1 0 auto',\n height: 'calc(100vh - 5rem)',\n maxHeight: 'calc(100vh - 5rem)',\n minHeight: 0,\n paddingRight: '16px',\n marginRight: '-16px',\n zIndex: 2,\n 'body:has(.modal[data-open=\"true\"]) &': {\n zIndex: 0,\n },\n width: 'auto',\n minWidth: 'auto',\n transition: 'all 0.3s ease-in-out',\n '.active': {\n marginLeft: '-276px',\n transition: 'all 0.3s ease-in-out',\n },\n '.iconContainerExpanded': {\n transition: 'all 0.3s ease-in-out',\n width: '160px',\n },\n '.iconDescriptionExpanded': {\n display: 'block',\n },\n}\n\nconst sidebarIcons: SxStyleProp = {\n width: ['56px', '56px', '56px', '56px', '56px', '160px'],\n minWidth: 'max-content',\n height: '100%',\n minHeight: 0,\n overflowX: 'hidden',\n overflowY: 'auto',\n overscrollBehavior: 'contain',\n scrollbarWidth: 'none',\n '::-webkit-scrollbar': {\n display: 'none',\n },\n transition: 'all 0.3s ease-in-out',\n flexDirection: 'column',\n borderRight: '1px solid #E7E9EE',\n background: '#FFFFFF',\n zIndex: '2',\n 'body:has(.modal[data-open=\"true\"]) &': {\n zIndex: 0,\n },\n paddingBottom: '32px',\n}\n\nconst linkContainer: SxStyleProp = {\n minWidth: '100%',\n}\n\nconst iconBox: SxStyleProp = {\n mt: ['16px'],\n width: '100%',\n maxWidth: '144px',\n paddingLeft: ['0', '0', '0', '8px'],\n paddingRight: ['0', '0', '0', '8px', '8px', '0'],\n py: ['0', '0', '0', '8px', '8px', '10px'],\n height: '40px',\n borderRadius: '4px',\n alignItems: 'center',\n justifyContent: 'flex-start',\n background: 'transparent',\n color: 'muted.0',\n cursor: 'pointer',\n ':hover': {\n background: '#F8F7FC',\n color: '#000711',\n path: {\n stroke: [\n '#000711',\n '#000711',\n '#000711',\n '#000711',\n '#000711',\n '#4A596B',\n ],\n },\n },\n}\n\nconst iconBoxActive: SxStyleProp = {\n ...iconBox,\n background: ['#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', 'none'],\n color: '#E31C58',\n}\n\nconst sidebarIconsContainer: SxStyleProp = {\n width: '100%',\n flexDirection: 'column',\n alignItems: 'flex-start',\n px: ['0', '0', '0', '8px'],\n}\n\nconst icon: SxStyleProp = {\n width: ['24px'],\n height: ['24px'],\n}\n\nconst iconActive: SxStyleProp = {\n ...icon,\n '> path': {\n stroke: '#E31C58',\n },\n}\n\nconst sectionDivider: SxStyleProp = {\n px: '8px',\n marginTop: '16px',\n hr: {\n border: '1px solid #E7E9EE',\n borderTop: 'none',\n },\n}\n\nconst iconTitle: SxStyleProp = {\n display: ['none', 'none', 'none', 'none', 'none', 'block'],\n width: '100%',\n fontSize: '14px',\n ml: ['8px', '8px', '8px', '8px', '8px', '12px'],\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst iconTooltip: SxStyleProp = {\n display: [\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'flex !important',\n 'none !important',\n ],\n}\n\nexport default {\n sidebar,\n sidebarIcons,\n sidebarIconsContainer,\n linkContainer,\n iconBox,\n icon,\n iconActive,\n iconBoxActive,\n sectionDivider,\n iconTitle,\n iconTooltip,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nexport const iconTooltipStyle: SxStyleProp = (tooltipState: boolean) => {\n const iconTooltip: SxStyleProp = {\n display: [\n 'flex',\n 'flex',\n 'flex',\n 'flex',\n 'flex',\n tooltipState ? 'flex' : 'none !important',\n ],\n }\n return iconTooltip\n}\n","export const flattenJSON = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n obj: any = {},\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n res: any = {},\n extraKey = ''\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): any => {\n if (!obj || typeof obj !== 'object') return res\n\n for (const key in obj) {\n const value = obj[key]\n if (value !== null && typeof value === 'object') {\n flattenJSON(value, res, `${extraKey}${key}.`)\n } else {\n res[extraKey + key] = value\n }\n }\n return res\n}\n\nconst documentationTypeCache = new WeakMap>()\n\nfunction indexDocumentationTypes(\n data: unknown,\n index: Map\n): void {\n if (!data || typeof data !== 'object') return\n\n if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n indexDocumentationTypes(data[i], index)\n }\n return\n }\n\n const node = data as { slug?: unknown; type?: unknown }\n if (typeof node.type === 'string' && node.slug != null) {\n if (typeof node.slug === 'string') {\n index.set(node.slug, node.type)\n } else if (typeof node.slug === 'object') {\n for (const value of Object.values(node.slug as Record)) {\n if (typeof value === 'string' && value) {\n index.set(value, node.type)\n }\n }\n }\n }\n\n for (const value of Object.values(data as Record)) {\n if (value && typeof value === 'object') {\n indexDocumentationTypes(value, index)\n }\n }\n}\n\n/** O(1) lookup of a nav node's `type` (`markdown` | `category` | `link`). */\nexport function getDocumentationType(\n sidebarData: unknown,\n slug: string\n): string | undefined {\n if (!sidebarData || typeof sidebarData !== 'object') return undefined\n\n let index = documentationTypeCache.get(sidebarData)\n if (!index) {\n index = new Map()\n indexDocumentationTypes(sidebarData, index)\n documentationTypeCache.set(sidebarData, index)\n }\n\n return index.get(slug)\n}\n\nexport const getKeyByEndpoint = (\n object: { [x: string]: string },\n endpoint: string,\n slug: string,\n method?: string\n) => {\n const slugPaths = Object.keys(object).filter((key) => object[key] === slug)\n let path = ''\n slugPaths?.map((el) => {\n if (\n method &&\n object[`${el.replace('.slug', '.method')}`] == method?.toUpperCase() &&\n object[`${el.replace('.slug', '.endpoint')}`] == endpoint\n ) {\n path = el\n } else if (hasChildren(object, el.replace('.slug', '.children'))) {\n path = el\n }\n })\n return path\n}\n\nfunction hasChildren(\n flattenedJson: { [x: string]: string },\n elementKey: string\n): boolean {\n for (const key in flattenedJson) {\n if (key.startsWith(`${elementKey}.`)) {\n return true\n }\n }\n return false\n}\n\nexport const getParents = (\n path: string,\n data: string,\n flattenedSidebar: { [x: string]: string },\n parentsArray: string[],\n parent?: string\n) => {\n const pathParts = path?.split('children')\n pathParts?.splice(-1)\n let prev = ''\n pathParts?.map((el) => {\n el = prev + el\n prev = el + 'children'\n\n if (!parent || flattenedSidebar[`${el}${data}`].includes(parent)) {\n parentsArray.push(flattenedSidebar[`${el}${data}`])\n }\n })\n return parentsArray\n}\n","import { Section } from './typings/types'\nimport { flattenJSON, getKeyByEndpoint, getParents } from './navigation-utils'\nimport { useRouter } from 'next/router.js'\nimport { useEffect } from 'react'\nimport { ContextType } from './context/libraryContext'\n\nexport const getIcon = (doc: string, sections: Section[][]) => {\n return sections.flat().find((icon) => icon.id === doc || icon.title === doc)\n ?.Icon\n}\n\ntype LocalizedField = string | { en: string; pt: string; es: string }\n\nexport function resolveLocalizedName(\n value: LocalizedField | undefined,\n locale: 'en' | 'pt' | 'es'\n): string {\n if (!value) return ''\n if (typeof value === 'string') return value\n return value[locale] || value.en || ''\n}\n\n/** Label for a sidebar section, preferring the localized `name` from navigation. */\nexport function getSectionLabel(\n section: { id: string; title: string },\n navigation: unknown,\n locale: 'en' | 'pt' | 'es'\n): string {\n if (Array.isArray(navigation)) {\n const navSection = navigation.find(\n (item: { documentation?: string; name?: LocalizedField }) =>\n item.documentation === section.id\n )\n const fromNav = resolveLocalizedName(navSection?.name, locale)\n if (fromNav) return fromNav\n }\n return section.title\n}\n\ninterface updateOpenPageProps {\n parentsArray?: string[]\n context: ContextType\n}\nexport const updateOpenPage = ({\n parentsArray = [],\n context,\n}: updateOpenPageProps) => {\n const { sidebarDataMaster, setActiveSidebarElement, setOpenSidebarElements } =\n context\n const router = useRouter()\n const parentsKey = parentsArray.join('\\0')\n\n useEffect(() => {\n const expandedSlugs = parentsArray.slice()\n let activeSlug = ''\n const querySlug = router.query.slug\n\n if (querySlug && router.pathname === '/docs/api-reference/[slug]') {\n const flattenedSidebar = flattenJSON(sidebarDataMaster)\n activeSlug = router.asPath.replace('/docs/api-reference/', '')\n const docPath = activeSlug.split('/')\n const hasHashTag = router.asPath.indexOf('#') > -1\n const apiSlug = docPath[0].split(hasHashTag ? '#' : '?endpoint=')[0]\n const endpoint = '/' + docPath.splice(1, docPath.length).join('/')\n let keyPath\n if (endpoint == '/') {\n activeSlug = apiSlug\n keyPath = getKeyByEndpoint(flattenedSidebar, '', apiSlug)\n } else {\n const method = docPath[0]\n .split(hasHashTag ? '#' : '?endpoint=')[1]\n .split('-')[0]\n keyPath = getKeyByEndpoint(flattenedSidebar, endpoint, apiSlug, method)\n }\n expandedSlugs.push(activeSlug)\n if (keyPath) {\n getParents(keyPath, 'slug', flattenedSidebar, expandedSlugs)\n }\n } else {\n activeSlug = expandedSlugs[expandedSlugs.length - 1]\n }\n\n setOpenSidebarElements(expandedSlugs)\n setActiveSidebarElement(activeSlug?.replace('?endpoint=', '#'))\n }, [\n parentsKey,\n router.asPath,\n router.pathname,\n router.query.slug,\n sidebarDataMaster,\n setActiveSidebarElement,\n setOpenSidebarElements,\n ])\n}\n","// Sidebar Section\nimport { Flex, Box, Text, Button } from '@vtex/brand-ui'\nimport {\n memo,\n useContext,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\n\nimport styles from './styles'\nimport { SidebarElement } from '../sidebar-elements'\nimport SectionFilter from '../sidebar-section-filter'\nimport SideBarElements from '../sidebar-elements'\nimport SearchIcon from 'components/icons/search-icon'\nimport CloseIcon from 'components/icons/close-icon'\nimport SideBarToggleIcon from 'components/icons/sidebar-toggle-icon'\nimport ArrowLeftIcon from 'components/icons/arrow-left-icon'\nimport { getIcon } from 'utils/sidebar-utils'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\nexport interface SidebarSectionProps {\n documentation: string\n name: string | { en: string; es: string; pt: string }\n categories: SidebarElement[]\n slugPrefix: string\n isHamburgerMenu: boolean\n}\n\ntype MethodFilter = {\n name: string\n active: boolean\n}\n\nfunction localizedName(\n name: SidebarElement['name'],\n locale: 'en' | 'pt' | 'es'\n): string {\n return typeof name === 'string' ? name : name[locale]\n}\n\nfunction matchesQuery(\n name: SidebarElement['name'],\n query: string,\n locale: 'en' | 'pt' | 'es'\n): boolean {\n if (!query) return true\n return localizedName(name, locale).toLowerCase().includes(query)\n}\n\nfunction matchesMethodFilter(\n node: SidebarElement,\n methodFilterList: MethodFilter[],\n filterStatus: boolean\n): boolean {\n if (!filterStatus || !node.method) return true\n return methodFilterList.some(\n (methodFilter) => methodFilter.name === node.method && methodFilter.active\n )\n}\n\nfunction filterSidebarNode(\n node: SidebarElement,\n query: string,\n methodFilterList: MethodFilter[],\n filterStatus: boolean,\n locale: 'en' | 'pt' | 'es'\n): SidebarElement | null {\n const selfMatches =\n matchesQuery(node.name, query, locale) &&\n matchesMethodFilter(node, methodFilterList, filterStatus)\n const children = node.children || []\n\n if (selfMatches && !filterStatus) {\n return node\n }\n\n const filteredChildren = children\n .map((child) =>\n filterSidebarNode(\n child,\n selfMatches ? '' : query,\n methodFilterList,\n filterStatus,\n locale\n )\n )\n .filter((child): child is SidebarElement => child != null)\n\n if (filteredChildren.length > 0) {\n return { ...node, children: filteredChildren }\n }\n\n if (selfMatches && children.length === 0) {\n return node\n }\n\n return null\n}\n\nfunction scrollDesktopSidebarToActiveItem(container: HTMLElement) {\n const activeEl = container.querySelector(\n '[data-sidebar-active=\"true\"]'\n )\n if (!activeEl) return false\n\n const containerRect = container.getBoundingClientRect()\n const elRect = activeEl.getBoundingClientRect()\n const isFullyVisible =\n elRect.top >= containerRect.top && elRect.bottom <= containerRect.bottom\n\n if (isFullyVisible) return true\n\n const topInsideContainer =\n elRect.top - containerRect.top + container.scrollTop\n const centered =\n topInsideContainer - container.clientHeight / 2 + elRect.height / 2\n\n container.scrollTop = Math.max(0, centered)\n return true\n}\n\nfunction filterSidebarCategories(\n categories: SidebarElement[] | undefined,\n searchValue: string,\n methodFilterList: MethodFilter[],\n filterStatus: boolean,\n locale: 'en' | 'pt' | 'es'\n): SidebarElement[] | undefined {\n if (!categories?.length || (!filterStatus && searchValue === '')) {\n return categories\n }\n\n const query = searchValue.toLowerCase()\n\n return categories\n .map((category) =>\n filterSidebarNode(category, query, methodFilterList, filterStatus, locale)\n )\n .filter((category): category is SidebarElement => category != null)\n}\n\nconst SidebarSearchBox = ({\n value,\n placeholder,\n onChange,\n}: {\n value: string\n placeholder: string\n onChange: (value: string) => void\n}) => {\n const inputRef = useRef(null)\n const { locale } = useContext(LibraryContext)\n const clearLabel = messages[locale]['search_input.clear'] || 'Clear search'\n\n return (\n \n \n onChange(e.currentTarget.value)}\n />\n {value ? (\n {\n onChange('')\n inputRef.current?.focus()\n }}\n >\n \n \n ) : null}\n \n )\n}\n\nconst SidebarSection = ({\n documentation,\n name,\n categories,\n slugPrefix,\n isHamburgerMenu = false,\n}: SidebarSectionProps) => {\n const [searchValue, setSearchValue] = useState('')\n const sidebarBoxRef = useRef(null)\n const {\n isEditorPreview,\n sidebarSectionHidden,\n setSidebarSectionHidden,\n sidebarSections,\n activeSidebarElement,\n locale,\n } = useContext(LibraryContext)\n const [methodFilterList, setMethodFilterList] = useState([\n { name: 'POST', active: false },\n { name: 'GET', active: false },\n { name: 'PUT', active: false },\n { name: 'DELETE', active: false },\n { name: 'PATCH', active: false },\n ])\n\n const filterStatus = methodFilterList.some(\n (methodFilter) => methodFilter.active\n )\n\n const filteredResult = useMemo(\n () =>\n filterSidebarCategories(\n categories,\n searchValue,\n methodFilterList,\n filterStatus,\n locale\n ),\n [filterStatus, methodFilterList, categories, searchValue, locale]\n )\n\n useLayoutEffect(() => {\n if (isHamburgerMenu || !activeSidebarElement) return\n const container = sidebarBoxRef.current\n if (!container) return\n\n const tryScroll = () => scrollDesktopSidebarToActiveItem(container)\n if (tryScroll()) return\n\n const observer = new MutationObserver(() => {\n if (tryScroll()) observer.disconnect()\n })\n observer.observe(container, { childList: true, subtree: true })\n const timeout = window.setTimeout(() => observer.disconnect(), 1500)\n\n return () => {\n observer.disconnect()\n window.clearTimeout(timeout)\n }\n }, [activeSidebarElement, filteredResult, isHamburgerMenu])\n\n const DocIcon = getIcon(documentation, sidebarSections)\n\n let localizedSectionTitle = ''\n\n if (!categories || categories.length <= 0) {\n return <>\n } else {\n localizedSectionTitle = typeof name === 'string' ? name : name[locale]\n }\n\n return isHamburgerMenu ? (\n \n \n \n }\n onClick={() => {\n setSidebarSectionHidden(true)\n }}\n />\n {DocIcon && }\n {localizedSectionTitle}\n \n {documentation == 'API Reference' && (\n \n \n \n )}\n \n \n \n \n \n ) : (\n \n \n \n {isEditorPreview && (\n \n \n \n \n \n \n PREVIEW MODE\n \n )}\n {localizedSectionTitle}\n \n \n {documentation == 'API Reference' && (\n \n )}\n \n \n \n \n \n {\n setSidebarSectionHidden(\n (sidebarSectionHidden) => !sidebarSectionHidden\n )\n }}\n sx={sidebarSectionHidden ? styles.toggleIcon : {}}\n />\n \n \n )\n}\n\nexport default memo(SidebarSection)\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sidebarContainer: SxStyleProp = {\n position: 'relative',\n width: 'auto',\n height: 'inherit',\n minHeight: 0,\n overflow: 'visible',\n borderRight: '1px solid #E7E9EE',\n zIndex: '1',\n 'body:has(.modal[data-open=\"true\"]) &': {\n zIndex: 0,\n },\n left: '0',\n transition: 'all 0.3s ease-in-out',\n '.toggleIcon': {\n opacity: '0',\n transition: 'all 0.3s ease-out',\n },\n '.sidebarHide': {\n opacity: '0',\n transition: 'all 0.5s ease-out',\n },\n ':hover': {\n '.toggleIcon': {\n opacity: '100',\n transition: 'all 0.3s ease-out',\n },\n },\n}\n\nconst sidebarContainerHamburger: SxStyleProp = {\n width: '100%',\n height: '100%',\n zIndex: '1',\n}\n\nconst sidebarContainerBox: SxStyleProp = {\n opacity: '100',\n paddingTop: '34px',\n paddingBottom: '24px',\n width: '300px',\n overflowY: 'auto',\n height: 'inherit',\n maskImage:\n 'linear-gradient(to top, transparent, black), linear-gradient(to left, transparent 17px, black 17px)',\n maskSize: '100% 20000px',\n maskPosition: 'left bottom',\n transition: 'mask-position 0.3s, -webkit-mask-position 0.3s',\n ':hover': {\n maskPosition: 'left top',\n },\n}\n\nconst sidebarContainerBoxHamburger: SxStyleProp = {\n opacity: '100',\n width: '100%',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n background: '#FFFFFF',\n overflow: 'hidden',\n}\n\nconst sidebarContainerBody: SxStyleProp = {\n px: '16px',\n}\n\nconst sidebarContainerHeader: SxStyleProp = {\n px: '16px',\n}\n\nconst sidebarContainerTitle: SxStyleProp = {\n alignItems: 'center',\n minHeight: '52px',\n padding: '4px 16px 4px 8px',\n borderBottom: '1px solid #E7E9EE',\n flexShrink: 0,\n position: 'sticky',\n top: 0,\n zIndex: 2,\n 'body:has(.modal[data-open=\"true\"]) &': {\n zIndex: 0,\n },\n background: '#FFFFFF',\n px: '16px',\n}\n\nconst sidebarTitle: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n fontSize: '16px',\n lineHeight: '18px',\n}\n\nconst sidebarTitleHamburger: SxStyleProp = {\n flex: 1,\n minWidth: 0,\n fontSize: '16px',\n lineHeight: '24px',\n color: '#4a596b',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n pl: '8px',\n}\n\nconst sidebarTitleIcon: SxStyleProp = {\n width: '24px',\n height: '24px',\n minWidth: '24px',\n flexShrink: 0,\n color: '#4A596B',\n}\n\nconst sidebarContainerFilterHamburger: SxStyleProp = {\n px: '16px',\n pt: '16px',\n pb: 0,\n flexShrink: 0,\n background: '#FFFFFF',\n}\n\nconst sidebarContainerBodyHamburger: SxStyleProp = {\n px: '8px',\n pt: '8px',\n pb: 'calc(24px + env(safe-area-inset-bottom, 0px))',\n flex: 1,\n minHeight: 0,\n overflowY: 'auto',\n}\n\nconst sidebarHelpIcon: SxStyleProp = {\n ml: '4px',\n width: '24px',\n height: '24px',\n}\n\nconst searchBox: SxStyleProp = {\n mt: '16px',\n mb: '20px',\n alignItems: 'center',\n borderRadius: '4px',\n background: '#F4F4F4',\n width: '265px',\n height: '40px',\n paddingLeft: '12px',\n paddingRight: '8px',\n}\n\nconst searchInput: SxStyleProp = {\n width: 'auto',\n flex: '1',\n minWidth: 0,\n background: '#F4F4F4',\n border: '#F4F4F4',\n color: '#545454',\n fontSize: ['14px'],\n outline: 'none',\n}\n\nconst searchIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n}\n\nconst clearButton: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '24px',\n height: '24px',\n ml: '4px',\n padding: 0,\n border: 'none',\n borderRadius: '50%',\n background: 'transparent',\n color: '#4A596B',\n cursor: 'pointer',\n flexShrink: 0,\n ':hover': {\n background: '#EDEDED',\n color: '#142032',\n },\n}\n\nconst clearIcon: SxStyleProp = {\n width: '14px',\n height: '14px',\n}\n\nconst toggleIconBox: SxStyleProp = {\n justifyContent: 'center',\n alignItems: 'center',\n width: '32px',\n height: '32px',\n borderRadius: '50%',\n border: '1px solid #E7E9EE',\n background: '#FFFFFF',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n position: 'absolute',\n top: '32px',\n right: '-16px',\n cursor: 'pointer',\n zIndex: 3,\n 'body:has(.modal[data-open=\"true\"]) &': {\n zIndex: 0,\n },\n}\n\nconst toggleIconBoxActive: SxStyleProp = {\n ...toggleIconBox,\n opacity: '100 !important',\n}\n\nconst toggleIcon: SxStyleProp = {\n transform: 'scaleX(-1)',\n}\n\nconst arrowButton: SxStyleProp = {\n padding: '0px',\n width: '40px',\n minWidth: '40px',\n height: '40px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#4A596B',\n flexShrink: 0,\n}\n\nconst previewMode: SxStyleProp = {\n display: 'flex',\n color: '#A87600',\n backgroundColor: '#ffe5b5',\n padding: '10px',\n borderRadius: '10px',\n fontWeight: '600',\n fontSize: '14px',\n lineHeight: '20px',\n letterSpacing: '0.5px',\n mb: '20px',\n svg: {\n width: '20px',\n mr: '10px',\n },\n}\n\nexport default {\n sidebarContainer,\n sidebarContainerHamburger,\n sidebarContainerBox,\n sidebarContainerBoxHamburger,\n sidebarContainerBodyHamburger,\n sidebarContainerFilterHamburger,\n sidebarContainerBody,\n sidebarContainerHeader,\n sidebarContainerTitle,\n sidebarTitle,\n sidebarTitleHamburger,\n sidebarTitleIcon,\n sidebarHelpIcon,\n searchBox,\n searchInput,\n searchIcon,\n clearButton,\n clearIcon,\n toggleIconBox,\n toggleIconBoxActive,\n toggleIcon,\n arrowButton,\n previewMode,\n}\n","import { Box, Flex, Text } from '@vtex/brand-ui'\nimport MethodCategory from 'components/method-category'\nimport { Dispatch, SetStateAction, useContext, useState } from 'react'\n\nimport styles from './styles'\nimport { MethodType } from 'utils/typings/types'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\ntype MethodFilter = {\n name: string\n active: boolean\n}\n\ninterface MethodButtonProps {\n methodFilter: MethodFilter\n}\n\ninterface SectionFilterProps {\n methodFilterList: MethodFilter[]\n setMethodFilter: Dispatch>\n isHamburgerMenu?: boolean\n}\n\nconst SectionFilter = ({\n methodFilterList,\n setMethodFilter,\n isHamburgerMenu = false,\n}: SectionFilterProps) => {\n const [activeFilters, setActiveFilters] = useState([])\n const { locale } = useContext(LibraryContext)\n\n const setFilter = (methodFilterChanged: MethodType | null) => {\n if (methodFilterChanged) {\n const index = activeFilters.indexOf(methodFilterChanged)\n index === -1\n ? setActiveFilters([...activeFilters, methodFilterChanged])\n : setActiveFilters(\n activeFilters.filter((filter) => filter !== methodFilterChanged)\n )\n setMethodFilter(\n methodFilterList.map((methodFilter) => {\n if (methodFilter.name === methodFilterChanged)\n methodFilter.active = !methodFilter.active\n return methodFilter\n })\n )\n } else {\n setActiveFilters([])\n setMethodFilter(\n methodFilterList.map((methodFilter) => {\n methodFilter.active = false\n return methodFilter\n })\n )\n }\n }\n\n const MethodButton = ({ methodFilter }: MethodButtonProps) => {\n return (\n setFilter(methodFilter.name as MethodType)}\n >\n \n \n )\n }\n\n return (\n \n \n {messages[locale]['api_reference_sidebar_filter']}\n \n \n {methodFilterList.map((methodFilter) => (\n \n ))}\n {activeFilters.length > 1 && (\n setFilter(null)} sx={styles.clear}>\n {messages[locale]['api_reference_sidebar_filter_clear']}\n \n )}\n \n \n )\n}\n\nexport default SectionFilter\n","import { Flex, Text, SxStyleProp } from '@vtex/brand-ui'\nimport { categoryStyle, categoryText, closeCategoryStyle } from './functions'\nimport styles from './styles'\nimport CloseFilterIcon from 'components/icons/close-filter-icon'\nimport { MethodType } from 'utils/typings/types'\n\nexport interface MethodCategoryProps {\n method: MethodType\n active: boolean\n origin: 'sidebar' | 'search' | 'filter' | 'pagination'\n sx?: SxStyleProp\n}\n\nconst MethodCategory = ({\n method,\n active,\n origin,\n sx,\n}: MethodCategoryProps) => {\n return (\n \n {categoryText(method)}\n {origin === 'filter' && active && (\n \n )}\n \n )\n}\n\nexport default MethodCategory\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n border: '1px solid #DDDDDD',\n borderRadius: '6px',\n boxSizing: 'border-box',\n width: '24px',\n minWidth: '24px',\n height: '24px',\n minHeight: '24px',\n flexShrink: 0,\n alignItems: 'center',\n justifyContent: 'center',\n px: 0,\n}\n\nconst text: SxStyleProp = {\n fontWeight: '600',\n fontSize: '11px',\n lineHeight: '14px',\n letterSpacing: '0.02em',\n whiteSpace: 'nowrap',\n}\n\nconst filled: SxStyleProp = {\n border: 'none',\n borderRadius: '4px',\n width: '48px',\n minWidth: '48px',\n maxWidth: '48px',\n height: '20px',\n minHeight: '20px',\n px: '3px',\n}\n\nconst closeIcon: SxStyleProp = {\n minWidth: '12px',\n minHeight: '12px',\n height: '12px',\n width: '12px',\n ml: '4px',\n}\n\nexport default {\n container,\n filled,\n text,\n closeIcon,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport { MethodType } from 'utils/typings/unionTypes'\n\nimport styles from './styles'\n\nexport const methodsColors = {\n POST: {\n border: '1px solid #7CBBEA',\n color: '#2978B5',\n background: '#DEECF7',\n },\n GET: {\n border: '1px solid #83D187',\n color: '#38853C',\n background: '#DFF1E0',\n },\n PUT: {\n border: '1px solid #F5AE70',\n color: '#D56A00',\n background: '#FFEBD7',\n },\n DELETE: {\n border: '1px solid #F49494',\n color: '#CC3D3D',\n background: '#F8E3E3',\n },\n PATCH: {\n border: '1px solid #afa871',\n color: '#6C6314',\n background: '#e9e7da',\n },\n}\n\nexport const categoryStyle = (\n method: MethodType,\n active: boolean,\n origin: string,\n sx?: SxStyleProp\n): SxStyleProp => {\n const categoryColors = methodsColors[method] || {\n border: '1px solid #F49494',\n color: '#CC3D3D',\n background: '#F8E3E3',\n }\n\n const isFilled = active || origin !== 'filter'\n\n const categoryStyle: SxStyleProp = isFilled\n ? {\n ...styles.container,\n ...categoryColors,\n ...(origin !== 'filter' ? styles.filled : {}),\n ...sx,\n ':hover': {\n '.filter-close-button': {\n rect: {\n fill: categoryColors.color,\n },\n path: {\n stroke: '#DEECF7',\n },\n },\n },\n }\n : {\n ...styles.container,\n color: categoryColors.color,\n ...sx,\n }\n\n return categoryStyle\n}\n\nexport const categoryText = (method: MethodType): string => method.toUpperCase()\n\nexport const closeCategoryStyle = (method: MethodType) => {\n const categoryColors = methodsColors[method]\n const categoryStyle: SxStyleProp = {\n ...styles.closeIcon,\n rect: {\n fill: 'transparent',\n },\n path: {\n stroke: categoryColors.color,\n },\n }\n\n return categoryStyle\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CloseFilterIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default CloseFilterIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n px: '16px',\n pt: '8px',\n pb: '16px',\n mb: '16px',\n borderBottom: '1px solid #E7E9EE',\n}\n\nconst containerHamburger: SxStyleProp = {\n px: 0,\n pt: 0,\n pb: '16px',\n mb: 0,\n borderBottom: '1px solid #E7E9EE',\n}\n\nconst text: SxStyleProp = {\n mb: '10px',\n}\n\nconst textHamburger: SxStyleProp = {\n mt: 0,\n mb: '10px',\n fontSize: '12px',\n lineHeight: '16px',\n letterSpacing: '0.02em',\n color: '#4A596B',\n}\n\nconst methodsRow: SxStyleProp = {\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '8px',\n}\n\nconst methodsRowHamburger: SxStyleProp = methodsRow\n\nconst methodButton: SxStyleProp = {\n flexShrink: 0,\n}\n\nconst categoryHamburger: SxStyleProp = {\n mr: 0,\n px: '10px',\n height: '24px',\n minHeight: '24px',\n width: 'auto',\n minWidth: 'max-content',\n flexShrink: 0,\n cursor: 'pointer',\n borderRadius: '16px',\n ':hover': {\n border: '1px solid #D8D8E3',\n },\n}\n\nconst clear: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n color: 'muted.0',\n fontSize: '12px',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n flexShrink: 0,\n cursor: 'pointer',\n ':hover': {\n color: '#000711',\n },\n}\n\nexport default {\n container,\n containerHamburger,\n text,\n textHamburger,\n methodsRow,\n methodsRowHamburger,\n methodButton,\n categoryHamburger,\n clear,\n}\n","import { useRouter } from 'next/router.js'\nimport { Fragment, memo, useContext } from 'react'\nimport {\n Box,\n Flex,\n Link,\n Button,\n IconCaret,\n IconExternalLink,\n} from '@vtex/brand-ui'\n\nimport MethodCategory from 'components/method-category'\n\nimport { isInActivePath, styleByLevelNormal, textStyle } from './functions'\nimport styles from './styles'\nimport { MethodType } from 'utils/typings/types'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { getDocumentationType } from 'utils/navigation-utils'\n\nexport interface SidebarElement {\n name: string | { en: string; pt: string; es: string }\n slug: string | { en: string; pt: string; es: string }\n origin: string\n type: string\n method?: MethodType\n endpoint?: string\n children: SidebarElement[]\n /** When true, the category starts expanded instead of collapsed. */\n defaultOpen?: boolean\n}\n\nexport interface SidebarProps {\n slugPrefix?: string\n items: SidebarElement[]\n subItemLevel: number\n /** Expand every branch, used while search/method filters are active. */\n forceOpen?: boolean\n isHamburgerMenu?: boolean\n}\n\nconst SidebarElements = ({\n slugPrefix,\n items,\n subItemLevel,\n forceOpen = false,\n isHamburgerMenu = false,\n}: SidebarProps) => {\n const {\n isEditorPreview,\n activeSidebarElement,\n sidebarElementStatus,\n toggleSidebarElementStatus,\n sidebarDataMaster,\n locale,\n } = useContext(LibraryContext)\n const router = useRouter()\n\n const isElementOpen = (slug: string, defaultOpen?: boolean) =>\n forceOpen ||\n (sidebarElementStatus.has(slug)\n ? sidebarElementStatus.get(slug)\n : !!defaultOpen)\n\n const handleClick = (\n e: { preventDefault: () => void },\n pathSuffix: string,\n slug: string\n ) => {\n e.preventDefault()\n const hasEndpointQuery = router.query.endpoint\n const href = getHref(slugPrefix || '', pathSuffix, slug)\n router.push(href, href, { locale }).then(() => {\n if (hasEndpointQuery) router.reload()\n })\n }\n\n const getHref = (slugPrefix: string, pathSuffix: string, slug: string) => {\n const validLocales = ['pt', 'es']\n const localePrefix =\n locale && validLocales.includes(locale) ? `/${locale}` : ''\n const href =\n slugPrefix === 'docs/api-reference'\n ? `/${slugPrefix}/${slug}/${pathSuffix}`\n : `${localePrefix}/${slugPrefix}/${slug}`\n return href.replaceAll('//', '/')\n }\n\n const ElementRoot = ({\n slug,\n name,\n method,\n endpoint,\n children,\n defaultOpen,\n }: SidebarElement) => {\n const localizedName: string = typeof name === 'string' ? name : name[locale]\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\n const isExpandable = children.length > 0\n const isOpen = isElementOpen(localizedSlug, defaultOpen)\n const pathSuffix = method ? `#${method.toLowerCase()}-${endpoint}` : ''\n const activeItem = method ? `${localizedSlug}${pathSuffix}` : localizedSlug\n const isActive = activeSidebarElement === activeItem\n const isArrowActive = isInActivePath(\n { slug, method, endpoint, children },\n activeSidebarElement,\n locale\n )\n const documentationType = getDocumentationType(\n sidebarDataMaster,\n localizedSlug\n )\n return (\n \n \n {isExpandable ? (\n (\n \n )}\n onClick={() => toggleSidebarElementStatus(localizedSlug, isOpen)}\n />\n ) : (\n \n )}\n {documentationType !== 'category' && documentationType !== 'link' ? (\n void }) => {\n if (!isEditorPreview) {\n handleClick(e, pathSuffix, localizedSlug)\n }\n toggleSidebarElementStatus(activeItem)\n }}\n href={getHref(slugPrefix || '', pathSuffix, localizedSlug)}\n target={isEditorPreview === true ? '_blank' : '_self'}\n locale={locale}\n >\n {method && (\n \n )}\n {localizedName}\n \n ) : documentationType === 'link' ? (\n \n \n {localizedName}\n \n ) : (\n {\n toggleSidebarElementStatus(localizedSlug, isOpen)\n }}\n >\n {method && (\n \n )}\n {localizedName}\n \n )}\n \n \n )\n }\n\n const ElementChildren = ({ slug, children, defaultOpen }: SidebarElement) => {\n const isExpandable = children.length > 0\n // const newPathPrefix =\n // slugPrefix === 'api-reference' ? `/api-reference/${slug}` : slugPrefix\n\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\n return isExpandable && isElementOpen(localizedSlug, defaultOpen) ? (\n \n \n \n ) : null\n }\n\n return (\n \n {items?.map((item, index) => {\n const key =\n typeof item.slug === 'string'\n ? String(item.slug) + String(index)\n : String(item.slug[locale]) + String(index)\n const slug =\n typeof item.slug === 'string'\n ? `${item.slug}`\n : `${item.slug[locale]}`\n\n return (\n \n \n \n \n \n {subItemLevel == 0 && !isHamburgerMenu ? (\n \n
\n
\n ) : null}\n
\n )\n })}\n
\n )\n}\n\nexport default memo(SidebarElements)\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst elementContainer: SxStyleProp = {\n maxWidth: '100%',\n background: '#FFFFFF',\n borderRadius: '8px',\n ':hover': {\n background: '#F8F7FC',\n a: {\n color: '#142032',\n textDecoration: 'none',\n },\n },\n}\n\nconst elementContainerHamburger: SxStyleProp = {\n ...elementContainer,\n borderRadius: '8px',\n px: '8px',\n}\n\nconst linkReset: SxStyleProp = {\n pl: \"1px\",\n textDecoration: 'none !important',\n ':hover, :focus, :visited, :active': {\n textDecoration: 'none !important',\n },\n}\n\nconst elementText: SxStyleProp = {\n color: '#4A596B',\n fontSize: '14px',\n lineHeight: '20px',\n fontWeight: '400',\n textAlign: 'initial',\n paddingBlock: '8px',\n display: 'flex',\n alignItems: 'flex-start',\n gap: '8px',\n flex: 1,\n minWidth: 0,\n whiteSpace: 'normal',\n overflowWrap: 'break-word',\n cursor: 'pointer',\n ...linkReset,\n}\n\nconst elementActive: SxStyleProp = {\n ...elementText,\n color: '#D71D55 !important',\n}\n\nconst arrowIcon: SxStyleProp = {\n padding: '0',\n margin: '0',\n color: '#A1A8B3',\n height: '36px',\n minHeight: '36px',\n minWidth: '16px',\n width: '16px',\n maxWidth: '16px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n}\n\nconst arrowIconHamburger: SxStyleProp = {\n ...arrowIcon,\n height: '44px',\n minHeight: '44px',\n minWidth: '20px',\n width: '20px',\n maxWidth: '20px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n color: '#A1A8B3',\n}\n\nconst arrowIconSpacer: SxStyleProp = {\n width: '6px',\n minWidth: '6px',\n maxWidth: '16px',\n flexShrink: 0,\n}\n\nconst arrowIconSpacerHamburger: SxStyleProp = {\n width: '8px',\n minWidth: '8px',\n maxWidth: '20px',\n flexShrink: 0,\n}\n\nconst nestedGroup: SxStyleProp = {\n ml: '8px',\n pl: '8px',\n borderLeft: '1px solid #E7E9EE',\n}\n\nconst nestedGroupFirst: SxStyleProp = {\n pl: '16px',\n}\n\nconst nestedGroupHamburger: SxStyleProp = {\n ml: '12px',\n pl: '8px',\n borderLeft: '1px solid #E7E9EE',\n}\n\nconst nestedGroupHamburgerFirst: SxStyleProp = {\n pl: '20px',\n}\n\nconst arrowIconActive: SxStyleProp = {\n ...arrowIcon,\n color: '#D71D55',\n}\n\nconst arrowIconActiveHamburger: SxStyleProp = {\n ...arrowIconHamburger,\n color: '#D71D55',\n}\n\nconst elementButton: SxStyleProp = {\n textTransform: 'initial',\n fontVariationSettings: 'unset',\n padding: '0',\n margin: '0',\n textDecoration: 'none !important',\n}\n\nconst methodBox: SxStyleProp = {\n mr: 0,\n flexShrink: 0,\n}\n\nconst sectionDivider: SxStyleProp = {\n hr: {\n border: '1px solid #E7E9EE',\n borderTop: 'none',\n },\n}\n\nexport default {\n elementContainer,\n elementContainerHamburger,\n elementText,\n elementActive,\n arrowIcon,\n arrowIconHamburger,\n arrowIconSpacer,\n arrowIconSpacerHamburger,\n arrowIconActive,\n arrowIconActiveHamburger,\n nestedGroup,\n nestedGroupFirst,\n nestedGroupHamburger,\n nestedGroupHamburgerFirst,\n elementButton,\n methodBox,\n sectionDivider,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport styles from './styles'\n\ntype NestedSidebarNode = {\n slug: string | { en: string; pt: string; es: string }\n method?: string\n endpoint?: string\n children: NestedSidebarNode[]\n}\n\nexport const isInActivePath = (\n node: NestedSidebarNode,\n activeSlug: string,\n locale: 'en' | 'pt' | 'es'\n): boolean => {\n const slug = typeof node.slug === 'string' ? node.slug : node.slug[locale]\n const item = node.method\n ? `${slug}#${node.method.toLowerCase()}-${node.endpoint}`\n : slug\n\n if (item === activeSlug || slug === activeSlug) return true\n\n return node.children.some((child) =>\n isInActivePath(child, activeSlug, locale)\n )\n}\n\nexport const styleByLevelNormal = (isHamburgerMenu = false) => {\n const normal: SxStyleProp = {\n gap: isHamburgerMenu ? '8px' : '3px',\n alignItems: 'flex-start',\n ...(isHamburgerMenu\n ? {\n minHeight: '44px',\n alignItems: 'center',\n }\n : {}),\n }\n\n return normal\n}\n\nexport const textStyle = (\n active: boolean,\n isHamburgerMenu = false,\n isExpandable = false\n) => {\n const hamburgerText: SxStyleProp = isHamburgerMenu\n ? {\n fontSize: '15px',\n lineHeight: '22px',\n paddingBlock: '11px',\n minHeight: '44px',\n color: active ? '#D71D55' : '#4A596B',\n fontWeight: '400',\n flex: 1,\n minWidth: 0,\n whiteSpace: 'normal',\n overflowWrap: 'break-word',\n alignItems: 'center',\n }\n : isExpandable\n ? {\n fontWeight: '500',\n }\n : {}\n\n if (active) {\n const textStyleActive: SxStyleProp = {\n ...styles.elementActive,\n ...hamburgerText,\n }\n return textStyleActive\n }\n const textStyle: SxStyleProp = {\n ...styles.elementText,\n ...hamburgerText,\n }\n\n return textStyle\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst SearchIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default SearchIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst SideBarToggleIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default SideBarToggleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ArrowLeftIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default ArrowLeftIcon\n","import {\n Header,\n HamburgerMenu as VtexHamburgerMenu,\n Box,\n IconCaret,\n Button,\n} from '@vtex/brand-ui'\nimport styles from './styles'\n\nimport { useContext, useEffect, useRef, useState } from 'react'\nimport { useRouter } from 'next/router.js'\nimport DocumentationCard from 'components/documentation-card'\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\nimport { updateOpenPage, getSectionLabel } from 'utils/sidebar-utils'\nimport { getDocumentationType } from 'utils/navigation-utils'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport MobileSearch from 'components/mobile-search'\n\nfunction getRouteSlug(slug: string | string[] | undefined): string {\n if (typeof slug === 'string') return slug\n if (Array.isArray(slug)) return slug[0] ?? ''\n return ''\n}\n\nexport interface HamburgerMenuProps {\n /** Array that contains the name of the sections in the menu that should be expanded. */\n parentsArray?: string[]\n}\n\n/** Hamburger Menu component, the menu uses the sidebar components internally, but it is only visible on the smaller breakpoints. */\nconst HamburgerMenu = ({ parentsArray = [] }: HamburgerMenuProps) => {\n const router = useRouter()\n const hamburgerRef = useRef(null)\n const context = useContext(LibraryContext)\n const {\n sidebarDataMaster,\n sidebarSectionHidden,\n activeSectionName,\n setActiveSectionName,\n setSidebarSectionHidden,\n hamburguerSections,\n locale,\n } = context\n\n const [userOpenedSection, setUserOpenedSection] = useState(false)\n const articleSlug = getRouteSlug(router.query.slug)\n const isListedArticle =\n parentsArray.length > 0 ||\n (Boolean(articleSlug) &&\n getDocumentationType(sidebarDataMaster, articleSlug) != null)\n const showNestedSidebar =\n Boolean(activeSectionName) &&\n !sidebarSectionHidden &&\n (userOpenedSection || isListedArticle || !articleSlug)\n\n const closeMenu = () => {\n const toggleButton = hamburgerRef.current?.querySelector(\n '[aria-expanded=\"true\"]'\n )\n toggleButton?.click()\n }\n\n const openSection = (sectionId: string) => {\n setActiveSectionName(sectionId)\n setSidebarSectionHidden(false)\n setUserOpenedSection(true)\n }\n\n useEffect(() => {\n setUserOpenedSection(false)\n }, [articleSlug])\n\n useEffect(() => {\n router.events?.on('routeChangeStart', closeMenu)\n router.events?.on('hashChangeStart', closeMenu)\n\n return () => {\n router.events?.off('routeChangeStart', closeMenu)\n router.events?.off('hashChangeStart', closeMenu)\n }\n }, [router.events])\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isDocument = (sections: any, documentID: string) => {\n let isDoc = false\n\n if (Array.isArray(sections)) {\n isDoc = sections.find((section) => section.documentation === documentID)\n }\n\n return isDoc\n }\n\n updateOpenPage({ parentsArray, context })\n\n return (\n \n \n \n \n \n \n \n \n {hamburguerSections.map((section, id) => (\n 0\n ? styles.updatesContainer\n : styles.documentationContainer\n }\n key={id}\n data-cy=\"dropdown-menu-first-section\"\n >\n {section.map((card) => (\n \n \n {\n if (isDocument(sidebarDataMaster, card.id)) {\n openSection(card.id)\n } else {\n setActiveSectionName(card.id)\n }\n }}\n />\n \n {isDocument(sidebarDataMaster, card.id) ? (\n (\n \n )}\n sx={\n activeSectionName === card.id && showNestedSidebar\n ? styles.arrowIconActive\n : styles.arrowIcon\n }\n onClick={() => openSection(card.id)}\n />\n ) : null}\n \n ))}\n \n ))}\n \n \n {activeSectionName ? (\n \n section.documentation === activeSectionName\n )\n : null)}\n />\n ) : null}\n \n \n \n \n \n \n )\n}\n\nexport default HamburgerMenu\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst headerActions: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n marginLeft: 'auto',\n height: '100%',\n width: 'auto',\n minWidth: 'auto',\n maxWidth: 'none',\n flex: '0 0 auto',\n color: '#4A596B',\n 'button[role=\"presentation\"]': {\n display: ['flex', 'flex', 'flex', 'none'],\n alignItems: 'center',\n justifyContent: 'center',\n color: '#4A596B',\n border: 'none',\n borderLeft: 'none',\n outline: 'none',\n width: '56px',\n minWidth: '56px',\n maxWidth: '56px',\n height: '100%',\n padding: 0,\n background: 'transparent',\n cursor: 'pointer',\n flexShrink: 0,\n '> div': {\n color: '#4A596B',\n },\n svg: {\n color: '#4A596B',\n rect: {\n fill: '#4A596B',\n },\n },\n ':hover, :focus, :active': {\n color: '#4A596B',\n background: 'transparent',\n '> div': {\n color: '#4A596B',\n },\n svg: {\n color: '#4A596B',\n rect: {\n fill: '#4A596B',\n },\n },\n },\n },\n}\n\nconst drawerWidth = ['100%', '280px', '280px']\nconst panelWidth = ['100vw', '280px', '280px']\n\nconst hamburgerContainer: SxStyleProp = {\n display: ['flex', 'flex', 'flex', 'none'],\n position: 'fixed',\n top: ['5rem', 0, 0],\n right: 0,\n bottom: 0,\n left: 0,\n marginTop: 0,\n paddingBottom: 0,\n width: '100%',\n height: ['calc(100vh - 5rem)', '100vh', '100vh'],\n flexDirection: 'column',\n alignItems: ['stretch', 'flex-start', 'flex-start'],\n justifyContent: 'flex-start',\n backgroundColor: ['#FFFFFF', 'transparent', 'transparent'],\n zIndex: [9998, 10000, 10000],\n overflow: 'hidden',\n '.menuHidden': {\n transform: 'translateX(-100%)',\n },\n}\n\nconst backdrop: SxStyleProp = {\n display: ['none', 'block', 'block'],\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n backgroundColor: 'rgba(20, 32, 50, 0.45)',\n backdropFilter: 'blur(4px)',\n WebkitBackdropFilter: 'blur(4px)',\n cursor: 'pointer',\n}\n\nconst innerHambugerContainer: SxStyleProp = {\n padding: '0px',\n paddingY: 0,\n position: 'relative',\n zIndex: 1,\n overflowX: 'hidden',\n overflowY: 'hidden',\n width: drawerWidth,\n maxWidth: drawerWidth,\n height: '100%',\n flexShrink: 0,\n backgroundColor: '#FFFFFF',\n boxShadow: [\n 'none',\n '4px 0 24px rgba(20, 32, 50, 0.18)',\n '4px 0 24px rgba(20, 32, 50, 0.18)',\n ],\n}\n\nconst menuContainer: SxStyleProp = {\n display: 'flex',\n width: 'max-content',\n height: '100%',\n}\n\nconst cardContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n width: panelWidth,\n overflowY: 'scroll',\n height: ['calc(100vh - 5rem)', '100vh', '100vh'],\n paddingBottom: 'env(safe-area-inset-bottom, 0px)',\n}\n\nconst sideMenuContainer: SxStyleProp = {\n backgroundColor: '#ffff',\n height: ['calc(100vh - 5rem)', '100vh', '100vh'],\n width: panelWidth,\n overflow: 'hidden',\n transform: 'translate(0)',\n transition: 'transform .5s cubic-bezier(.4,0,.2,1)',\n}\n\nconst documentationContainer: SxStyleProp = {\n px: '8px',\n pt: ['12px', '24px', '24px'],\n pb: '12px',\n}\n\nconst updatesContainer: SxStyleProp = {\n px: '8px',\n py: '12px',\n borderRadius: '0px 0px 8px 8px',\n borderTop: '1px solid #E7E9EE',\n}\n\nconst innerCardContainer: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '8px',\n minHeight: '72px',\n width: '100%',\n maxWidth: '100%',\n overflow: 'hidden',\n borderRadius: '12px',\n px: '16px',\n py: '14px',\n ':hover, :active': {\n backgroundColor: '#F8F7FC',\n },\n}\n\nconst innerCardContent: SxStyleProp = {\n flex: 1,\n minWidth: 0,\n overflow: 'hidden',\n}\n\nconst arrowIcon: SxStyleProp = {\n padding: '0',\n height: '40px',\n width: '40px',\n minWidth: '40px',\n flexShrink: 0,\n color: '#A1A8B3',\n}\n\nconst arrowIconActive: SxStyleProp = {\n ...arrowIcon,\n color: '#D71D55',\n}\n\nexport default {\n headerActions,\n menuContainer,\n cardContainer,\n sideMenuContainer,\n documentationContainer,\n updatesContainer,\n hamburgerContainer,\n backdrop,\n innerHambugerContainer,\n innerCardContainer,\n innerCardContent,\n arrowIcon,\n arrowIconActive,\n}\n","import Link from 'next/link.js'\nimport { Box, Flex, Text } from '@vtex/brand-ui'\n\nimport {\n cardContainer,\n cardTitle,\n cardDescription,\n titleContainer,\n} from './functions'\nimport styles from './styles'\nimport { MouseEventHandler } from 'react'\nimport { DataElement } from 'utils/typings/types'\n\nexport interface DocumentProps extends DataElement {\n title: string\n}\nexport interface CardProps extends DocumentProps {\n containerType: 'dropdown' | 'see-also' | 'mobile'\n onClick?: MouseEventHandler | undefined\n isExternalLink?: boolean\n}\nconst DocumentationCard = ({\n title,\n description,\n link,\n containerType,\n Icon,\n onClick,\n isExternalLink,\n}: CardProps) => {\n return (\n \n \n \n \n {containerType === 'dropdown' ? (\n \n \n \n ) : containerType === 'see-also' ? (\n \n \n \n ) : (\n \n )}\n \n \n {title}\n \n \n {description}\n \n \n \n \n \n \n )\n}\n\nexport default DocumentationCard\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst cardContainer: SxStyleProp = {\n my: ['16px', '16px', '16px', '16px', '16px', '16px', '24px'],\n padding: '8px',\n cursor: 'pointer',\n ':active, :hover': {\n borderRadius: '4px',\n backgroundColor: '#F8F7FC',\n\n '.description': {\n color: 'muted.0',\n },\n },\n\n ':active .title': {\n color: '#0C1522',\n },\n\n ':hover .title': {\n color: '#000711',\n },\n}\n\nconst titleContainer: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst dropdownIcon: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n width: '36px',\n height: '36px',\n borderRadius: '8px',\n backgroundColor: '#f8f7fc',\n transition: 'background-color 0.15s ease',\n}\n\nconst seeAlsoIcon: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n width: '32px',\n height: '32px',\n borderRadius: '8px',\n backgroundColor: '#F4F5F7',\n}\n\nconst title: SxStyleProp = {\n ml: '8px',\n color: 'muted.0',\n}\n\nconst description: SxStyleProp = {\n ml: '32px',\n fontSize: '16px',\n lineHeight: '18px',\n color: 'muted.1',\n}\n\nexport default {\n cardContainer,\n description,\n title,\n titleContainer,\n dropdownIcon,\n seeAlsoIcon,\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport styles from './styles'\n\nconst cardContainer = (containerType: string) => {\n const containerWidth =\n containerType === 'dropdown' ||\n containerType === 'mobile' ||\n containerType === 'see-also'\n ? '100%'\n : ['324px', '544px', '544px', '544px', '544px', '720px', '1400px']\n\n const textWidth =\n containerType === 'dropdown'\n ? '100%'\n : containerType === 'mobile'\n ? '100%'\n : ['276px', '496px', '496px', '496px', '496px', '672px', '1352px']\n\n const cardContainer: SxStyleProp = {\n ...styles.cardContainer,\n width: containerWidth,\n ...(containerType === 'mobile'\n ? {\n my: 0,\n padding: 0,\n borderRadius: 0,\n maxWidth: '100%',\n overflow: 'hidden',\n ':active, :hover': {\n borderRadius: 0,\n backgroundColor: 'transparent',\n },\n '.title': {\n minWidth: 0,\n width: '100%',\n },\n '.description': {\n width: '100%',\n maxWidth: '100%',\n },\n }\n : containerType === 'dropdown'\n ? {\n my: 0,\n padding: '12px',\n borderRadius: '8px',\n boxSizing: 'border-box',\n minWidth: 0,\n ':active, :hover': {\n borderRadius: '8px',\n backgroundColor: 'transparent',\n '.description': {\n color: '#142032',\n },\n },\n ':hover .title, :active .title': {\n color: '#142032',\n },\n '.title, .description': {\n width: '100%',\n },\n }\n : containerType === 'see-also'\n ? {\n my: 0,\n width: '100%',\n maxWidth: '100%',\n minWidth: 0,\n height: '100%',\n padding: '12px 14px',\n borderRadius: '8px',\n border: '1px solid #E7E9EE',\n boxSizing: 'border-box',\n transition:\n 'border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease',\n ':active, :hover': {\n borderRadius: '8px',\n borderColor: '#CCCED8',\n backgroundColor: '#F8F7FC',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.06)',\n '.description': {\n color: '#4A596B',\n },\n },\n ':hover .title, :active .title': {\n color: '#000711',\n },\n '.title, .description': {\n width: '100%',\n },\n }\n : {\n '.title, .description': {\n width: textWidth,\n },\n }),\n }\n\n return cardContainer\n}\n\nconst titleContainer = (containerType: string) => {\n const isStacked =\n containerType === 'dropdown' ||\n containerType === 'mobile' ||\n containerType === 'see-also'\n\n const titleContainer: SxStyleProp = {\n ...styles.titleContainer,\n marginBottom: isStacked ? 0 : '8px',\n ...(isStacked\n ? {\n alignItems: 'flex-start',\n gap: '12px',\n }\n : {}),\n }\n\n return titleContainer\n}\n\nconst cardTitle = (containerType: string) => {\n const titleAttributes =\n containerType === 'see-also'\n ? {\n ml: 0,\n fontSize: '15px',\n lineHeight: '22px',\n fontWeight: 500,\n color: '#142032',\n whiteSpace: 'normal',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n }\n : containerType === 'mobile'\n ? {\n ml: '0px',\n fontSize: '16px',\n lineHeight: '22px',\n color: '#4a596b',\n }\n : containerType === 'dropdown'\n ? {\n ml: 0,\n fontSize: '14px',\n lineHeight: '20px',\n fontWeight: 500,\n color: '#142032',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }\n : {\n fontSize: '16px',\n lineHeight: '22px',\n }\n\n const cardTitle: SxStyleProp = {\n ...styles.title,\n ...titleAttributes,\n }\n\n return cardTitle\n}\n\nconst cardDescription = (containerType: string) => {\n if (containerType === 'mobile') {\n const mobileDescription: SxStyleProp = {\n ...styles.description,\n ml: '0px',\n mt: '4px',\n fontSize: '13px',\n lineHeight: '18px',\n color: '#4A596B',\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n }\n return mobileDescription\n }\n\n if (containerType === 'dropdown') {\n const dropdownDescription: SxStyleProp = {\n ...styles.description,\n ml: 0,\n mt: '2px',\n fontSize: '12px',\n lineHeight: '16px',\n color: '#4A596B',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n }\n return dropdownDescription\n }\n\n if (containerType === 'see-also') {\n const seeAlsoDescription: SxStyleProp = {\n ...styles.description,\n ml: 0,\n mt: '2px',\n fontSize: '12px',\n lineHeight: '16px',\n color: '#5E6E84',\n }\n return seeAlsoDescription\n }\n\n return styles.description\n}\n\nexport { cardContainer, cardTitle, cardDescription, titleContainer }\n","import { Box, Flex } from '@vtex/brand-ui'\nimport { useContext, useEffect, useState, MouseEvent } from 'react'\nimport { useRouter } from 'next/router.js'\n\nimport SearchInput from 'components/search-input'\nimport SearchIcon from 'components/icons/search-icon'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport styles from './styles'\n\nexport interface MobileSearchProps {\n /** Called when the search modal opens, e.g. to close the hamburger menu. */\n onOpen?: () => void\n}\n\nconst MobileSearch = ({ onOpen }: MobileSearchProps) => {\n const router = useRouter()\n const { locale } = useContext(LibraryContext)\n const [isOpen, setIsOpen] = useState(false)\n\n const openLabel =\n messages[locale]['search_input.open_search'] ||\n messages[locale]['search_input.placeholder'] ||\n 'Search'\n\n const openModal = () => {\n onOpen?.()\n setIsOpen(true)\n }\n\n const closeModal = () => {\n setIsOpen(false)\n }\n\n useEffect(() => {\n if (!isOpen) return\n\n const html = document.documentElement\n const previousOverflow = html.style.overflow\n html.style.overflow = 'hidden'\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') closeModal()\n }\n window.addEventListener('keydown', onKeyDown)\n\n return () => {\n window.removeEventListener('keydown', onKeyDown)\n html.style.overflow = previousOverflow\n }\n }, [isOpen])\n\n useEffect(() => {\n const handleRouteChange = () => closeModal()\n router.events?.on('routeChangeStart', handleRouteChange)\n router.events?.on('hashChangeStart', handleRouteChange)\n return () => {\n router.events?.off('routeChangeStart', handleRouteChange)\n router.events?.off('hashChangeStart', handleRouteChange)\n }\n }, [router.events])\n\n return (\n <>\n \n \n \n {isOpen && (\n \n event.stopPropagation()}\n >\n \n \n \n )}\n \n )\n}\n\nexport default MobileSearch\n","import { Configure, InstantSearch } from 'react-instantsearch-dom'\nimport SearchBox from './search-box'\nimport Results from './results-box'\nimport { Box, Flex } from '@vtex/brand-ui'\nimport { useContext, useRef, useState } from 'react'\nimport useClickOutside from 'utils/hooks/useClickOutside'\nimport { searchClient, searchIndex } from 'utils/config/search-config'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport styles from './styles'\nimport { SearchInputVariant } from './types'\n\nexport type { SearchInputVariant }\n\nexport interface SearchInputProps {\n /** `modal` renders a full-width input with results in the document flow. */\n variant?: SearchInputVariant\n autoFocus?: boolean\n onClose?: () => void\n}\n\nexport default function SearchInput({\n variant = 'default',\n autoFocus = false,\n onClose,\n}: SearchInputProps) {\n const { locale } = useContext(LibraryContext)\n const isModal = variant === 'modal'\n const [focusOut, setfocusOut] = useState<{ modaltoggle: boolean }>({\n modaltoggle: true,\n })\n const resultsBox = useRef()\n useClickOutside(resultsBox, setfocusOut)\n\n const changeFocus = (value: boolean) => {\n setfocusOut({ modaltoggle: value })\n if (!value) onClose?.()\n }\n\n const searchBox = (\n \n )\n\n return (\n \n {searchClient.instantSearchConfigs && (\n \n )}\n {searchClient.useLanguageFilter && (\n \n )}\n {!searchClient.useLanguageFilter && }\n {isModal ? (\n \n {searchBox}\n \n \n \n \n ) : (\n setfocusOut({ modaltoggle: true })}\n ref={resultsBox}\n >\n {searchBox}\n {focusOut.modaltoggle && (\n \n )}\n \n )}\n \n )\n}\n","import {\n useRef,\n KeyboardEvent,\n MouseEvent,\n useContext,\n useEffect,\n useState,\n} from 'react'\nimport { useRouter } from 'next/router.js'\nimport { Flex, Box } from '@vtex/brand-ui'\nimport { connectSearchBox } from 'react-instantsearch-dom'\nimport { SearchBoxProvided } from 'react-instantsearch-core'\n\nimport SearchIcon from 'components/icons/search-icon'\nimport CloseIcon from 'components/icons/close-icon'\nimport styles from './styles'\nimport { messages } from 'utils/get-message'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { SearchInputVariant } from './types'\n\ninterface SearchBoxProps extends SearchBoxProvided {\n changeFocus: (value: boolean) => void\n autoFocus?: boolean\n variant?: SearchInputVariant\n}\n\nconst containerStyle = (variant: SearchInputVariant) =>\n variant === 'modal' ? styles.searchContainerModal : styles.searchContainer\n\nconst iconStyle = (variant: SearchInputVariant) =>\n variant === 'modal' ? styles.searchIconModal : styles.searchIcon\n\nconst inputStyle = (variant: SearchInputVariant) =>\n variant === 'modal' ? styles.searchInputModal : styles.searchInput\n\nconst SearchBoxComponent = ({\n currentRefinement,\n refine,\n changeFocus,\n autoFocus = false,\n variant = 'default',\n}: SearchBoxProps) => {\n const router = useRouter()\n const inputRef = useRef(null)\n const { locale } = useContext(LibraryContext)\n const [isMac, setIsMac] = useState(false)\n\n useEffect(() => {\n if (autoFocus) inputRef.current?.focus()\n }, [autoFocus])\n\n useEffect(() => {\n setIsMac(\n /Mac|iPhone|iPad|iPod/.test(\n navigator.platform || navigator.userAgent || ''\n )\n )\n }, [])\n\n useEffect(() => {\n if (variant === 'modal') return\n\n const onKeyDown = (event: globalThis.KeyboardEvent) => {\n if (!(event.metaKey || event.ctrlKey) || event.key.toLowerCase() !== 'k') {\n return\n }\n\n const target = event.target as HTMLElement | null\n if (\n target &&\n (target.tagName === 'TEXTAREA' || target.isContentEditable)\n ) {\n return\n }\n\n const input = inputRef.current\n if (!input || input.offsetParent === null) return\n\n event.preventDefault()\n input.focus()\n changeFocus(true)\n }\n\n window.addEventListener('keydown', onKeyDown)\n return () => window.removeEventListener('keydown', onKeyDown)\n }, [variant, changeFocus])\n\n const handleClick = () => {\n if (inputRef.current != null) inputRef.current.focus()\n }\n\n const keyPressed = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n changeFocus(false)\n inputRef.current?.blur()\n return\n }\n if (e.key === 'Enter') {\n router.push({\n pathname: '/search',\n query: { keyword: inputRef.current?.value },\n })\n inputRef.current?.blur()\n changeFocus(false)\n }\n }\n\n const handleClear = (e: MouseEvent) => {\n e.stopPropagation()\n refine('')\n inputRef.current?.focus()\n }\n\n return (\n \n \n keyPressed(e)}\n onChange={(e) => refine(e.currentTarget.value)}\n />\n {currentRefinement ? (\n \n \n \n ) : variant === 'default' ? (\n \n {isMac ? (\n \n ⌘\n \n ) : (\n \n Ctrl\n \n )}\n \n K\n \n \n ) : null}\n \n )\n}\n\nconst SearchBox = connectSearchBox(SearchBoxComponent)\n\nexport default SearchBox\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst resultsOuterContainer: SxStyleProp = {\n position: 'relative',\n}\n\nconst searchWidth = ['288px', '458px', '288px', '288px', '416px', '544px']\nconst keyboardHintsDisplay = ['none', 'flex', 'flex', 'none', 'flex', 'flex']\n\nconst resultsInnerContainer: SxStyleProp = {\n top: '4px',\n position: 'absolute',\n width: searchWidth,\n border: '1px solid #E7E9EE',\n borderRadius: '8px',\n background: '#FFFFFF',\n boxShadow: '0 12px 32px rgba(20, 32, 50, 0.12)',\n overflow: 'hidden',\n zIndex: 20,\n}\n\nconst resultsBox: SxStyleProp = {\n padding: '8px',\n maxHeight: 'min(60vh, 420px)',\n overflowY: 'auto',\n}\n\nconst resultsFooter = (hasSeeAll: boolean): SxStyleProp => ({\n display: hasSeeAll ? 'flex' : keyboardHintsDisplay,\n flexWrap: 'wrap',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '8px 12px',\n padding: ['8px 12px', '8px 16px'],\n borderTop: '1px solid #E7E9EE',\n background: '#FAFAFB',\n})\n\nconst resultsFooterModal = (hasSeeAll: boolean): SxStyleProp => ({\n display: hasSeeAll ? 'flex' : 'none',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: '4px 8px 8px',\n borderTop: 'none',\n background: 'transparent',\n})\n\nconst keyboardHints: SxStyleProp = {\n display: keyboardHintsDisplay,\n alignItems: 'center',\n gap: '12px',\n flexWrap: 'wrap',\n flex: '1 1 200px',\n minWidth: 0,\n}\n\nconst keyboardHint: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n color: 'muted.1',\n fontSize: '12px',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n}\n\nconst kbd: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '20px',\n height: '20px',\n px: '5px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n background: '#FFFFFF',\n boxShadow: '0 1px 0 #E7E9EE',\n fontSize: '11px',\n fontFamily: 'inherit',\n color: '#4A596B',\n lineHeight: '20px',\n}\n\nconst seeAllCaret: SxStyleProp = {\n width: '16px',\n height: '16px',\n color: '#D71D55',\n flexShrink: 0,\n}\n\nconst seeAll: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: [\n 'space-between',\n 'flex-start',\n 'flex-start',\n 'space-between',\n 'flex-start',\n ],\n gap: '4px',\n width: ['100%', 'auto', 'auto', '100%', 'auto'],\n maxWidth: '100%',\n boxSizing: 'border-box',\n ml: ['0', 'auto', 'auto', '0', 'auto'],\n flex: '0 1 auto',\n minWidth: 0,\n padding: '6px 10px',\n borderRadius: '6px',\n color: '#D71D55',\n fontSize: '13px',\n fontWeight: '600',\n lineHeight: '16px',\n cursor: 'pointer',\n whiteSpace: ['normal', 'nowrap', 'nowrap', 'normal', 'nowrap'],\n '& p': {\n minWidth: 0,\n flex: [1, 'none', 'none', 1, 'none'],\n },\n ':hover, &[data-active=\"true\"]': {\n background: '#F8E3EC',\n },\n}\n\nconst hitBox: SxStyleProp = {\n position: 'relative',\n display: 'flex',\n alignItems: 'flex-start',\n padding: '10px 12px',\n cursor: 'pointer',\n borderRadius: '8px',\n a: {\n minWidth: 0,\n flex: 1,\n textDecoration: 'none',\n color: 'inherit',\n },\n '.hit-actions': {\n opacity: [1, 0],\n },\n ':hover, &[data-active=\"true\"]': {\n backgroundColor: '#F8F7FC',\n '.hit-content-title': {\n color: '#000711',\n },\n '.hit-icon': {\n '> path': {\n stroke: '#000711',\n },\n },\n '.hit-icon-wrap': {\n backgroundColor: '#EDEAF6',\n },\n '.hit-actions': {\n opacity: 1,\n },\n },\n}\n\nconst hitLink: SxStyleProp = {\n display: 'flex',\n alignItems: 'flex-start',\n minWidth: 0,\n flex: 1,\n textDecoration: 'none',\n color: 'inherit',\n pr: ['0', '64px'],\n}\n\nconst hitIconWrap: SxStyleProp = {\n flexShrink: 0,\n width: '32px',\n height: '32px',\n borderRadius: '8px',\n backgroundColor: '#F4F2FA',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n mr: '12px',\n mt: '1px',\n}\n\nconst hitIcon: SxStyleProp = {\n width: '16px',\n height: '16px',\n color: '#4A596B',\n}\n\nconst hitText: SxStyleProp = {\n minWidth: 0,\n flex: 1,\n}\n\nconst hitContentContainer: SxStyleProp = {\n width: '100%',\n minWidth: 0,\n overflow: 'hidden',\n}\n\nconst snippetText: SxStyleProp = {\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n}\n\nconst hitTitle: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n minWidth: 0,\n color: '#142032',\n fontSize: ['14px', '15px'],\n fontWeight: '600',\n lineHeight: ['20px', '22px'],\n}\n\nconst hitTitleText: SxStyleProp = {\n minWidth: 0,\n flex: 1,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst httpMethod: SxStyleProp = {\n mr: '8px',\n flexShrink: 0,\n alignSelf: 'center',\n}\n\nconst hitContent: SxStyleProp = {\n color: 'muted.0',\n fontSize: ['13px', '16px'],\n lineHeight: ['18px', '22px'],\n width: '100%',\n minWidth: 0,\n ...snippetText,\n WebkitLineClamp: [3, 4],\n}\n\nconst hitContentSmall: SxStyleProp = {\n color: 'muted.1',\n fontSize: '13px',\n lineHeight: '18px',\n width: '100%',\n minWidth: 0,\n mt: '2px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst hitActions: SxStyleProp = {\n position: ['static', 'absolute'],\n top: '8px',\n right: '8px',\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n ml: ['8px', 0],\n flexShrink: 0,\n}\n\nconst hitActionButton: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '28px',\n height: '28px',\n padding: 0,\n border: '1px solid #E7E9EE',\n borderRadius: '6px',\n background: '#FFFFFF',\n color: '#4A596B',\n cursor: 'pointer',\n ':hover': {\n background: '#FFFFFF',\n borderColor: '#C7CDD6',\n color: '#142032',\n },\n}\n\nconst hitActionButtonCopied: SxStyleProp = {\n ...hitActionButton,\n borderColor: '#8CD2A8',\n color: '#36875A',\n background: '#F0FAF4',\n}\n\nconst alignCenter: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst hitBreadcrumbs: SxStyleProp = {\n alignItems: 'center',\n minWidth: 0,\n mt: '4px',\n}\n\nconst hitBreadCrumb: SxStyleProp = {\n color: 'muted.1',\n fontSize: '12px',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst hitBreadCrumbIn: SxStyleProp = {\n ...hitBreadCrumb,\n minWidth: 'fit-content',\n}\n\nconst hitBreadCrumbArrow: SxStyleProp = {\n width: '16px',\n height: '16px',\n color: 'muted.2',\n flexShrink: 0,\n}\n\nconst searchInput: SxStyleProp = {\n width: '100%',\n background: 'none',\n border: 'none',\n outline: 'none',\n color: '#142032',\n fontSize: ['14px'],\n flex: 1,\n minWidth: 0,\n}\n\nconst searchIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n flex: 0,\n maxWidth: 'fit-content',\n color: '#5E6E84',\n path: {\n fill: '#5E6E84',\n },\n}\n\nconst searchContainer: SxStyleProp = {\n paddingLeft: '12px',\n paddingRight: '8px',\n alignItems: 'center',\n justifyContent: 'center',\n background: '#FFFFFF',\n width: searchWidth,\n height: '40px',\n boxSizing: 'border-box',\n borderRadius: '8px',\n border: '1px solid #E7E9EE',\n transition:\n 'background 0.2s ease-out, border-color 0.2s ease-out, box-shadow 0.2s ease-out',\n cursor: 'pointer',\n 'input[type=\"search\"]::-webkit-search-cancel-button': {\n display: 'none',\n },\n 'input[type=\"search\"]::-webkit-search-decoration': {\n display: 'none',\n },\n ':hover': {\n borderColor: '#C7CDD6',\n },\n ':focus-within': {\n background: '#FFFFFF',\n borderColor: '#E31C58',\n boxShadow: '0 0 0 3px rgba(227, 28, 88, 0.16)',\n '[data-search-shortcut]': {\n display: 'none',\n },\n },\n}\n\nconst shortcutHint: SxStyleProp = {\n display: ['none', 'flex', 'none', 'none', 'flex', 'flex'],\n alignItems: 'center',\n gap: '4px',\n ml: '8px',\n flexShrink: 0,\n pointerEvents: 'none',\n}\n\nconst shortcutKbd: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '20px',\n height: '20px',\n px: '5px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n background: '#FAFAFB',\n boxShadow: '0 1px 0 #E7E9EE',\n fontSize: '11px',\n fontFamily: 'inherit',\n color: '#4A596B',\n lineHeight: '20px',\n}\n\nconst clearButton: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '24px',\n height: '24px',\n ml: '4px',\n padding: 0,\n border: 'none',\n borderRadius: '50%',\n background: 'transparent',\n color: '#4A596B',\n cursor: 'pointer',\n flexShrink: 0,\n ':hover': {\n background: '#EDEDED',\n color: '#142032',\n },\n}\n\nconst noResults: SxStyleProp = {\n justifyContent: 'center',\n alignContent: 'center',\n padding: '20px 12px',\n color: 'muted.1',\n textAlign: 'center',\n}\n\nconst searchContainerModal: SxStyleProp = {\n paddingLeft: '16px',\n paddingRight: '12px',\n alignItems: 'center',\n background: 'transparent',\n width: '100%',\n minHeight: '56px',\n borderRadius: 0,\n cursor: 'text',\n 'input[type=\"search\"]::-webkit-search-cancel-button': {\n display: 'none',\n },\n 'input[type=\"search\"]::-webkit-search-decoration': {\n display: 'none',\n },\n ':hover': {\n border: 'none',\n },\n ':focus-within': {\n background: 'transparent',\n border: 'none',\n boxShadow: 'none',\n },\n}\n\nconst searchIconModal: SxStyleProp = {\n minWidth: '18px',\n minHeight: '18px',\n width: '18px',\n height: '18px',\n mr: '12px',\n flex: 0,\n color: '#A1A8B3',\n path: {\n fill: '#A1A8B3',\n },\n}\n\nconst searchInputModal = {\n width: '100%',\n background: 'none',\n border: 'none',\n outline: 'none',\n color: '#142032',\n fontSize: '16px',\n lineHeight: '24px',\n flex: 1,\n minWidth: 0,\n}\n\nconst modalRoot: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n maxHeight: 'min(80vh, 640px)',\n}\n\nconst modalSearchBox: SxStyleProp = {\n flexShrink: 0,\n borderBottom: '1px solid #F0F0F0',\n}\n\nconst modalResults: SxStyleProp = {\n flex: 1,\n minHeight: 0,\n overflowY: 'auto',\n}\n\nconst resultsOuterContainerModal: SxStyleProp = {\n position: 'relative',\n height: '100%',\n}\n\nconst resultsInnerContainerModal: SxStyleProp = {\n position: 'relative',\n top: 0,\n width: '100%',\n border: 'none',\n borderRadius: 0,\n background: 'transparent',\n boxShadow: 'none',\n overflow: 'visible',\n}\n\nconst resultsBoxModal: SxStyleProp = {\n padding: '8px',\n maxHeight: 'none',\n overflowY: 'visible',\n}\n\nconst hitBoxModal: SxStyleProp = {\n position: 'relative',\n display: 'flex',\n alignItems: 'flex-start',\n padding: '10px 12px',\n cursor: 'pointer',\n borderRadius: '12px',\n a: {\n minWidth: 0,\n flex: 1,\n textDecoration: 'none',\n color: 'inherit',\n },\n ':hover, &[data-active=\"true\"]': {\n backgroundColor: '#F4F4F5',\n '.hit-content-title': {\n color: '#142032',\n },\n },\n}\n\nconst hitLinkModal: SxStyleProp = {\n display: 'flex',\n alignItems: 'flex-start',\n minWidth: 0,\n flex: 1,\n textDecoration: 'none',\n color: 'inherit',\n pr: 0,\n}\n\nconst hitIconWrapModal: SxStyleProp = {\n flexShrink: 0,\n width: '24px',\n height: '24px',\n borderRadius: 0,\n backgroundColor: 'transparent',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n mr: '10px',\n mt: '2px',\n}\n\nconst hitIconModal: SxStyleProp = {\n width: '16px',\n height: '16px',\n color: '#8A8A8A',\n}\n\nconst hitTitleModal: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n minWidth: 0,\n color: '#142032',\n fontSize: '15px',\n fontWeight: '600',\n lineHeight: '22px',\n}\n\nconst hitContentHighlighted: SxStyleProp = {\n background: '#F8E3EC',\n color: '#142032',\n borderRadius: '3px',\n padding: '0 2px',\n fontWeight: '600',\n display: 'inline',\n}\n\nexport default {\n resultsOuterContainer,\n resultsInnerContainer,\n resultsBox,\n resultsFooter,\n resultsFooterModal,\n keyboardHints,\n keyboardHint,\n kbd,\n seeAll,\n seeAllCaret,\n hitBox,\n hitLink,\n hitIconWrap,\n hitIcon,\n hitText,\n hitContentContainer,\n hitTitle,\n hitTitleText,\n httpMethod,\n hitContent,\n hitContentSmall,\n hitActions,\n hitActionButton,\n hitActionButtonCopied,\n hitBreadcrumbs,\n hitBreadCrumb,\n hitBreadCrumbIn,\n hitBreadCrumbArrow,\n searchInput,\n searchIcon,\n searchContainer,\n shortcutHint,\n shortcutKbd,\n searchContainerModal,\n searchIconModal,\n searchInputModal,\n clearButton,\n alignCenter,\n noResults,\n hitContentHighlighted,\n modalRoot,\n modalSearchBox,\n modalResults,\n resultsOuterContainerModal,\n resultsInnerContainerModal,\n resultsBoxModal,\n hitBoxModal,\n hitLinkModal,\n hitIconWrapModal,\n hitIconModal,\n hitTitleModal,\n}\n","import { useRouter } from 'next/router.js'\nimport Link from 'next/link.js'\nimport { useContext, useEffect, useState, MouseEvent } from 'react'\nimport {\n connectStateResults,\n connectHitInsights,\n} from 'react-instantsearch-dom'\nimport {\n Hit,\n StateResultsProvided,\n WrappedInsightsClient,\n} from 'react-instantsearch-core'\nimport aa from 'search-insights'\nimport { Box, Flex, IconCaret, Text } from '@vtex/brand-ui'\n\nimport {\n getIconFromSection,\n getRelativeURL,\n getSearchBreadcrumbs,\n getSearchHitMethod,\n} from 'utils/search-utils'\nimport CustomHighlight, { HighlightQuery } from './customHighlight'\nimport styles from './styles'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport CopyIcon from 'components/icons/copy-icon'\nimport ExternalLinkIcon from 'components/icons/external-link-icon'\nimport PaperIcon from 'components/icons/paper-icon'\nimport MethodCategory from 'components/method-category'\nimport { SearchInputVariant } from './types'\n\nconst VISIBLE_HITS = 7\nconst VISIBLE_HITS_MODAL = 5\n\ninterface HitProps {\n hit: Hit\n insights: WrappedInsightsClient\n query?: string\n isActive?: boolean\n copied?: boolean\n variant?: SearchInputVariant\n onCopy: (event: MouseEvent, url: string, objectID: string) => void\n onOpenNewTab: (event: MouseEvent, url: string) => void\n onMouseEnter: () => void\n}\n\ninterface HitsBoxProps extends StateResultsProvided {\n changeFocus: (value: boolean) => void\n variant?: SearchInputVariant\n}\n\nconst Hit2 = ({\n hit,\n insights,\n query,\n isActive,\n copied,\n variant = 'default',\n onCopy,\n onOpenNewTab,\n onMouseEnter,\n}: HitProps) => {\n const { sidebarSections, sidebarDataMaster, locale } =\n useContext(LibraryContext)\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype) || PaperIcon\n const title = typeof hit.doctitle === 'string' ? hit.doctitle : ''\n const relativeUrl = getRelativeURL(hit.url)\n const breadcrumbs = getSearchBreadcrumbs({\n hit,\n navigation: sidebarDataMaster,\n sections: sidebarSections,\n locale,\n })\n const isModal = variant === 'modal'\n const method = getSearchHitMethod(hit)\n\n return (\n \n \n \n insights('clickedObjectIDsAfterSearch', {\n eventName: 'Search in top bar',\n objectIDs: [hit.objectID],\n })\n }\n >\n \n \n \n \n \n {title ? (\n \n {method ? (\n \n ) : null}\n \n \n \n \n ) : null}\n {!isModal && hit.content ? (\n \n ) : null}\n {typeof hit.doctype === 'string' && (\n \n {isModal ? (\n (breadcrumbs.length\n ? breadcrumbs\n : [String(hit.doctype)]\n ).map((filter: string, index: number) => (\n \n {index > 0 && (\n \n )}\n \n {filter || hit.doctype}\n \n \n ))\n ) : (\n <>\n \n {`${messages[locale]['search_card.in'] || 'In'} ${\n breadcrumbs[0] || hit.doctype\n }`}\n \n {breadcrumbs\n .slice(1)\n .map((filter: string, index: number) => (\n \n \n {filter}\n \n ))}\n \n )}\n \n )}\n \n \n \n \n {!isModal && (\n \n \n onCopy(event, relativeUrl, hit.objectID)\n }\n onMouseDown={(event: MouseEvent) => event.preventDefault()}\n >\n \n \n onOpenNewTab(event, relativeUrl)}\n onMouseDown={(event: MouseEvent) => event.preventDefault()}\n >\n \n \n \n )}\n \n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst HitWithInsights = connectHitInsights(aa)(Hit2) as any\n\nconst HitsBox = connectStateResults(\n ({ searchState, searchResults, changeFocus, variant = 'default' }) => {\n const router = useRouter()\n const { locale } = useContext(LibraryContext)\n const [activeIndex, setActiveIndex] = useState(-1)\n const [copiedId, setCopiedId] = useState(null)\n const isModal = variant === 'modal'\n const maxHits = isModal ? VISIBLE_HITS_MODAL : VISIBLE_HITS\n\n const visibleHits = searchResults\n ? searchResults.hits.slice(0, maxHits)\n : []\n const hasSeeAll = Boolean(\n searchResults && searchResults.hits.length > maxHits\n )\n const itemCount = visibleHits.length + (hasSeeAll ? 1 : 0)\n\n const seeAllSubmit = (keyword: string) => {\n router.push({\n pathname: '/search',\n query: { keyword },\n })\n changeFocus(false)\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setQueryIDAndPosition = (hit: Hit, index: number): any => {\n return {\n ...hit,\n __queryID: searchResults.queryID || '',\n __position: searchResults.hitsPerPage * searchResults.page + index + 1,\n }\n }\n\n const handleCopy = async (\n event: MouseEvent,\n url: string,\n objectID: string\n ) => {\n event.preventDefault()\n event.stopPropagation()\n try {\n await navigator.clipboard.writeText(`${window.location.origin}${url}`)\n setCopiedId(objectID)\n } catch {\n setCopiedId(null)\n }\n }\n\n const handleOpenNewTab = (event: MouseEvent, url: string) => {\n event.preventDefault()\n event.stopPropagation()\n window.open(url, '_blank', 'noopener,noreferrer')\n }\n\n useEffect(() => {\n setActiveIndex(-1)\n }, [searchState.query])\n\n useEffect(() => {\n if (!copiedId) return\n const timeout = window.setTimeout(() => setCopiedId(null), 2000)\n return () => window.clearTimeout(timeout)\n }, [copiedId])\n\n useEffect(() => {\n const activeHit = document.querySelector('[data-active=\"true\"]')\n activeHit?.scrollIntoView({ block: 'nearest' })\n }, [activeIndex])\n\n useEffect(() => {\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n changeFocus(false)\n return\n }\n\n if (!itemCount) return\n\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n setActiveIndex((current) => (current + 1) % itemCount)\n } else if (event.key === 'ArrowUp') {\n event.preventDefault()\n setActiveIndex((current) =>\n current <= 0 ? itemCount - 1 : current - 1\n )\n } else if (event.key === 'Enter' && activeIndex >= 0) {\n event.preventDefault()\n event.stopPropagation()\n if (hasSeeAll && activeIndex === visibleHits.length) {\n seeAllSubmit(searchState.query || '')\n return\n }\n const hit = visibleHits[activeIndex]\n if (hit) {\n router.push(getRelativeURL(hit.url))\n changeFocus(false)\n }\n }\n }\n\n window.addEventListener('keydown', onKeyDown, true)\n return () => window.removeEventListener('keydown', onKeyDown, true)\n }, [\n activeIndex,\n changeFocus,\n hasSeeAll,\n itemCount,\n router,\n searchState.query,\n visibleHits,\n ])\n\n if (isModal && !searchState.query) return null\n\n return (\n <>\n {searchResults && (\n \n \n \n {visibleHits.map((searchResult, index) => (\n changeFocus(false)}\n >\n setActiveIndex(index)}\n />\n \n ))}\n \n {searchResults.hits.length > 0 && (\n \n {!isModal && (\n \n \n \n ↑\n \n \n ↓\n \n \n {messages[locale]['search_input.navigate'] ||\n 'Navigate'}\n \n \n \n \n ↵\n \n \n {messages[locale]['search_input.open'] || 'Open'}\n \n \n \n \n esc\n \n \n {messages[locale]['search_input.close'] || 'Close'}\n \n \n \n )}\n {hasSeeAll && (\n setActiveIndex(visibleHits.length)}\n onClick={() => seeAllSubmit(searchState.query || '')}\n >\n \n {messages[locale]['search_input.see_all'] ||\n 'See all results'}\n \n \n \n )}\n \n )}\n {!searchResults.hits.length && (\n \n \n {messages[locale]['search_input.empty'] ||\n 'No results found. Try different search terms.'}\n \n \n )}\n \n \n )}\n \n )\n }\n)\n\nexport default HitsBox\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst APIGuidesIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default APIGuidesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst APIReferenceIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default APIReferenceIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AppDevelopmentIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default AppDevelopmentIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ReleaseNotesIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default ReleaseNotesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StorefrontDevelopmentIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n)\n\nexport default StorefrontDevelopmentIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXIOAppsIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default VTEXIOAppsIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TroubleshootingIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default TroubleshootingIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AddedIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default AddedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DeprecatedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default DeprecatedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FixedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default FixedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ImprovedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default ImprovedIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst RemovedIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default RemovedIcon\n","import { Hit } from 'react-instantsearch-core'\n\nimport APIGuidesIcon from 'components/icons/api-guides-icon'\nimport APIReferenceIcon from 'components/icons/api-reference-icon'\nimport AppDevelopmentIcon from 'components/icons/app-development-icon'\nimport ReleaseNotesIcon from 'components/icons/release-notes-icon'\nimport StorefrontDevelopmentIcon from 'components/icons/storefront-development-icon'\nimport VTEXIOAppsIcon from 'components/icons/vtex-io-apps-icon'\nimport TroubleshootingIcon from 'components/icons/troubleshooting-icon'\nimport { IconComponent, MethodType, Section } from './typings/types'\nimport AddedIcon from 'components/icons/added-icon'\nimport DeprecatedIcon from 'components/icons/deprecated-icon'\nimport FixedIcon from 'components/icons/fixed-icon'\nimport ImprovedIcon from 'components/icons/improved-icon'\nimport RemovedIcon from 'components/icons/removed-icon'\n\nexport const getBreadcrumbs = (hit: Hit) => {\n const breadcrumbs: string[] = []\n if (hit.doctype === 'API Reference' && hit.doccategory)\n breadcrumbs.push(hit.doccategory)\n breadcrumbs.push(hit.doctitle)\n return breadcrumbs\n}\n\nexport const getRelativeURL = (url: string) => {\n const relativeURL = url.replace(/^(?:\\/\\/|[^/]+)*\\//, '')\n return '/' + relativeURL\n}\n\nconst HTTP_METHODS: readonly MethodType[] = [\n 'POST',\n 'GET',\n 'PUT',\n 'DELETE',\n 'PATCH',\n]\n\nconst isMethodType = (value: string): value is MethodType =>\n (HTTP_METHODS as readonly string[]).includes(value)\n\n/** HTTP method badge for API Reference hits, matching the search results page. */\nexport const getSearchHitMethod = (hit: Hit): MethodType | undefined => {\n const raw = typeof hit.method === 'string' ? hit.method.toUpperCase() : ''\n if (isMethodType(raw)) return raw\n\n const url = typeof hit.url === 'string' ? hit.url : ''\n const hash = url.includes('#') ? url.slice(url.indexOf('#') + 1) : ''\n const fromHash = hash.split('-')[0]?.toUpperCase() || ''\n if (isMethodType(fromHash)) return fromHash\n\n return undefined\n}\n\n/** Display cap for tab counts; values at or above this render as \"999+\". */\nexport const HYBRID_SEARCH_COUNT_CAP = 1000\n\nexport function formatSearchTabCount(\n count: number | undefined\n): string | undefined {\n if (count === undefined) return undefined\n if (count >= HYBRID_SEARCH_COUNT_CAP) return '999+'\n return String(count)\n}\n\ninterface IconsI {\n name: string\n Icon: IconComponent\n}\n\nconst iconsMap: IconsI[] = [\n {\n Icon: APIGuidesIcon,\n name: 'Guides',\n },\n {\n Icon: APIReferenceIcon,\n name: 'API Reference',\n },\n {\n Icon: AppDevelopmentIcon,\n name: 'App Development',\n },\n {\n Icon: StorefrontDevelopmentIcon,\n name: 'Storefront Development',\n },\n {\n Icon: VTEXIOAppsIcon,\n name: 'VTEX IO Apps',\n },\n {\n Icon: TroubleshootingIcon,\n name: 'Troubleshooting',\n },\n {\n Icon: ReleaseNotesIcon,\n name: 'Release Notes',\n },\n]\n\nexport const getIcon = (name: string) => {\n return iconsMap.find((icon) => icon.name === name)?.Icon\n}\n\nexport const getIconFromSection = (sections: Section[][], id: string) => {\n return sections.flat().find((section) => section.id === id)?.Icon\n}\n\nexport type ActionType =\n | 'added'\n | 'deprecated'\n | 'fixed'\n | 'improved'\n | 'removed'\nexport interface Action {\n type: ActionType\n title: string\n Icon: IconComponent\n}\n\nconst actions: Action[] = [\n {\n type: 'added',\n title: 'Added',\n Icon: AddedIcon,\n },\n {\n type: 'deprecated',\n title: 'Deprecated',\n Icon: DeprecatedIcon,\n },\n {\n type: 'fixed',\n title: 'Fixed',\n Icon: FixedIcon,\n },\n {\n type: 'improved',\n title: 'Improved',\n Icon: ImprovedIcon,\n },\n {\n type: 'removed',\n title: 'Removed',\n Icon: RemovedIcon,\n },\n]\n\nexport const getAction = (actionType: ActionType): Action => {\n return actions.find((action) => action.type === actionType) as Action\n}\n\nexport const getTitleById = (sections: Section[][], id: string) => {\n return sections.flat().find((item) => item.id === id)?.title || id\n}\n\ntype LocalizedField = string | { en: string; pt: string; es: string }\n\ntype NavigationNode = {\n name?: LocalizedField\n slug?: LocalizedField\n children?: NavigationNode[]\n categories?: NavigationNode[]\n documentation?: string\n slugPrefix?: string\n}\n\nfunction resolveLocalized(\n value: LocalizedField | undefined,\n locale: 'en' | 'pt' | 'es'\n): string {\n if (!value) return ''\n if (typeof value === 'string') return value\n return value[locale] || value.en || ''\n}\n\nfunction urlMatchesSlug(\n relativeUrl: string,\n slugPrefix: string,\n slug: string\n): boolean {\n if (!slug) return false\n const url = relativeUrl.replace(/\\/$/, '').split('#')[0].split('?')[0]\n const expected = `/${slugPrefix}/${slug}`.replace(/\\/{2,}/g, '/')\n return url === expected || url.endsWith(expected) || url.endsWith(`/${slug}`)\n}\n\nfunction nodeContainsHit(\n node: NavigationNode,\n relativeUrl: string,\n slugPrefix: string,\n locale: 'en' | 'pt' | 'es'\n): boolean {\n const slug = resolveLocalized(node.slug, locale)\n if (slug && urlMatchesSlug(relativeUrl, slugPrefix, slug)) return true\n return (node.children || []).some((child) =>\n nodeContainsHit(child, relativeUrl, slugPrefix, locale)\n )\n}\n\n/**\n * Builds search breadcrumbs as [section, parent category, page title].\n * API Reference omits the category and uses [section, page title].\n */\nexport function getSearchBreadcrumbs({\n hit,\n navigation,\n sections,\n locale = 'en',\n}: {\n hit: Hit\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n navigation: any\n sections: Section[][]\n locale?: 'en' | 'pt' | 'es'\n}): string[] {\n const sectionTitle = getTitleById(sections, hit.doctype)\n const title = typeof hit.doctitle === 'string' ? hit.doctitle : ''\n const crumbs = [sectionTitle]\n const isApiReference =\n String(hit.doctype).toLowerCase() === 'api reference'\n\n if (isApiReference) {\n if (title && title !== sectionTitle) crumbs.push(title)\n return crumbs.filter(Boolean)\n }\n\n const relativeUrl = typeof hit.url === 'string' ? getRelativeURL(hit.url) : ''\n\n const navigationList: NavigationNode[] = Array.isArray(navigation)\n ? navigation\n : []\n const navSection = navigationList.find(\n (item) =>\n item.documentation === hit.doctype ||\n String(item.documentation).toLowerCase() ===\n String(hit.doctype).toLowerCase()\n )\n\n let categoryName = ''\n if (navSection?.categories?.length) {\n const slugPrefix = navSection.slugPrefix || ''\n const category = navSection.categories.find((cat) =>\n nodeContainsHit(cat, relativeUrl, slugPrefix, locale)\n )\n categoryName = resolveLocalized(category?.name, locale)\n }\n\n if (!categoryName && typeof hit.doccategory === 'string' && hit.doccategory) {\n categoryName = hit.doccategory\n }\n\n if (categoryName && categoryName !== sectionTitle && categoryName !== title) {\n crumbs.push(categoryName)\n }\n\n if (title && crumbs[crumbs.length - 1] !== title) {\n crumbs.push(title)\n }\n\n return crumbs.filter(Boolean)\n}\n","import { connectHighlight } from 'react-instantsearch-dom'\nimport { HighlightProps, Hit } from 'react-instantsearch-core'\nimport { Flex, Text } from '@vtex/brand-ui'\nimport styles from './styles'\n\ninterface HitHighlightProps {\n value: string\n isHighlighted: boolean\n}\ninterface CustomHighlightProps extends HighlightProps {\n searchPage?: boolean\n}\n\nfunction clipAroundHighlight(\n parts: HitHighlightProps[],\n maxChars: number\n): HitHighlightProps[] {\n if (!parts.length) return parts\n\n const full = parts.map((part) => part.value).join('')\n if (full.length <= maxChars) {\n return parts.map((part) => ({ ...part }))\n }\n\n const firstHighlight = parts.findIndex((part) => part.isHighlighted)\n let start = 0\n if (firstHighlight > 0) {\n const beforeLength = parts\n .slice(0, firstHighlight)\n .reduce((sum, part) => sum + part.value.length, 0)\n start = Math.max(0, beforeLength - 36)\n }\n\n if (start > 0) {\n const space = full.lastIndexOf(' ', start)\n if (space >= 0) start = space + 1\n }\n\n let end = Math.min(full.length, start + maxChars)\n if (end < full.length) {\n const space = full.lastIndexOf(' ', end)\n if (space > start) end = space\n }\n\n const result: HitHighlightProps[] = []\n let cursor = 0\n for (const part of parts) {\n const partStart = cursor\n const partEnd = cursor + part.value.length\n cursor = partEnd\n\n if (partEnd <= start || partStart >= end) continue\n\n const sliceFrom = Math.max(0, start - partStart)\n const sliceTo = Math.min(part.value.length, end - partStart)\n const value = part.value.slice(sliceFrom, sliceTo)\n if (!value) continue\n result.push({ value, isHighlighted: part.isHighlighted })\n }\n\n if (start > 0 && result.length) {\n result[0] = { ...result[0], value: `...${result[0].value}` }\n }\n if (end < full.length && result.length) {\n const last = result[result.length - 1]\n result[result.length - 1] = { ...last, value: `${last.value}...` }\n }\n\n return result\n}\n\nexport const HighlightQuery = ({\n text,\n query,\n}: {\n text: string\n query?: string\n}) => {\n if (!query?.trim() || !text) return <>{text}\n const escaped = query.trim().replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n const regex = new RegExp(`(${escaped})`, 'ig')\n const parts = text.split(regex)\n const normalizedQuery = query.trim().toLowerCase()\n\n return (\n <>\n {parts.map((part, index) =>\n part.toLowerCase() === normalizedQuery ? (\n \n {part}\n \n ) : (\n part\n )\n )}\n \n )\n}\n\nconst Highlight = ({\n highlight,\n attribute,\n hit,\n searchPage,\n}: CustomHighlightProps) => {\n const hitHighlights: HitHighlightProps[] = highlight({\n highlightProperty: '_highlightResult',\n attribute: hit.type != 'content' ? `hierarchy.${hit.type}` : attribute,\n hit,\n })\n const displayParts = clipAroundHighlight(\n hitHighlights,\n searchPage ? 700 : 160\n )\n\n return (\n \n \n {displayParts.map((part: HitHighlightProps, index: number) =>\n part.isHighlighted ? (\n \n {part.value}\n \n ) : (\n part.value\n )\n )}\n \n \n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface HighlightPassedThru {\n hit: Hit\n attribute: string\n highlightProperty?: string | undefined\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst connectedHighlight: React.ComponentClass> =\n connectHighlight(Highlight)\n\nexport default connectedHighlight\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CopyIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default CopyIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ExternalLinkIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default ExternalLinkIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst PaperIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default PaperIcon\n","import algoliasearch, { AlgoliaSearchOptions } from 'algoliasearch/lite'\nimport aa from 'search-insights'\nimport {\n MultipleQueriesQuery,\n MultipleQueriesResponse,\n} from '@algolia/client-search'\nimport { stripMarkdownForSnippet } from '../string-utils'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport let searchClient: any = {}\nexport let searchIndex = ''\nexport let hitsPerPage = 10 // Default page size for search results\n/** Page size for the search results page; more hits load as the user scrolls. */\nexport const SEARCH_RESULTS_HITS_PER_PAGE = 100\n\nexport interface AlgoliaConfig {\n appId: string\n apiKey: string\n index: string\n algoliaOptions?: AlgoliaSearchOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n customOptions?: any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n instantSearchConfigs?: any\n useLanguageFilter?: boolean\n}\n\nexport interface HybridSearchConfig {\n apiEndpoint: string\n source: 'help-center' | 'dev-portal'\n defaultLimit?: number\n itemsPerPage?: number // Alias for defaultLimit (for backward compatibility)\n useLanguageFilter?: boolean\n /**\n * Max number of results to request from the upstream API in a single call.\n * The Hybrid Search upstream does not support pagination, so the adapter\n * fetches a large slice once and paginates / filters client-side.\n * Defaults to 100 (the upstream HS_MAX_LIMIT).\n */\n upstreamFetchSize?: number\n /**\n * TTL (ms) for the in-memory response cache keyed by query+locale.\n * A short TTL is enough to let `connectInfiniteHits` page through the\n * results without re-fetching the upstream on every refineNext call.\n * Defaults to 60_000 ms.\n */\n cacheTtlMs?: number\n}\n\nexport type SearchBackendConfig =\n | { backend: 'algolia'; algolia: AlgoliaConfig }\n | { backend: 'hybrid'; hybrid: HybridSearchConfig; index: string }\n\nconst createAlgoliaClient = (config: AlgoliaConfig) => {\n const {\n apiKey,\n appId,\n index,\n algoliaOptions,\n customOptions,\n instantSearchConfigs,\n useLanguageFilter = true,\n } = config\n searchIndex = index\n\n aa('init', {\n appId: appId || '',\n apiKey: apiKey || '',\n useCookie: false,\n })\n\n aa('getUserToken', null, (err) => {\n if (err) {\n console.error(err)\n return\n }\n })\n\n const algoliaClient = algoliasearch(appId || '', apiKey || '', algoliaOptions)\n\n searchClient = {\n ...algoliaClient,\n ...customOptions,\n instantSearchConfigs,\n useLanguageFilter,\n search(requests: MultipleQueriesQuery[]) {\n if (requests.every(({ params }) => !params?.query)) return\n return algoliaClient.search(requests)\n },\n }\n}\n\n// Upstream hard cap (must match HS_MAX_LIMIT in the API proxy).\nconst HYBRID_UPSTREAM_MAX_LIMIT = 100\n\n/** Fixed Help Center doctype ids (matches helpcenter src/utils/constants.ts). */\nconst HYBRID_DOCTYPE_IDS = [\n 'tracks',\n 'tutorials',\n 'faq',\n 'known-issues',\n 'troubleshooting',\n 'announcements',\n] as const\n\n/** Portal tab id → upstream canonical doctype (matches helpcenter search proxy). */\nconst PORTAL_TO_CANONICAL_DOCTYPE: Record = {\n tutorials: 'tutorial',\n tracks: 'tracks',\n faq: 'faq',\n troubleshooting: 'troubleshooting',\n announcements: 'announcements',\n}\n\ntype HybridDoctypeCounts = Record\n\ntype HybridSearchCountsApiResponse = {\n counts: {\n tracks: number\n tutorial: number\n faq: number\n troubleshooting: number\n announcements: number\n }\n total: number\n}\n\ntype HybridCacheEntry = {\n key: string\n ts: number\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hits: any[]\n}\n\ntype HybridCountCacheEntry = {\n key: string\n ts: number\n counts: HybridDoctypeCounts\n}\n\ntype HybridDoctypeDeepCacheEntry = {\n key: string\n ts: number\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n hits: any[]\n}\n\nconst createHybridClient = (config: HybridSearchConfig) => {\n const {\n apiEndpoint,\n defaultLimit,\n itemsPerPage,\n useLanguageFilter = true,\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\n cacheTtlMs = 60_000,\n } = config\n\n // Support both defaultLimit and itemsPerPage (itemsPerPage takes precedence)\n const pageSize = itemsPerPage ?? defaultLimit ?? 10\n hitsPerPage = pageSize\n\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\n const cache: HybridCacheEntry[] = []\n const countCache: HybridCountCacheEntry[] = []\n const doctypeDeepCache: HybridDoctypeDeepCacheEntry[] = []\n const deepenPagination = new Map<\n string,\n { lastPage: number; endOffset: number }\n >()\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getCached = (key: string): any[] | undefined => {\n const now = Date.now()\n for (let i = cache.length - 1; i >= 0; i--) {\n if (now - cache[i].ts > cacheTtlMs) {\n cache.splice(i, 1)\n }\n }\n return cache.find((e) => e.key === key)?.hits\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setCached = (key: string, hits: any[]) => {\n cache.push({ key, ts: Date.now(), hits })\n while (cache.length > 20) cache.shift()\n }\n\n const getCachedCounts = (key: string): HybridDoctypeCounts | undefined => {\n const now = Date.now()\n for (let i = countCache.length - 1; i >= 0; i--) {\n if (now - countCache[i].ts > cacheTtlMs) {\n countCache.splice(i, 1)\n }\n }\n return countCache.find((e) => e.key === key)?.counts\n }\n\n const setCachedCounts = (key: string, counts: HybridDoctypeCounts) => {\n countCache.push({ key, ts: Date.now(), counts })\n while (countCache.length > 20) countCache.shift()\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getDoctypeDeepCached = (key: string): any[] | undefined => {\n const now = Date.now()\n for (let i = doctypeDeepCache.length - 1; i >= 0; i--) {\n if (now - doctypeDeepCache[i].ts > cacheTtlMs) {\n doctypeDeepCache.splice(i, 1)\n }\n }\n return doctypeDeepCache.find((e) => e.key === key)?.hits\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const setDoctypeDeepCached = (key: string, hits: any[]) => {\n doctypeDeepCache.push({ key, ts: Date.now(), hits })\n while (doctypeDeepCache.length > 20) doctypeDeepCache.shift()\n }\n\n const countsEndpoint = `${apiEndpoint.replace(/\\/?$/, '')}/counts`\n\n const mapApiCountsToPortal = (\n counts: HybridSearchCountsApiResponse['counts'],\n total: number\n ): HybridDoctypeCounts => ({\n '': total,\n tracks: counts.tracks,\n tutorials: counts.tutorial,\n faq: counts.faq,\n troubleshooting: counts.troubleshooting,\n announcements: counts.announcements,\n 'known-issues': 0,\n })\n\n const fetchDoctypeCounts = async (\n query: string,\n locale: string\n ): Promise => {\n try {\n const url = new URL(countsEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (!response.ok) {\n return undefined\n }\n\n const data =\n (await response.json()) as Partial\n const { counts, total } = data\n if (\n !counts ||\n typeof total !== 'number' ||\n typeof counts.tracks !== 'number' ||\n typeof counts.tutorial !== 'number' ||\n typeof counts.faq !== 'number' ||\n typeof counts.troubleshooting !== 'number' ||\n typeof counts.announcements !== 'number'\n ) {\n return undefined\n }\n\n return mapApiCountsToPortal(counts, total)\n } catch {\n return undefined\n }\n }\n\n // Initialize minimal analytics (disabled for hybrid)\n aa('init', {\n appId: 'hybrid-search',\n apiKey: 'none',\n useCookie: false,\n })\n\n searchClient = {\n appId: 'hybrid-search',\n apiKey: 'hybrid',\n useLanguageFilter,\n instantSearchConfigs: null,\n\n async search(\n requests: MultipleQueriesQuery[]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ): Promise | undefined> {\n if (requests.every(({ params }) => !params?.query)) {\n return undefined\n }\n\n try {\n // Find the first request with a non-empty query\n const request =\n requests.find(({ params }) => params?.query) || requests[0]\n const params = request.params || {}\n const query = params.query || ''\n const hitsPerPage = params.hitsPerPage || pageSize\n const page = params.page || 0\n\n const { locale, doctypes } = extractHybridFilters(params)\n\n // The upstream Hybrid Search API does not support pagination, so we\n // fetch a large slice once per (query, locale) pair and paginate /\n // doctype-filter client-side for the result list.\n const cacheKey = JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n limit: effectiveUpstreamLimit,\n })\n\n const countCacheKey = JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n })\n\n const isSearchResultsRequest =\n typeof params?.filters === 'string' && params.filters.length > 0\n\n const cachedHits = getCached(cacheKey)\n let cachedCounts = getCachedCounts(countCacheKey)\n\n const hitsPromise = (async () => {\n if (cachedHits) return cachedHits\n\n const url = new URL(apiEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (!response.ok) {\n throw new Error(`Hybrid search failed: ${response.status}`)\n }\n\n const data = await response.json()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rawResults: any[] = Array.isArray(data?.results)\n ? data.results\n : []\n const allHits = rawResults.map(transformHybridToAlgolia)\n setCached(cacheKey, allHits)\n return allHits\n })()\n\n const countsPromise = (async (): Promise<\n HybridDoctypeCounts | undefined\n > => {\n if (!isSearchResultsRequest) return undefined\n if (cachedCounts) return cachedCounts\n\n const counts = await fetchDoctypeCounts(query, locale)\n if (counts) {\n setCachedCounts(countCacheKey, counts)\n }\n return counts\n })()\n\n const [allHits, doctypeCounts] = await Promise.all([\n hitsPromise,\n countsPromise,\n ])\n\n if (doctypeCounts) {\n cachedCounts = doctypeCounts\n }\n\n const initialFilteredHits = filterHitsByDoctype(allHits, doctypes)\n let listHits = doctypes.length ? initialFilteredHits : allHits\n\n const doctypeDeepCacheKey =\n doctypes.length === 1\n ? JSON.stringify({\n q: query,\n locale: useLanguageFilter ? locale || '' : '',\n doctype: doctypes[0],\n limit: effectiveUpstreamLimit,\n })\n : ''\n\n let start = page * hitsPerPage\n\n if (doctypes.length === 1) {\n const portalDoctype = doctypes[0]\n const canonicalDoctype = PORTAL_TO_CANONICAL_DOCTYPE[portalDoctype]\n const prevPage = deepenPagination.get(doctypeDeepCacheKey)\n\n if (page === 0 || !prevPage || prevPage.lastPage !== page - 1) {\n start = page === 0 ? 0 : page * hitsPerPage\n if (page === 0) deepenPagination.delete(doctypeDeepCacheKey)\n } else {\n start = prevPage.endOffset\n }\n\n if (canonicalDoctype && start >= initialFilteredHits.length) {\n let deepenedHits = getDoctypeDeepCached(doctypeDeepCacheKey)\n if (!deepenedHits) {\n const url = new URL(apiEndpoint, window.location.origin)\n url.searchParams.set('q', query)\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\n url.searchParams.set('doctype', portalDoctype)\n if (useLanguageFilter && locale) {\n url.searchParams.set('locale', locale)\n }\n\n const response = await fetch(url.toString())\n if (response.ok) {\n const data = await response.json()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const rawResults: any[] = Array.isArray(data?.results)\n ? data.results\n : []\n deepenedHits = rawResults.map(transformHybridToAlgolia)\n setDoctypeDeepCached(doctypeDeepCacheKey, deepenedHits)\n } else {\n deepenedHits = []\n }\n }\n\n listHits = mergeDeepenedHits(initialFilteredHits, deepenedHits)\n }\n }\n\n const doctypeCount =\n doctypes.length === 1 ? cachedCounts?.[doctypes[0]] : undefined\n const hasDeepened =\n doctypes.length === 1 &&\n (Boolean(getDoctypeDeepCached(doctypeDeepCacheKey)) ||\n listHits.length > initialFilteredHits.length)\n const nbHits = (() => {\n if (!doctypes.length) return allHits.length\n const cap = HYBRID_UPSTREAM_MAX_LIMIT\n if (typeof doctypeCount === 'number') {\n if (hasDeepened) {\n return Math.min(doctypeCount, cap, listHits.length)\n }\n return Math.min(doctypeCount, cap)\n }\n return Math.min(listHits.length, cap)\n })()\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\n const pageHits = listHits.slice(start, start + hitsPerPage)\n\n if (doctypes.length === 1) {\n deepenPagination.set(doctypeDeepCacheKey, {\n lastPage: page,\n endOffset: start + pageHits.length,\n })\n }\n\n const doctypeFacetData: Record = {}\n if (cachedCounts) {\n HYBRID_DOCTYPE_IDS.forEach((id) => {\n const count = cachedCounts[id]\n if (typeof count === 'number') {\n doctypeFacetData[id] = count\n }\n })\n }\n\n const hybridAllCount = cachedCounts?.['']\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const searchResult: any = {\n hits: pageHits,\n nbHits,\n page,\n nbPages,\n hitsPerPage,\n exhaustiveNbHits: true,\n query,\n params: '',\n index: request.indexName || '',\n processingTimeMS: 0,\n facets: {\n doctype: doctypeFacetData,\n language: {},\n },\n facets_stats: {},\n exhaustiveFacetsCount: true,\n queryID: generateQueryID(),\n _hybridCountsAttempted: isSearchResultsRequest,\n _hybridAllCount:\n typeof hybridAllCount === 'number' ? hybridAllCount : undefined,\n }\n\n return {\n results: [searchResult],\n }\n } catch (error) {\n console.error('Hybrid search error:', error)\n return {\n results: [\n {\n hits: [],\n nbHits: 0,\n page: 0,\n nbPages: 0,\n hitsPerPage: pageSize,\n exhaustiveNbHits: true,\n query: requests[0]?.params?.query || '',\n params: '',\n index: requests[0]?.indexName || '',\n processingTimeMS: 0,\n },\n ],\n }\n }\n },\n }\n}\n\nfunction clampUpstreamLimit(raw: number): number {\n if (!Number.isFinite(raw) || raw <= 0) return HYBRID_UPSTREAM_MAX_LIMIT\n return Math.min(HYBRID_UPSTREAM_MAX_LIMIT, Math.max(1, Math.floor(raw)))\n}\n\n/**\n * Extracts the language and doctype filters from an InstantSearch request.\n *\n * Two filter shapes need to be supported:\n * 1. `Configure.filters` (a single string like\n * `language:en AND doctype:\"tutorials\"`), used by the full Search page.\n * 2. `Configure.facetFilters` (an array like `['language:en']`), used by\n * the SearchInput dropdown in the header.\n */\nfunction extractHybridFilters(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n params: any\n): { locale: string; doctypes: string[] } {\n let locale = ''\n const doctypes: string[] = []\n\n const pushDoctype = (raw: string) => {\n const value = raw.replace(/^\"|\"$/g, '').trim()\n if (value && !doctypes.includes(value)) doctypes.push(value)\n }\n\n // 1) Configure.filters as a string expression\n const filtersStr = typeof params?.filters === 'string' ? params.filters : ''\n if (filtersStr) {\n const langMatch = filtersStr.match(/language\\s*:\\s*([\\w-]+)/i)\n if (langMatch) locale = langMatch[1]\n\n const doctypeRegex = /doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\n let m: RegExpExecArray | null\n while ((m = doctypeRegex.exec(filtersStr)) !== null) {\n pushDoctype(m[1] || m[2] || '')\n }\n }\n\n // 2) facetFilters (string | string[] | (string | string[])[])\n const facetFilters = params?.facetFilters\n const visit = (entry: unknown) => {\n if (typeof entry === 'string') {\n if (!locale && entry.startsWith('language:')) {\n locale = entry.slice('language:'.length)\n } else if (entry.startsWith('doctype:')) {\n pushDoctype(entry.slice('doctype:'.length))\n }\n } else if (Array.isArray(entry)) {\n entry.forEach(visit)\n }\n }\n visit(facetFilters)\n\n return { locale, doctypes }\n}\n\nfunction filterHitsByDoctype(\n hits: T[],\n doctypes: string[]\n): T[] {\n if (!doctypes.length) return hits\n const wanted = new Set(doctypes.map((d) => d.toLowerCase()))\n return hits.filter((h) => wanted.has(String(h.doctype || '').toLowerCase()))\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction mergeDeepenedHits(initial: any[], deepened: any[]): any[] {\n const seen = new Set()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const merged: any[] = []\n\n for (const hit of [...initial, ...deepened]) {\n const key = hit.url_without_anchor || hit.objectID || ''\n if (!key || seen.has(key)) continue\n seen.add(key)\n merged.push(hit)\n }\n\n return merged.slice(0, HYBRID_UPSTREAM_MAX_LIMIT)\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction transformHybridToAlgolia(result: any): any {\n const filePath = result.filePath || ''\n const doctype = deriveDoctypeFromFilePath(filePath)\n\n const hierarchy = {\n lvl0: doctype,\n lvl1: result.title || 'Untitled',\n lvl2: deriveCategoryFromFilePath(filePath),\n }\n\n const url = buildUrlFromFilePath(filePath)\n\n // Strip markdown syntax from snippets for display\n const rawContent = result.snippet || result.content || ''\n const cleanContent = stripMarkdownForSnippet(rawContent)\n\n return {\n objectID: String(result.id),\n ...result,\n url,\n url_without_anchor: url.split('#')[0],\n doctype,\n doctitle: result.title || 'Untitled',\n content: cleanContent,\n hierarchy,\n language: result.metadata?.locale || 'en',\n type: 'content',\n _highlightResult: {\n content: {\n value: cleanContent,\n matchLevel: 'full',\n fullyHighlighted: false,\n matchedWords: [],\n },\n hierarchy: {\n lvl0: {\n value: hierarchy.lvl0,\n matchLevel: 'none',\n },\n lvl1: {\n value: hierarchy.lvl1,\n matchLevel: result.title ? 'partial' : 'none',\n },\n },\n },\n _snippetResult: {\n content: {\n value: result.snippet ? stripMarkdownForSnippet(result.snippet) : '',\n matchLevel: 'full',\n },\n },\n }\n}\n\nconst LOCALE_SEGMENT = /^(en|es|pt)$/i\n\n/**\n * Derives the doctype id from a filePath returned by the Hybrid Search upstream.\n *\n * Supports the two layouts currently produced by the help-center / dev-portal\n * content repositories:\n * - `docs///...` → doctype = 3rd segment\n * - `//...` → doctype = 1st segment\n * - `/...` → doctype = 1st segment (fallback)\n *\n * Returns 'documentation' as a safe default so SearchCard rendering does not\n * break. The id is kept lowercase so it can be matched against the\n * `filterSelectedSection` values defined in the consuming app\n * (e.g. 'tutorials', 'faq', 'known-issues', 'troubleshooting', 'announcements').\n */\nfunction deriveDoctypeFromFilePath(filePath: string): string {\n const parts = filePath.split('/').filter(Boolean)\n if (parts.length === 0) return 'documentation'\n\n if (parts[0] === 'docs' && parts.length > 2) {\n return parts[2].toLowerCase()\n }\n\n if (parts.length > 1 && LOCALE_SEGMENT.test(parts[1])) {\n return parts[0].toLowerCase()\n }\n\n return parts[0].toLowerCase()\n}\n\nfunction deriveCategoryFromFilePath(filePath: string): string | null {\n const parts = filePath.split('/').filter(Boolean)\n if (parts[0] === 'docs' && parts.length > 3) return parts[3]\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) return parts[2]\n if (parts.length > 1) return parts[1]\n return null\n}\n\n/**\n * Builds the user-facing URL for a search hit from its upstream filePath.\n *\n * The rule is doctype-driven (not path-position-driven):\n * - tutorials/tracks → //docs//\n * - everything else → ///\n *\n * The doctype comes from deriveDoctypeFromFilePath (the same source used for\n * the facet tabs) and the slug is always the last path segment, so this works\n * regardless of how deep the file is nested or where the doctype sits in the\n * path (`docs///...` or `//...`).\n */\nfunction buildUrlFromFilePath(filePath: string): string {\n const parts = filePath.split('/').filter(Boolean)\n if (parts.length === 0) return '/'\n\n const stripExt = (s: string) => s.replace(/\\.mdx?$/, '')\n const slug = stripExt(parts[parts.length - 1])\n\n const doctype = deriveDoctypeFromFilePath(filePath)\n\n // Locale is the 2nd segment in both supported layouts:\n // docs//... and //...\n const locale =\n parts.length > 1 && LOCALE_SEGMENT.test(parts[1])\n ? parts[1].toLowerCase()\n : 'en'\n\n if (doctype === 'tutorials' || doctype === 'tracks') {\n return `/${locale}/docs/${doctype}/${slug}`\n }\n\n return `/${locale}/${doctype}/${slug}`\n}\n\nfunction generateQueryID(): string {\n return `hybrid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`\n}\n\nexport default function SearchConfig(\n config: SearchBackendConfig | AlgoliaConfig\n) {\n // Backward compatibility: if config doesn't have 'backend', assume Algolia\n if ('backend' in config) {\n if (config.backend === 'hybrid') {\n searchIndex = config.index\n createHybridClient(config.hybrid)\n } else {\n createAlgoliaClient(config.algolia)\n }\n } else {\n // Old API: direct AlgoliaConfig\n createAlgoliaClient(config as AlgoliaConfig)\n }\n}\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst trigger: SxStyleProp = {\n display: ['flex', 'flex', 'flex', 'none'],\n alignItems: 'center',\n justifyContent: 'center',\n width: '56px',\n minWidth: '56px',\n height: '100%',\n padding: 0,\n border: 'none',\n background: 'transparent',\n color: '#4A596B',\n cursor: 'pointer',\n flexShrink: 0,\n 'svg path': {\n fill: '#4A596B',\n },\n ':hover': {\n color: '#4A596B',\n 'svg path': {\n fill: '#4A596B',\n },\n },\n}\n\nconst overlay: SxStyleProp = {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 10000,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'flex-start',\n padding: '16px',\n background: 'rgba(20, 32, 50, 0.45)',\n backdropFilter: 'blur(4px)',\n WebkitBackdropFilter: 'blur(4px)',\n overscrollBehavior: 'contain',\n}\n\nconst card: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n maxWidth: '560px',\n maxHeight: 'min(80vh, 640px)',\n marginTop: '8px',\n background: '#FFFFFF',\n borderRadius: '20px',\n boxShadow: '0 16px 48px rgba(20, 32, 50, 0.24)',\n overflow: 'hidden',\n}\n\nexport default {\n trigger,\n overlay,\n card,\n}\n","import { Flex, Text } from '@vtex/brand-ui'\nimport LikeIcon from 'components/icons/like-icon'\nimport LikeSelectedIcon from 'components/icons/like-selected-icon'\nimport { useContext, useEffect, useState } from 'react'\nimport styles from './styles'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport ShareButton from 'components/share-button'\nimport SuggestEdits from 'components/suggest-edits'\n\nconst DEFAULT_FEEDBACK_ENDPOINT = '/api/feedback/'\n\nexport interface FeedbackSectionProps {\n /** Slug that corresponds to the current page. */\n slug?: string\n /** Github edit URL to the corresponding documentation file. */\n urlToEdit?: string\n /** Whether is possible for the user to suggest edits or not. */\n suggestEdits?: boolean\n /** Include or not a share button. */\n shareButton?: boolean\n /**\n * Canonical page URL stored with the vote.\n * Defaults to `window.location.href` so Help Center and Developer Portal\n * both record the page the user is on.\n */\n pageUrl?: string\n /** Endpoint that receives the like/dislike payload. Defaults to `/api/feedback/`. */\n feedbackEndpoint?: string\n /** Override the default POST. Receives whether the vote was positive (liked). */\n sendFeedback?: (liked: boolean) => Promise\n /** Whether to render the small version of the component or not. */\n small?: boolean\n}\n\n/** @deprecated Use FeedbackSectionProps */\nexport type DocPath = FeedbackSectionProps\n\nconst postFeedback = async (\n liked: boolean,\n pageUrl: string,\n endpoint: string\n) => {\n await fetch(endpoint, {\n method: 'POST',\n body: JSON.stringify({\n data: [\n new Date().toISOString(),\n pageUrl,\n liked ? 'positive' : 'negative',\n ],\n }),\n })\n}\n\nconst FeedbackSection = ({\n slug,\n urlToEdit,\n suggestEdits = true,\n shareButton = false,\n pageUrl,\n feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT,\n sendFeedback,\n small = false,\n}: FeedbackSectionProps) => {\n const [feedback, setFeedback] = useState(undefined)\n const { locale } = useContext(LibraryContext)\n\n useEffect(() => {\n setFeedback(undefined)\n }, [slug])\n\n const handleSend = async (liked: boolean) => {\n if (feedback !== undefined) return\n setFeedback(liked)\n const resolvedPageUrl =\n pageUrl ?? (typeof window !== 'undefined' ? window.location.href : '')\n try {\n if (sendFeedback) {\n await sendFeedback(liked)\n } else {\n await postFeedback(liked, resolvedPageUrl, feedbackEndpoint)\n }\n } catch (e) {\n setFeedback(undefined)\n }\n }\n\n return (\n \n \n \n {feedback !== undefined\n ? messages[locale]['feedback_section.response']\n : messages[locale]['feedback_section.question']}\n \n\n \n handleSend(true)}\n role=\"button\"\n aria-pressed={feedback === true}\n data-cy=\"feedback-section-like\"\n >\n {feedback === true ? (\n \n ) : (\n \n )}\n {!small && (\n {messages[locale]['feedback_section.positive']}\n )}\n \n\n handleSend(false)}\n role=\"button\"\n aria-pressed={feedback === false}\n data-cy=\"feedback-section-dislike\"\n >\n {feedback === false ? (\n \n ) : (\n \n )}\n {!small && (\n {messages[locale]['feedback_section.negative']}\n )}\n \n \n \n {suggestEdits && urlToEdit && (\n \n )}\n {shareButton && (\n \n )}\n \n )\n}\n\nexport default FeedbackSection\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LikeIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LikeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LikeSelectedIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LikeSelectedIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\ntype StyleFn = (opts?: { small?: boolean }) => SxStyleProp\n\nconst container: StyleFn = ({ small } = {}) => ({\n width: '100%',\n flexDirection: small ? 'column' : ['column', 'row'],\n alignItems: small ? 'flex-start' : 'center',\n alignContent: ['initial', 'space-between'],\n justifyContent: ['initial', 'space-between'],\n marginTop: small ? '0px' : '32px',\n marginBottom: small ? '0px' : '16px',\n gap: small ? '8px' : '0px',\n})\n\nconst question: StyleFn = ({ small } = {}) => ({\n fontSize: small ? '12px' : '16px',\n lineHeight: '18px',\n color: '#4A596B',\n})\n\nconst iconsContainer: StyleFn = ({ small } = {}) => ({\n display: 'flex',\n alignItems: 'center',\n gap: small ? '0px' : '4px',\n ml: small ? '3px' : '6px',\n})\n\nconst likeContainer: SxStyleProp = {\n paddingBottom: ['16px', '0'],\n borderBottom: ['1px solid #E7E9EE', 'none'],\n mt: ['8px', '0'],\n mb: ['16px', '0'],\n width: ['100%', 'auto'],\n justifyContent: ['center', 'initial'],\n alignItems: 'center',\n}\n\nconst likeIcon: SxStyleProp = {\n mr: '2px',\n}\n\nconst dislikeIcon: SxStyleProp = {\n mr: '2px',\n transform: 'rotateX(180deg) rotateY(180deg)',\n}\n\nconst button: SxStyleProp = {\n ':hover': {\n cursor: 'pointer',\n color: '#000711',\n 'svg > path': {\n stroke: '#000711',\n },\n },\n}\n\nconst buttonActive: SxStyleProp = {\n cursor: 'pointer',\n color: '#000711',\n 'svg > path': {\n stroke: '#000711',\n },\n}\n\nconst selectedButton: SxStyleProp = {\n color: 'muted.1',\n}\n\nconst disabled: SxStyleProp = {\n display: 'none !important',\n}\n\nconst shareButton: SxStyleProp = {}\n\nexport default {\n disabled,\n container,\n question,\n likeContainer,\n likeIcon,\n dislikeIcon,\n button,\n buttonActive,\n selectedButton,\n shareButton,\n iconsContainer,\n}\n","import { Box, Button, Flex, Text } from '@vtex/brand-ui'\nimport FacebookIcon from 'components/icons/facebook-icon'\nimport LinkedinIcon from 'components/icons/linkedin-icon'\nimport ShareIcon from 'components/icons/share-icon'\nimport TwitterIcon from 'components/icons/twitter-icon'\nimport { useRef, useState } from 'react'\nimport {\n FacebookShareButton,\n LinkedinShareButton,\n TwitterShareButton,\n EmailShareButton,\n} from 'react-share'\nimport styles from './styles'\nimport EmailIcon from 'components/icons/email-icon'\nimport LinkIcon from 'components/icons/link-icon'\nimport { SxStyleProp } from '@vtex/brand-ui'\nimport useClickOutside from 'utils/hooks/useClickOutside'\n\ninterface Props {\n url: string\n sx?: SxStyleProp\n}\n\nconst ShareButton = ({ url, sx={} }: Props) => {\n const [isOpen, setIsOpen] = useState(false)\n const containerRef = useRef()\n useClickOutside(containerRef, () => setIsOpen(false))\n\n const handleCopyLink = async () => {\n try {\n if (window) await navigator.clipboard.writeText(window.location.href)\n } catch (error) {\n console.error('Error copying link to clipboard:', error)\n }\n }\n\n return (\n \n setIsOpen(!isOpen)}\n >\n Share\n \n {isOpen && (\n \n \n \n Copy link\n \n \n \n \n \n E-mail\n \n \n \n \n \n Twitter\n \n \n \n \n \n Facebook\n \n \n \n \n \n LinkedIn\n \n \n \n )}\n \n )\n}\n\nexport default ShareButton\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FacebookIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default FacebookIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkedinIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default LinkedinIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ShareIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default ShareIcon\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TwitterIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default TwitterIcon\n\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n position: 'relative',\n height: '24px',\n}\n\nconst button: SxStyleProp = {\n cursor: 'pointer',\n textTransform: 'none',\n fontSize: '16px',\n lineHeight: '18px',\n color: '#4A596B',\n width: '24px',\n height: '24px',\n transition: '0.3s',\n ':hover': {\n color: '#000711 !important',\n textDecoration: 'none',\n },\n alignItems: 'start',\n}\n\nconst shareIcon: SxStyleProp = {\n marginRight: '4px',\n}\n\nconst innerButton: SxStyleProp = {\n gap: '16px',\n color: '#A1AAB7',\n cursor: 'pointer',\n transition: '0.3s',\n ':hover': {\n color: '#4A4A4A',\n },\n alignItems: 'center',\n}\n\nconst innerContainer: SxStyleProp = {\n position: 'absolute',\n backgroundColor: 'white',\n flexDirection: 'column',\n top: '100%',\n right: '0',\n mt: '8px',\n padding: '16px',\n gap: '16px',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n borderRadius: '5px',\n\n ':before': {\n content: \"''\",\n position: 'absolute',\n top: '-8px',\n right: '8px',\n borderLeft: '8px solid transparent',\n borderRight: '8px solid transparent',\n borderBottom: '8px solid white',\n boxShadow: '0 16px 10px -17px rgba(0, 0, 0, 0.5)',\n },\n}\n\nconst divider: SxStyleProp = {\n borderBottom: '1px solid #E7E9EE',\n}\n\nexport default {\n container,\n button,\n shareIcon,\n innerButton,\n innerContainer,\n divider,\n}\n\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst EmailIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default EmailIcon\n\n","import { useContext } from 'react'\r\nimport { Link, Text } from '@vtex/brand-ui'\r\nimport type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nimport EditIcon from 'components/icons/edit-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type SuggestEditsProps = {\r\n /** GitHub edit URL for the current documentation file. */\r\n urlToEdit: string\r\n /** Compact size used next to the table of contents. */\r\n small?: boolean\r\n sx?: SxStyleProp\r\n}\r\n\r\nconst SuggestEdits = ({\r\n urlToEdit,\r\n small = false,\r\n sx = {},\r\n}: SuggestEditsProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const label =\r\n messages[locale]['feedback_section.edit'] || 'Suggest Edits (GitHub)'\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n )\r\n}\r\n\r\nexport default SuggestEdits\r\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst EditIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default EditIcon\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\ntype StyleFn = (opts?: { small?: boolean }) => SxStyleProp\r\n\r\nconst container: StyleFn = ({ small } = {}) => ({\r\n alignItems: 'center',\r\n gap: '4px',\r\n fontSize: small ? '12px' : '16px',\r\n lineHeight: '22px',\r\n color: '#4A596B !important',\r\n display: 'flex',\r\n ':hover': {\r\n color: '#000711 !important',\r\n cursor: 'pointer',\r\n },\r\n})\r\n\r\nconst icon: SxStyleProp = {\r\n flexShrink: 0,\r\n}\r\n\r\nexport default { container, icon }\r\n","import { FormEvent, useContext, useEffect, useState } from 'react'\nimport { Box, Flex, Text } from '@vtex/brand-ui'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport CheckIcon from 'components/icons/check-icon'\nimport CommentIcon from 'components/icons/comment-icon'\nimport WarningIcon from 'components/icons/warning-icon'\nimport Modal from './modal'\nimport styles from './styles'\n\nconst DEFAULT_FEEDBACK_ENDPOINT = '/api/feedback-google'\n\nconst FEEDBACK_TYPES = [\n {\n value: 'Incorrect information',\n labelKey: 'feedback_modal.type.incorrect',\n },\n {\n value: 'Page not found',\n labelKey: 'feedback_modal.type.page_not_found',\n },\n {\n value: 'Content improvement',\n labelKey: 'feedback_modal.type.content_improvement',\n },\n {\n value: 'New documentation',\n labelKey: 'feedback_modal.type.new_documentation',\n },\n {\n value: 'Other documentation feedback',\n labelKey: 'feedback_modal.type.other',\n },\n] as const\n\nexport type FeedbackModalPayload = {\n name: string\n email: string\n type: string\n feedback: string\n url: string\n}\n\nexport interface FeedbackModalProps {\n /**\n * Canonical page URL prefilled in the Article field.\n * Defaults to `window.location.href` so Help Center and Developer Portal\n * both record the page the user is on.\n */\n pageUrl?: string\n /**\n * @deprecated Use `pageUrl`.\n */\n initialMessage?: string\n /** Endpoint that receives the form payload. Defaults to `/api/feedback-google`. */\n feedbackEndpoint?: string\n /** Override the default POST. */\n sendFeedback?: (payload: FeedbackModalPayload) => Promise\n /** Open the modal on first render. Useful for Storybook. */\n defaultOpen?: boolean\n}\n\nconst postFeedback = async (\n payload: FeedbackModalPayload,\n endpoint: string\n) => {\n const res = await fetch(endpoint, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload),\n })\n if (!res.ok) {\n const data = await res.json().catch(() => ({}))\n throw new Error(data?.error || 'Failed to send feedback. Try again')\n }\n}\n\nconst FeedbackModal = ({\n pageUrl,\n initialMessage,\n feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT,\n sendFeedback,\n defaultOpen = false,\n}: FeedbackModalProps) => {\n const { locale } = useContext(LibraryContext)\n const localizedMessages = messages[locale] ?? messages.en\n const [isOpen, setIsOpen] = useState(defaultOpen)\n const [submitted, setSubmitted] = useState(false)\n const [submitting, setSubmitting] = useState(false)\n const [error, setError] = useState(false)\n\n const handleClose = () => setIsOpen(false)\n\n const articleUrl =\n pageUrl ||\n initialMessage ||\n (typeof window !== 'undefined' ? window.location.href : '')\n\n useEffect(() => {\n if (isOpen) {\n setSubmitted(false)\n setSubmitting(false)\n setError(false)\n }\n }, [isOpen])\n\n async function handleSubmit(event: FormEvent) {\n event.preventDefault()\n setSubmitting(true)\n setError(false)\n\n const form = event.currentTarget\n const formData = new FormData(form)\n const payload: FeedbackModalPayload = {\n name: String(formData.get('name') || ''),\n email: String(formData.get('email') || ''),\n type: String(formData.get('type') || 'Other documentation feedback'),\n url: String(formData.get('url') || ''),\n feedback: String(formData.get('feedback') || ''),\n }\n\n try {\n if (sendFeedback) {\n await sendFeedback(payload)\n } else {\n await postFeedback(payload, feedbackEndpoint)\n }\n form.reset()\n setSubmitted(true)\n } catch {\n setError(true)\n } finally {\n setSubmitting(false)\n }\n }\n\n return (\n \n setIsOpen(true)}\n sx={styles.triggerButton}\n >\n \n {localizedMessages['feedback_modal.button']}\n \n \n {submitted ? (\n \n \n \n \n \n {localizedMessages['feedback_modal.success']}\n \n \n {localizedMessages['feedback_modal.done']}\n \n \n ) : (\n \n \n {error ? (\n \n \n {localizedMessages['feedback_modal.error']}\n \n ) : null}\n\n \n \n {localizedMessages['feedback_modal.article']}\n \n \n \n\n \n \n {localizedMessages['feedback_modal.message']}{' '}\n \n *\n \n \n \n \n\n \n \n {localizedMessages['feedback_modal.type']}\n \n \n {FEEDBACK_TYPES.map((type) => (\n \n ))}\n \n \n\n \n \n \n {localizedMessages['feedback_modal.name']}\n \n \n \n\n \n \n {localizedMessages['feedback_modal.email']}\n \n \n \n \n\n \n \n {localizedMessages['feedback_modal.cancel']}\n \n \n {submitting\n ? localizedMessages['feedback_modal.submitting']\n : localizedMessages['feedback_modal.submit']}\n \n \n \n \n )}\n \n \n )\n}\n\nexport default FeedbackModal\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CheckIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default CheckIcon\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CommentIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default CommentIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst WarningIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default WarningIcon\n","import { useEffect, useState, type MouseEvent, type ReactNode } from 'react'\nimport { createPortal } from 'react-dom'\nimport { Box, Flex, Text } from '@vtex/brand-ui'\nimport CloseIcon from 'components/icons/close-icon'\nimport styles from './styles'\n\ninterface ModalProps {\n isOpen: boolean\n onClose: () => void\n title: string\n description?: string\n closeLabel: string\n children: ReactNode\n}\n\nconst Modal = ({\n isOpen,\n onClose,\n title,\n description,\n closeLabel,\n children,\n}: ModalProps) => {\n const [mounted, setMounted] = useState(false)\n\n useEffect(() => {\n setMounted(true)\n }, [])\n\n useEffect(() => {\n if (!isOpen) return\n\n const html = document.documentElement\n const previousOverflow = html.style.overflow\n html.style.overflow = 'hidden'\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') onClose()\n }\n window.addEventListener('keydown', onKeyDown)\n\n return () => {\n window.removeEventListener('keydown', onKeyDown)\n html.style.overflow = previousOverflow\n }\n }, [isOpen, onClose])\n\n if (!isOpen || !mounted) return null\n\n return createPortal(\n \n ) => e.stopPropagation()}\n >\n \n \n \n {title}\n \n \n \n \n \n {description ? (\n \n {description}\n \n ) : null}\n \n\n {children}\n \n ,\n document.body\n )\n}\n\nexport default Modal\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst triggerWrap: SxStyleProp = {\n display: 'inline-flex',\n flexShrink: 0,\n width: 'max-content',\n}\n\nconst triggerButton: SxStyleProp = {\n mt: 0,\n px: 3,\n minHeight: 36,\n background: '#fff',\n borderRadius: '4px',\n cursor: 'pointer',\n fontSize: 12,\n height: 'min-content',\n textTransform: 'none',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 3,\n width: 'max-content',\n maxWidth: '180px',\n flexShrink: 0,\n whiteSpace: 'nowrap',\n color: 'muted.0',\n border: '1px solid #E7E9EE',\n '&:hover': { backgroundColor: '#F8F7FC', color: '#000711' },\n}\n\nconst wrapContainer: SxStyleProp = {\n position: 'fixed',\n inset: 0,\n backgroundColor: 'rgba(20, 32, 50, 0.45)',\n backdropFilter: 'blur(4px)',\n WebkitBackdropFilter: 'blur(4px)',\n display: 'flex',\n alignItems: ['flex-end', 'center'],\n justifyContent: 'center',\n zIndex: 20000,\n padding: ['0', '24px'],\n overscrollBehavior: 'contain',\n}\n\nconst innerContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: '#FFFFFF',\n borderRadius: ['20px 20px 0 0', '20px'],\n boxShadow: '0 16px 48px rgba(20, 32, 50, 0.24)',\n maxWidth: '520px',\n width: '100%',\n maxHeight: ['92vh', 'min(80vh, 720px)'],\n overflow: 'hidden',\n position: 'relative',\n}\n\nconst header: SxStyleProp = {\n flexShrink: 0,\n px: ['20px', '24px'],\n pt: ['20px', '24px'],\n pb: '16px',\n borderBottom: '1px solid #E7E9EE',\n}\n\nconst headerTop: SxStyleProp = {\n display: 'flex',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n gap: '12px',\n}\n\nconst modalButton: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n width: '32px',\n height: '32px',\n mt: '-4px',\n mr: '-4px',\n p: 0,\n background: 'transparent',\n border: 'none',\n borderRadius: '8px',\n color: '#4A596B',\n cursor: 'pointer',\n transition: 'background 0.15s ease, color 0.15s ease',\n ':hover': {\n background: '#F4F4F5',\n color: '#142032',\n },\n ':focus-visible': {\n outline: '2px solid #E31C58',\n outlineOffset: '2px',\n },\n}\n\nconst modalTitle: SxStyleProp = {\n fontSize: ['18px', '20px'],\n fontWeight: '600',\n lineHeight: ['24px', '28px'],\n letterSpacing: '-0.02em',\n color: '#142032',\n pr: '8px',\n}\n\nconst modalDescription: SxStyleProp = {\n mt: '6px',\n color: '#4A596B',\n fontSize: '14px',\n lineHeight: '20px',\n}\n\nconst body: SxStyleProp = {\n flex: 1,\n minHeight: 0,\n overflowY: 'auto',\n px: ['20px', '24px'],\n py: ['20px', '24px'],\n}\n\nconst form: SxStyleProp = {\n display: 'grid',\n gap: '16px',\n}\n\nconst field: SxStyleProp = {\n display: 'grid',\n gap: '6px',\n minWidth: 0,\n}\n\nconst row: SxStyleProp = {\n display: 'grid',\n gridTemplateColumns: ['1fr', '1fr 1fr'],\n gap: '12px',\n}\n\nconst label: SxStyleProp = {\n fontSize: '13px',\n fontWeight: '600',\n lineHeight: '18px',\n color: '#142032',\n}\n\nconst requiredMark: SxStyleProp = {\n color: '#E31C58',\n}\n\nconst control: SxStyleProp = {\n width: '100%',\n minWidth: 0,\n boxSizing: 'border-box',\n padding: '10px 12px',\n border: '1px solid #E7E9EE',\n borderRadius: '8px',\n background: '#FFFFFF',\n color: '#142032',\n fontFamily: 'inherit',\n fontSize: '14px',\n lineHeight: '20px',\n outline: 'none',\n transition:\n 'border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease',\n '::placeholder': {\n color: '#A1A8B3',\n },\n ':hover': {\n borderColor: '#C7CDD6',\n },\n ':focus': {\n borderColor: '#E31C58',\n boxShadow: '0 0 0 3px rgba(227, 28, 88, 0.16)',\n },\n}\n\nconst input: SxStyleProp = {\n ...control,\n height: '40px',\n}\n\nconst inputMuted: SxStyleProp = {\n ...input,\n background: '#FAFAFB',\n color: '#4A596B',\n fontSize: '13px',\n}\n\nconst textarea: SxStyleProp = {\n ...control,\n minHeight: '120px',\n resize: 'vertical',\n}\n\nconst dropdownMenu: SxStyleProp = {\n ...input,\n appearance: 'none',\n WebkitAppearance: 'none',\n cursor: 'pointer',\n paddingRight: '36px',\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%234A596B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")`,\n backgroundRepeat: 'no-repeat',\n backgroundPosition: 'right 12px center',\n}\n\nconst actions: SxStyleProp = {\n display: 'flex',\n gap: '8px',\n alignItems: 'center',\n justifyContent: 'flex-end',\n pt: '8px',\n}\n\nconst cancelButton: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '40px',\n px: '16px',\n background: 'transparent',\n color: '#4A596B',\n border: '1px solid #E7E9EE',\n borderRadius: '8px',\n cursor: 'pointer',\n fontFamily: 'inherit',\n fontSize: '14px',\n fontWeight: '600',\n lineHeight: '20px',\n transition:\n 'background 0.15s ease, color 0.15s ease, border-color 0.15s ease',\n ':hover': {\n background: '#F8F7FC',\n color: '#142032',\n borderColor: '#C7CDD6',\n },\n ':focus-visible': {\n outline: '2px solid #E31C58',\n outlineOffset: '2px',\n },\n}\n\nconst submitButton: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '40px',\n px: '16px',\n background: '#142032',\n color: '#FFFFFF',\n border: 'none',\n borderRadius: '8px',\n cursor: 'pointer',\n fontFamily: 'inherit',\n fontSize: '14px',\n fontWeight: '600',\n lineHeight: '20px',\n transition: 'background 0.15s ease, opacity 0.15s ease',\n ':hover': {\n background: '#000711',\n },\n ':disabled': {\n opacity: 0.6,\n cursor: 'not-allowed',\n },\n ':focus-visible': {\n outline: '2px solid #142032',\n outlineOffset: '2px',\n },\n}\n\nconst feedbackErrorText: SxStyleProp = {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '8px',\n padding: '12px 14px',\n background: '#FFF6F4',\n border: '1px solid #F8D0C8',\n borderRadius: '8px',\n color: '#8A1F11',\n fontSize: '13px',\n lineHeight: '18px',\n}\n\nconst errorIcon: SxStyleProp = {\n flexShrink: 0,\n width: '16px',\n height: '16px',\n mt: '1px',\n color: '#D44333',\n}\n\nconst successState: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n textAlign: 'center',\n py: ['16px', '24px'],\n px: '8px',\n gap: '12px',\n}\n\nconst successIconWrap: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '48px',\n height: '48px',\n borderRadius: '50%',\n background: '#F0FAF4',\n color: '#36875A',\n}\n\nconst successTitle: SxStyleProp = {\n fontSize: '16px',\n fontWeight: '600',\n lineHeight: '22px',\n color: '#142032',\n maxWidth: '320px',\n}\n\nexport default {\n triggerWrap,\n triggerButton,\n wrapContainer,\n innerContainer,\n header,\n headerTop,\n modalButton,\n modalTitle,\n modalDescription,\n body,\n form,\n field,\n row,\n label,\n requiredMark,\n input,\n inputMuted,\n textarea,\n dropdownMenu,\n actions,\n cancelButton,\n submitButton,\n feedbackErrorText,\n errorIcon,\n successState,\n successIconWrap,\n successTitle,\n}\n","import { Flex } from '@vtex/brand-ui'\nimport SearchSections from 'components/search-sections'\nimport SearchResults from 'components/search-results'\nimport SearchFilterTabBar from 'components/search-filter-tab-bar'\nimport SearchContextProvider from 'utils/context/search'\nimport styles from './styles'\n\nconst Search = () => {\n return (\n \n \n \n \n \n \n \n )\n}\n\nexport default Search\n","import { Box } from '@vtex/brand-ui'\n\nimport SearchSection from 'components/search-section'\nimport styles from './styles'\nimport { useContext } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\n\nconst SearchSections = () => {\n const { sidebarSections } = useContext(LibraryContext)\n\n const internalOnlySections = sidebarSections.map((section) =>\n section.filter((item) => !item.isExternalLink)\n )\n\n return (\n \n {internalOnlySections.map((sections, id) => (\n \n {id === 0 && }\n {sections.map((section, index) => (\n \n ))}\n \n ))}\n \n )\n}\n\nexport default SearchSections\n","import { Box, Flex, Text } from '@vtex/brand-ui'\nimport { useContext, useEffect } from 'react'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport styles from './styles'\nimport { useRouter } from 'next/router.js'\nimport { FilterType, SearchContext } from 'utils/context/search'\nimport { Section } from 'utils/typings/types'\nimport { formatSearchTabCount } from 'utils/search-utils'\nimport { getSectionLabel } from 'utils/sidebar-utils'\n\ninterface SearchSectionProps {\n dataElement: Section | null\n index?: number\n}\n\nconst SearchSection = ({ dataElement, index }: SearchSectionProps) => {\n const router = useRouter()\n const { filterSelectedSection, ocurrenceCount, changeFilterSelectedSection } =\n useContext(SearchContext)\n const { locale, sidebarDataMaster } = useContext(LibraryContext)\n\n const updateFilter = (value: FilterType) => {\n router.query.filter = value\n changeFilterSelectedSection(value)\n }\n\n useEffect(() => {\n updateFilter('')\n }, [router.query])\n\n const allCountLabel = formatSearchTabCount(ocurrenceCount[''])\n\n if (!dataElement) {\n return (\n updateFilter('')}>\n \n {messages[locale]['search_results.all'] || 'All results'}\n \n {allCountLabel !== undefined && (\n \n {allCountLabel}\n \n )}\n \n )\n }\n\n const countsLoaded = Object.keys(ocurrenceCount).length > 0\n const count = countsLoaded\n ? ocurrenceCount[dataElement.id] ?? 0\n : ocurrenceCount[dataElement.id]\n const isDisabled = count === 0\n const countLabel = formatSearchTabCount(count)\n\n return (\n {\n if (isDisabled) return\n updateFilter(dataElement.id)\n }}\n data-disabled={String(isDisabled)}\n >\n \n \n \n {getSectionLabel(dataElement, sidebarDataMaster, locale)}\n \n \n {countLabel !== undefined && (\n \n {countLabel}\n \n )}\n \n )\n}\n\nexport default SearchSection\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst sectionContainer: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n justifyContent: 'space-between',\n padding: '8px',\n mb: '8px',\n cursor: disabled ? 'not-allowed' : 'pointer',\n opacity: disabled ? 0.5 : 1,\n ':active, :hover': disabled\n ? {}\n : {\n backgroundColor: '#F8F7FC',\n borderRadius: '4px',\n '.search-section-title': {\n color: '#000711',\n },\n '.search-section-count': {\n background: '#E7E9EE',\n },\n },\n})\n\nconst sectionIconTitleBox: SxStyleProp = {\n alignItems: 'center',\n}\n\nconst sectionIcon: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n width: '16px',\n height: '16px',\n minWidth: '16px',\n minHeight: '16px',\n mr: '8px',\n opacity: disabled ? 0.6 : 1,\n})\n\nconst sectionTitle: (disabled?: boolean) => SxStyleProp = (\n disabled = false\n) => ({\n fontSize: '12px',\n lineHeight: '16px',\n color: disabled ? '#AFAFAF' : undefined,\n})\n\nconst sectionTitleActive: SxStyleProp = {\n ...sectionTitle(),\n color: '#142032',\n fontWeight: '600',\n}\n\nconst sectionCount: SxStyleProp = {\n background: '#F8F7FC',\n borderRadius: '24px',\n width: 'auto',\n textAlign: 'center',\n px: '8px',\n fontSize: '12px',\n lineHeight: '16px',\n}\n\nconst allResultsText: SxStyleProp = {\n ...sectionTitle(),\n ml: '24px',\n}\n\nconst allResultsTextActive: SxStyleProp = {\n ...allResultsText,\n fontWeight: 'bold',\n color: '#0C1522',\n}\n\nexport default {\n sectionContainer,\n sectionIconTitleBox,\n sectionIcon,\n sectionTitle,\n sectionTitleActive,\n sectionCount,\n allResultsText,\n allResultsTextActive,\n}\n","import {\n createContext,\n Dispatch,\n ReactNode,\n SetStateAction,\n useState,\n} from 'react'\n\nexport type FilterType = string\n\ntype OcurrenceType = {\n [key: string]: number | undefined\n}\n\ntype SearchContextType = {\n filterSelectedSection: FilterType\n changeFilterSelectedSection: Dispatch>\n ocurrenceCount: OcurrenceType\n updateOcurrenceCount: (resultsData: OcurrenceType) => void\n}\n\nexport const SearchContext = createContext({\n filterSelectedSection: '',\n changeFilterSelectedSection: () => undefined,\n ocurrenceCount: {},\n updateOcurrenceCount: () => undefined,\n})\n\ninterface Props {\n children: ReactNode\n}\n\nconst SearchContextProvider = ({ children }: Props) => {\n const [filterSelectedSection, changeFilterSelectedSection] =\n useState('')\n const [ocurrenceCount, changeOcurrenceCount] = useState({})\n\n const updateOcurrenceCount = (resultsData: OcurrenceType) => {\n changeOcurrenceCount(resultsData)\n }\n\n return (\n \n {children}\n \n )\n}\n\nexport default SearchContextProvider\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n display: ['none', 'none', 'none', 'initial'],\n height: '100%',\n width: '242px',\n border: '1px solid #E7E9EE',\n borderRadius: '4px',\n mr: ['32px', '32px', '32px', '32px', '32px', '32px', '64px'],\n mt: '32px',\n}\n\nconst notesSection: SxStyleProp = {\n px: '8px',\n paddingTop: '8px',\n}\n\nconst docsSection: SxStyleProp = {\n ...notesSection,\n borderBottom: '1px solid #E7E9EE',\n}\n\nexport default {\n container,\n notesSection,\n docsSection,\n}\n","import { useRouter } from 'next/router.js'\nimport { useContext, useEffect, useState } from 'react'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport { Box, Text } from '@vtex/brand-ui'\n\nimport { Configure, InstantSearch } from 'react-instantsearch-dom'\nimport { SearchState } from 'react-instantsearch-core'\nimport InfiniteHits from './infiniteHits'\n\nimport styles from './styles'\nimport { SearchContext } from 'utils/context/search'\nimport {\n searchClient,\n searchIndex,\n SEARCH_RESULTS_HITS_PER_PAGE,\n} from 'utils/config/search-config'\nimport { formatSearchTabCount } from 'utils/search-utils'\n\nconst SearchResults = () => {\n const router = useRouter()\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n const filters = [\n `language:${locale}`,\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\n ]\n .filter(Boolean)\n .join(' AND ')\n const keyword = String(router.query.keyword ?? '')\n const [prevFilter, setPrevFilter] = useState('')\n const [prevKeyword, setPrevKeyword] = useState(keyword)\n const [searchState, setSearchState] = useState({})\n\n useEffect(() => {\n if (!keyword || keyword === prevKeyword) return\n setPrevKeyword(keyword)\n setSearchState((currentState) => ({\n ...currentState,\n page: 1,\n }))\n }, [keyword, prevKeyword])\n\n const updateSearchState = (currentState: SearchState) => {\n const keywordChanged = keyword !== prevKeyword\n const filterChanged = filters !== prevFilter\n const page = keywordChanged || filterChanged ? 1 : currentState.page || 1\n if (keywordChanged) setPrevKeyword(keyword)\n setPrevFilter(filters)\n setSearchState({\n ...currentState,\n page,\n })\n }\n\n return (\n \n \n {`${messages[locale]['search_results.showing'] || 'Showing'} `}\n \n {formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? ''}\n \n {` ${messages[locale]['search_results.results_for'] || 'results for'} `}\n \n {`“${router.query.keyword}”`}\n \n {` ${messages[locale]['search_results.in'] || 'in'} ${\n !filterSelectedSection\n ? messages[locale]['search_results.all_lowercase'] || 'all results'\n : filterSelectedSection\n }`}\n \n
\n \n \n updateSearchState(currentState)\n }\n >\n \n \n \n \n
\n )\n}\n\nexport default SearchResults\n","import { useContext, useEffect, useMemo, useRef } from 'react'\nimport {\n connectInfiniteHits,\n connectStateResults,\n} from 'react-instantsearch-dom'\nimport {\n Hit,\n InfiniteHitsProvided,\n StateResultsProvided,\n} from 'react-instantsearch-core'\nimport SearchCard from 'components/search-card'\nimport {\n ActionType,\n getIconFromSection,\n getRelativeURL,\n getSearchBreadcrumbs,\n getSearchHitMethod,\n} from 'utils/search-utils'\nimport { Box, Flex, Text } from '@vtex/brand-ui'\nimport { SearchContext } from 'utils/context/search'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport resultsStyles from 'components/search-results/styles'\n\nexport type FilteredHit2 = Hit & { filteredMatches?: Hit[] }\n\ninterface HitProps {\n hit: FilteredHit2\n}\n\nconst HitCard = ({ hit }: HitProps) => {\n const { sidebarSections, sidebarDataMaster, locale } =\n useContext(LibraryContext)\n const breadcrumbs = getSearchBreadcrumbs({\n hit,\n navigation: sidebarDataMaster,\n sections: sidebarSections,\n locale,\n })\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype)\n\n return (\n \n )\n}\n\nconst StateResults = connectStateResults(\n ({ searchResults }: StateResultsProvided) => {\n const { updateOcurrenceCount } = useContext(SearchContext)\n\n useEffect(() => {\n if (!searchResults) return\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const results = searchResults as any\n const isFilteringByDoctype =\n typeof results?._state.filters === 'string' &&\n results._state.filters.includes('doctype:')\n\n const formattedFacets: Record = {}\n const rawFacets = results?.facets\n\n if (Array.isArray(rawFacets)) {\n const doctypeFacet = rawFacets.find(\n (facet: { name?: string; data?: Record }) =>\n facet.name === 'doctype'\n )\n if (doctypeFacet?.data) {\n Object.entries(doctypeFacet.data).forEach(([key, value]) => {\n if (typeof value === 'number') {\n formattedFacets[key] = value\n }\n })\n }\n } else if (rawFacets?.doctype && typeof rawFacets.doctype === 'object') {\n Object.entries(rawFacets.doctype).forEach(([key, value]) => {\n if (typeof value === 'number') {\n formattedFacets[key] = value\n }\n })\n }\n\n const hybridAllCount = results?._hybridAllCount\n const hybridCountsAttempted = results?._hybridCountsAttempted === true\n if (typeof hybridAllCount === 'number') {\n formattedFacets[''] = hybridAllCount\n } else if (!isFilteringByDoctype && !hybridCountsAttempted) {\n formattedFacets[''] = results?.nbHits ?? 0\n }\n\n if (!isFilteringByDoctype) {\n updateOcurrenceCount(formattedFacets)\n }\n }, [searchResults?.queryID])\n\n return null\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) as any\n\nconst InfiniteHits = ({ hits, hasMore, refineNext }: InfiniteHitsProvided) => {\n const scrollRef = useRef(null)\n const { locale } = useContext(LibraryContext)\n\n const filteredResult = useMemo(() => {\n const mergeHits: FilteredHit2[] = [] //hitsData\n hits.forEach((hit) => {\n const alreadyExists = mergeHits.findIndex(\n (e) => e.url_without_anchor === hit.url_without_anchor\n )\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const filteredHit: any = { ...hit, filteredMatches: [] }\n if (alreadyExists >= 0) {\n mergeHits[alreadyExists].filteredMatches?.push(filteredHit)\n } else mergeHits.push(filteredHit)\n })\n return mergeHits\n }, [hits])\n\n useEffect(() => {\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting && hasMore) {\n refineNext()\n }\n })\n })\n\n const sentinel = scrollRef.current\n if (sentinel) observer.observe(sentinel)\n return () => {\n observer.disconnect()\n }\n }, [hasMore, refineNext])\n\n return (\n \n \n {filteredResult.length === 0 && (\n \n \n {messages[locale]['search_input.empty'] ||\n 'No results found. Try different search terms.'}\n \n \n )}\n {filteredResult.map((hit: Hit, index: number) => (\n \n \n \n ))}\n \n \n )\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport default connectInfiniteHits(InfiniteHits) as any\n","import { Box, Flex, Text, IconCaret, Tooltip } from '@vtex/brand-ui'\nimport { useContext, useEffect, useState, MouseEvent } from 'react'\nimport { useRouter } from 'next/router.js'\nimport Link from 'next/link.js'\nimport { Hit } from 'react-instantsearch-core'\n\nimport styles from './styles'\nimport CustomHighlight, {\n HighlightQuery,\n} from 'components/search-input/customHighlight'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport ExpandedResultsIcon from 'components/icons/expanded-results-icon'\nimport CopyIcon from 'components/icons/copy-icon'\nimport ExternalLinkIcon from 'components/icons/external-link-icon'\nimport PaperIcon from 'components/icons/paper-icon'\nimport MethodCategory from 'components/method-category'\nimport { IconComponent, MethodType } from 'utils/typings/types'\nimport { ActionType, getAction } from 'utils/search-utils'\n\nexport type FilteredHit = Hit & { filteredMatches?: Hit[] }\ninterface SearchCardProps {\n doc: string\n title: string\n breadcrumbs?: string[]\n method?: MethodType\n actionType?: ActionType\n Icon?: IconComponent\n url: string\n hit: FilteredHit\n}\n\nconst SearchCard = ({\n Icon,\n title,\n method,\n breadcrumbs,\n actionType,\n url,\n hit,\n}: SearchCardProps) => {\n const actionValue = actionType ? getAction(actionType) : null\n const [toggleChildResults, setToggleChildResults] = useState(false)\n const [copied, setCopied] = useState(false)\n const { locale } = useContext(LibraryContext)\n const router = useRouter()\n const query = String(router.query.keyword ?? '')\n const DocIcon = Icon || PaperIcon\n const displayTitle =\n title === 'overview' && hit.doccategory\n ? `${hit.doccategory} ${title}`\n : title\n const crumbs = (breadcrumbs || []).filter(\n (crumb): crumb is string => Boolean(crumb)\n )\n\n useEffect(() => {\n if (!copied) return\n const timeout = window.setTimeout(() => setCopied(false), 2000)\n return () => window.clearTimeout(timeout)\n }, [copied])\n\n const handleCopy = async (event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n try {\n await navigator.clipboard.writeText(`${window.location.origin}${url}`)\n setCopied(true)\n } catch {\n setCopied(false)\n }\n }\n\n const handleOpenNewTab = (event: MouseEvent) => {\n event.preventDefault()\n event.stopPropagation()\n window.open(url, '_blank', 'noopener,noreferrer')\n }\n\n return (\n \n \n \n \n \n \n \n \n \n {method ? (\n \n ) : null}\n \n \n \n \n \n \n {toggleChildResults &&\n hit.filteredMatches?.map((childHit, index: number) => (\n \n \n \n ))}\n \n {crumbs.length > 0 ? (\n \n \n {messages[locale]['search_card.in'] || 'In'}\n \n {crumbs.map((breadcrumb, index) => (\n \n \n {breadcrumb}\n \n {index < crumbs.length - 1 ? (\n \n ) : null}\n \n ))}\n \n ) : null}\n {actionValue ? (\n \n {' '}\n {actionValue?.title}\n \n ) : null}\n \n \n \n \n \n \n event.preventDefault()}\n >\n \n \n event.preventDefault()}\n >\n \n \n \n {hit.filteredMatches && hit.filteredMatches.length > 0 && (\n {\n setToggleChildResults(!toggleChildResults)\n event.stopPropagation()\n }}\n >\n \n \n )}\n \n \n )\n}\n\nexport default SearchCard\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n position: 'relative',\n flexWrap: ['wrap', 'nowrap'],\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n borderRadius: ['8px', '12px'],\n border: '1px solid #E7E9EE',\n width: '100%',\n minWidth: 0,\n mb: ['12px', '16px'],\n padding: ['14px 16px', '20px 24px'],\n background: '#FFFFFF',\n cursor: 'pointer',\n a: {\n minWidth: 0,\n flex: ['1 1 100%', '1 1 auto'],\n textDecoration: 'none',\n color: 'inherit',\n },\n '.search-card-actions': {\n opacity: [1, 0],\n },\n}\n\nconst containerActive: SxStyleProp = {\n ...container,\n ':hover': {\n background: '#F8F7FC',\n borderColor: '#D8D8E3',\n '.searchCardTitle, .searchCardDescription': {\n color: '#142032',\n },\n '.search-card-icon': {\n '> path': {\n stroke: '#000711',\n },\n },\n '.search-card-icon-wrap': {\n backgroundColor: '#EDEAF6',\n },\n '.search-card-actions': {\n opacity: 1,\n },\n },\n}\n\nconst cardBody: SxStyleProp = {\n alignItems: 'flex-start',\n minWidth: 0,\n width: '100%',\n}\n\nconst cardText: SxStyleProp = {\n minWidth: 0,\n flex: 1,\n}\n\nconst iconWrap: SxStyleProp = {\n flexShrink: 0,\n width: ['32px', '36px'],\n height: ['32px', '36px'],\n borderRadius: '8px',\n backgroundColor: '#F4F2FA',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n mr: ['10px', '12px'],\n mt: '2px',\n}\n\nconst title: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n flexWrap: 'wrap',\n fontSize: ['15px', '18px'],\n fontWeight: '600',\n lineHeight: ['20px', '24px'],\n color: '#142032',\n}\n\nconst titleText: SxStyleProp = {\n minWidth: 0,\n flex: 1,\n display: 'inline',\n whiteSpace: 'normal',\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n}\n\nconst httpMethod: SxStyleProp = {\n mr: '8px',\n flexShrink: 0,\n alignSelf: 'center',\n}\n\nconst icon: SxStyleProp = {\n width: '18px',\n height: '18px',\n color: '#4A596B',\n path: {\n stroke: '#4A596B',\n },\n}\n\nconst description: SxStyleProp = {\n fontSize: ['13px', '16px'],\n lineHeight: ['18px', '22px'],\n color: 'muted.0',\n mt: '6px',\n mb: ['6px', '8px'],\n minWidth: 0,\n overflowWrap: 'break-word',\n wordBreak: 'break-word',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: [3, 4],\n WebkitBoxOrient: 'vertical',\n}\n\nconst descriptionToggle: SxStyleProp = {\n height: 'auto',\n minWidth: 'auto',\n cursor: 'pointer',\n}\n\nconst descriptionExpandedItem: SxStyleProp = {\n mt: '24px',\n}\n\nconst breadcrumbsContainer: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n minWidth: 0,\n maxWidth: '100%',\n overflow: 'hidden',\n}\n\nconst alignCenter: SxStyleProp = {\n alignItems: 'center',\n minWidth: 0,\n flexShrink: 1,\n}\n\nconst documentation: SxStyleProp = {\n ...alignCenter,\n minWidth: 0,\n maxWidth: ['46%', 'none'],\n flexShrink: 0,\n}\n\nconst breadcrumb: SxStyleProp = {\n color: 'muted.1',\n fontSize: ['12px', '14px'],\n lineHeight: ['16px', '18px'],\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n}\n\nconst lastBreadcrumb: SxStyleProp = {\n ...breadcrumb,\n margin: 'auto 0',\n display: 'block',\n overflow: 'hidden',\n maxWidth: 'max-content',\n whiteSpace: 'nowrap',\n}\n\nconst breadcrumbsIn: SxStyleProp = {\n ...breadcrumb,\n mr: '4px',\n minWidth: 'fit-content',\n}\n\nconst breadcrumbsArrow: SxStyleProp = {\n width: '16px',\n height: '16px',\n color: 'muted.2',\n flexShrink: 0,\n}\n\nconst actionContainer: SxStyleProp = {\n alignItems: 'center',\n mt: '8px',\n}\n\nconst actionIcon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n height: '16px',\n mr: '8px',\n}\n\nconst cardToolbar: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: ['flex-end', 'flex-start'],\n gap: '8px',\n width: ['100%', 'auto'],\n mt: ['8px', 0],\n ml: [0, '8px'],\n flexShrink: 0,\n}\n\nconst cardActions: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n}\n\nconst actionButton: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: ['28px', '32px'],\n height: ['28px', '32px'],\n padding: 0,\n border: '1px solid #E7E9EE',\n borderRadius: '6px',\n background: '#FFFFFF',\n color: '#4A596B',\n cursor: 'pointer',\n ':hover': {\n background: '#FFFFFF',\n borderColor: '#C7CDD6',\n color: '#142032',\n },\n}\n\nconst actionButtonCopied: SxStyleProp = {\n ...actionButton,\n borderColor: '#8CD2A8',\n color: '#36875A',\n background: '#F0FAF4',\n}\n\nexport default {\n containerActive,\n cardBody,\n cardText,\n iconWrap,\n title,\n titleText,\n httpMethod,\n icon,\n description,\n descriptionToggle,\n descriptionExpandedItem,\n breadcrumbsContainer,\n alignCenter,\n documentation,\n breadcrumb,\n lastBreadcrumb,\n breadcrumbsIn,\n breadcrumbsArrow,\n actionContainer,\n actionIcon,\n cardToolbar,\n cardActions,\n actionButton,\n actionButtonCopied,\n}\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\ninterface ExpandedResultsProps extends IconProps {\n active: boolean\n}\n\nconst ExpandedResultsIcon = ({ active }: ExpandedResultsProps) =>\n active ? (\n \n \n \n \n ) : (\n \n \n \n \n \n )\n\nexport default ExpandedResultsIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst resultContainer: SxStyleProp = {\n width: ['100%', '100%', '544px', '544px', '720px', '720px', '1400px'],\n maxWidth: '100%',\n boxSizing: 'border-box',\n px: ['16px', '24px', 0, 0, 0, 0, 0],\n paddingTop: ['12px', '16px', '24px', '32px'],\n paddingBottom: ['24px', '24px', '24px', '32px'],\n overflowX: 'hidden',\n hr: {\n marginTop: '16px',\n borderTop: 'none',\n borderColor: '#DDDDDD',\n display: ['none', 'none', 'none', 'block'],\n },\n}\n\nconst resultText: SxStyleProp = {\n mb: ['12px', '12px', '16px'],\n fontSize: ['13px', '14px', '16px'],\n lineHeight: ['18px', '20px', '22px'],\n color: 'muted.0',\n display: 'block',\n}\n\nconst resultCount: SxStyleProp = {\n fontWeight: '600',\n color: '#142032',\n}\n\nconst resultKeyword: SxStyleProp = {\n fontWeight: '600',\n color: '#142032',\n background: '#F8E3EC',\n borderRadius: '4px',\n px: '6px',\n py: '1px',\n wordBreak: 'break-word',\n}\n\nconst paginationContainer: SxStyleProp = {\n mt: ['48px', '115px'],\n mb: '34px',\n justifyContent: 'center',\n}\n\nconst paginationLink: SxStyleProp = {\n fontSize: '16px',\n lineHeight: '20px',\n color: '#EE2565',\n cursor: 'pointer',\n}\n\nconst paginationLinkDisabled: SxStyleProp = {\n ...paginationLink,\n color: 'muted.1',\n}\n\nconst paginationNumber: SxStyleProp = {\n display: 'flex',\n fontSize: ['14px', '16px'],\n lineHeight: '20px',\n color: '#4A596B',\n mx: ['18px', '27px'],\n}\n\nconst paginationActualNumber: SxStyleProp = {\n fontWeight: '700',\n mx: '4px',\n}\n\nconst noResults: SxStyleProp = {\n justifyContent: 'center',\n alignContent: 'center',\n padding: ['24px 8px', '12px'],\n textAlign: 'center',\n}\n\nconst hitListItem: SxStyleProp = {\n width: '100%',\n minWidth: 0,\n}\n\nexport default {\n resultContainer,\n resultText,\n resultCount,\n resultKeyword,\n paginationContainer,\n paginationLink,\n paginationLinkDisabled,\n paginationNumber,\n paginationActualNumber,\n noResults,\n hitListItem,\n}\n","import { useContext, useEffect } from 'react'\nimport { Flex, Text } from '@vtex/brand-ui'\n\nimport styles from './styles'\nimport { SearchContext } from 'utils/context/search'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport { formatSearchTabCount } from 'utils/search-utils'\nimport { getSectionLabel } from 'utils/sidebar-utils'\nimport { IconComponent } from 'utils/typings/types'\n\nconst hasFilterResults = (\n ocurrenceCount: Record,\n filter: string\n) => {\n const count = ocurrenceCount[filter]\n return typeof count === 'number' && count > 0\n}\n\nconst SearchFilterTab = ({\n filter,\n label,\n Icon,\n}: {\n filter: string\n label?: string\n Icon?: IconComponent\n}) => {\n const { filterSelectedSection, changeFilterSelectedSection, ocurrenceCount } =\n useContext(SearchContext)\n const { locale } = useContext(LibraryContext)\n\n const count = ocurrenceCount[filter]\n const formattedCount = formatSearchTabCount(count)\n const isActive = filterSelectedSection === filter\n\n return (\n changeFilterSelectedSection(filter)}\n data-testid=\"doctype-filter-tab\"\n data-filter={filter}\n data-active={String(isActive)}\n >\n {Icon ? : null}\n \n {filter === ''\n ? messages[locale]['search_results.all'] || 'All results'\n : label || filter}\n \n {formattedCount !== undefined && (\n \n {formattedCount}\n \n )}\n \n )\n}\n\nconst SearchFilterTabBar = () => {\n const { sidebarSections, sidebarDataMaster, locale } =\n useContext(LibraryContext)\n const { ocurrenceCount, filterSelectedSection, changeFilterSelectedSection } =\n useContext(SearchContext)\n const countsLoaded = Object.keys(ocurrenceCount).length > 0\n const visibleSections = sidebarSections\n .flat()\n .filter((section) => !section.isExternalLink)\n .filter(\n (section) => !countsLoaded || hasFilterResults(ocurrenceCount, section.id)\n )\n\n useEffect(() => {\n if (!countsLoaded || !filterSelectedSection) return\n if (!hasFilterResults(ocurrenceCount, filterSelectedSection)) {\n changeFilterSelectedSection('')\n }\n }, [\n countsLoaded,\n filterSelectedSection,\n ocurrenceCount,\n changeFilterSelectedSection,\n ])\n\n return (\n \n \n {visibleSections.map((section) => (\n \n ))}\n \n )\n}\n\nexport default SearchFilterTabBar\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst container: SxStyleProp = {\n display: ['flex', 'flex', 'flex', 'none'],\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '8px',\n px: ['16px', '24px'],\n pt: ['12px', '16px'],\n pb: ['4px', '8px'],\n}\n\nconst tab: (active: boolean) => SxStyleProp = (active) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '6px',\n height: '32px',\n minHeight: '32px',\n px: '12px',\n py: 0,\n borderRadius: '16px',\n border: `1px solid ${active ? '#F8E3EC' : '#E7E9EE'}`,\n backgroundColor: active ? '#F8E3EC' : '#FFFFFF',\n cursor: 'pointer',\n minWidth: 'max-content',\n ':hover': {\n borderColor: active ? '#F8E3EC' : '#D8D8E3',\n backgroundColor: active ? '#F8E3EC' : '#F8F7FC',\n },\n})\n\nconst tabIcon: (active: boolean) => SxStyleProp = (active) => ({\n width: '14px',\n height: '14px',\n minWidth: '14px',\n minHeight: '14px',\n color: active ? '#D71D55' : '#4A596B',\n flexShrink: 0,\n})\n\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\n fontSize: '13px',\n fontWeight: active ? '600' : '500',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n color: active ? '#D71D55' : '#4A596B',\n})\n\nconst tabCount: (active: boolean) => SxStyleProp = (active) => ({\n px: '6px',\n fontSize: '11px',\n fontWeight: '500',\n lineHeight: '16px',\n borderRadius: '24px',\n backgroundColor: active ? '#FFFFFF' : '#EDEAF6',\n color: active ? '#D71D55' : '#4A596B',\n})\n\nexport default { container, tab, tabIcon, tabTitle, tabCount }\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst body: SxStyleProp = {\n background: '#FFFFFF',\n justifyContent: 'center',\n px: [0, 0, 0, '16px'],\n}\n\nexport default {\n body,\n}\n","import { ReactNode, useContext } from 'react'\nimport { CookieConsent } from 'react-cookie-consent'\nimport styles from './styles'\nimport { Flex, SxStyleProp, Text } from '@vtex/brand-ui'\nimport { messages } from 'utils/get-message'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport aa from 'search-insights'\n\ninterface Props {\n onAccept: () => void\n}\n\ninterface ButtonProps {\n children: ReactNode[]\n style: SxStyleProp\n}\n\nconst Button = ({ children, style, ...props }: ButtonProps) => {\n return (\n \n {children}\n \n )\n}\n\nconst CookieBar = ({ onAccept }: Props) => {\n const { locale } = useContext(LibraryContext)\n\n return (\n {\n aa('init', {\n partial: true,\n useCookie: true,\n })\n onAccept()\n }}\n declineButtonText={messages[locale]['cookie_bar.decline']}\n buttonText={messages[locale]['cookie_bar.accept']}\n ButtonComponent={Button}\n customButtonWrapperAttributes={{ style: styles.buttonContainer }}\n customContentAttributes={{ style: styles.barContent }}\n >\n {messages[locale]['cookie_bar.title']}\n {messages[locale]['cookie_bar.description']}\n \n )\n}\n\nexport default CookieBar\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst bar: SxStyleProp = {\n backgroundColor: '#FFF',\n borderRadius: '8px',\n color: '#5E6E84',\n padding: '20px',\n width: '80%',\n left: '50%',\n transform: 'translateX(-50%)',\n maxWidth: '1280px',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '0 0 10px rgba(0, 0, 0, 0.1)',\n}\n\nconst barContent: SxStyleProp = {\n display: 'flex',\n flex: '1 0 300px',\n flexDirection: 'column',\n maxWidth: '100%',\n}\n\nconst title: SxStyleProp = {\n color: '#5E6E84',\n marginBottom: '10px',\n lineHeight: '28px',\n fontSize: '25px',\n fontWeight: '400',\n}\n\nconst buttonContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '10px',\n justifyContent: 'center',\n margin: '15px',\n}\n\nconst acceptButton: SxStyleProp = {\n background: '#F71963',\n color: '#FFF',\n padding: '7px 16px',\n borderRadius: '2px',\n margin: '0',\n height: '32px',\n fontWeight: '400',\n\n ':hover': {\n opacity: '0.7',\n },\n}\n\nconst declineButton: SxStyleProp = {\n border: '1px solid #F71963',\n background: '#FFF',\n color: '#F71963',\n borderRadius: '2px',\n fontWeight: '400',\n margin: '0',\n height: '32px',\n\n ':hover': {\n opacity: '0.7',\n },\n}\n\nexport default {\n bar,\n barContent,\n title,\n acceptButton,\n declineButton,\n buttonContainer,\n}\n","import { Button } from '@vtex/brand-ui'\nimport Tooltip from 'components/tooltip'\nimport CopyIcon from '../icons/copy-icon'\nimport { useState } from 'react'\nimport styles from './styles'\n\nconst CopyLinkButton = () => {\n const [tooltipText, setTooltipText] = useState('Copy')\n\n const handleCopy = () => {\n navigator.clipboard.writeText(window.location.href)\n setTooltipText('Copy')\n\n setTimeout(() => {\n setTooltipText('Copied!')\n }, 2000)\n }\n\n return (\n \n \n \n )\n}\n\nexport default CopyLinkButton\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst copyIcon: SxStyleProp = {\n marginRight: '4px',\n}\n\nconst copyLinkButton: SxStyleProp = {\n textTransform: 'none',\n color: '#3F3F3F',\n fontWeight: '100',\n fontSize: '12px',\n lineHeight: '18px',\n height: 'none',\n padding: '8px 5px 8px 8px',\n border: '1px solid #A1AAB7',\n backgroundColor: 'white',\n ':hover': {\n backgroundColor: '#EFEFEF',\n },\n}\n\nexport default {\n copyIcon,\n copyLinkButton,\n}\n","import { useCallback, useState, useRef, useEffect } from 'react'\r\nimport copy from 'copy-text-to-clipboard'\r\nimport { Box, Button, Icon } from '@vtex/brand-ui'\r\nimport type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nimport styles from './styles'\r\n\r\nexport type CopyButtonProps = {\r\n code: string\r\n sx?: SxStyleProp\r\n}\r\n\r\nconst CopyButton = ({ code, sx }: CopyButtonProps): JSX.Element => {\r\n const [isCopied, setIsCopied] = useState(false)\r\n const copyTimeout = useRef(undefined)\r\n const handleCopyCode = useCallback(() => {\r\n copy(code)\r\n setIsCopied(true)\r\n copyTimeout.current = window.setTimeout(() => {\r\n setIsCopied(false)\r\n }, 1000)\r\n }, [code])\r\n\r\n useEffect(() => () => window.clearTimeout(copyTimeout.current), [])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CopyButton\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst basicButton: SxStyleProp = {\r\n float: 'right',\r\n ':focus': {\r\n outline: 'none !important',\r\n boxShadow: 'none !important',\r\n },\r\n width: '28px',\r\n height: '28px',\r\n padding: '6px',\r\n marginX: '18px',\r\n}\r\n\r\nconst copyButton: SxStyleProp = {\r\n ...basicButton,\r\n backgroundColor: '#E7E9EE',\r\n}\r\nconst copyButtonCopied: SxStyleProp = {\r\n ...basicButton,\r\n backgroundColor: '#E6F2E6',\r\n}\r\n\r\nconst copyButtonIcons: SxStyleProp = {\r\n position: 'relative',\r\n width: '16px',\r\n height: '16px',\r\n}\r\n\r\nconst copyButtonIcon: SxStyleProp = {\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n fill: '#142032',\r\n opacity: 'inherit',\r\n width: 'inherit',\r\n height: 'inherit',\r\n transition: 'all 0.15s ease',\r\n}\r\n\r\nconst copyButtonSuccessIcon: SxStyleProp = {\r\n ...copyButtonIcon,\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n fill: '#79A479',\r\n}\r\n\r\nconst copyButtonIconCopied: SxStyleProp = {\r\n transform: 'scale(0.33)',\r\n opacity: '0',\r\n}\r\n\r\nconst copyButtonSuccessIconCopied: SxStyleProp = {\r\n transform: 'translate(-50%, -50%)',\r\n opacity: '1',\r\n transitionDelay: '0.075s',\r\n}\r\n\r\nexport default {\r\n copyButton,\r\n copyButtonCopied,\r\n copyButtonIcons,\r\n copyButtonIcon,\r\n copyButtonSuccessIcon,\r\n copyButtonSuccessIconCopied,\r\n copyButtonIconCopied,\r\n}\r\n","import { useContext, useEffect, useRef, useState } from 'react'\nimport copy from 'copy-text-to-clipboard'\nimport { Box, Text, IconCaret } from '@vtex/brand-ui'\n\nimport ChatGPTIcon from 'components/icons/chatgpt-icon'\nimport CopilotIcon from 'components/icons/copilot-icon'\nimport ClaudeIcon from 'components/icons/claude-icon'\nimport GeminiIcon from 'components/icons/gemini-icon'\nimport LongArrowIcon from 'components/icons/long-arrow-icon'\nimport MarkdownIcon from 'components/icons/markdown-icon'\nimport CheckIcon from 'components/icons/check-icon'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport styles from './styles'\n\nexport type AskAIProvider = {\n id: string\n name: string\n href?: string\n onClick?: () => void\n}\n\nexport type AskAIMenuProps = {\n /** Markdown file path sent to `contentEndpoint` and appended to `rawContentBaseUrl`. */\n filePath: string\n /** Public page URL included in AI prompts. */\n pageUrl: string\n /** Base URL for viewing raw markdown. `filePath` is appended. */\n rawContentBaseUrl: string\n providers?: AskAIProvider[]\n onOpenProvider?: (provider: AskAIProvider) => void\n /** Endpoint that returns markdown for `filePath`. */\n contentEndpoint?: string\n /** Override the default fetch used by Copy page. */\n onCopyPage?: () => Promise\n}\n\nconst DEFAULT_PROVIDERS: AskAIProvider[] = [\n { id: 'chatgpt', name: 'ChatGPT', href: 'https://chat.openai.com/' },\n { id: 'copilot', name: 'Copilot', href: 'https://copilot.microsoft.com/' },\n { id: 'claude', name: 'Claude', href: 'https://claude.ai/' },\n { id: 'gemini', name: 'Gemini', href: 'https://gemini.google.com/app' },\n]\n\nconst DEFAULT_CONTENT_ENDPOINT = '/api/llm-content'\n\nconst joinUrl = (base: string, path: string) =>\n `${base.replace(/\\/?$/, '/')}${path.replace(/^\\//, '')}`\n\nconst getMarkdownFromResponse = (data: {\n content?: string | { result?: string }\n}) => {\n if (typeof data.content === 'string') return data.content\n return data.content?.result\n}\n\nconst fetchMarkdown = async (filePath: string, contentEndpoint: string) => {\n const params = new URLSearchParams({ path: filePath })\n const res = await fetch(`${contentEndpoint}?${params.toString()}`)\n if (!res.ok) {\n const errorText = await res.text()\n throw new Error(`Failed to fetch content: ${res.status} ${errorText}`)\n }\n const data = await res.json()\n return getMarkdownFromResponse(data)\n}\n\nconst ProviderIcon = ({ id, size = 14 }: { id: string; size?: number }) => {\n switch (id) {\n case 'chatgpt':\n return \n case 'copilot':\n return \n case 'claude':\n return \n case 'gemini':\n return \n default:\n return null\n }\n}\n\nconst AskAIMenu = ({\n filePath,\n pageUrl,\n rawContentBaseUrl,\n providers = DEFAULT_PROVIDERS,\n onOpenProvider,\n contentEndpoint = DEFAULT_CONTENT_ENDPOINT,\n onCopyPage,\n}: AskAIMenuProps) => {\n const { locale } = useContext(LibraryContext)\n const localizedMessages = messages[locale] ?? messages.en\n const copyLabel = localizedMessages['ask_ai.copy'] || 'Copy markdown'\n const viewLabel = localizedMessages['ask_ai.view'] || 'View markdown'\n const copiedLabel = localizedMessages['ask_ai.copied'] || 'Copied'\n const [open, setOpen] = useState(false)\n const [isCopied, setIsCopied] = useState(false)\n const [isLoading, setIsLoading] = useState(false)\n const menuRef = useRef(null)\n\n const handleProvider = (provider: AskAIProvider) => {\n onOpenProvider?.(provider)\n\n if (provider.onClick) {\n provider.onClick()\n } else if (provider.href) {\n let url = provider.href\n const prompt = `You are a helpful assistant specialized in VTEX documentation. Answer questions based on the following documentation: ${pageUrl}`\n\n if (provider.id === 'chatgpt') {\n url = `https://chat.openai.com/?q=${encodeURIComponent(prompt)}`\n } else if (provider.id === 'copilot') {\n url = `https://copilot.microsoft.com/?q=${encodeURIComponent(prompt)}`\n }\n window.open(url, '_blank', 'noopener,noreferrer')\n }\n\n setOpen(false)\n }\n\n const handleCopy = async () => {\n if (isLoading) return\n if (isCopied) {\n setIsCopied(false)\n return\n }\n setIsLoading(true)\n try {\n const markdown = onCopyPage\n ? await onCopyPage()\n : await fetchMarkdown(filePath, contentEndpoint)\n\n if (!markdown) {\n throw new Error('No content received from API')\n }\n\n const success = copy(markdown)\n if (success) {\n setIsCopied(true)\n setTimeout(() => setIsCopied(false), 2000)\n } else {\n throw new Error('Failed to copy to clipboard')\n }\n } catch {\n setIsCopied(false)\n } finally {\n setIsLoading(false)\n }\n }\n\n const handleView = () => {\n if (filePath && rawContentBaseUrl) {\n window.open(\n joinUrl(rawContentBaseUrl, filePath),\n '_blank',\n 'noopener,noreferrer'\n )\n }\n }\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\n setOpen(false)\n }\n }\n\n if (open) {\n document.addEventListener('mousedown', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [open])\n\n return (\n \n \n \n {isCopied ? : }\n {isCopied ? copiedLabel : copyLabel}\n \n\n setOpen((isOpen) => !isOpen)}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n aria-controls=\"askai-menu\"\n >\n \n \n \n\n {open && (\n \n \n {providers.map((provider) => (\n handleProvider(provider)}\n role=\"menuitem\"\n aria-label={`Open ${provider.name}`}\n >\n \n \n {provider.name} \n \n \n ))}\n \n\n \n \n \n {viewLabel}\n \n \n \n )}\n \n )\n}\n\nexport default AskAIMenu\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ChatGPTIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default ChatGPTIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CopilotIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default CopilotIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ClaudeIcon = (props: IconProps) => (\n \n Claude\n \n \n)\n\nexport default ClaudeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GeminiIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default GeminiIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LongArrowIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default LongArrowIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst MarkdownIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default MarkdownIcon\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst baseBtn: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n gap: 3,\n px: 3,\n minHeight: 36,\n fontSize: 12,\n color: 'muted.0',\n backgroundColor: '#fff',\n border: '1px solid #E7E9EE',\n cursor: 'pointer',\n '&:hover': { backgroundColor: '#F8F7FC', color: '#000711' },\n}\n\nconst container: SxStyleProp = {\n position: 'relative',\n}\n\nconst group: SxStyleProp = {\n position: 'relative',\n display: 'inline-flex',\n borderRadius: '4px',\n overflow: 'hidden',\n width: '100%',\n}\n\nconst primaryBtn: SxStyleProp = {\n ...baseBtn,\n borderRight: '0',\n borderTopLeftRadius: '4px',\n borderBottomLeftRadius: '4px',\n width: '100%',\n}\n\nconst caretBtn: SxStyleProp = {\n ...baseBtn,\n px: 2,\n width: 36,\n justifyContent: 'center',\n borderTopRightRadius: '4px',\n borderBottomRightRadius: '4px',\n}\n\nconst askaiMenu: SxStyleProp = {\n position: 'absolute',\n width: 160,\n zIndex: 50,\n bg: 'white',\n color: 'muted.0',\n boxShadow:\n '0 8px 24px rgba(18, 21, 26, 0.12), 0 2px 6px rgba(18, 21, 26, 0.08)',\n border: '1px solid',\n borderColor: '#E7E9EE',\n borderRadius: '4px',\n overflow: 'hidden',\n backdropFilter: 'saturate(120%) blur(6px)',\n}\n\nconst askaiSection: SxStyleProp = {\n '& + &': {\n borderTop: '1px solid',\n borderColor: '#E7E9EE',\n },\n}\n\nconst askaiItem: SxStyleProp = {\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n textAlign: 'left',\n px: 3,\n py: 2,\n minHeight: 40,\n background: 'transparent',\n border: '0',\n cursor: 'pointer',\n fontSize: 12,\n color: 'muted.0',\n transition:\n 'background-color 120ms ease, color 120ms ease, transform 80ms ease',\n '&:hover': {\n backgroundColor: '#F8F7FC',\n color: '#000711',\n },\n '&:active': {\n transform: 'translateY(1px)',\n },\n}\n\nexport default {\n container,\n group,\n primaryBtn,\n caretBtn,\n askaiMenu,\n askaiSection,\n askaiItem,\n}\n","import {\n useCallback,\n useContext,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type KeyboardEvent,\n} from 'react'\nimport { createPortal } from 'react-dom'\nimport copy from 'copy-text-to-clipboard'\nimport { Box, Flex, Text } from '@vtex/brand-ui'\n\nimport BookIcon from 'components/icons/book-icon'\nimport CheckIcon from 'components/icons/check-icon'\nimport CloseIcon from 'components/icons/close-icon'\nimport CollapseIcon from 'components/icons/collapse-icon'\nimport CopyIcon from 'components/icons/copy-icon'\nimport ExpandIcon from 'components/icons/expand-icon'\nimport HistoryIcon from 'components/icons/history-icon'\nimport LikeIcon from 'components/icons/like-icon'\nimport LikeSelectedIcon from 'components/icons/like-selected-icon'\nimport RefreshIcon from 'components/icons/refresh-icon'\nimport SearchIcon from 'components/icons/search-icon'\nimport SendIcon from 'components/icons/send-icon'\nimport SparkleIcon from 'components/icons/sparkle-icon'\nimport NewChatIcon from 'components/icons/new-chat-icon'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\nimport { DEFAULT_ASK_ASSISTANT_EXAMPLES } from './default-examples'\nimport {\n conversationTitle,\n readHistory,\n upsertHistory,\n writeHistory,\n} from './history'\nimport MarkdownMessage, { stripAnswerMetadata } from './markdown'\nimport { createDefaultStream, isInternalEvent } from './stream'\nimport styles, { SPLIT_VIEW_MQ, splitViewCss } from './styles'\nimport type {\n AskAssistantProps,\n AssistantStreamEvent,\n ChatMessage,\n HistoryConversation,\n ProcessStep,\n} from './types'\n\nconst SPLIT_VIEW_STYLE_ID = 'ask-assistant-split-view'\n\nconst ensureSplitViewStyles = () => {\n if (typeof document === 'undefined') return\n let style = document.getElementById(SPLIT_VIEW_STYLE_ID) as HTMLStyleElement | null\n if (!style) {\n style = document.createElement('style')\n style.id = SPLIT_VIEW_STYLE_ID\n document.head.appendChild(style)\n }\n style.textContent = splitViewCss\n}\n\nconst createId = () => `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`\n\nconst isMacShortcut = () =>\n typeof navigator !== 'undefined' &&\n /Mac|iPhone|iPad|iPod/.test(navigator.platform)\n\nconst toolStepLabel = (name: string, labels: Record) => {\n if (name === 'search_documentation') return labels.stepSearchDocs\n if (name === 'search_endpoints') return labels.stepSearchEndpoints\n if (name === 'get_endpoint_details') return labels.stepReadEndpoints\n if (name === 'fetch_document') return labels.stepReadDocument\n if (name === 'final_answer') return labels.stepCreateResponse\n return labels.stepSearch\n}\n\nconst processHeaderText = (\n count: number,\n complete: boolean,\n labels: Record\n) => {\n if (!complete) return labels.processRunning\n if (count === 1) return labels.processCompletedOne\n return labels.processCompleted.replace('{count}', String(count))\n}\n\nconst ToolStepIcon = ({ name }: { name: string }) =>\n name === 'final_answer' || name === 'fetch_document' ? (\n \n ) : (\n \n )\n\nconst completeSteps = (steps: ProcessStep[] = []): ProcessStep[] =>\n steps.map((step) =>\n step.status === 'complete' ? step : { ...step, status: 'complete' }\n )\n\nconst ensureFinalStep = (steps: ProcessStep[] = []): ProcessStep[] => {\n const next = completeSteps(steps)\n if (next.some((step) => step.name === 'final_answer')) return next\n return [...next, { id: createId(), name: 'final_answer', status: 'complete' }]\n}\n\nconst AskAssistant = ({\n streamUrl,\n stream,\n open,\n defaultOpen = false,\n onOpenChange,\n hideTrigger = false,\n floatingOnMobile = true,\n enableShortcut = true,\n initialMessages = [],\n examples = DEFAULT_ASK_ASSISTANT_EXAMPLES,\n initialHistory = [],\n onAsk,\n onFeedback,\n}: AskAssistantProps) => {\n const { locale, setSidebarSectionHidden } = useContext(LibraryContext)\n const sidebarHiddenBeforeOpen = useRef(null)\n const localized = messages[locale] ?? messages.en\n const titleId = useId()\n const textareaRef = useRef(null)\n const listRef = useRef(null)\n const historyRef = useRef(null)\n const abortRef = useRef(null)\n const pendingToolsRef = useRef<{ name: string; stepId: string }[]>([])\n const conversationIdRef = useRef(null)\n const chatRef = useRef(initialMessages)\n\n const [mounted, setMounted] = useState(false)\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen)\n const [expanded, setExpanded] = useState(false)\n const [isSplitView, setIsSplitView] = useState(false)\n const [draft, setDraft] = useState('')\n const [chat, setChat] = useState(initialMessages)\n const [feedback, setFeedback] = useState>({})\n const [copiedId, setCopiedId] = useState(null)\n const [activeExampleId, setActiveExampleId] = useState(examples[0]?.id ?? '')\n const [history, setHistory] = useState(initialHistory)\n const [historyOpen, setHistoryOpen] = useState(false)\n\n const isOpen = open ?? uncontrolledOpen\n const isStreaming = chat.some((message) => message.status === 'streaming')\n const canSend = Boolean(draft.trim()) && !isStreaming\n const showFloatingTrigger =\n floatingOnMobile && !hideTrigger && mounted && !isOpen\n\n const labels = useMemo(\n () => ({\n button: localized['ask_assistant.button'] || 'Ask Assistant',\n title: localized['ask_assistant.title'] || 'Assistant',\n heroTitle: localized['ask_assistant.hero_title'] || 'How can I help you?',\n heroSubtitle:\n localized['ask_assistant.hero_subtitle'] ||\n 'Get answers from VTEX documentation.',\n placeholder:\n localized['ask_assistant.placeholder'] || 'Ask a question...',\n send: localized['ask_assistant.send'] || 'Send',\n close: localized['ask_assistant.close'] || 'Close',\n clear: localized['ask_assistant.clear'] || 'New chat',\n history: localized['ask_assistant.history'] || 'History',\n historyClear: localized['ask_assistant.history_clear'] || 'clear',\n expand: localized['ask_assistant.expand'] || 'Expand',\n collapse: localized['ask_assistant.collapse'] || 'Collapse',\n copy: localized['ask_assistant.copy'] || 'Copy',\n copied: localized['ask_assistant.copied'] || 'Copied',\n regenerate: localized['ask_assistant.regenerate'] || 'Regenerate',\n helpful: localized['ask_assistant.helpful'] || 'Helpful',\n notHelpful: localized['ask_assistant.not_helpful'] || 'Not helpful',\n error:\n localized['ask_assistant.error'] ||\n 'Could not reach the assistant. Please try again.',\n searching: localized['ask_assistant.searching'] || 'Searching...',\n searchingDocs:\n localized['ask_assistant.searching_docs'] || 'Searching documentation',\n searchingEndpoints:\n localized['ask_assistant.searching_endpoints'] || 'Searching endpoints',\n readingEndpoints:\n localized['ask_assistant.reading_endpoints'] ||\n 'Reading endpoint details',\n readingDocument:\n localized['ask_assistant.reading_document'] || 'Reading document',\n readFile: localized['ask_assistant.read_file'] || 'Read 1 file',\n readFiles: localized['ask_assistant.read_files'] || 'Read {count} files',\n foundEndpoint:\n localized['ask_assistant.found_endpoint'] || 'Found 1 endpoint',\n foundEndpoints:\n localized['ask_assistant.found_endpoints'] || 'Found {count} endpoints',\n examples: localized['ask_assistant.examples'] || 'Examples:',\n tool: localized['ask_assistant.tool'] || 'Tool',\n processRunning:\n localized['ask_assistant.process_running'] || 'Processing...',\n processCompleted:\n localized['ask_assistant.process_completed'] ||\n 'Process completed ({count} steps)',\n processCompletedOne:\n localized['ask_assistant.process_completed_one'] ||\n 'Process completed (1 step)',\n stepSearchDocs:\n localized['ask_assistant.step_search_docs'] || 'Search documentation',\n stepSearchEndpoints:\n localized['ask_assistant.step_search_endpoints'] || 'Search endpoints',\n stepReadEndpoints:\n localized['ask_assistant.step_read_endpoints'] ||\n 'Read endpoint details',\n stepReadDocument:\n localized['ask_assistant.step_read_document'] || 'Read document',\n stepCreateResponse:\n localized['ask_assistant.step_create_response'] || 'Create response',\n stepSearch: localized['ask_assistant.step_search'] || 'Search',\n }),\n [localized]\n )\n\n const categories = useMemo(\n () =>\n examples.filter((category) =>\n category.questions.some((question) => question.trim())\n ),\n [examples]\n )\n\n const setOpen = useCallback(\n (next: boolean) => {\n if (open === undefined) setUncontrolledOpen(next)\n onOpenChange?.(next)\n },\n [open, onOpenChange]\n )\n\n const persistConversation = useCallback(\n (id: string, messages: ChatMessage[]) => {\n const title = conversationTitle(messages)\n if (!title) return\n\n setHistory((current) => {\n const next = upsertHistory(current, { id, title, messages })\n writeHistory(next)\n return next\n })\n },\n []\n )\n\n const patchAssistant = useCallback(\n (\n id: string,\n patch: Partial | ((message: ChatMessage) => ChatMessage)\n ) => {\n setChat((current) =>\n current.map((message) => {\n if (message.id !== id) return message\n return typeof patch === 'function'\n ? patch(message)\n : { ...message, ...patch }\n })\n )\n },\n []\n )\n\n const runStream = useCallback(\n async (query: string, assistantId: string) => {\n abortRef.current?.abort()\n const controller = new AbortController()\n abortRef.current = controller\n pendingToolsRef.current = []\n let content = ''\n\n const applyContent = (next: string, status?: ChatMessage['status']) => {\n const visible = stripAnswerMetadata(next)\n if (!visible) return\n content = visible\n patchAssistant(assistantId, {\n content: visible,\n ...(status ? { status } : {}),\n })\n }\n\n const handleEvent = (event: AssistantStreamEvent) => {\n if (isInternalEvent(event.type)) return\n\n if (event.type === 'ToolCall' && event.name) {\n const stepId = createId()\n pendingToolsRef.current.push({ name: event.name, stepId })\n patchAssistant(assistantId, (message) => ({\n ...message,\n steps: [\n ...(message.steps ?? []),\n { id: stepId, name: event.name as string, status: 'running' },\n ],\n }))\n const answer =\n event.name === 'final_answer' &&\n typeof event.arguments?.answer === 'string'\n ? event.arguments.answer\n : ''\n if (answer) applyContent(answer)\n return\n }\n\n if (event.type === 'ToolOutput') {\n const pending = pendingToolsRef.current.shift()\n if (pending) {\n patchAssistant(assistantId, (message) => ({\n ...message,\n steps: (message.steps ?? []).map((step) =>\n step.id === pending.stepId\n ? { ...step, status: 'complete' }\n : step\n ),\n }))\n }\n if (\n event.output &&\n (event.is_final_answer || pending?.name === 'final_answer')\n ) {\n applyContent(event.output)\n }\n return\n }\n\n if (event.type === 'FinalAnswerStep' && event.output) {\n const visible = stripAnswerMetadata(event.output)\n content = visible\n patchAssistant(assistantId, (message) => ({\n ...message,\n content: visible,\n status: 'complete',\n steps: ensureFinalStep(message.steps),\n }))\n }\n }\n\n try {\n const run =\n stream ??\n (streamUrl ? createDefaultStream(streamUrl, locale) : undefined)\n if (!run) {\n throw new Error('AskAssistant requires stream or streamUrl')\n }\n await run(query, controller.signal, handleEvent)\n patchAssistant(assistantId, (message) => ({\n ...message,\n status: content ? 'complete' : 'error',\n content: content || labels.error,\n steps: content\n ? ensureFinalStep(message.steps)\n : completeSteps(message.steps),\n }))\n } catch (error) {\n if ((error as Error).name === 'AbortError') return\n patchAssistant(assistantId, (message) => ({\n ...message,\n status: 'error',\n content: labels.error,\n steps: completeSteps(message.steps),\n }))\n }\n },\n [labels, locale, stream, streamUrl, patchAssistant]\n )\n\n const submit = useCallback(\n async (text: string) => {\n const trimmed = text.trim()\n if (!trimmed || isStreaming) return\n\n const userMessage: ChatMessage = {\n id: createId(),\n role: 'user',\n content: trimmed,\n status: 'complete',\n }\n const assistantMessage: ChatMessage = {\n id: createId(),\n role: 'assistant',\n content: '',\n steps: [],\n status: 'streaming',\n }\n\n setDraft('')\n if (!conversationIdRef.current) conversationIdRef.current = createId()\n setChat((current) => {\n const next = [...current, userMessage, assistantMessage]\n chatRef.current = next\n return next\n })\n onAsk?.(trimmed)\n await runStream(trimmed, assistantMessage.id)\n },\n [isStreaming, onAsk, runStream]\n )\n\n const clearChat = () => {\n abortRef.current?.abort()\n if (conversationIdRef.current && chatRef.current.length > 0) {\n persistConversation(conversationIdRef.current, chatRef.current)\n }\n conversationIdRef.current = null\n setChat([])\n chatRef.current = []\n setFeedback({})\n setHistoryOpen(false)\n }\n\n const clearHistory = () => {\n setHistory([])\n writeHistory([])\n setHistoryOpen(false)\n }\n\n const openHistoryItem = (item: HistoryConversation) => {\n setHistoryOpen(false)\n if (item.id === conversationIdRef.current) return\n\n abortRef.current?.abort()\n if (conversationIdRef.current && chatRef.current.length > 0) {\n persistConversation(conversationIdRef.current, chatRef.current)\n }\n\n conversationIdRef.current = item.id\n chatRef.current = item.messages\n setChat(item.messages)\n setFeedback({})\n setDraft('')\n }\n\n const regenerate = (assistantId: string) => {\n const index = chat.findIndex((message) => message.id === assistantId)\n if (index < 1) return\n const userMessage = [...chat.slice(0, index)]\n .reverse()\n .find((message) => message.role === 'user')\n if (!userMessage) return\n\n const nextAssistant: ChatMessage = {\n id: createId(),\n role: 'assistant',\n content: '',\n steps: [],\n status: 'streaming',\n }\n\n setChat((current) => [\n ...current.slice(0, index),\n nextAssistant,\n ...current.slice(index + 1),\n ])\n setFeedback((current) => {\n const next = { ...current }\n delete next[assistantId]\n return next\n })\n void runStream(userMessage.content, nextAssistant.id)\n }\n\n const copyAnswer = (message: ChatMessage) => {\n const visible = stripAnswerMetadata(message.content)\n if (!visible) return\n copy(visible)\n setCopiedId(message.id)\n window.setTimeout(() => setCopiedId(null), 1600)\n }\n\n const vote = (message: ChatMessage, liked: boolean) => {\n setFeedback((current) => ({ ...current, [message.id]: liked }))\n const messageIndex = chat.findIndex((item) => item.id === message.id)\n const query =\n chat\n .slice(0, messageIndex)\n .reverse()\n .find((item) => item.role === 'user')?.content ?? ''\n onFeedback?.({ query, answer: stripAnswerMetadata(message.content), liked })\n }\n\n useEffect(() => {\n ensureSplitViewStyles()\n setMounted(true)\n const stored = readHistory()\n if (stored.length) setHistory(stored)\n\n const mq = window.matchMedia(SPLIT_VIEW_MQ)\n const updateSplitView = () => setIsSplitView(mq.matches)\n updateSplitView()\n mq.addEventListener('change', updateSplitView)\n\n return () => {\n abortRef.current?.abort()\n mq.removeEventListener('change', updateSplitView)\n }\n }, [])\n\n useLayoutEffect(() => {\n const root = document.documentElement\n if (!isOpen || !isSplitView) {\n root.style.removeProperty('--ask-assistant-top')\n return\n }\n\n const header = document.querySelector('[data-docs-header]')\n const sync = () => {\n const top = header\n ? Math.max(0, Math.round(header.getBoundingClientRect().bottom))\n : 0\n root.style.setProperty('--ask-assistant-top', `${top}px`)\n }\n\n sync()\n if (!header) return\n\n const observer = new ResizeObserver(sync)\n observer.observe(header)\n window.addEventListener('resize', sync)\n window.addEventListener('scroll', sync, { passive: true })\n\n return () => {\n observer.disconnect()\n window.removeEventListener('resize', sync)\n window.removeEventListener('scroll', sync)\n root.style.removeProperty('--ask-assistant-top')\n }\n }, [isOpen, isSplitView])\n\n useEffect(() => {\n if (!isSplitView) setExpanded(false)\n }, [isSplitView])\n\n useEffect(() => {\n if (!isOpen || !isSplitView) return\n\n setSidebarSectionHidden((hidden) => {\n sidebarHiddenBeforeOpen.current = hidden\n return true\n })\n\n return () => {\n const previous = sidebarHiddenBeforeOpen.current\n sidebarHiddenBeforeOpen.current = null\n if (previous !== null) setSidebarSectionHidden(previous)\n }\n }, [isOpen, isSplitView, setSidebarSectionHidden])\n\n useEffect(() => {\n if (!enableShortcut) return\n\n const onKeyDown = (event: globalThis.KeyboardEvent) => {\n if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 'i') {\n event.preventDefault()\n setOpen(!isOpen)\n }\n }\n\n window.addEventListener('keydown', onKeyDown)\n return () => window.removeEventListener('keydown', onKeyDown)\n }, [enableShortcut, isOpen, setOpen])\n\n useEffect(() => {\n if (!isOpen) {\n setHistoryOpen(false)\n return\n }\n\n const timer = window.setTimeout(() => textareaRef.current?.focus(), 50)\n return () => window.clearTimeout(timer)\n }, [isOpen])\n\n useEffect(() => {\n if (!isOpen) return\n\n const onKeyDown = (event: globalThis.KeyboardEvent) => {\n if (event.key !== 'Escape') return\n if (historyOpen) {\n setHistoryOpen(false)\n return\n }\n setOpen(false)\n }\n window.addEventListener('keydown', onKeyDown)\n return () => window.removeEventListener('keydown', onKeyDown)\n }, [historyOpen, isOpen, setOpen])\n\n useEffect(() => {\n if (!historyOpen) return\n\n const onPointerDown = (event: PointerEvent) => {\n if (\n historyRef.current &&\n !historyRef.current.contains(event.target as Node)\n ) {\n setHistoryOpen(false)\n }\n }\n\n window.addEventListener('pointerdown', onPointerDown)\n return () => window.removeEventListener('pointerdown', onPointerDown)\n }, [historyOpen])\n\n useEffect(() => {\n chatRef.current = chat\n if (isStreaming) return\n const id = conversationIdRef.current\n if (!id || chat.length === 0) return\n persistConversation(id, chat)\n }, [chat, isStreaming, persistConversation])\n\n useEffect(() => {\n const node = listRef.current\n if (node) node.scrollTop = node.scrollHeight\n }, [chat])\n\n useEffect(() => {\n if (!categories.some((category) => category.id === activeExampleId)) {\n setActiveExampleId(categories[0]?.id ?? '')\n }\n }, [activeExampleId, categories])\n\n const onDraftKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Enter' && !event.shiftKey) {\n event.preventDefault()\n void submit(draft)\n }\n }\n\n const isEmpty = chat.length === 0\n const activeCategory =\n categories.find((category) => category.id === activeExampleId) ??\n categories[0]\n\n const composer = (\n \n \n \n setDraft(event.currentTarget.value)\n }\n onKeyDown={onDraftKeyDown}\n />\n \n void submit(draft)}\n >\n \n \n \n \n \n )\n\n const panel = isOpen && mounted && (\n <>\n {isSplitView ? null : (\n setOpen(false)} />\n )}\n \n \n \n \n {labels.title}\n \n \n {isSplitView ? (\n setExpanded((value) => !value)}\n >\n {expanded ? (\n \n ) : (\n \n )}\n \n ) : null}\n \n \n \n \n setHistoryOpen((value) => !value)}\n >\n \n \n {historyOpen && history.length > 0 ? (\n \n \n {labels.history}\n \n {labels.historyClear}\n \n \n \n {history.map((item) => (\n openHistoryItem(item)}\n >\n \n {item.title}\n \n ))}\n \n \n ) : null}\n \n setOpen(false)}\n >\n \n \n \n \n\n {isEmpty ? (\n \n \n \n \n \n \n \n \n {labels.heroTitle}\n \n \n {labels.heroSubtitle}\n \n \n \n {composer}\n {activeCategory ? (\n \n {labels.examples}\n \n {categories.map((category) => {\n const Icon = category.Icon\n const isActive = category.id === activeCategory.id\n return (\n setActiveExampleId(category.id)}\n >\n {Icon ? (\n \n ) : null}\n {category.title}\n \n )\n })}\n \n \n {activeCategory.questions\n .filter((question) => question.trim())\n .map((question) => (\n void submit(question)}\n >\n {question}\n \n ))}\n \n \n ) : null}\n \n \n ) : (\n <>\n \n {chat.map((message) =>\n message.role === 'user' ? (\n \n {message.content}\n \n ) : (\n \n {message.status === 'streaming' ||\n (message.steps && message.steps.length > 0) ? (\n \n {message.status === 'error' ? null : (\n \n {message.status === 'complete' ? (\n \n \n \n ) : (\n \n )}\n \n {processHeaderText(\n message.steps?.length ?? 0,\n message.status === 'complete',\n labels\n )}\n \n \n )}\n {message.steps && message.steps.length > 0 ? (\n \n {message.steps.map((step) => (\n \n \n {labels.tool}\n \n \n \n {toolStepLabel(step.name, labels)}\n \n \n ))}\n \n ) : null}\n \n ) : null}\n {message.status === 'error' ? (\n {message.content}\n ) : message.content ? (\n \n ) : null}\n {message.status === 'complete' && message.content ? (\n \n vote(message, true)}\n >\n {feedback[message.id] === true ? (\n \n ) : (\n \n )}\n \n vote(message, false)}\n >\n \n \n copyAnswer(message)}\n >\n \n \n regenerate(message.id)}\n >\n \n \n \n ) : null}\n \n )\n )}\n \n {composer}\n \n )}\n \n \n )\n\n return (\n <>\n {hideTrigger ? null : (\n setOpen(!isOpen)}\n >\n \n {labels.button}\n \n \n {isMacShortcut() ? '⌘' : 'Ctrl'}\n \n \n I\n \n \n \n )}\n {showFloatingTrigger\n ? createPortal(\n setOpen(true)}\n >\n \n ,\n document.body\n )\n : null}\n {mounted ? createPortal(panel, document.body) : null}\n \n )\n}\n\nexport default AskAssistant\nexport { DEFAULT_ASK_ASSISTANT_EXAMPLES } from './default-examples'\nexport type {\n AskAssistantProps,\n AskAssistantFeedback,\n AskAssistantExampleCategory,\n AssistantStreamEvent,\n AssistantStreamHandler,\n ChatMessage,\n HistoryConversation,\n ProcessStep,\n} from './types'\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst BookIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default BookIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CollapseIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default CollapseIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ExpandIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default ExpandIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst HistoryIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default HistoryIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst RefreshIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default RefreshIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst SendIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default SendIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst SparkleIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default SparkleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst NewChatIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default NewChatIcon\n","import APIGuidesIcon from 'components/icons/api-guides-icon'\nimport APIReferenceIcon from 'components/icons/api-reference-icon'\nimport AppDevelopmentIcon from 'components/icons/app-development-icon'\nimport StorefrontDevelopmentIcon from 'components/icons/storefront-development-icon'\n\nimport type { AskAssistantExampleCategory } from './types'\n\nexport const DEFAULT_ASK_ASSISTANT_EXAMPLES: AskAssistantExampleCategory[] = [\n {\n id: 'guides',\n title: 'Guides',\n Icon: APIGuidesIcon,\n questions: [\n 'How do I authenticate with the VTEX APIs?',\n 'How do I get started with FastStore?',\n 'How do I configure a development workspace?',\n ],\n },\n {\n id: 'api-reference',\n title: 'API Reference',\n Icon: APIReferenceIcon,\n questions: [\n 'How do I get an order by ID?',\n 'How do I update a product SKU?',\n 'What is the Catalog API used for?',\n ],\n },\n {\n id: 'storefront',\n title: 'Storefront',\n Icon: StorefrontDevelopmentIcon,\n questions: [\n 'How do I customize a FastStore component?',\n 'How do I create a store theme?',\n 'How do I add a custom page to my storefront?',\n ],\n },\n {\n id: 'apps',\n title: 'Apps',\n Icon: AppDevelopmentIcon,\n questions: [\n 'How do I create a VTEX IO app?',\n 'How do I publish an app to the VTEX App Store?',\n 'How do I use React in a VTEX IO app?',\n ],\n },\n]\n","import type { ChatMessage, HistoryConversation } from './types'\n\nexport const HISTORY_STORAGE_KEY = 'vtex-ask-assistant-history'\nexport const MAX_HISTORY_ITEMS = 20\n\nconst isChatMessage = (value: unknown): value is ChatMessage => {\n if (!value || typeof value !== 'object') return false\n const message = value as ChatMessage\n return (\n typeof message.id === 'string' &&\n (message.role === 'user' || message.role === 'assistant') &&\n typeof message.content === 'string' &&\n (message.status === 'streaming' ||\n message.status === 'complete' ||\n message.status === 'error')\n )\n}\n\nconst parseConversation = (value: unknown): HistoryConversation | null => {\n if (!value || typeof value !== 'object') return null\n const item = value as HistoryConversation\n if (typeof item.id !== 'string' || !Array.isArray(item.messages)) return null\n const messages = item.messages.filter(isChatMessage)\n const title =\n typeof item.title === 'string' && item.title.trim()\n ? item.title.trim()\n : messages.find((message) => message.role === 'user')?.content.trim()\n if (!title || messages.length === 0) return null\n return { id: item.id, title, messages }\n}\n\nexport const conversationTitle = (messages: ChatMessage[]) =>\n messages.find((message) => message.role === 'user')?.content.trim() ?? ''\n\nexport const freezeMessages = (messages: ChatMessage[]): ChatMessage[] =>\n messages.map((message) =>\n message.status === 'streaming'\n ? {\n ...message,\n status: message.content ? 'complete' : 'error',\n steps: message.steps?.map((step) => ({\n ...step,\n status: 'complete' as const,\n })),\n }\n : message\n )\n\nexport const readHistory = (\n key = HISTORY_STORAGE_KEY\n): HistoryConversation[] => {\n if (typeof window === 'undefined') return []\n\n try {\n const raw = window.localStorage.getItem(key)\n if (!raw) return []\n const parsed = JSON.parse(raw)\n if (!Array.isArray(parsed)) return []\n return parsed\n .map(parseConversation)\n .filter((item): item is HistoryConversation => Boolean(item))\n } catch {\n return []\n }\n}\n\nexport const writeHistory = (\n items: HistoryConversation[],\n key = HISTORY_STORAGE_KEY\n): void => {\n if (typeof window === 'undefined') return\n\n try {\n window.localStorage.setItem(key, JSON.stringify(items))\n } catch {\n // Ignore quota / private-mode failures.\n }\n}\n\nexport const upsertHistory = (\n current: HistoryConversation[],\n conversation: HistoryConversation\n): HistoryConversation[] => {\n const title = conversation.title.trim()\n const messages = freezeMessages(conversation.messages)\n if (!title || messages.length === 0) return current\n\n return [\n { ...conversation, title, messages },\n ...current.filter((item) => item.id !== conversation.id),\n ].slice(0, MAX_HISTORY_ITEMS)\n}\n","import type { ReactNode } from 'react'\nimport { Box } from '@vtex/brand-ui'\n\nimport AnswerSources, { splitAnswerSources } from './sources'\nimport styles from './styles'\n\nconst ANSWER_METADATA_RE =\n /(?:\\r?\\n[ \\t]*){0,3}(?:[*_]{1,2}[ \\t]*)?Language:[ \\t]*[^\\n|]+[ \\t]*\\|[ \\t]*Confidence:[ \\t]*[^\\n*_]+(?:[ \\t]*[*_]{1,2})?[ \\t]*$/i\n\nexport const stripAnswerMetadata = (content: string) =>\n content.replace(ANSWER_METADATA_RE, '').trimEnd()\n\nconst INLINE_TOKEN =\n /(\\[[^\\]]+\\]\\([^)\\s]+(?:\\s+\"[^\"]*\")?\\)|\\*\\*[^*]+\\*\\*|`[^`]+`)/g\n\nconst renderInline = (text: string, keyPrefix: string): ReactNode[] => {\n const parts = text.split(INLINE_TOKEN)\n\n return parts.map((part, index) => {\n const key = `${keyPrefix}-${index}`\n if (!part) return null\n\n const link = part.match(/^\\[([^\\]]+)\\]\\(([^)\\s]+)(?:\\s+\"[^\"]*\")?\\)$/)\n if (link) {\n return (\n \n {renderInline(link[1], key)}\n \n )\n }\n\n if (part.startsWith('**') && part.endsWith('**')) {\n return {renderInline(part.slice(2, -2), key)}\n }\n\n if (part.startsWith('`') && part.endsWith('`')) {\n return (\n \n {part.slice(1, -1)}\n \n )\n }\n\n return part\n })\n}\n\nconst headingTag = (level: number) => {\n if (level <= 1) return 'h1'\n if (level === 2) return 'h2'\n if (level === 3) return 'h3'\n return 'h4'\n}\n\nconst LIST_ITEM_RE = /^(\\s*)([-*]|\\d+\\.)\\s+(.*)$/\n\ntype ListMarker = {\n indent: number\n ordered: boolean\n text: string\n}\n\nconst parseListMarker = (line: string): ListMarker | null => {\n const match = line.match(LIST_ITEM_RE)\n if (!match) return null\n\n return {\n indent: match[1].length,\n ordered: /^\\d+\\.$/.test(match[2]),\n text: match[3],\n }\n}\n\nconst nextNonBlank = (lines: string[], from: number) => {\n let index = from\n while (index < lines.length && !lines[index].trim()) index += 1\n return index\n}\n\nconst renderList = (\n lines: string[],\n start: number,\n minIndent: number\n): { items: ReactNode[]; ordered: boolean; end: number } => {\n const first = parseListMarker(lines[start])\n if (!first) return { items: [], ordered: false, end: start }\n\n const baseIndent = first.indent\n const ordered = first.ordered\n const items: ReactNode[] = []\n let index = start\n\n while (index < lines.length) {\n const itemIndex = nextNonBlank(lines, index)\n if (itemIndex >= lines.length) break\n\n const marker = parseListMarker(lines[itemIndex])\n if (\n !marker ||\n marker.indent < minIndent ||\n marker.indent !== baseIndent ||\n marker.ordered !== ordered\n ) {\n break\n }\n\n index = itemIndex + 1\n const children: ReactNode[] = [\n ...renderInline(marker.text, `li-${itemIndex}`),\n ]\n\n const nestedIndex = nextNonBlank(lines, index)\n const nestedMarker =\n nestedIndex < lines.length ? parseListMarker(lines[nestedIndex]) : null\n\n if (nestedMarker && nestedMarker.indent > baseIndent) {\n const nested = renderList(lines, nestedIndex, baseIndent + 1)\n children.push(\n \n {nested.items}\n \n )\n index = nested.end\n }\n\n items.push(\n \n {children}\n \n )\n }\n\n return { items, ordered, end: index }\n}\n\nconst MarkdownMessage = ({ content }: { content: string }) => {\n const { body, sources } = splitAnswerSources(stripAnswerMetadata(content))\n const lines = body.replace(/\\r\\n/g, '\\n').split('\\n')\n const nodes: ReactNode[] = []\n let index = 0\n\n while (index < lines.length) {\n const line = lines[index]\n\n if (!line.trim()) {\n index += 1\n continue\n }\n\n const heading = line.match(/^(#{1,6})\\s+(.*)$/)\n if (heading) {\n const Tag = headingTag(heading[1].length)\n nodes.push(\n \n {renderInline(heading[2], `h-${index}`)}\n \n )\n index += 1\n continue\n }\n\n if (/^---+$/.test(line.trim())) {\n nodes.push()\n index += 1\n continue\n }\n\n if (parseListMarker(line)) {\n const list = renderList(lines, index, 0)\n nodes.push(\n \n {list.items}\n \n )\n index = list.end\n continue\n }\n\n const paragraph: string[] = []\n const paragraphIndex = index\n while (\n index < lines.length &&\n lines[index].trim() &&\n !lines[index].match(/^#{1,6}\\s+/) &&\n !parseListMarker(lines[index]) &&\n !/^---+$/.test(lines[index].trim())\n ) {\n paragraph.push(lines[index])\n index += 1\n }\n\n nodes.push(\n \n {renderInline(paragraph.join(' '), `p-${paragraphIndex}`)}\n \n )\n }\n\n return (\n \n {nodes}\n \n \n )\n}\n\nexport default MarkdownMessage\n","import { useContext } from 'react'\nimport { Box, Flex, Text } from '@vtex/brand-ui'\n\nimport ExternalLinkIcon from 'components/icons/external-link-icon'\nimport PaperIcon from 'components/icons/paper-icon'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\n\nimport styles from './styles'\n\nexport type AnswerSource = {\n title: string\n href: string\n}\n\nconst SOURCES_HEADING_RE =\n /^(?:#{1,6}\\s+)?\\*{0,2}(?:references?|sources?|fontes?|refer[eê]ncias?|fuentes?)\\*{0,2}:?\\*{0,2}\\s*$/i\n\nconst LINK_RE = /\\[([^\\]]+)\\]\\(([^)\\s]+)(?:\\s+\"[^\"]*\")?\\)/\n\nexport const splitAnswerSources = (content: string) => {\n const lines = content.replace(/\\r\\n/g, '\\n').split('\\n')\n let headingIndex = -1\n\n for (let i = lines.length - 1; i >= 0; i -= 1) {\n if (SOURCES_HEADING_RE.test(lines[i].trim())) {\n headingIndex = i\n break\n }\n }\n\n if (headingIndex === -1) {\n return { body: content, sources: [] as AnswerSource[] }\n }\n\n const seen = new Set()\n const sources: AnswerSource[] = []\n\n for (let i = headingIndex + 1; i < lines.length; i += 1) {\n const line = lines[i].trim()\n if (!line || /^---+$/.test(line)) continue\n const match = line.match(LINK_RE)\n if (!match) continue\n const href = match[2]\n if (seen.has(href)) continue\n seen.add(href)\n sources.push({\n title: match[1].replace(/\\*\\*/g, '').trim() || href,\n href,\n })\n }\n\n if (!sources.length) {\n return { body: content, sources: [] as AnswerSource[] }\n }\n\n let end = headingIndex\n while (\n end > 0 &&\n (!lines[end - 1].trim() || /^---+$/.test(lines[end - 1].trim()))\n ) {\n end -= 1\n }\n\n return {\n body: lines.slice(0, end).join('\\n').trimEnd(),\n sources,\n }\n}\n\nconst originLabel = (href: string) => {\n try {\n const host = new URL(href).hostname.replace(/^www\\./, '')\n if (host === 'help.vtex.com') return 'Help Center'\n if (host === 'developers.vtex.com') return 'Developers'\n return host\n } catch {\n return ''\n }\n}\n\nconst AnswerSources = ({ sources }: { sources: AnswerSource[] }) => {\n const { locale } = useContext(LibraryContext)\n const localized = messages[locale] ?? messages.en\n const title = localized['ask_assistant.sources'] || 'Sources'\n\n if (!sources.length) return null\n\n return (\n \n {title}\n \n {sources.map((source) => {\n const origin = originLabel(source.href)\n return (\n \n \n \n \n \n \n {source.title}\n \n {origin ? {origin} : null}\n \n \n \n \n \n )\n })}\n \n \n )\n}\n\nexport default AnswerSources\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst focusRing: SxStyleProp = {\n ':focus-visible': {\n outline: '2px solid #E31C58',\n outlineOffset: '2px',\n },\n}\n\nconst trigger: SxStyleProp = {\n display: ['none', 'none', 'none', 'inline-flex'],\n alignItems: 'center',\n gap: '8px',\n height: '36px',\n px: '12px',\n border: '1px solid #E7E9EE',\n borderRadius: '6px',\n backgroundColor: '#FFFFFF',\n color: 'muted.0',\n fontSize: '13px',\n fontWeight: '500',\n lineHeight: '16px',\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n transition:\n 'background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease',\n ':hover': {\n backgroundColor: '#F8F7FC',\n borderColor: '#D8D8E3',\n color: '#000711',\n },\n ...focusRing,\n}\n\nconst floatingTrigger: SxStyleProp = {\n display: ['inline-flex', 'inline-flex', 'inline-flex', 'none'],\n position: 'fixed',\n right: '16px',\n bottom: 'calc(16px + env(safe-area-inset-bottom, 0px))',\n zIndex: 40,\n alignItems: 'center',\n justifyContent: 'center',\n width: '56px',\n height: '56px',\n padding: 0,\n border: 'none',\n borderRadius: '50%',\n backgroundColor: '#142032',\n color: '#FFFFFF',\n cursor: 'pointer',\n boxShadow: '0 8px 24px rgba(20, 32, 50, 0.28)',\n transition: 'background-color 0.15s ease, transform 0.15s ease',\n ':hover': {\n backgroundColor: '#000711',\n },\n ':active': {\n transform: 'scale(0.96)',\n },\n ...focusRing,\n}\n\nconst triggerIcon: SxStyleProp = {\n flexShrink: 0,\n}\n\nconst triggerShortcut: SxStyleProp = {\n display: ['none', 'none', 'none', 'none', 'inline-flex'],\n alignItems: 'center',\n gap: '4px',\n ml: '2px',\n}\n\nconst triggerKbd: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '20px',\n height: '20px',\n px: '5px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n background: '#FAFAFB',\n boxShadow: '0 1px 0 #E7E9EE',\n fontSize: '11px',\n fontWeight: '400',\n fontFamily: 'inherit',\n color: '#4A596B',\n lineHeight: '20px',\n letterSpacing: 0,\n}\n\n/** First Brand UI / Theme UI breakpoint — panel is a side column, not a sheet. */\nexport const SPLIT_VIEW_MQ = '(min-width: 40em)'\nexport const PANEL_WIDTH = 'min(400px, 100vw)'\nexport const PANEL_EXPANDED_WIDTH = 'min(720px, 80vw)'\n\nexport const splitViewCss = `\n@media screen and ${SPLIT_VIEW_MQ} {\n html:has([data-ask-assistant-panel]) {\n --ask-assistant-width: ${PANEL_WIDTH};\n --ask-assistant-top: 0px;\n }\n html:has([data-ask-assistant-panel][data-expanded=\"true\"]) {\n --ask-assistant-width: ${PANEL_EXPANDED_WIDTH};\n }\n html:has([data-ask-assistant-panel]) [data-docs-header] {\n max-width: none;\n }\n html:has([data-ask-assistant-panel]) [data-docs-header] ~ * {\n box-sizing: border-box;\n padding-right: var(--ask-assistant-width) !important;\n }\n html:has([data-ask-assistant-panel]) [data-article-aside] {\n display: none !important;\n }\n html:has([data-ask-assistant-panel]):not(:has([data-docs-header])) body {\n box-sizing: border-box;\n padding-right: var(--ask-assistant-width);\n }\n}\n`\n\nconst overlay: SxStyleProp = {\n display: ['block', 'none'],\n position: 'fixed',\n inset: 0,\n backgroundColor: 'rgba(20, 32, 50, 0.32)',\n backdropFilter: 'blur(2px)',\n WebkitBackdropFilter: 'blur(2px)',\n zIndex: 10000,\n}\n\nconst EMPTY_STATE_BACKGROUND = [\n 'radial-gradient(120% 80% at 0% 0%, #F8DDEC 0%, rgba(248, 221, 236, 0) 54%)',\n 'radial-gradient(110% 85% at 100% 100%, #D2EEF8 0%, rgba(210, 238, 248, 0) 56%)',\n 'linear-gradient(135deg, #FDF6FB 0%, #F6F8FD 46%, #EEF7FC 100%)',\n].join(', ')\n\nconst panel = (expanded: boolean): SxStyleProp => ({\n position: 'fixed',\n top: [0, 'var(--ask-assistant-top, 0px)'],\n right: 0,\n bottom: 0,\n zIndex: [10001, 40],\n display: 'flex',\n flexDirection: 'column',\n width: expanded ? ['100vw', PANEL_EXPANDED_WIDTH] : ['100vw', PANEL_WIDTH],\n maxWidth: '100vw',\n backgroundColor: '#FFFFFF',\n borderLeft: '1px solid #E7E9EE',\n boxShadow: ['-8px 0 32px rgba(20, 32, 50, 0.12)', 'none'],\n overscrollBehavior: 'contain',\n transition: 'width 0.2s ease',\n})\n\nconst header: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n flexShrink: 0,\n px: '16px',\n py: '12px',\n borderBottom: '1px solid #E7E9EE',\n backgroundColor: '#FFFFFF',\n}\n\nconst headerTitle: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n color: '#142032',\n fontSize: '14px',\n fontWeight: '600',\n lineHeight: '20px',\n letterSpacing: '-0.01em',\n}\n\nconst headerActions: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n gap: '2px',\n}\n\nconst iconButton: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '32px',\n height: '32px',\n padding: 0,\n border: 'none',\n borderRadius: '6px',\n background: 'transparent',\n color: '#4A596B',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease, color 0.15s ease',\n ':hover': {\n backgroundColor: '#F8F7FC',\n color: '#142032',\n },\n ':disabled': {\n color: '#C7CDD6',\n cursor: 'default',\n backgroundColor: 'transparent',\n },\n ':disabled:hover': {\n color: '#C7CDD6',\n backgroundColor: 'transparent',\n },\n ...focusRing,\n}\n\nconst iconButtonActive: SxStyleProp = {\n ...iconButton,\n backgroundColor: '#F8F7FC',\n color: '#142032',\n}\n\nconst historyWrap: SxStyleProp = {\n position: 'relative',\n}\n\nconst historyMenu: SxStyleProp = {\n position: 'absolute',\n top: 'calc(100% + 6px)',\n right: 0,\n zIndex: 2,\n display: 'flex',\n flexDirection: 'column',\n width: '260px',\n maxWidth: 'min(260px, calc(100vw - 24px))',\n py: '8px',\n backgroundColor: '#FFFFFF',\n border: '1px solid #E7E9EE',\n borderRadius: '8px',\n boxShadow:\n '0 8px 24px rgba(18, 21, 26, 0.12), 0 2px 6px rgba(18, 21, 26, 0.08)',\n overflow: 'hidden',\n}\n\nconst historyHeader: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '12px',\n px: '12px',\n pb: '8px',\n}\n\nconst historyTitle: SxStyleProp = {\n color: 'muted.1',\n fontSize: '12px',\n fontWeight: '600',\n lineHeight: '16px',\n textTransform: 'uppercase',\n letterSpacing: '0.04em',\n}\n\nconst historyClear: SxStyleProp = {\n padding: 0,\n border: 'none',\n background: 'transparent',\n color: '#D71D55',\n fontSize: '13px',\n fontWeight: '600',\n lineHeight: '16px',\n cursor: 'pointer',\n ':hover': {\n color: '#C81E51',\n textDecoration: 'underline',\n },\n ...focusRing,\n}\n\nconst historyList: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n maxHeight: '280px',\n overflowY: 'auto',\n px: '4px',\n}\n\nconst historyItem: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n width: '100%',\n px: '8px',\n py: '8px',\n border: 'none',\n borderRadius: '6px',\n background: 'transparent',\n color: '#142032',\n fontSize: '13px',\n fontWeight: '400',\n lineHeight: '18px',\n textAlign: 'left',\n cursor: 'pointer',\n ':hover': {\n backgroundColor: '#F8F7FC',\n },\n ...focusRing,\n}\n\nconst historyItemIcon: SxStyleProp = {\n flexShrink: 0,\n color: '#4A596B',\n}\n\nconst historyItemText: SxStyleProp = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}\n\nconst messages: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n gap: '16px',\n px: '16px',\n py: '16px',\n overflowY: 'auto',\n}\n\nconst userBubble: SxStyleProp = {\n alignSelf: 'flex-end',\n maxWidth: '85%',\n px: '12px',\n py: '8px',\n borderRadius: '8px',\n backgroundColor: '#F8F7FC',\n border: '1px solid #EDEAF6',\n color: '#142032',\n fontSize: '14px',\n lineHeight: '20px',\n wordBreak: 'break-word',\n}\n\nconst assistantBlock: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n gap: '12px',\n width: '100%',\n}\n\nconst process: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '10px',\n width: '100%',\n}\n\nconst processHeader: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n color: '#5B6E84',\n fontSize: '13px',\n fontWeight: '400',\n lineHeight: '20px',\n}\n\nconst processCheck: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '16px',\n height: '16px',\n borderRadius: '50%',\n backgroundColor: '#38853C',\n color: '#FFFFFF',\n flexShrink: 0,\n}\n\nconst processSpinner: SxStyleProp = {\n width: '14px',\n height: '14px',\n borderRadius: '50%',\n border: '2px solid #E7E9EE',\n borderTopColor: '#5B6E84',\n flexShrink: 0,\n animation: 'askAssistantSpin 0.8s linear infinite',\n '@keyframes askAssistantSpin': {\n from: { transform: 'rotate(0deg)' },\n to: { transform: 'rotate(360deg)' },\n },\n}\n\nconst processSteps: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n}\n\nconst processStep: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n color: '#142032',\n fontSize: '13px',\n fontWeight: '400',\n lineHeight: '18px',\n}\n\nconst processBadge: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '20px',\n px: '8px',\n borderRadius: '4px',\n backgroundColor: '#F4F5F7',\n color: '#4A596B',\n fontSize: '12px',\n fontWeight: '500',\n lineHeight: '16px',\n flexShrink: 0,\n}\n\nconst processStepIcon: SxStyleProp = {\n flexShrink: 0,\n color: '#4A596B',\n}\n\nconst processBookIcon: SxStyleProp = {\n flexShrink: 0,\n color: '#E31C58',\n}\n\nconst processStepLabel: SxStyleProp = {\n color: '#142032',\n fontSize: '13px',\n lineHeight: '18px',\n}\n\nconst messageActions: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n mt: '4px',\n}\n\nconst actionButton: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '28px',\n height: '28px',\n padding: 0,\n border: '1px solid transparent',\n borderRadius: '6px',\n background: 'transparent',\n color: '#A1A8B3',\n cursor: 'pointer',\n transition:\n 'background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease',\n ':hover': {\n backgroundColor: '#FFFFFF',\n borderColor: '#E7E9EE',\n color: '#4A596B',\n },\n ...focusRing,\n}\n\nconst actionButtonActive: SxStyleProp = {\n ...actionButton,\n color: '#142032',\n backgroundColor: '#F8F7FC',\n borderColor: '#EDEAF6',\n}\n\nconst dislikeIcon: SxStyleProp = {\n transform: 'rotate(180deg)',\n}\n\nconst inputWrap: SxStyleProp = {\n flexShrink: 0,\n px: '16px',\n pb: '16px',\n pt: '12px',\n borderTop: '1px solid #E7E9EE',\n backgroundColor: '#FFFFFF',\n}\n\nconst inputWrapCentered: SxStyleProp = {\n flexShrink: 0,\n width: '100%',\n px: '16px',\n pb: '8px',\n}\n\nconst emptyState: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n overflowY: 'auto',\n backgroundColor: '#F7F8FC',\n backgroundImage: EMPTY_STATE_BACKGROUND,\n}\n\nconst emptyMain: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'stretch',\n justifyContent: 'center',\n flex: 1,\n minHeight: '200px',\n}\n\nconst emptyHero: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n px: '24px',\n mb: '20px',\n}\n\nconst emptyHeroIcon: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n mb: '8px',\n color: '#5B6E84',\n svg: {\n overflow: 'visible',\n },\n path: {\n strokeWidth: '1',\n strokeLinecap: 'round',\n },\n}\n\nconst emptyHeroCopy: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '6px',\n mt: '4px',\n textAlign: 'center',\n}\n\nconst emptyHeroTitle: SxStyleProp = {\n m: 0,\n color: '#142032',\n fontSize: '22px',\n fontWeight: '600',\n lineHeight: '28px',\n letterSpacing: '-0.02em',\n}\n\nconst emptyHeroSubtitle: SxStyleProp = {\n m: 0,\n color: '#4A596B',\n fontSize: '14px',\n fontWeight: '400',\n lineHeight: '20px',\n}\n\nconst examples: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n width: '100%',\n px: '16px',\n pt: '12px',\n pb: '16px',\n}\n\nconst examplesLabel: SxStyleProp = {\n color: 'muted.1',\n fontSize: '12px',\n fontWeight: '600',\n lineHeight: '16px',\n textTransform: 'uppercase',\n letterSpacing: '0.04em',\n}\n\nconst examplePills: SxStyleProp = {\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n overflowX: 'auto',\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n}\n\nconst examplePill = (active: boolean): SxStyleProp => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '6px',\n height: '32px',\n px: '12px',\n border: `1px solid ${active ? 'rgba(216, 216, 227, 0.9)' : 'rgba(231, 233, 238, 0.8)'}`,\n borderRadius: '16px',\n backgroundColor: active\n ? 'rgba(248, 247, 252, 0.92)'\n : 'rgba(255, 255, 255, 0.72)',\n color: '#4A596B',\n fontSize: '13px',\n fontWeight: active ? '600' : '500',\n lineHeight: '16px',\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n flexShrink: 0,\n backdropFilter: 'blur(10px)',\n WebkitBackdropFilter: 'blur(10px)',\n transition: 'background-color 0.15s ease, border-color 0.15s ease',\n ':hover': {\n borderColor: '#3A4F66',\n color: '#4A596B',\n },\n ...focusRing,\n})\n\nconst examplePillIcon: SxStyleProp = {\n width: '14px',\n height: '14px',\n minWidth: '14px',\n minHeight: '14px',\n flexShrink: 0,\n}\n\nconst exampleQuestions: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n}\n\nconst exampleQuestion: SxStyleProp = {\n display: 'block',\n width: '100%',\n px: '12px',\n py: '10px',\n border: '1px solid rgba(231, 233, 238, 0.8)',\n borderRadius: '8px',\n background: 'rgba(255, 255, 255, 0.72)',\n color: '#4A596B',\n fontSize: '13px',\n lineHeight: '20px',\n textAlign: 'left',\n cursor: 'pointer',\n backdropFilter: 'blur(10px)',\n WebkitBackdropFilter: 'blur(10px)',\n transition:\n 'background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease',\n ':hover': {\n backgroundColor: 'rgba(248, 247, 252, 0.92)',\n borderColor: '#D8D8E3',\n color: '#142032',\n },\n ...focusRing,\n}\n\nconst inputBox: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n px: '12px',\n pt: '10px',\n pb: '10px',\n border: '1px solid #E7E9EE',\n borderRadius: '8px',\n backgroundColor: '#FFFFFF',\n transition: 'border-color 0.15s ease, box-shadow 0.15s ease',\n ':hover': {\n borderColor: '#C7CDD6',\n },\n ':focus-within': {\n borderColor: '#E31C58',\n boxShadow: '0 0 0 3px rgba(227, 28, 88, 0.16)',\n },\n}\n\nconst inputBoxEmpty: SxStyleProp = {\n ...inputBox,\n backgroundColor: 'rgba(255, 255, 255, 0.86)',\n borderColor: 'rgba(231, 233, 238, 0.85)',\n boxShadow: '0 10px 32px rgba(20, 32, 50, 0.06)',\n backdropFilter: 'blur(16px)',\n WebkitBackdropFilter: 'blur(16px)',\n ':focus-within': {\n borderColor: '#E31C58',\n boxShadow:\n '0 0 0 3px rgba(227, 28, 88, 0.16), 0 10px 32px rgba(20, 32, 50, 0.06)',\n },\n}\n\nconst textarea: SxStyleProp = {\n width: '100%',\n minHeight: '44px',\n maxHeight: '120px',\n border: 'none',\n outline: 'none',\n resize: 'none',\n background: 'transparent',\n color: '#142032',\n fontSize: '14px',\n lineHeight: '20px',\n fontFamily: 'inherit',\n '::placeholder': {\n color: '#A1A8B3',\n },\n ':disabled': {\n color: '#4A596B',\n },\n}\n\nconst inputFooter: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n}\n\nconst sendButton = (enabled: boolean): SxStyleProp => ({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '32px',\n height: '32px',\n padding: 0,\n border: 'none',\n borderRadius: '6px',\n backgroundColor: '#142032',\n color: '#FFFFFF',\n opacity: enabled ? 1 : 0.55,\n cursor: enabled ? 'pointer' : 'not-allowed',\n transition: 'background-color 0.15s ease, opacity 0.15s ease',\n ':hover': {\n backgroundColor: enabled ? '#000711' : '#142032',\n },\n ...focusRing,\n})\n\nconst markdown: SxStyleProp = {\n width: '100%',\n color: '#142032',\n fontSize: '14px',\n lineHeight: '22px',\n}\n\nconst markdownParagraph: SxStyleProp = {\n margin: 0,\n '& + &': {\n mt: '10px',\n },\n}\n\nconst markdownHeading: SxStyleProp = {\n margin: '0 0 8px',\n fontSize: '15px',\n fontWeight: '600',\n lineHeight: '22px',\n letterSpacing: '-0.01em',\n color: '#142032',\n}\n\nconst markdownList: SxStyleProp = {\n margin: '8px 0',\n paddingLeft: '20px',\n listStylePosition: 'outside',\n 'li + li': {\n mt: '6px',\n },\n 'ol, ul': {\n mt: '6px',\n mb: 0,\n },\n}\n\nconst markdownOrderedList: SxStyleProp = {\n ...markdownList,\n listStyleType: 'decimal',\n}\n\nconst markdownUnorderedList: SxStyleProp = {\n ...markdownList,\n listStyleType: 'disc',\n}\n\nconst markdownListItem: SxStyleProp = {\n display: 'list-item',\n}\n\nconst markdownLink: SxStyleProp = {\n color: '#D71D55',\n fontWeight: '600',\n textDecoration: 'none',\n ':hover': {\n color: '#C81E51',\n textDecoration: 'underline',\n textUnderlineOffset: '2px',\n },\n}\n\nconst markdownRule: SxStyleProp = {\n border: 'none',\n borderTop: '1px solid #E7E9EE',\n my: '12px',\n}\n\nconst inlineCode: SxStyleProp = {\n px: '4px',\n py: '1px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n backgroundColor: '#F8F7FC',\n fontSize: '13px',\n fontFamily: 'monospace',\n}\n\nconst sources: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n width: '100%',\n mt: '16px',\n pt: '14px',\n borderTop: '1px solid #E7E9EE',\n}\n\nconst sourcesLabel: SxStyleProp = {\n color: 'muted.1',\n fontSize: '12px',\n fontWeight: '600',\n lineHeight: '16px',\n textTransform: 'uppercase',\n letterSpacing: '0.04em',\n}\n\nconst sourcesList: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n}\n\nconst sourceCard: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n gap: '10px',\n width: '100%',\n px: '10px',\n py: '8px',\n border: '1px solid #E7E9EE',\n borderRadius: '8px',\n backgroundColor: '#FFFFFF',\n color: 'inherit',\n textDecoration: 'none',\n cursor: 'pointer',\n transition:\n 'background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease',\n ':hover': {\n backgroundColor: '#F8F7FC',\n borderColor: '#D8D8E3',\n '.source-title': {\n color: '#000711',\n },\n '.source-arrow': {\n color: '#4A596B',\n },\n },\n ':focus-visible': {\n outline: '2px solid #E31C58',\n outlineOffset: '2px',\n },\n}\n\nconst sourceIcon: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '28px',\n height: '28px',\n borderRadius: '6px',\n backgroundColor: '#F8F7FC',\n color: '#4A596B',\n flexShrink: 0,\n}\n\nconst sourceCopy: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '2px',\n minWidth: 0,\n flex: 1,\n}\n\nconst sourceTitle: SxStyleProp = {\n color: '#142032',\n fontSize: '13px',\n fontWeight: '500',\n lineHeight: '18px',\n overflow: 'hidden',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n}\n\nconst sourceMeta: SxStyleProp = {\n color: '#5B6E84',\n fontSize: '12px',\n fontWeight: '400',\n lineHeight: '16px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n}\n\nconst sourceArrow: SxStyleProp = {\n display: 'inline-flex',\n flexShrink: 0,\n color: '#C7CDD6',\n transition: 'color 0.15s ease',\n}\n\nconst errorText: SxStyleProp = {\n width: '100%',\n padding: '12px 14px',\n background: '#FFF6F4',\n border: '1px solid #F8D0C8',\n borderRadius: '8px',\n color: '#8A1F11',\n fontSize: '13px',\n lineHeight: '18px',\n}\n\nexport default {\n trigger,\n triggerIcon,\n triggerShortcut,\n triggerKbd,\n floatingTrigger,\n overlay,\n panel,\n header,\n headerTitle,\n headerActions,\n iconButton,\n iconButtonActive,\n historyWrap,\n historyMenu,\n historyHeader,\n historyTitle,\n historyClear,\n historyList,\n historyItem,\n historyItemIcon,\n historyItemText,\n messages,\n userBubble,\n assistantBlock,\n process,\n processHeader,\n processCheck,\n processSpinner,\n processSteps,\n processStep,\n processBadge,\n processStepIcon,\n processBookIcon,\n processStepLabel,\n messageActions,\n actionButton,\n actionButtonActive,\n dislikeIcon,\n inputWrap,\n inputWrapCentered,\n emptyState,\n emptyMain,\n emptyHero,\n emptyHeroIcon,\n emptyHeroCopy,\n emptyHeroTitle,\n emptyHeroSubtitle,\n examples,\n examplesLabel,\n examplePills,\n examplePill,\n examplePillIcon,\n exampleQuestions,\n exampleQuestion,\n inputBox,\n inputBoxEmpty,\n textarea,\n inputFooter,\n sendButton,\n markdown,\n markdownParagraph,\n markdownHeading,\n markdownList,\n markdownOrderedList,\n markdownUnorderedList,\n markdownListItem,\n markdownLink,\n markdownRule,\n inlineCode,\n sources,\n sourcesLabel,\n sourcesList,\n sourceCard,\n sourceIcon,\n sourceCopy,\n sourceTitle,\n sourceMeta,\n sourceArrow,\n errorText,\n}\n","import type { AssistantStreamEvent, AssistantStreamHandler } from './types'\n\nconst parseSseBlock = (block: string): AssistantStreamEvent | null => {\n let eventName = 'message'\n const dataLines: string[] = []\n\n for (const rawLine of block.split('\\n')) {\n const line = rawLine.replace(/\\r$/, '')\n if (!line || line.startsWith(':')) continue\n if (line.startsWith('event:')) {\n eventName = line.slice(6).trim()\n continue\n }\n if (line.startsWith('data:')) {\n dataLines.push(line.slice(5).trimStart())\n }\n }\n\n if (eventName === 'done') return { type: 'done' }\n\n const data = dataLines.join('\\n')\n if (!data) return null\n\n try {\n return JSON.parse(data) as AssistantStreamEvent\n } catch {\n return null\n }\n}\n\nexport const countSearchResults = (markdown = '') =>\n (markdown.match(/^## \\d+\\./gm) ?? []).length\n\nexport const isInternalEvent = (type: string) =>\n type === 'ActionStep' || type === 'ActionOutput'\n\nconst splitSseEvents = (buffer: string) => buffer.split(/\\r\\n\\r\\n|\\n\\n/)\n\nexport const streamAssistant = async (\n url: string,\n signal: AbortSignal,\n onEvent: (event: AssistantStreamEvent) => void\n) => {\n const response = await fetch(url, {\n signal,\n headers: { Accept: 'text/event-stream' },\n })\n\n if (!response.ok || !response.body) {\n throw new Error(`Assistant request failed (${response.status})`)\n }\n\n const reader = response.body.getReader()\n const decoder = new TextDecoder()\n let buffer = ''\n\n while (true) {\n const { done, value } = await reader.read()\n if (done) break\n\n buffer += decoder.decode(value, { stream: true })\n const parts = splitSseEvents(buffer)\n buffer = parts.pop() ?? ''\n\n for (const part of parts) {\n const event = parseSseBlock(part)\n if (event) onEvent(event)\n }\n }\n\n const trailing = parseSseBlock(buffer)\n if (trailing) onEvent(trailing)\n}\n\nexport const createDefaultStream =\n (streamUrl: string, locale?: string): AssistantStreamHandler =>\n async (query, signal, onEvent) => {\n const base =\n typeof window !== 'undefined' ? window.location.origin : undefined\n const url = new URL(streamUrl, base)\n url.searchParams.set('q', query)\n if (locale) url.searchParams.set('locale', locale)\n await streamAssistant(url.toString(), signal, onEvent)\n }\n","import { Flex } from '@vtex/brand-ui'\r\nimport Link from 'next/link.js'\r\n\r\nimport styles from './styles'\r\n\r\nexport type BreadcrumbItem = {\r\n slug: string\r\n name: string\r\n type: string\r\n}\r\n\r\nexport type BreadcrumbProps = {\r\n breadcrumbList?: BreadcrumbItem[]\r\n /** @deprecated Use `breadcrumbList`. Kept for callers that still pass the old typo. */\r\n breadcumbList?: BreadcrumbItem[]\r\n}\r\n\r\nconst Breadcrumb = ({\r\n breadcrumbList,\r\n breadcumbList,\r\n}: BreadcrumbProps) => {\r\n const items = (breadcrumbList ?? breadcumbList ?? []).slice(0, -1)\r\n\r\n return (\r\n \r\n {items.map((item, idx) => {\r\n const label = item.name || 'Untitled'\r\n\r\n return (\r\n \r\n {item.type === 'markdown' ? (\r\n {label}\r\n ) : (\r\n {label}\r\n )}\r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n\r\nexport default Breadcrumb\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst muted = '#5E6E84'\r\nconst ink = '#142032'\r\nconst pink = '#E31C58'\r\n\r\nconst breadcrumb: SxStyleProp = {\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n rowGap: '4px',\r\n minWidth: 0,\r\n color: muted,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n fontWeight: '400',\r\n '&& a, && [data-breadcrumb-label]': {\r\n color: muted,\r\n fontWeight: '400',\r\n textDecoration: 'none',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n maxWidth: ['180px', '280px', 'none'],\r\n },\r\n '&& a': {\r\n cursor: 'pointer',\r\n transition: 'color 0.15s ease',\r\n ':hover': {\r\n color: ink,\r\n },\r\n ':focus-visible': {\r\n outline: `2px solid ${pink}`,\r\n outlineOffset: '2px',\r\n borderRadius: '2px',\r\n },\r\n },\r\n}\r\n\r\nconst crumb: SxStyleProp = {\r\n alignItems: 'center',\r\n minWidth: 0,\r\n '&:not(:last-child)::after': {\r\n content: '\"\"',\r\n display: 'inline-block',\r\n width: '5px',\r\n height: '5px',\r\n mx: '8px',\r\n borderRight: '1.5px solid currentColor',\r\n borderTop: '1.5px solid currentColor',\r\n transform: 'rotate(45deg)',\r\n opacity: 0.55,\r\n flexShrink: 0,\r\n pointerEvents: 'none',\r\n },\r\n}\r\n\r\nexport default { breadcrumb, crumb }\r\n","import { useState, useEffect } from 'react'\nimport styles from './styles'\nimport { Flex } from '@vtex/brand-ui'\nimport { IconComponent } from 'utils/typings/types'\n\ninterface InputProps {\n value: string\n Icon?: IconComponent\n placeholder?: string\n onChange: (value: string) => void\n}\n\nconst Input = ({ value, onChange, placeholder = '', Icon }: InputProps) => {\n const [inputValue, setInputValue] = useState(value ?? '')\n\n useEffect(() => {\n if (inputValue !== value) setInputValue(value)\n }, [value])\n\n return (\n \n {Icon && }\n {\n setInputValue(e.currentTarget.value)\n onChange(e.currentTarget.value)\n }}\n />\n \n )\n}\n\nexport default Input\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst input: SxStyleProp = {\n background: 'none',\n border: '#F4F4F4',\n color: '#545454',\n fontSize: ['14px'],\n width: '100%',\n transition: 'flex 0.3s',\n outline: 'none',\n}\n\nconst icon: SxStyleProp = {\n minWidth: '16px',\n minHeight: '16px',\n width: '16px',\n mr: '8px',\n flex: 0,\n maxWidth: 'fit-content',\n}\n\nconst container: SxStyleProp = {\n paddingLeft: '12px',\n alignItems: 'center',\n justifyContent: 'center',\n background: '#F4F4F4',\n width: '100%',\n height: '40px',\n borderRadius: '4px',\n transition: 'all 0.3s ease-out',\n cursor: 'pointer',\n border: '1px solid #F4F4F4',\n\n ':hover': {\n transition: 'all 0.3s ease-out',\n border: '1px solid #3B3B3B',\n },\n}\n\nexport default { container, input, icon }\n","import React, { useContext, useState } from 'react'\nimport { Box, Button, Text, Flex, Link } from '@vtex/brand-ui'\nimport { messages } from 'utils/get-message'\nimport { getPrivacyNoticeURL, getNewsletterURL } from 'utils/get-url'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport styles from './styles'\n\ntype EmailValidationResult = 'valid' | 'invalid' | 'error'\n\nconst SubscriptionList: React.FC = () => {\n const { locale } = useContext(LibraryContext)\n const localizedMessages = messages[locale] ?? messages.en\n const [email, setEmail] = useState('')\n const [message, setMessage] = useState('')\n const [messageType, setMessageType] = useState<'success' | 'error' | ''>('')\n\n const clearMessageAfterTimeout = () => {\n setTimeout(() => {\n setMessage('')\n setMessageType('')\n }, 3000)\n }\n\n const showMessage = (type: 'success' | 'error', text: string) => {\n setMessageType(type)\n setMessage(text)\n clearMessageAfterTimeout()\n if (type === 'success') setEmail('')\n }\n\n const checkEmail = async (email: string): Promise => {\n const apiKey = process.env.NEXT_PUBLIC_NEWSLETTER_API_KEY\n if (!apiKey) {\n console.error(localizedMessages['subscription_list.api_key_error'])\n return 'error'\n }\n\n const url = `https://mailcheck.p.rapidapi.com/?email=${encodeURIComponent(\n email\n )}`\n\n try {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'x-rapidapi-host': 'mailcheck.p.rapidapi.com',\n 'x-rapidapi-key': apiKey,\n },\n })\n\n if (!response.ok) {\n console.error(\n 'Email validation failed:',\n response.status,\n response.statusText\n )\n return 'error'\n }\n\n const data = await response.json()\n if (typeof data.block !== 'boolean') {\n console.error('Email validation returned an unusable response:', data)\n return 'error'\n }\n\n return data.block ? 'invalid' : 'valid'\n } catch (error) {\n console.error(error)\n return 'error'\n }\n }\n\n const handleSubscribe = async () => {\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\n return\n }\n\n const validationResult = await checkEmail(email)\n if (validationResult === 'invalid') {\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\n return\n }\n if (validationResult === 'error') {\n showMessage('error', localizedMessages['subscription_list.error'])\n return\n }\n\n const baseURL =\n 'https://hooks.zapier.com/hooks/catch/11585741/2pahup2/?email='\n\n const browserLocale = navigator.language || 'en-US'\n const currentDate = new Date()\n const formattedDate = currentDate.toLocaleString(browserLocale, {\n month: 'short',\n day: '2-digit',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n })\n\n const urlEnd = `&locale=${browserLocale}&date=${encodeURIComponent(\n formattedDate\n )}`\n const emailEncoded = encodeURIComponent(email)\n const url = baseURL + emailEncoded + urlEnd\n\n try {\n const response = await fetch(url, { method: 'POST' })\n\n if (!response.ok) {\n console.error(\n 'Subscription failed:',\n response.status,\n response.statusText\n )\n showMessage('error', localizedMessages['subscription_list.error'])\n return\n }\n\n showMessage('success', localizedMessages['subscription_list.success'])\n } catch (error) {\n console.error('Error:', error)\n showMessage('error', localizedMessages['subscription_list.error'])\n }\n }\n\n return (\n \n \n {localizedMessages['landing_page_subscription.title']}\n \n \n
\n \n {\n localizedMessages['landing_page_subscription.description'].split(\n 'newsletter'\n )[0]\n }\n \n newsletter\n \n {\n localizedMessages['landing_page_subscription.description'].split(\n 'newsletter'\n )[1]\n }\n \n \n ) =>\n setEmail(e.target.value)\n }\n sx={styles.emailInputField}\n />\n \n {localizedMessages['landing_page_newsletter.Button']}\n \n \n \n {localizedMessages['subscription_list.privacy_notice']}{' '}\n \n {localizedMessages['subscription_list.privacy_policy_link']}\n \n \n {message && (\n \n {message}\n \n )}\n
\n
\n
\n )\n}\n\nexport default SubscriptionList\n","export const getFeedbackURL = (currentUrl?: string) => {\n const encodedUrl = currentUrl ? encodeURIComponent(currentUrl) : ''\n return `https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com&entry.1799503232=${encodedUrl}`\n}\n\nexport const getGithubURL = () => {\n return `https://github.com/vtex-apps`\n}\n\nexport const getDeveloperPortalURL = () => {\n return `https://developers.vtex.com/`\n}\n\nexport const getHelpCenterURL = () => {\n return `https://help.vtex.com/`\n}\n\nexport const getCommunityURL = () => {\n return `https://community.vtex.com/?_ga=2.198523433.743584735.1647618303-1974737580.1645714642`\n}\n\nexport const getLearningCenterURL = () => {\n return 'https://learn.vtex.com/'\n}\n\nexport const getSupportURL = () => {\n return 'https://help.vtex.com/en/support'\n}\n\nexport const getNewsletterURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\n return `https://vtexhelp.myvtex.com/educationnewsletter/${locale}`\n}\n\nexport const getPrivacyNoticeURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\n const localeMap = { en: 'us-en', pt: 'pt-br', es: 'es-mx' }\n return `https://vtex.com/${localeMap[locale]}/trust/general-external-privacy-notice/`\n}\n\nexport const getLinkedinURL = () => {\n return 'https://linkedin.com/company/vtex'\n}\n\nexport const getFacebookURL = () => {\n return 'https://www.facebook.com/vtexcommerce/'\n}\n\nexport const getInstagramURL = () => {\n return 'https://www.instagram.com/vtexbrasil/'\n}\n\nexport const getYoutubeURL = () => {\n return 'https://www.youtube.com/c/VTEX-Commerce/featured'\n}\n\nexport const getTwitterURL = () => {\n return 'https://twitter.com/vtexonline'\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst controlHeight = '48px'\n\nconst sectionContainer: SxStyleProp = {\n borderTop: '1px solid #e7e9ef',\n px: ['16px', '24px', '32px'],\n py: ['42px', '44px', '64px'],\n backgroundColor: 'muted.4',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n}\n\nconst cardContainer: SxStyleProp = {\n mt: ['16px', '24px', '32px'],\n px: ['16px', '24px', '50px'],\n py: ['16px', '24px', '40px'],\n width: ['100%', '90%', '80%'],\n maxWidth: '1035px',\n backgroundColor: 'white',\n borderRadius: '8px',\n border: '1px solid #E7E9EE',\n}\n\nconst title: SxStyleProp = {\n fontSize: ['22px', '26px', '28px', '32px'],\n lineHeight: ['28px', '34px', '36px', '40px'],\n fontWeight: '400',\n color: '#132032',\n textAlign: 'center',\n letterSpacing: '-0.02em',\n width: '100%',\n}\n\nconst description: SxStyleProp = {\n fontSize: ['14px', '16px'],\n lineHeight: ['20px', '24px'],\n textAlign: 'center',\n marginBottom: '16px',\n color: '#4A596B',\n}\n\nconst inputContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: ['column', 'row'],\n gap: '8px',\n justifyContent: 'center',\n alignItems: ['stretch', 'flex-end'],\n width: '100%',\n}\n\nconst emailInputField: SxStyleProp = {\n flex: 1,\n minWidth: 0,\n width: '100%',\n border: '1px solid #a1a8b3',\n borderRadius: '4px',\n color: '#4A4A4A',\n fontSize: '16px',\n lineHeight: '22px',\n px: '16px',\n py: 0,\n height: controlHeight,\n minHeight: controlHeight,\n boxSizing: 'border-box',\n '&::placeholder': {\n color: '#4A4A4A',\n },\n '&:focus': {\n outline: 'none',\n borderColor: '#A1A8B3',\n },\n}\n\nconst button: SxStyleProp = {\n transition: 'all 0.3s ease-out',\n minHeight: controlHeight,\n height: controlHeight,\n alignSelf: 'stretch',\n minWidth: '140px',\n whiteSpace: 'nowrap',\n px: '16px',\n}\n\nconst privacyText: SxStyleProp = {\n fontSize: '14px',\n color: '#A1A8B3',\n lineHeight: '20px',\n fontWeight: '400',\n margin: '16px 0 0',\n textAlign: 'center',\n}\n\nconst popupCard: SxStyleProp = {\n backgroundColor: 'white',\n boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',\n width: '100%',\n maxWidth: '400px',\n padding: ['8px', '12px'],\n boxSizing: 'border-box',\n margin: '0 auto',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '6px',\n marginTop: '16px',\n alignSelf: 'center',\n}\n\nexport default {\n sectionContainer,\n cardContainer,\n title,\n description,\n inputContainer,\n emailInputField,\n button,\n privacyText,\n popupCard,\n}\n","import { useContext, type ReactNode } from 'react'\nimport { Box, Flex, Link } from '@vtex/brand-ui'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport {\n getCommunityURL,\n getDeveloperPortalURL,\n getFacebookURL,\n getFeedbackURL,\n getGithubURL,\n getHelpCenterURL,\n getInstagramURL,\n getLinkedinURL,\n getTwitterURL,\n getYoutubeURL,\n} from 'utils/get-url'\nimport VTEXLogoFooter from 'components/icons/vtex-logo-footer'\nimport InstagramIcon from 'components/icons/instagram-icon'\nimport YoutubeIcon from 'components/icons/youtube-icon'\nimport FacebookCircleIcon from 'components/icons/facebook-circle-icon'\nimport LinkedinCircleIcon from 'components/icons/linkedin-circle-icon'\nimport styles from './styles'\n\nexport type FooterLink = {\n label: string\n href: string\n}\n\nexport type FooterVariant = 'helpcenter' | 'devportal'\n\nexport type FooterProps = {\n /**\n * Which site is rendering the Footer. Help Center shows a Developer Portal\n * link; Developer Portal shows a Help Center link.\n */\n variant?: FooterVariant\n /** Overrides the default GitHub, cross-site, Community, and Feedback links. */\n links?: FooterLink[]\n githubUrl?: string\n developerPortalUrl?: string\n helpCenterUrl?: string\n communityUrl?: string\n feedbackUrl?: string\n /** App-specific locale switcher rendered at the end of the link row. */\n localeSwitcher?: ReactNode\n}\n\nconst Footer = ({\n variant = 'helpcenter',\n links,\n githubUrl,\n developerPortalUrl,\n helpCenterUrl,\n communityUrl,\n feedbackUrl,\n localeSwitcher,\n}: FooterProps) => {\n const { locale } = useContext(LibraryContext)\n const localizedMessages = messages[locale] ?? messages.en\n\n const crossSiteLink: FooterLink =\n variant === 'devportal'\n ? {\n label: localizedMessages['footer.help_center'],\n href: helpCenterUrl ?? getHelpCenterURL(),\n }\n : {\n label: localizedMessages['footer.developer_portal'],\n href: developerPortalUrl ?? getDeveloperPortalURL(),\n }\n\n const defaultLinks: FooterLink[] = [\n {\n label: localizedMessages['footer.github'],\n href: githubUrl ?? getGithubURL(),\n },\n crossSiteLink,\n {\n label: localizedMessages['footer.community'],\n href: communityUrl ?? getCommunityURL(),\n },\n {\n label: localizedMessages['footer.feedback'],\n href: feedbackUrl ?? getFeedbackURL(),\n },\n ]\n\n const resolvedLinks = links ?? defaultLinks\n\n const socialIcons = [\n {\n href: getLinkedinURL(),\n component: ,\n },\n {\n href: getInstagramURL(),\n component: ,\n },\n {\n href: getYoutubeURL(),\n component: ,\n },\n {\n href: getFacebookURL(),\n component: ,\n },\n ]\n\n return (\n \n \n \n \n {socialIcons.map((icon) => (\n \n {icon.component}\n \n ))}\n \n \n \n {resolvedLinks.map((link) => (\n \n {link.label}\n \n ))}\n {localeSwitcher ? (\n {localeSwitcher}\n ) : null}\n \n \n )\n}\n\nexport default Footer\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXLogoFooter = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default VTEXLogoFooter\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst IgIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default IgIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst YoutubeIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default YoutubeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FacebookCircleIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default FacebookCircleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst LinkedinCircleIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default LinkedinCircleIcon\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst DESKTOP_FROM = '1024px'\n\nconst outerBox: SxStyleProp = {\n bg: '#142032',\n display: 'flex',\n flexDirection: 'column',\n px: ['24px', '32px', '48px', '64px'],\n py: ['32px', '40px', '48px'],\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n gap: ['24px', '32px'],\n width: '100%',\n boxSizing: 'border-box',\n [`@media screen and (min-width: ${DESKTOP_FROM})`]: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n}\n\nconst brandAndSocial: SxStyleProp = {\n display: 'flex',\n flexDirection: ['column', 'row'],\n alignItems: ['flex-start', 'center'],\n gap: ['16px', '24px', '32px'],\n flexShrink: 0,\n width: '100%',\n [`@media screen and (min-width: ${DESKTOP_FROM})`]: {\n width: 'auto',\n },\n}\n\nconst logo: SxStyleProp = {\n width: '61px',\n height: '22px',\n flexShrink: 0,\n}\n\nconst socialMediaIcons: SxStyleProp = {\n gap: ['12px', '16px'],\n alignItems: 'center',\n flexWrap: 'wrap',\n a: {\n display: 'flex',\n alignItems: 'center',\n lineHeight: 0,\n },\n}\n\nconst textLinkItems: SxStyleProp = {\n fontSize: ['14px', '16px'],\n gap: ['12px 20px', '16px 24px', '24px 32px', '45px'],\n flexWrap: 'wrap',\n alignItems: 'center',\n minWidth: 0,\n maxWidth: '100%',\n width: '100%',\n a: {\n color: '#CCCED8',\n whiteSpace: 'nowrap',\n },\n [`@media screen and (min-width: ${DESKTOP_FROM})`]: {\n width: 'auto',\n flex: 1,\n justifyContent: 'flex-end',\n },\n}\n\nconst localeSwitch: SxStyleProp = {\n flexShrink: 0,\n}\n\nconst icon: SxStyleProp = {\n size: [28, 32],\n color: '#CCCED7',\n transition: 'all 0.3s ease-out',\n borderRadius: '50%',\n ':hover': {\n color: 'white',\n backgroundColor: 'rgba(204, 206, 215, 0.3)',\n },\n}\n\nexport default {\n outerBox,\n brandAndSocial,\n logo,\n socialMediaIcons,\n textLinkItems,\n localeSwitch,\n icon,\n}\n","import * as BrandUI from '@vtex/brand-ui'\nimport { Link as VtexLink, Flex, Text, Box } from '@vtex/brand-ui'\nimport { useContext, useEffect, useRef, useState, type ReactNode } from 'react'\nimport { useRouter } from 'next/router.js'\nimport HamburgerMenu from 'lib/hamburger-menu'\nimport AskAssistant, {\n type AskAssistantProps,\n} from 'components/ask-assistant'\nimport SearchInput from 'components/search-input'\nimport VTEXDevPortalIcon from 'components/icons/vtex-devportal-icon'\nimport VTEXHelpCenterIcon from 'components/icons/vtex-helpcenter-icon'\nimport GridIcon from 'components/icons/grid-icon'\nimport LongArrowIcon from 'components/icons/long-arrow-icon'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport type { Section } from 'utils/typings/types'\nimport DropdownMenu from './dropdown-menu'\nimport styles from './styles'\n\nconst HeaderBrand = BrandUI.Header\n\nexport type HeaderVariant = 'helpcenter' | 'devportal'\n\nexport type HeaderProps = {\n /**\n * Which site is rendering the Header. Controls the default logo.\n * Help Center is the default; Developer Portal should pass `devportal`.\n */\n variant?: HeaderVariant\n /** When true, the docs dropdown shows `editorSections` instead of docs sections. */\n isEditor?: boolean\n /**\n * Sections shown in the docs dropdown. Defaults to the hamburger sections\n * from LibraryContext.\n */\n dropdownSections?: Section[][]\n /** Sections shown in the dropdown when `isEditor` is true. */\n editorSections?: Section[]\n /** Slot rendered above the header bar (e.g. AnnouncementBar). */\n announcement?: ReactNode\n homeHref?: string\n /** When set, shows the feedback link in the header. Hidden otherwise. */\n feedbackUrl?: string\n /** Overrides the default logo for the selected variant. */\n logo?: ReactNode\n /**\n * App-specific items rendered after the docs dropdown (e.g. Help Center\n * announcements). Hidden on small viewports together with RightLinks.\n */\n extraRightLinks?: ReactNode\n /** App-specific locale switcher rendered next to the hamburger menu. */\n localeSwitcher?: ReactNode\n /** Parent slugs of the current article, used to expand the mobile sidebar. */\n parentsArray?: string[]\n /**\n * When true, renders AskAssistant next to the search input on desktop.\n * Search stays hidden on small viewports (use the search icon). On mobile\n * the assistant is a floating action button in the bottom-right corner.\n */\n showAssistant?: boolean\n /** Props forwarded to AskAssistant when `showAssistant` is true. */\n assistant?: AskAssistantProps\n}\n\nconst Header = ({\n variant = 'helpcenter',\n isEditor = false,\n dropdownSections,\n editorSections = [],\n announcement,\n homeHref = '/',\n feedbackUrl,\n logo,\n extraRightLinks,\n localeSwitcher,\n parentsArray,\n showAssistant = false,\n assistant,\n}: HeaderProps) => {\n const router = useRouter()\n const { locale, hamburguerSections } = useContext(LibraryContext)\n const localizedMessages = messages[locale] ?? messages.en\n\n const modalOpen = useRef(false)\n const [showDropdown, setShowDropdown] = useState(false)\n const headerElement = useRef(null)\n\n const docsSections = dropdownSections ?? hamburguerSections\n const menuSections =\n isEditor && editorSections.length > 0 ? [editorSections] : docsSections\n\n const defaultLogo =\n variant === 'devportal' ? (\n \n ) : (\n \n )\n\n useEffect(() => {\n const body = document.body\n\n const observer = new MutationObserver(() => {\n modalOpen.current = !modalOpen.current\n if (headerElement.current) {\n if (modalOpen.current) {\n const headerHeight = headerElement.current.offsetHeight\n headerElement.current.style.top = `-${headerHeight}px`\n } else {\n headerElement.current.style.top = '0'\n }\n }\n })\n observer.observe(body, {\n attributeFilter: ['style'],\n })\n\n return () => observer.disconnect()\n }, [])\n\n useEffect(() => {\n const onScroll = () => {\n setShowDropdown(false)\n }\n\n window.addEventListener('scroll', onScroll, { passive: true })\n return () => window.removeEventListener('scroll', onScroll)\n }, [])\n\n useEffect(() => {\n const hideDropdown = () => {\n setShowDropdown(false)\n }\n\n router.events?.on('routeChangeStart', hideDropdown)\n return () => {\n router.events?.off('routeChangeStart', hideDropdown)\n }\n }, [router.events])\n\n return (\n \n {announcement ??
}\n \n \n {logo ?? defaultLogo}\n \n\n \n \n \n \n {showAssistant ? (\n \n \n \n ) : null}\n \n\n \n setShowDropdown(true)}\n onMouseLeave={() => setShowDropdown(false)}\n >\n \n \n \n {isEditor\n ? localizedMessages['header.admin_tools']\n : localizedMessages['header.docs']}\n \n \n\n {showDropdown && }\n \n\n {extraRightLinks ? (\n {extraRightLinks}\n ) : null}\n\n {feedbackUrl ? (\n \n \n \n {localizedMessages['header.feedback']}\n \n \n ) : null}\n \n {localeSwitcher ? (\n \n \n \n \n {localeSwitcher}\n \n ) : (\n \n \n \n )}\n \n \n )\n}\n\nexport default Header\nexport { default as DropdownMenu } from './dropdown-menu'\nexport type { DropdownMenuProps } from './dropdown-menu'\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXDevPortalIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default VTEXDevPortalIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst VTEXHelpCenterIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default VTEXHelpCenterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GridIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default GridIcon\n","import { useContext } from 'react'\r\nimport { Box } from '@vtex/brand-ui'\r\nimport DocumentationCard from 'components/documentation-card'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { getSectionLabel } from 'utils/sidebar-utils'\r\nimport type { Section } from 'utils/typings/types'\r\nimport styles from './dropdown-menu.styles'\r\n\r\nexport type DropdownMenuProps = {\r\n sections: Section[][]\r\n}\r\n\r\nconst DropdownMenu = ({ sections }: DropdownMenuProps) => {\r\n const { locale, sidebarDataMaster } = useContext(LibraryContext)\r\n\r\n return (\r\n \r\n \r\n {sections.map((section, id) => (\r\n 0 ? styles.sectionDivider : {}),\r\n }}\r\n key={id}\r\n data-cy={\r\n id > 0\r\n ? 'dropdown-menu-second-section'\r\n : 'dropdown-menu-first-section'\r\n }\r\n >\r\n {section.map((card) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DropdownMenu\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst outerContainer: SxStyleProp = {\r\n cursor: 'initial',\r\n top: '5rem',\r\n right: 0,\r\n position: 'absolute',\r\n filter: 'drop-shadow(0px 0px 16px rgba(0, 0, 0, 0.1))',\r\n clipPath: 'inset(0 -32px -32px -32px)',\r\n borderRadius: '0px 0px 8px 8px',\r\n border: '1px solid #E7E9EE',\r\n borderTop: '0px',\r\n background: 'white',\r\n padding: '8px',\r\n width: '680px',\r\n maxWidth: 'calc(100vw - 32px)',\r\n maxHeight: 'calc(100vh - 5rem)',\r\n zIndex: 10,\r\n}\r\n\r\nconst innerContainer: SxStyleProp = {\r\n overflowY: 'auto',\r\n overscrollBehavior: 'contain',\r\n maxHeight: 'calc(100vh - 5rem - 16px)',\r\n scrollbarWidth: 'thin',\r\n scrollbarColor: 'white white',\r\n\r\n '::-webkit-scrollbar': {\r\n width: '5px',\r\n },\r\n\r\n '::-webkit-scrollbar-thumb': {\r\n borderRadius: '100px',\r\n background: 'white',\r\n },\r\n\r\n ':hover': {\r\n scrollbarColor: '#CCCED8 white',\r\n\r\n '::-webkit-scrollbar-thumb': {\r\n background: '#CCCED8',\r\n },\r\n },\r\n}\r\n\r\nconst documentationContainer: SxStyleProp = {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\r\n columnGap: '4px',\r\n rowGap: '4px',\r\n\r\n '& > :last-child:nth-child(odd)': {\r\n gridColumn: '1 / -1',\r\n },\r\n}\r\n\r\nconst sectionDivider: SxStyleProp = {\r\n mt: '4px',\r\n pt: '4px',\r\n borderRadius: '0px 0px 8px 8px',\r\n borderTop: '1px solid #E7E9EE',\r\n}\r\n\r\nexport default {\r\n documentationContainer,\r\n innerContainer,\r\n outerContainer,\r\n sectionDivider,\r\n}\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst navItem: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n height: '36px',\n px: '10px',\n borderRadius: '6px',\n color: '#4A596B',\n transition: 'background-color 0.15s ease, color 0.15s ease',\n ':hover': {\n color: '#C81E51',\n backgroundColor: '#FFF3F6',\n },\n}\n\nconst headerContainer: SxStyleProp = {\n position: 'sticky',\n top: 0,\n zIndex: 9999,\n width: '100%',\n backgroundColor: '#FFFFFF',\n transition: 'top 0.3s',\n 'body:has(.modal[data-open=\"true\"]) &': {\n zIndex: 0,\n },\n maxWidth: '2024px',\n mx: 'auto',\n}\n\nconst headerBrand: SxStyleProp = {\n gridTemplateColumns: 'auto minmax(0, 1fr) auto auto',\n width: '100%',\n position: 'relative',\n transition: 'top 0.3s',\n 'button[role=\"presentation\"]': {\n borderLeft: 'none',\n svg: {\n rect: {\n fill: '#4A596B',\n },\n },\n },\n}\n\nconst hamburgerMenuToggle: SxStyleProp = {\n display: ['contents', 'contents', 'none', 'none'],\n}\n\nconst extraRightLinks: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n position: 'relative',\n}\n\nconst headerEndActions: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n gridArea: 'actionbutton',\n justifyContent: 'flex-end',\n borderLeft: ['none', 'none', '1px solid #E7E9EE', '1px solid #E7E9EE'],\n}\n\nconst localeSwitcherSlot: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: '100%',\n width: ['56px', '56px', 'auto', 'auto'],\n minWidth: ['56px', '56px', 0, 0],\n paddingLeft: [0, 0, '12px', '12px'],\n paddingRight: [0, 0, '12px', '12px'],\n zIndex: 1,\n '& button': {\n borderLeft: 'none !important',\n padding: [\n '0 !important',\n '0 !important',\n '0 10px !important',\n '0 10px !important',\n ],\n width: ['100%', '100%', 'auto', 'auto'],\n height: ['100%', '100%', '36px !important', '36px !important'],\n justifyContent: 'center',\n lineHeight: 0,\n borderRadius: '6px',\n transition: 'background-color 0.15s ease, color 0.15s ease',\n ':hover': {\n backgroundColor: ['transparent', 'transparent', '#FFF3F6', '#FFF3F6'],\n color: '#C81E51',\n },\n },\n}\n\nconst headerBrandLink: SxStyleProp = {\n width: 'fit-content',\n justifyContent: 'center',\n gridArea: 'brand',\n marginLeft: [4, 6, 6],\n marginBottom: 1,\n '> svg': {\n width: 'auto',\n },\n}\n\nconst logoSize: SxStyleProp = {\n width: ['172px', '172px', '204px'],\n height: ['24px', '24px', '32px'],\n}\n\nconst rightLinks: SxStyleProp = {\n display: ['none', 'none', 'flex !important', 'flex !important'],\n width: 'auto',\n height: '100%',\n alignItems: 'center',\n gap: '8px',\n pr: ['16px', '16px', '16px', '16px'],\n '> a': {\n marginX: '0 !important',\n },\n}\n\nconst rightLinksItem: SxStyleProp = {\n ...navItem,\n display: ['none', 'none', 'none', 'flex'],\n justifyContent: 'center',\n width: '36px',\n px: '0 !important',\n svg: {\n mr: '0',\n },\n ':hover': {\n color: '#C81E51',\n backgroundColor: '#FFF3F6',\n 'svg > path': {\n stroke: '#C81E51',\n },\n },\n}\n\nconst dropdownContainer: SxStyleProp = {\n textTransform: 'none',\n justifyContent: 'flex-end',\n alignItems: 'center',\n height: 'calc(100% + 1px)',\n cursor: 'pointer',\n position: 'relative',\n}\n\nconst dropdownButton: (active: boolean) => SxStyleProp = (active: boolean) => ({\n ...navItem,\n color: active ? '#D71D55' : '#4A596B',\n backgroundColor: active ? '#FFF3F6' : 'transparent',\n svg: {\n mr: '8px',\n path: {\n fill: active ? '#D71D55' : '#4A596B',\n },\n },\n ':hover': {\n color: '#C81E51',\n backgroundColor: '#FFF3F6',\n 'svg > path': {\n fill: '#C81E51',\n },\n },\n})\n\nconst rightButtonsText: SxStyleProp = {\n fontWeight: 'normal',\n fontSize: '13px',\n lineHeight: '22px',\n fontFamily: 'VTEX Trust Medium !important',\n textTransform: 'none',\n}\n\nconst searchRow: SxStyleProp = {\n display: ['none', 'none', 'flex', 'flex'],\n alignItems: 'center',\n justifyContent: 'center',\n flexWrap: 'nowrap',\n gap: '8px',\n paddingBlock: '18px',\n height: 'auto',\n minWidth: 0,\n maxWidth: '100%',\n}\n\nconst searchContainer: SxStyleProp = {\n flex: 'none',\n minWidth: 0,\n}\n\nconst assistantSlot: SxStyleProp = {\n display: ['none', 'none', 'none', 'flex'],\n flex: 'none',\n flexShrink: 0,\n alignSelf: 'center',\n}\n\nexport default {\n logoSize,\n headerContainer,\n headerBrand,\n headerBrandLink,\n searchRow,\n searchContainer,\n assistantSlot,\n rightLinks,\n rightLinksItem,\n rightButtonsText,\n dropdownButton,\n dropdownContainer,\n hamburgerMenuToggle,\n extraRightLinks,\n headerEndActions,\n localeSwitcherSlot,\n}\n","import { useEffect, useState, type ReactNode } from 'react'\r\nimport { Box, Button, Text, Link, Icon } from '@vtex/brand-ui'\r\nimport type { IconProps } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\nexport type AnnouncementBarType = 'warning' | 'new'\r\n\r\nexport type AnnouncementBarAction = {\r\n href: string\r\n tag?: string\r\n button?: string\r\n target?: string\r\n}\r\n\r\nexport type AnnouncementBarProps = {\r\n type: AnnouncementBarType\r\n label?: string\r\n closable: boolean\r\n action: AnnouncementBarAction\r\n children?: ReactNode\r\n}\r\n\r\nconst CloseIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nconst AnnouncementBar = ({\r\n closable,\r\n type,\r\n action: { tag, button, href, target = '_blank' },\r\n label,\r\n children,\r\n}: AnnouncementBarProps) => {\r\n const [visible, setVisible] = useState(true)\r\n\r\n useEffect(() => {\r\n if (!closable || !visible) return\r\n\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') setVisible(false)\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [closable, visible])\r\n\r\n if (!visible) return null\r\n\r\n return (\r\n \r\n \r\n {tag && {tag}}\r\n {children ? {children} : null}\r\n {label ? {label} : null}\r\n {button && (\r\n \r\n {button}\r\n \r\n )}\r\n \r\n {closable && (\r\n \r\n {\r\n event.stopPropagation()\r\n setVisible(false)\r\n }}\r\n icon={() => }\r\n />\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default AnnouncementBar\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container = (type: string): SxStyleProp => {\r\n const background = {\r\n color: type == 'warning' ? '#fff2d4' : '#fff9fa',\r\n }\r\n return {\r\n backgroundColor: `${background.color}`,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n cursor: 'default',\r\n width: '100%',\r\n padding: ['15px 15px', '15px 25px', '15px 50px'],\r\n ':focus': {\r\n outline: 'none',\r\n },\r\n }\r\n}\r\n\r\nconst box: SxStyleProp = {\r\n width: '100%',\r\n textAlign: 'center',\r\n}\r\n\r\nconst label = (type: string): SxStyleProp => {\r\n const labelColor = {\r\n bgColor: type == 'warning' ? '#ffe1a7' : '#feeaef',\r\n textColor: type == 'warning' ? '#142032' : '#D4084C',\r\n }\r\n\r\n return {\r\n color: `${labelColor.textColor}`,\r\n backgroundColor: `${labelColor.bgColor}`,\r\n borderRadius: '4px',\r\n padding: '5px 8px',\r\n marginRight: '10px',\r\n display: 'inline',\r\n fontWeight: '600',\r\n letterSpacing: '1px',\r\n fontSize: '13px',\r\n }\r\n}\r\n\r\nconst button = (type: string): SxStyleProp => {\r\n const labelColor = {\r\n bgColor: type == 'warning' ? '#ffe1a7' : '#feeaef',\r\n }\r\n\r\n return {\r\n color: '#D4084C',\r\n backgroundColor: `${labelColor.bgColor}`,\r\n borderRadius: '4px',\r\n padding: '5px 8px',\r\n marginLeft: '10px',\r\n display: 'inline',\r\n fontWeight: '600',\r\n }\r\n}\r\n\r\nconst text: SxStyleProp = {\r\n color: '#142032',\r\n display: 'inline',\r\n}\r\n\r\nconst closeIcon: SxStyleProp = {\r\n display: 'block',\r\n float: 'right',\r\n}\r\n\r\nexport default {\r\n button,\r\n container,\r\n closeIcon,\r\n box,\r\n label,\r\n text,\r\n}\r\n","import { SxStyleProp, Text } from '@vtex/brand-ui'\n\nimport styles from './styles'\n\nexport type TagColor =\n | 'Default'\n | 'Selected'\n | 'New'\n | 'Gray'\n | 'Blue'\n | 'Green'\n | 'Deprecation'\n | 'Backlog'\n | 'Fixed'\n | 'Closed'\n | 'Scheduled'\n | 'No_Fix'\n\nexport type TagProps = {\n sx?: SxStyleProp\n children: React.ReactNode\n color?: TagColor\n onClick?: () => void\n}\n\nconst Tag = ({ sx = {}, children, color = 'Default', onClick }: TagProps) => {\n return (\n \n {children}\n \n )\n}\n\nexport default Tag\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nimport type { TagColor } from './index'\n\nconst tag: SxStyleProp = {\n borderRadius: '11.5px',\n height: '20px',\n fontSize: '12px',\n lineHeight: '20px',\n px: '7px',\n textAlign: 'center',\n textWrap: 'nowrap',\n minWidth: 'max-content',\n}\n\nconst statusColors: Record = {\n Backlog: {\n border: '1px solid #D3D3D3',\n color: '#4A596B',\n background: '#E9E9E9',\n },\n Fixed: {\n border: '1px solid #9FCDB4',\n color: '#3A6E32',\n background: '#DFF5DB',\n },\n Closed: {\n border: '1px solid #A5C0FF',\n color: '#2953B2',\n background: '#DEE8FE',\n },\n Scheduled: {\n border: '1px solid #FFD581',\n color: '#D77809',\n background: '#FFF3DA',\n },\n No_Fix: {\n border: '1px solid #FAA397',\n color: '#CB2610',\n background: '#FFDFDB',\n },\n Default: {\n border: '1px solid #A1AAB7',\n color: '#A1AAB7',\n background: '#ffff',\n\n ':hover': {\n color: '#4A596B',\n border: '1px solid #4A596B',\n },\n },\n Selected: {\n border: '1px solid #A1AAB7',\n color: '#ffff',\n background: '#A1AAB7',\n\n ':hover': {\n color: '#142032',\n },\n },\n New: {\n border: '1px solid #F71963',\n color: '#F71963',\n background: '#FFE0EF',\n },\n Gray: {\n color: '#4A596B',\n background: '#E7E9EE',\n },\n Deprecation: {\n border: '1px solid #E8A5BE',\n color: '#A23D6E',\n background: '#FCEAF2',\n },\n Blue: {\n border: '1px solid #A5C0FF',\n color: '#2953B2',\n background: '#DEE8FE',\n },\n Green: {\n border: '1px solid #9FCDB4',\n color: '#3A6E32',\n background: '#DFF5DB',\n },\n}\n\nexport default {\n statusColors,\n tag,\n}\n","import { Box, Button, Checkbox, Flex, SxStyleProp, Text } from '@vtex/brand-ui'\nimport CloseIcon from 'components/icons/close-icon'\nimport FilterIcon from 'components/icons/filter-icon'\nimport TrashcanIcon from 'components/icons/trashcan-icon'\nimport Tag from 'components/tag'\nimport { useState } from 'react'\n\nimport { toFilterGroup, toFilterGroups } from './normalize'\nimport styles from './styles'\nimport type {\n FilterGroup,\n ListingFilterLabels,\n ListingFilterSelection,\n} from './types'\n\nexport type { FilterGroup, FilterOption, ListingFilterLabels, ListingFilterSelection } from './types'\n\nexport type ListingFilterProps = {\n tagFilter?: FilterGroup | string[]\n tagFilterName?: string\n checkBoxFilter?: FilterGroup | string[]\n checkBoxFilters?: FilterGroup[]\n filterName?: string\n selectedCheckboxes?: string[]\n selectedTags?: string[]\n onApply: (filters: ListingFilterSelection) => void\n labels?: ListingFilterLabels\n buttonSx?: SxStyleProp\n centeredTagOptions?: boolean\n}\n\ntype SelectedFilters = ListingFilterSelection\n\nconst defaultLabels: Required = {\n button: 'Filters',\n modalTitle: 'Filters',\n remove: 'Remove filters',\n apply: 'Apply filters',\n}\n\nconst ListingFilter = ({\n tagFilter,\n tagFilterName,\n checkBoxFilter,\n checkBoxFilters,\n filterName = '',\n onApply,\n selectedCheckboxes,\n selectedTags,\n labels,\n buttonSx,\n centeredTagOptions = false,\n}: ListingFilterProps) => {\n const resolvedLabels = { ...defaultLabels, ...labels }\n const normalizedTagFilter = toFilterGroup(tagFilter, tagFilterName)\n const checkboxGroups = toFilterGroups(\n checkBoxFilter,\n checkBoxFilters,\n filterName\n )\n\n const [isModalOpen, setIsModalOpen] = useState(false)\n const [tempFilters, setTempFilters] = useState({\n tag: [],\n checklist: [],\n })\n\n const numberOfFilters =\n getSelectedFiltersLength(selectedTags) +\n getSelectedFiltersLength(selectedCheckboxes)\n\n function getSelectedFiltersLength(filters: string[] | undefined) {\n return filters?.length ?? 0\n }\n\n function handleFilterClick(option: string, type: 'tag' | 'checklist') {\n setTempFilters((prev) => {\n const current = prev[type]\n const updatedFilters = current.includes(option)\n ? current.filter((filter) => filter !== option)\n : [...current, option]\n\n return { ...prev, [type]: updatedFilters }\n })\n }\n\n function isFilterSelected(option: string, type: 'tag' | 'checklist') {\n if (isModalOpen) {\n return tempFilters[type].includes(option)\n }\n\n if (type === 'tag') {\n return selectedTags?.includes(option) ?? false\n }\n\n return selectedCheckboxes?.includes(option) ?? false\n }\n\n const FilterButton = () => (\n {\n setTempFilters({\n checklist: selectedCheckboxes ?? [],\n tag: selectedTags ?? [],\n })\n setIsModalOpen(true)\n }}\n >\n \n {resolvedLabels.button}\n {numberOfFilters > 0 && (\n {numberOfFilters}\n )}\n \n )\n\n const TagFilter = () => {\n if (!normalizedTagFilter) return null\n\n return (\n \n {normalizedTagFilter.name}\n \n {normalizedTagFilter.options.map((option) => (\n handleFilterClick(option.id, 'tag')}\n >\n {option.name}\n \n ))}\n \n \n )\n }\n\n const CheckboxFilters = () => {\n if (checkboxGroups.length === 0) return null\n\n return (\n <>\n {checkboxGroups.map((group, groupIndex) => (\n \n {groupIndex > 0 && }\n \n {group.name}\n \n {group.options.map((option) => (\n handleFilterClick(option.id, 'checklist')}\n />\n ))}\n \n \n \n ))}\n \n )\n }\n\n const Divider = () => (\n \n
\n
\n )\n\n const FilterModal = () => (\n <>\n setIsModalOpen(false)} />\n \n \n {resolvedLabels.modalTitle}\n setIsModalOpen(false)}\n >\n \n \n \n \n \n {normalizedTagFilter && checkboxGroups.length > 0 && }\n \n \n \n }\n onClick={() => setTempFilters({ tag: [], checklist: [] })}\n >\n {resolvedLabels.remove}\n \n {\n setIsModalOpen(false)\n onApply(tempFilters)\n }}\n >\n {resolvedLabels.apply}\n \n \n \n \n )\n\n return (\n <>\n \n {isModalOpen && }\n \n )\n}\n\nexport default ListingFilter\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FilterIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default FilterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TrashcanIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default TrashcanIcon\n","import type { FilterGroup } from './types'\n\nexport function isFilterGroup(value: unknown): value is FilterGroup {\n return (\n typeof value === 'object' &&\n value !== null &&\n 'name' in value &&\n 'options' in value &&\n Array.isArray((value as FilterGroup).options)\n )\n}\n\nexport function toFilterGroup(\n input: FilterGroup | string[] | undefined,\n name = ''\n): FilterGroup | undefined {\n if (!input) return undefined\n\n if (isFilterGroup(input)) {\n return input\n }\n\n return {\n name,\n options: input.map((option) => ({ id: option, name: option })),\n }\n}\n\nexport function toFilterGroups(\n checkBoxFilter: FilterGroup | string[] | undefined,\n checkBoxFilters: FilterGroup[] | undefined,\n filterName = ''\n): FilterGroup[] {\n if (checkBoxFilters?.length) {\n return checkBoxFilters\n }\n\n const normalized = toFilterGroup(checkBoxFilter, filterName)\n return normalized ? [normalized] : []\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst filterButton: SxStyleProp = {\n cursor: 'pointer',\n alignItems: 'center',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n fontSize: '14px',\n gap: '8px',\n px: '8px',\n transition: '0.3s',\n height: '30px',\n ':hover': {\n color: '#F71963',\n },\n width: 'min-content',\n}\n\nconst filterButtonText: SxStyleProp = {\n display: ['none', 'block', 'block'],\n}\n\nconst numberOfFilters: SxStyleProp = {\n backgroundColor: '#FFE0EF',\n color: '#F71963',\n borderRadius: '4px',\n px: '4px',\n}\n\nconst blanket: SxStyleProp = {\n margin: '0',\n width: '100%',\n height: '100%',\n background: 'rgba(20, 32, 50, 0.70)',\n position: 'fixed',\n top: '0',\n left: '0',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n zIndex: '9999',\n}\n\nconst container: SxStyleProp = {\n position: 'fixed',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n width: ['100%', '612px'],\n maxWidth: '100%',\n borderRadius: ['0', '5px'],\n backgroundColor: '#ffff',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n zIndex: '10000',\n overflow: 'auto',\n height: ['100dvh', 'auto'],\n maxHeight: ['100dvh', 'calc(100dvh - 32px)'],\n}\n\nconst innerContainer: SxStyleProp = {\n p: '24px',\n maxHeight: ['calc(100dvh - 145px)', 'calc(100dvh - 6rem - 112px)'],\n overflow: 'auto',\n}\n\nconst topContainer: SxStyleProp = {\n display: 'grid',\n width: '100%',\n borderBottom: '1px solid #E7E9EE',\n gridTemplateColumns: '1fr 64px',\n alignItems: 'center',\n gap: '24px',\n height: '64px',\n}\n\nconst modalTitle: SxStyleProp = {\n fontSize: '16px',\n textAlign: 'center',\n}\n\nconst closeButtonContainer: SxStyleProp = {\n cursor: 'pointer',\n borderLeft: '1px solid #E7E9EE',\n height: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n transition: '0.3s',\n ':hover': {\n color: '#E31C58',\n },\n}\n\nconst filterContainer: SxStyleProp = {\n display: 'flex',\n flexDirection: 'column',\n gap: '24px',\n}\n\nconst tagContainer: SxStyleProp = {\n gap: '16px',\n flexWrap: 'wrap',\n}\n\nconst tagContainerCentered: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '12px',\n justifyContent: 'center',\n overflow: 'visible',\n maxWidth: '100%',\n}\n\nconst tag: SxStyleProp = {\n cursor: 'pointer',\n transition: '0.3s',\n flex: '0 0 auto',\n ':active': {\n position: 'relative',\n top: '1px',\n },\n}\n\nconst checkBoxContainer: SxStyleProp = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(150px, 1fr))',\n gap: '24px',\n alignItems: 'top',\n fontSize: '12px',\n color: '#4A596B',\n}\n\nconst buttonsContainer: SxStyleProp = {\n py: '16px',\n px: '32px',\n alignItems: 'center',\n justifyContent: 'space-between',\n borderTop: '1px solid #E7E9EE',\n}\n\nconst sectionDivider: SxStyleProp = {\n hr: {\n border: '1px solid #E7E9EE',\n mb: '24px',\n mt: '24px',\n },\n}\n\nconst filterTitle: SxStyleProp = {\n fontSize: '20px',\n}\n\nconst removeButton: SxStyleProp = {\n backgroundColor: 'transparent',\n color: '#4A596B',\n textTransform: 'none',\n transition: '0.3s',\n p: '0',\n\n ':hover': {\n backgroundColor: 'transparent',\n color: '#E31C58',\n },\n}\n\nexport default {\n filterButton,\n filterButtonText,\n numberOfFilters,\n blanket,\n container,\n innerContainer,\n topContainer,\n modalTitle,\n closeButtonContainer,\n filterContainer,\n tagContainer,\n tagContainerCentered,\n tag,\n checkBoxContainer,\n buttonsContainer,\n sectionDivider,\n filterTitle,\n removeButton,\n}\n","import { Box, Flex, Button, Text } from '@vtex/brand-ui'\nimport { useEffect, useRef, useState } from 'react'\n\nimport type { IconComponent } from 'utils/typings/types'\nimport styles from './styles'\n\nexport type ChipFilterCategory = {\n type: string\n title: string\n Icon?: IconComponent\n}\n\nexport type ChipFilterProps = {\n filters: string[]\n categories: ChipFilterCategory[]\n applyCategory: (option: string) => void\n resetFilters: () => void\n removeCategory: (option: string) => void\n getCategoryAmount: (category: string) => number\n allResultsLabel?: string\n}\n\nconst ChipFilter = ({\n filters,\n categories,\n applyCategory,\n resetFilters,\n removeCategory,\n getCategoryAmount,\n allResultsLabel = 'All results',\n}: ChipFilterProps) => {\n const containerRef = useRef(null)\n\n const [shouldDisplayArrows, setShouldDisplayArrows] = useState<{\n left: boolean\n right: boolean\n }>({ left: false, right: false })\n\n const totalCount = categories.reduce(\n (sum, category) => sum + getCategoryAmount(category.type),\n 0\n )\n\n function handleLeftArrowClick() {\n if (containerRef.current) {\n containerRef.current.scrollLeft -= 180\n }\n }\n\n function handleRightArrowClick() {\n if (containerRef.current) {\n containerRef.current.scrollLeft += 180\n }\n }\n\n function isCategoryActive(category: string) {\n return filters.includes(category)\n }\n\n function handleContainerScroll() {\n if (!containerRef.current) return\n\n const offsetWidth = 20\n const { scrollLeft, clientWidth, scrollWidth } = containerRef.current\n const isLeftmostScroll = scrollLeft <= 0\n const isRightmostScroll =\n scrollLeft + clientWidth + offsetWidth >= scrollWidth\n const hasOverflow = scrollWidth > clientWidth + offsetWidth\n\n setShouldDisplayArrows({\n left: hasOverflow && !isLeftmostScroll,\n right: hasOverflow && !isRightmostScroll,\n })\n }\n\n useEffect(() => {\n handleContainerScroll()\n window.addEventListener('resize', handleContainerScroll)\n return () => window.removeEventListener('resize', handleContainerScroll)\n }, [categories, filters])\n\n return (\n \n {shouldDisplayArrows.left && (\n \n \n {`‹`}\n \n \n \n )}\n \n \n resetFilters()}\n />\n {categories.map((category) => (\n \n isCategoryActive(category.type)\n ? removeCategory(category.type)\n : applyCategory(category.type)\n }\n isActive={isCategoryActive(category.type)}\n Icon={category.Icon}\n />\n ))}\n \n \n {shouldDisplayArrows.right && (\n \n \n {`›`}\n \n \n \n )}\n \n )\n}\n\ninterface FilterChipProps {\n value: string\n isActive: boolean\n count: number\n applyCategory: () => void\n Icon?: IconComponent\n}\n\nfunction FilterChip({\n value,\n isActive,\n count,\n applyCategory,\n Icon,\n}: FilterChipProps) {\n return (\n \n {Icon ? : null}\n \n {value}\n \n {count}\n \n )\n}\n\nexport default ChipFilter\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst chipButtonWrapper: SxStyleProp = {\n display: 'flex',\n position: 'relative',\n userSelect: 'none',\n width: '100%',\n minWidth: 0,\n alignItems: 'center',\n}\n\nconst chipsContainer: SxStyleProp = {\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n overflowX: 'auto',\n overflowY: 'hidden',\n scrollBehavior: 'smooth',\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n minWidth: 0,\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n}\n\nconst optionsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n}\n\nconst chip: (active: boolean) => SxStyleProp = (active) => ({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '6px',\n height: '32px',\n minHeight: '32px',\n px: '12px',\n py: 0,\n borderRadius: '16px',\n border: `1px solid ${active ? '#D8D8E3' : '#E7E9EE'}`,\n backgroundColor: active ? '#F8F7FC' : '#FFFFFF',\n cursor: 'pointer',\n minWidth: 'max-content',\n ':hover': {\n borderColor: '#3A4F66',\n '.filter-chip-title': {\n color: '#4A596B',\n },\n },\n})\n\nconst chipIcon: SxStyleProp = {\n width: '14px',\n height: '14px',\n minWidth: '14px',\n minHeight: '14px',\n flexShrink: 0,\n}\n\nconst chipTitle: (active: boolean) => SxStyleProp = (active) => ({\n fontSize: '13px',\n fontWeight: active ? '600' : '500',\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n color: '#4A596B',\n transition: 'color 0.15s ease-out',\n})\n\nconst chipCount: SxStyleProp = {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n px: '6px',\n minWidth: '20px',\n height: '18px',\n fontSize: '11px',\n fontWeight: '500',\n lineHeight: '16px',\n borderRadius: '24px',\n backgroundColor: '#EDEAF6',\n color: '#4A596B',\n}\n\nconst arrowButton: SxStyleProp = {\n backgroundColor: 'transparent',\n border: 'none',\n borderRadius: '50%',\n fontWeight: '600',\n fontSize: '16px',\n padding: '0 8px',\n textDecoration: 'none',\n ':hover': {\n textDecoration: 'none',\n backgroundColor: 'transparent',\n },\n}\n\nconst rightArrowBlur: SxStyleProp = {\n maxWidth: '40px',\n minWidth: '20px',\n width: '5vw',\n background:\n 'linear-gradient(to left, rgba(255,255,255,80%) 30%, rgba(255, 255, 255, 1%))',\n}\n\nconst leftArrowBlur: SxStyleProp = {\n maxWidth: '40px',\n minWidth: '20px',\n width: '5vw',\n background:\n 'linear-gradient(to right, rgba(255,255,255,80%) 30%, rgba(255, 255, 255, 1%))',\n}\n\nconst leftArrowContainer: SxStyleProp = {\n position: 'absolute',\n display: 'flex',\n alignItems: 'center',\n left: 0,\n top: 0,\n bottom: 0,\n zIndex: 2,\n pointerEvents: 'none',\n button: {\n pointerEvents: 'auto',\n },\n}\n\nconst rightArrowContainer: SxStyleProp = {\n position: 'absolute',\n display: 'flex',\n flexDirection: 'row-reverse',\n alignItems: 'center',\n right: 0,\n top: 0,\n bottom: 0,\n zIndex: 2,\n pointerEvents: 'none',\n button: {\n pointerEvents: 'auto',\n },\n}\n\nexport default {\n leftArrowBlur,\n rightArrowBlur,\n arrowButton,\n chipsContainer,\n optionsContainer,\n chipButtonWrapper,\n leftArrowContainer,\n rightArrowContainer,\n chip,\n chipIcon,\n chipTitle,\n chipCount,\n}\n","import { Box, Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport type { ContributorsType } from 'lib/contributors'\r\nimport styles from './styles'\r\n\r\nexport type AuthorProps = {\r\n contributor: ContributorsType\r\n}\r\n\r\nconst Author = ({ contributor }: AuthorProps) => {\r\n return (\r\n \r\n \r\n {/* eslint-disable-next-line @next/next/no-img-element */}\r\n \r\n \r\n {contributor?.name}\r\n \r\n )\r\n}\r\n\r\nexport default Author\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n alignItems: 'center',\r\n columnGap: ['8px', '10px', '16px'],\r\n pt: ['8px', '12px', '14px'],\r\n}\r\n\r\nconst photo: SxStyleProp = {\r\n flexShrink: 0,\r\n width: ['24px', '28px', '32px'],\r\n height: ['24px', '28px', '32px'],\r\n img: {\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: '100%',\r\n },\r\n}\r\n\r\nconst name: SxStyleProp = {\r\n color: '#4A596B',\r\n fontSize: ['14px', '14px', '16px'],\r\n lineHeight: ['20px', '20px', '22px'],\r\n fontWeight: '400',\r\n overflowWrap: 'anywhere',\r\n}\r\n\r\nexport default {\r\n container,\r\n photo,\r\n name,\r\n}\r\n","import { useContext } from 'react'\r\nimport { Text } from '@vtex/brand-ui'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type TimeToReadProps = {\r\n minutes: string\r\n}\r\n\r\nconst TimeToRead = ({ minutes }: TimeToReadProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const template =\r\n messages[locale]['documentation_reading_time.text'] || '{minutes} min read'\r\n\r\n return (\r\n \r\n {template.replace('{minutes}', minutes)}\r\n \r\n )\r\n}\r\n\r\nexport default TimeToRead\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst readingTime: SxStyleProp = {\r\n color: '#A1AAB7',\r\n fontSize: ['14px', '16px'],\r\n lineHeight: '22px',\r\n}\r\n\r\nexport default {\r\n readingTime,\r\n}\r\n","import { useContext } from 'react'\nimport { Flex, Text } from '@vtex/brand-ui'\n\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport styles from './styles'\n\nexport type DateTextProps = {\n createdAt: Date\n updatedAt: Date\n}\n\nconst formatDate = (date: Date, locale: string) => {\n if (Number.isNaN(date.getTime())) return undefined\n return new Intl.DateTimeFormat(locale).format(date)\n}\n\nconst DateText = ({ createdAt, updatedAt }: DateTextProps) => {\n const { locale } = useContext(LibraryContext)\n const createdLabel = messages[locale]['date_text.created'] || 'Published on'\n const updatedLabel =\n messages[locale]['date_text.updated'] || 'Last updated on'\n const created = formatDate(createdAt, locale)\n const updated = formatDate(updatedAt, locale)\n\n if (!created && !updated) return null\n\n return (\n \n {created && (\n \n \n {createdLabel}\n \n {created}\n \n )}\n {created && updated && }\n {updated && (\n \n \n {updatedLabel}\n \n {updated}\n \n )}\n \n )\n}\n\nexport default DateText\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst dateContainer: SxStyleProp = {\n alignItems: 'center',\n color: '#5E6E84',\n fontSize: '13px',\n lineHeight: '20px',\n fontWeight: '400',\n columnGap: '6px',\n rowGap: '2px',\n flexWrap: 'wrap',\n width: '100%',\n}\n\nconst dateItem: SxStyleProp = {\n color: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n}\n\nconst dateLabel: SxStyleProp = {\n fontWeight: '500',\n paddingRight: '4px',\n}\n\nconst dateSeparator: SxStyleProp = {\n color: '#8A94A3',\n flexShrink: 0,\n}\n\nexport default { dateContainer, dateItem, dateLabel, dateSeparator }\n","import { useContext, type ReactNode } from 'react'\r\nimport Link from 'next/link.js'\r\nimport { Flex, Text, Box } from '@vtex/brand-ui'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { formatArticleDateValue } from 'utils/format-article-date'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type ArticlePaginationDoc = {\r\n slug: string | null\r\n name: string | null\r\n createdAt?: string | null\r\n children?: ReactNode\r\n}\r\n\r\nexport type ArticlePaginationData = {\r\n previousDoc: ArticlePaginationDoc\r\n nextDoc: ArticlePaginationDoc\r\n}\r\n\r\nexport type ArticlePaginationProps = {\r\n pagination: ArticlePaginationData\r\n hidePaginationPrevious?: boolean\r\n hidePaginationNext?: boolean\r\n previousChildren?: ReactNode\r\n nextChildren?: ReactNode\r\n}\r\n\r\nconst ArticlePagination = ({\r\n pagination,\r\n hidePaginationNext = false,\r\n hidePaginationPrevious = false,\r\n previousChildren,\r\n nextChildren,\r\n}: ArticlePaginationProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const previousLabel =\r\n messages[locale]['article_pagination.previous'] || 'Previous'\r\n const nextLabel = messages[locale]['article_pagination.next'] || 'Next'\r\n\r\n const showPrevious =\r\n !hidePaginationPrevious &&\r\n Boolean(pagination?.previousDoc?.slug) &&\r\n Boolean(pagination?.previousDoc?.name)\r\n const showNext =\r\n !hidePaginationNext &&\r\n Boolean(pagination?.nextDoc?.slug) &&\r\n Boolean(pagination?.nextDoc?.name)\r\n\r\n const previousExtra =\r\n previousChildren ??\r\n pagination?.previousDoc?.children ??\r\n formatArticleDateValue(\r\n pagination?.previousDoc?.createdAt,\r\n locale,\r\n 'medium'\r\n )\r\n const nextExtra =\r\n nextChildren ??\r\n pagination?.nextDoc?.children ??\r\n formatArticleDateValue(pagination?.nextDoc?.createdAt, locale, 'medium')\r\n\r\n return (\r\n \r\n \r\n {showPrevious && (\r\n \r\n \r\n \r\n {`« ${previousLabel}`}\r\n \r\n {pagination.previousDoc.name}\r\n \r\n {previousExtra != null && previousExtra !== false && (\r\n {previousExtra}\r\n )}\r\n \r\n \r\n \r\n )}\r\n\r\n {showNext && (\r\n \r\n \r\n \r\n {`${nextLabel} »`}\r\n \r\n {pagination.nextDoc.name}\r\n \r\n {nextExtra != null && nextExtra !== false && (\r\n {nextExtra}\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ArticlePagination\r\n","export const DATE_LOCALES: Record<'en' | 'pt' | 'es', string> = {\n en: 'en-US',\n pt: 'pt-BR',\n es: 'es-MX',\n}\n\nexport type ArticleDateStyle = 'long' | 'medium' | 'short'\n\nexport function parseArticleDate(value: unknown) {\n if (value == null || value === '') return undefined\n const date = new Date(String(value))\n return Number.isNaN(date.getTime()) ? undefined : date\n}\n\nexport function formatArticleDate(\n date: Date,\n locale: 'en' | 'pt' | 'es',\n style: ArticleDateStyle\n) {\n return new Intl.DateTimeFormat(DATE_LOCALES[locale], {\n ...(style === 'long'\n ? { month: 'long' as const, day: 'numeric' as const }\n : style === 'medium'\n ? { month: 'short' as const, day: 'numeric' as const }\n : { month: '2-digit' as const, day: '2-digit' as const }),\n year: 'numeric',\n timeZone: 'UTC',\n }).format(date)\n}\n\nexport function formatArticleDateValue(\n value: unknown,\n locale: 'en' | 'pt' | 'es',\n style: ArticleDateStyle\n) {\n const date = parseArticleDate(value)\n return date ? formatArticleDate(date, locale, style) : undefined\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\r\nimport { CSSProperties } from 'react'\r\n\r\nconst mainContainer: SxStyleProp = {\r\n width: '100%',\r\n mt: ['20px', '32px'],\r\n mb: ['24px', '52px'],\r\n maxWidth: '100%',\r\n minWidth: 0,\r\n borderTop: '1px solid #E7E9EE',\r\n pt: ['20px', '32px'],\r\n}\r\n\r\nconst flexContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n alignItems: 'stretch',\r\n gap: ['16px', '16px'],\r\n width: '100%',\r\n minWidth: 0,\r\n}\r\n\r\nconst paginationBox: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n padding: ['0', '16px'],\r\n borderRadius: ['0', '4px'],\r\n border: ['none', '1px solid #E7E9EE'],\r\n color: '#4A596B',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n gap: '4px',\r\n boxSizing: 'border-box',\r\n ':hover': {\r\n border: ['none', '1px solid #CCCED8'],\r\n boxShadow: ['none', '0px 0px 16px rgba(0, 0, 0, 0.1)'],\r\n color: '#000711',\r\n },\r\n}\r\n\r\nconst paginationBoxNext: SxStyleProp = {\r\n ...paginationBox,\r\n alignItems: 'flex-end',\r\n textAlign: 'right',\r\n}\r\n\r\nconst paginationText: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n '-webkit-line-clamp': '2',\r\n '-webkit-box-orient': 'vertical',\r\n overflowWrap: 'anywhere',\r\n whiteSpace: 'normal',\r\n fontSize: ['15px', '16px'],\r\n lineHeight: ['20px', '22px'],\r\n color: '#4A596B',\r\n}\r\n\r\nconst paginationChildren: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n color: '#5E6E84',\r\n fontSize: ['12px', '13px'],\r\n lineHeight: ['16px', '18px'],\r\n fontWeight: '400',\r\n}\r\n\r\nconst subTitle: SxStyleProp = {\r\n color: '#A1A8B3',\r\n fontSize: ['12px', '0.85em'],\r\n lineHeight: '16px',\r\n fontWeight: '500',\r\n flexShrink: 0,\r\n}\r\n\r\nconst linkReset: CSSProperties = {\r\n width: '100%',\r\n minWidth: 0,\r\n display: 'block',\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n}\r\n\r\nconst paginationLinkPrevious: SxStyleProp = {\r\n width: ['auto', '230px'],\r\n maxWidth: ['none', '230px'],\r\n minWidth: 0,\r\n flex: ['1 1 0', '0 0 auto'],\r\n}\r\n\r\nconst paginationLinkNext: SxStyleProp = {\r\n width: ['auto', '230px'],\r\n maxWidth: ['none', '230px'],\r\n minWidth: 0,\r\n ml: 'auto',\r\n flex: ['1 1 0', '0 0 auto'],\r\n}\r\n\r\nexport default {\r\n mainContainer,\r\n flexContainer,\r\n linkReset,\r\n paginationLinkNext,\r\n paginationLinkPrevious,\r\n paginationBox,\r\n paginationBoxNext,\r\n paginationText,\r\n paginationChildren,\r\n subTitle,\r\n}\r\n","import { useContext, type ReactNode } from 'react'\nimport Head from 'next/head.js'\nimport { Box, Flex, Text } from '@vtex/brand-ui'\nimport type { MDXRemoteSerializeResult } from 'next-mdx-remote'\n\nimport AskAIMenu from 'components/ask-ai'\nimport ArticlePagination from 'components/article-pagination'\nimport type { ArticlePaginationData } from 'components/article-pagination'\nimport SeeAlsoSection from 'components/see-also-section'\nimport type { SeeAlsoDoc } from 'components/see-also-section'\nimport Author from 'components/author'\nimport Breadcrumb from 'components/breadcrumb'\nimport type { BreadcrumbItem } from 'components/breadcrumb'\nimport CopyHeadingLink from 'components/copy-heading-link'\nimport FeedbackModal from 'components/feedback-modal'\nimport FeedbackSection from 'components/feedback-section'\nimport SuggestEdits from 'components/suggest-edits'\nimport TimeToRead from 'components/time-to-read'\nimport MarkdownRenderer from 'lib/markdown-renderer'\nimport type { MarkdownRendererProps } from 'lib/markdown-renderer/MarkdownRenderer.types'\nimport Contributors from 'lib/contributors'\nimport type { ContributorsType } from 'lib/contributors'\nimport OnThisPage from 'lib/on-this-page'\nimport TableOfContents from 'lib/table-of-contents'\nimport type { Item } from 'lib/table-of-contents'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport {\n formatArticleDate,\n parseArticleDate,\n} from 'utils/format-article-date'\nimport { messages } from 'utils/get-message'\nimport styles from './styles'\n\nexport type ArticleRenderProps = {\n serialized: MDXRemoteSerializeResult\n breadcrumbList: BreadcrumbItem[]\n slug: string\n path: string\n type: string\n pageUrl: string\n urlToEdit: string\n rawContentBaseUrl: string\n contributors?: ContributorsType[]\n headings?: Item[]\n headingList?: Item[]\n pagination?: ArticlePaginationData\n paginationPreviousChildren?: ReactNode\n paginationNextChildren?: ReactNode\n children?: ReactNode\n seeAlso?: SeeAlsoDoc[] | ReactNode\n customComponents?: MarkdownRendererProps['customComponents']\n scope?: MarkdownRendererProps['scope']\n /** Wrap the markdown output without remounting it on parent re-renders. */\n renderMarkdown?: (markdown: ReactNode) => ReactNode\n showReadingTime?: boolean\n showAskAIMenu?: boolean\n showAuthor?: boolean\n showContributors?: boolean\n showFeedbackSection?: boolean\n showSuggestEdits?: boolean\n showArticlePagination?: boolean\n showSeeAlso?: boolean\n showTableOfContents?: boolean\n showCreatedAt?: boolean\n createdAtFormat?: 'long' | 'published'\n showUpdatedAt?: boolean\n}\n\nconst readingTimeLabel = (readingTime: unknown) => {\n if (readingTime == null || readingTime === '') return undefined\n if (\n typeof readingTime === 'object' &&\n readingTime !== null &&\n 'text' in readingTime\n ) {\n const text = (readingTime as { text?: unknown }).text\n return text != null ? String(text) : undefined\n }\n return String(readingTime)\n}\n\nconst isSameUtcDay = (a: Date, b: Date) =>\n a.getUTCFullYear() === b.getUTCFullYear() &&\n a.getUTCMonth() === b.getUTCMonth() &&\n a.getUTCDate() === b.getUTCDate()\n\nconst ArticleRender = ({\n serialized,\n headings = [],\n headingList,\n breadcrumbList,\n contributors = [],\n path,\n pagination,\n paginationPreviousChildren,\n paginationNextChildren,\n slug,\n type,\n pageUrl,\n urlToEdit,\n rawContentBaseUrl,\n children,\n seeAlso,\n customComponents,\n scope = {},\n renderMarkdown,\n showReadingTime = true,\n showAskAIMenu = true,\n showAuthor = false,\n showContributors = true,\n showFeedbackSection = true,\n showSuggestEdits = true,\n showArticlePagination = true,\n showSeeAlso = true,\n showTableOfContents = true,\n showCreatedAt = false,\n createdAtFormat = 'long',\n showUpdatedAt = false,\n}: ArticleRenderProps) => {\n const { locale } = useContext(LibraryContext)\n const localeMessages = messages[locale] ?? messages.en\n const tocHeadings = headingList?.length ? headingList : headings\n const readingTime = readingTimeLabel(serialized?.frontmatter?.readingTime)\n const createdAt = parseArticleDate(serialized?.frontmatter?.createdAt)\n const updatedAt = parseArticleDate(serialized?.frontmatter?.updatedAt)\n const createdAtDate = createdAt\n ? formatArticleDate(\n createdAt,\n locale,\n createdAtFormat === 'published' ? 'short' : 'long'\n )\n : undefined\n const publishedLabel =\n localeMessages['date_text.created'] || 'Published on'\n const createdAtLabel = createdAtDate\n ? createdAtFormat === 'published'\n ? `${publishedLabel}: ${createdAtDate}`\n : createdAtDate\n : undefined\n const hasDistinctUpdatedAt = Boolean(\n updatedAt && (!createdAt || !isSameUtcDay(createdAt, updatedAt))\n )\n const updatedAtLabel =\n hasDistinctUpdatedAt && updatedAt\n ? formatArticleDate(updatedAt, locale, 'short')\n : undefined\n const lastUpdateLabel =\n localeMessages['date_text.last_update'] || 'Last update:'\n const showBottomSection = showContributors || showFeedbackSection\n const showSidebar = showContributors || showTableOfContents\n const markdown = (\n \n )\n\n return (\n <>\n \n <>\n \n {serialized?.frontmatter?.title && (\n {serialized?.frontmatter?.title as string}\n )}\n {serialized?.frontmatter?.title && (\n \n )}\n {serialized.frontmatter?.hidden && (\n \n )}\n {serialized.frontmatter?.excerpt && (\n \n )}\n \n \n \n \n \n \n \n \n \n
\n
\n <>\n \n \n {serialized.frontmatter?.title as ReactNode}\n \n \n {children && (\n {children}\n )}\n {showAuthor && contributors[0]?.avatar && (\n \n )}\n {serialized.frontmatter?.excerpt && (\n \n {serialized.frontmatter?.excerpt}\n \n )}\n \n
\n\n \n {((showCreatedAt && createdAtLabel) ||\n (showReadingTime && readingTime)) && (\n \n {showCreatedAt && createdAtLabel && (\n {createdAtLabel}\n )}\n {showReadingTime && readingTime && (\n \n \n \n )}\n \n )}\n \n \n {showAskAIMenu && (\n \n )}\n \n \n {renderMarkdown ? renderMarkdown(markdown) : markdown}\n
\n {showSeeAlso &&\n (Array.isArray(seeAlso)\n ? seeAlso.length > 0 && \n : seeAlso)}\n {showUpdatedAt && updatedAtLabel && (\n \n {lastUpdateLabel} {updatedAtLabel}\n \n )}\n
\n
\n\n {showBottomSection && (\n \n {showContributors && (\n \n \n \n )}\n {showFeedbackSection && (\n \n )}\n \n )}\n\n {showArticlePagination && pagination && (\n \n )}\n
\n {showSidebar && (\n \n {showContributors && }\n {showTableOfContents && (\n \n {(showFeedbackSection || showSuggestEdits) && (\n \n {showFeedbackSection && (\n \n )}\n {showSuggestEdits && (\n \n )}\n \n )}\n \n )}\n \n )}\n {showTableOfContents && tocHeadings.length > 0 && (\n \n )}\n
\n \n )\n}\n\nexport default ArticleRender\n","import { useContext } from 'react'\nimport { Box, Text } from '@vtex/brand-ui'\n\nimport DocumentationCard from 'components/documentation-card'\nimport { LibraryContext } from 'utils/context/libraryContext'\nimport { messages } from 'utils/get-message'\nimport { createDocFromUrl } from './functions'\nimport type { SeeAlsoDoc } from './functions'\n\nimport styles from './styles'\n\nexport type { SeeAlsoDoc }\n\nexport type SeeAlsoSectionProps = {\n docs: SeeAlsoDoc[]\n}\n\nconst isExternalLink = (url: string) => /^https?:\\/\\//.test(url)\n\nconst SeeAlsoSection = ({ docs }: SeeAlsoSectionProps) => {\n const { locale, sidebarSections, sidebarDataMaster } =\n useContext(LibraryContext)\n const title = messages[locale]['see_also_section.title'] || 'See also'\n const cards =\n docs?.map((doc) =>\n createDocFromUrl(doc, sidebarSections, {\n locale,\n navigation: sidebarDataMaster,\n })\n ) ?? []\n\n return (\n \n \n {title}\n \n \n {cards.map((card) => (\n \n ))}\n \n
\n )\n}\n\nexport default SeeAlsoSection\n","import { capitalizeFirstLetter, slugify } from 'utils/string-utils'\nimport { getSectionLabel } from 'utils/sidebar-utils'\nimport PaperIcon from 'components/icons/paper-icon'\nimport type { DocumentProps } from 'components/documentation-card'\nimport type { Section } from 'utils/typings/types'\n\nexport type SeeAlsoDoc = {\n url: string\n title?: string\n category?: string\n}\n\ntype CreateDocOptions = {\n locale?: 'en' | 'pt' | 'es'\n navigation?: unknown\n}\n\nconst ACRONYMS: Record = {\n api: 'API',\n cms: 'CMS',\n faq: 'FAQ',\n io: 'IO',\n sku: 'SKU',\n vtex: 'VTEX',\n}\n\n/** Alternate category names mapped onto current section ids. */\nconst CATEGORY_ALIASES: Record = {\n 'api-guide': 'guides',\n 'api-guides': 'guides',\n}\n\nconst KEBAB_SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)+$/\n\nconst normalizeKey = (value: string) => slugify(value.replace(/[_/]+/g, '-'))\n\nconst isKebabSlug = (value: string) => KEBAB_SLUG.test(value)\n\nconst humanizeSlug = (slug: string) =>\n slug\n .split('-')\n .filter(Boolean)\n .map((word) => ACRONYMS[word.toLowerCase()] ?? capitalizeFirstLetter(word))\n .join(' ')\n\n/** Keep real titles; only humanize kebab-case slugs. */\nexport const displayLabel = (value: string) => {\n const cleaned = value.split('#')[0].split('?')[0].trim()\n if (!cleaned) return ''\n if (isKebabSlug(cleaned)) return humanizeSlug(cleaned)\n return cleaned\n}\n\nconst pathnameFromUrl = (url: string) => {\n if (!url) return ''\n try {\n if (/^https?:\\/\\//i.test(url)) {\n return new URL(url).pathname\n }\n } catch {\n return url.split('#')[0].split('?')[0]\n }\n return url.split('#')[0].split('?')[0]\n}\n\nconst lastPathSegment = (url: string) => {\n const path = pathnameFromUrl(url).replace(/\\/+$/, '')\n const segment = path.split('/').filter(Boolean).pop() ?? ''\n try {\n return decodeURIComponent(segment)\n } catch {\n return segment\n }\n}\n\nconst parentPath = (url: string) =>\n pathnameFromUrl(url).replace(/\\/+$/, '').replace(/\\/[^/]+$/, '')\n\nexport const findSection = (\n sections: Section[][],\n { category, url }: Pick\n): Section | undefined => {\n const all = sections.flat()\n if (!all.length) return undefined\n\n const categoryKey = category ? normalizeKey(category) : ''\n const aliased = categoryKey\n ? CATEGORY_ALIASES[categoryKey] ?? categoryKey\n : ''\n\n if (aliased) {\n const byCategory = all.find((section) => {\n const id = normalizeKey(section.id)\n const title = normalizeKey(section.title)\n return (\n id === aliased ||\n title === aliased ||\n id === categoryKey ||\n title === categoryKey\n )\n })\n if (byCategory) return byCategory\n }\n\n const path = pathnameFromUrl(url).replace(/\\/+$/, '')\n const isBareExternalOrigin =\n /^https?:\\/\\//i.test(url) && (!path || path === '/')\n if (!path || isBareExternalOrigin) return undefined\n\n let best: Section | undefined\n let bestLength = -1\n for (const section of all) {\n if (!section.link || section.isExternalLink) continue\n const link = section.link.replace(/\\/+$/, '')\n if (!link || link === '/') continue\n if (path === link || path.startsWith(`${link}/`)) {\n if (link.length > bestLength) {\n best = section\n bestLength = link.length\n }\n }\n }\n return best\n}\n\nexport const createDocFromUrl = (\n doc: SeeAlsoDoc,\n sections: Section[][] = [],\n options: CreateDocOptions = {}\n): DocumentProps => {\n const section = findSection(sections, {\n category: doc.category,\n url: doc.url,\n })\n\n const title = displayLabel(doc.title || lastPathSegment(doc.url))\n const description = section\n ? getSectionLabel(section, options.navigation, options.locale ?? 'en')\n : displayLabel(doc.category || lastPathSegment(parentPath(doc.url)))\n\n return {\n title,\n description,\n link: doc.url,\n Icon: section?.Icon ?? PaperIcon,\n }\n}\n","import { SxStyleProp } from '@vtex/brand-ui'\n\nconst seeAlsoContainer: SxStyleProp = {\n width: '100%',\n maxWidth: '100%',\n minWidth: 0,\n mt: ['8px', '16px'],\n pt: ['20px', '24px'],\n borderTop: '1px solid #E7E9EE',\n a: {\n color: 'inherit',\n fontWeight: 'inherit',\n },\n h2: {\n mt: '0 !important',\n mb: ['12px', '16px'],\n fontSize: ['16px', '18px'],\n lineHeight: ['24px', '26px'],\n fontWeight: '600',\n color: '#142032',\n },\n}\n\nconst sectionTitle: SxStyleProp = {\n display: 'block',\n fontSize: ['16px', '18px'],\n lineHeight: ['24px', '26px'],\n marginBottom: ['12px', '16px'],\n fontWeight: '600',\n color: '#142032',\n}\n\nconst cards: SxStyleProp = {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 260px), 1fr))',\n gap: '12px',\n width: '100%',\n minWidth: 0,\n}\n\nexport default {\n seeAlsoContainer,\n sectionTitle,\n cards,\n}\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst MUTED = '#5E6E84'\n\nconst innerContainer: SxStyleProp = {\n justifyContent: 'center',\n width: '100%',\n minWidth: 0,\n boxSizing: 'border-box',\n pt: ['24px', '32px', '3em'],\n mx: 'auto',\n px: ['18px', '24px', '32px', '40px', '48px', '64px', '20em'],\n pb: ['48px', '64px', '72px'],\n}\n\nconst articleBox: SxStyleProp = {\n fontSize: '1em',\n lineHeight: '1.75em',\n flex: '1 1 auto',\n width: '100%',\n minWidth: 0,\n maxWidth: '100%',\n color: 'rgb(51, 65, 85)',\n overflowWrap: 'anywhere',\n img: {\n maxWidth: '100%',\n height: 'auto',\n },\n pre: {\n maxWidth: '100%',\n overflowX: 'auto',\n },\n iframe: {\n maxWidth: '100%',\n },\n a: {\n color: '#E31C58',\n textDecoration: 'none',\n fontWeight: '500',\n },\n ul: {\n pl: '1.5em',\n mt: '1.25em',\n mb: '1.25em',\n li: {\n mt: '0.5em',\n mb: '0.5em',\n },\n listStyleType: 'disc',\n 'ul, ol': {\n mt: '0.5em',\n mb: '0.5em',\n },\n },\n ol: {\n pl: '1.5em',\n mt: '1.25em',\n mb: '1.25em',\n li: {\n mt: '0.5em',\n mb: '0.5em',\n },\n 'ul, ol': {\n mt: '0.5em',\n mb: '0.5em',\n },\n },\n header: {\n marginTop: ['8px', '16px'],\n borderBottom: '1px solid #E7E9EE',\n marginBottom: ['8px', '12px'],\n pb: ['12px', '16px'],\n },\n h2: {\n fontSize: '1.375em',\n lineHeight: '1.3em',\n fontWeight: '700',\n mt: ['1.5em', '2em'],\n mb: ['0.75em', '1em'],\n overflowWrap: 'anywhere',\n color: 'rgb(15, 23, 42)',\n },\n h3: {\n fontSize: '1.125em',\n fontWeight: '600',\n lineHeight: '1.6em',\n mt: '1.6em',\n mb: '0.6em',\n overflowWrap: 'anywhere',\n },\n h4: {\n fontSize: '1em',\n fontWeight: '600',\n lineHeight: '1.5em',\n mt: '1.5em',\n mb: '0.5em',\n color: 'rgb(15, 23, 42)',\n overflowWrap: 'anywhere',\n },\n h5: {\n fontSize: '0.9375em',\n fontWeight: '600',\n lineHeight: '1.5em',\n mt: '1.25em',\n mb: '0.5em',\n color: 'rgb(71, 85, 105)',\n overflowWrap: 'anywhere',\n },\n h6: {\n fontSize: '0.9375em',\n fontWeight: '600',\n lineHeight: '1.5em',\n mt: '1.25em',\n mb: '0.5em',\n color: 'rgb(100, 116, 139)',\n overflowWrap: 'anywhere',\n },\n strong: {\n fontWeight: '600',\n overflowWrap: 'break-word',\n },\n hr: {\n border: '0.5px solid #E7E9EE',\n my: ['2em', '3em'],\n },\n}\n\nconst contentContainer: SxStyleProp = {\n width: '100%',\n minWidth: 0,\n maxWidth: '100%',\n}\n\nconst documentationTitle: SxStyleProp = {\n display: 'block',\n marginTop: ['16px', '16px', '24px'],\n marginBottom: 0,\n fontSize: ['28px', '28px', '30px'],\n lineHeight: ['36px', '36px', '38px'],\n fontWeight: '400',\n color: '#142032',\n overflowWrap: 'anywhere',\n}\n\nconst documentationExcerpt: SxStyleProp = {\n display: 'block',\n color: '#4A596B',\n fontSize: '16px',\n lineHeight: '24px',\n fontWeight: '400',\n mt: '12px',\n mb: 0,\n overflowWrap: 'anywhere',\n}\n\nconst breadcrumbRow: SxStyleProp = {\n justifyContent: 'space-between',\n alignItems: 'flex-start',\n flexWrap: 'wrap',\n gap: '8px',\n width: '100%',\n minWidth: 0,\n}\n\nconst articleHeaderExtra: SxStyleProp = {\n mt: ['8px', '10px'],\n width: '100%',\n minWidth: 0,\n}\n\nconst articleMeta: SxStyleProp = {\n flexDirection: 'column-reverse',\n justifyContent: 'flex-start',\n alignItems: 'stretch',\n gap: '10px',\n marginBottom: ['16px', '20px'],\n marginTop: '0',\n width: '100%',\n minWidth: 0,\n '@media screen and (min-width: 40em)': {\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexWrap: 'wrap',\n gap: '8px 16px',\n },\n}\n\nconst articleMetaInfo: SxStyleProp = {\n flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n gap: '2px',\n minWidth: 0,\n width: '100%',\n flex: '0 0 auto',\n '@media screen and (min-width: 40em)': {\n width: 'auto',\n flex: '1 1 auto',\n },\n}\n\nconst articleCreatedAt: SxStyleProp = {\n color: MUTED,\n fontSize: '13px',\n lineHeight: ['18px', '20px'],\n fontWeight: '400',\n}\n\nconst articleReadingTime: SxStyleProp = {\n color: MUTED,\n fontSize: '13px',\n lineHeight: ['18px', '20px'],\n '& > *': {\n color: 'inherit !important',\n fontSize: 'inherit !important',\n lineHeight: 'inherit !important',\n },\n}\n\nconst articleLastUpdate: SxStyleProp = {\n display: 'block',\n color: MUTED,\n fontSize: '13px',\n lineHeight: ['18px', '20px'],\n fontWeight: '400',\n mt: ['16px', '24px'],\n}\n\nconst articleActions: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n gap: '8px',\n flexShrink: 0,\n ml: 0,\n width: '100%',\n minWidth: 0,\n '& > div': {\n width: 'max-content',\n flexShrink: 0,\n },\n '& [role=\"menu\"]': {\n right: 0,\n },\n '@media screen and (min-width: 40em)': {\n justifyContent: 'flex-end',\n ml: 'auto',\n width: 'auto',\n },\n}\n\nconst bottomContributorsContainer: SxStyleProp = {\n display: ['flex', 'flex', 'flex', 'flex', 'none'],\n flexDirection: 'column',\n alignItems: 'center',\n width: '100%',\n minWidth: 0,\n pt: ['20px', '24px'],\n gap: ['24px', '24px'],\n '[data-cy=\"feedback-section\"]': {\n marginTop: '0',\n marginBottom: '0',\n gap: '12px',\n '& > div:first-of-type': {\n borderBottom: 'none',\n paddingBottom: 0,\n marginBottom: 0,\n marginTop: 0,\n },\n },\n}\n\nconst bottomContributors: SxStyleProp = {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n '& > div': {\n alignItems: 'center !important',\n width: 'auto !important',\n mb: '0 !important',\n },\n '[data-cy=\"contributors-container\"]': {\n display: 'flex !important',\n flexWrap: 'wrap',\n justifyContent: 'center',\n width: 'auto !important',\n maxWidth: '232px',\n },\n}\n\nconst rightContainer: SxStyleProp = {\n ml: [0, 0, 0, 0, '48px', '68px', '200px'],\n display: [\n 'none !important',\n 'none !important',\n 'none !important',\n 'none !important',\n 'initial !important',\n ],\n flexShrink: 0,\n width: [0, 0, 0, 0, '240px', '240px', '284px'],\n}\n\nconst divider: SxStyleProp = {\n borderTop: '1px solid #E7E9EE',\n pt: 4,\n mt: 4,\n}\n\nconst textContainer: SxStyleProp = {\n width: '100%',\n minWidth: 0,\n maxWidth: '100%',\n gap: '8px',\n pb: ['16px', '24px', '32px'],\n mb: ['8px', '24px', '48px'],\n}\n\nconst editContainer: SxStyleProp = {\n my: 3,\n gap: 2,\n}\n\nexport default {\n innerContainer,\n articleBox,\n contentContainer,\n documentationTitle,\n documentationExcerpt,\n breadcrumbRow,\n articleHeaderExtra,\n articleMeta,\n articleMetaInfo,\n articleCreatedAt,\n articleReadingTime,\n articleActions,\n articleLastUpdate,\n bottomContributorsContainer,\n bottomContributors,\n rightContainer,\n divider,\n textContainer,\n editContainer,\n}\n","import { Box, Link, Text } from '@vtex/brand-ui'\nimport Tag from 'components/tag'\n\nimport type { TroubleshootingItem } from '../../utils/troubleshooting/types'\nimport styles from './styles'\n\nexport type TroubleshootingCardVariant = 'devportal' | 'helpcenter'\n\nexport type TroubleshootingCardProps = TroubleshootingItem & {\n href?: string\n basePath?: string\n variant?: TroubleshootingCardVariant\n}\n\nfunction buildHref({\n slug,\n href,\n basePath = '/docs/troubleshooting',\n}: Pick) {\n if (href) return href\n\n const normalizedBasePath = basePath.replace(/\\/$/, '')\n return `${normalizedBasePath}/${slug}`\n}\n\nconst TroubleshootingCard = ({\n title,\n description,\n slug,\n tags,\n domainFilters,\n symptomFilters,\n href,\n basePath,\n variant = 'devportal',\n}: TroubleshootingCardProps) => {\n const cardHref = buildHref({ slug, href, basePath })\n const resolvedSymptomFilters = symptomFilters?.filter(Boolean) ?? []\n const resolvedDomainFilters = domainFilters?.filter(Boolean) ?? []\n const fallbackTags = tags?.filter(Boolean) ?? []\n const hasStructuredTags =\n resolvedSymptomFilters.length > 0 || resolvedDomainFilters.length > 0\n\n if (variant === 'helpcenter') {\n return (\n \n \n \n {title}\n \n {hasStructuredTags ? (\n \n {resolvedSymptomFilters.length > 0 && (\n \n \n {resolvedSymptomFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n \n )}\n {resolvedDomainFilters.length > 0 && (\n \n \n {resolvedDomainFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n \n )}\n \n ) : null}\n \n \n )\n }\n\n return (\n \n \n \n {title}\n \n {description ? (\n \n {description}\n \n ) : null}\n \n {resolvedSymptomFilters.length > 0 && (\n \n {resolvedSymptomFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n )}\n {resolvedDomainFilters.length > 0 && (\n \n {resolvedDomainFilters.map((filter) => (\n \n {filter}\n \n ))}\n \n )}\n {!hasStructuredTags &&\n fallbackTags.map((moduleTag) => (\n \n {moduleTag}\n \n ))}\n \n \n \n )\n}\n\nexport default TroubleshootingCard\n","import type { SxStyleProp } from '@vtex/brand-ui'\n\nconst devportalContainer: SxStyleProp = {\n mt: '16px',\n padding: '25px',\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: '100%',\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n borderColor: 'muted.2',\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n\n '.title, .description': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n },\n}\n\nconst helpcenterContainer: SxStyleProp = {\n px: ['20px', '32px', '36px', '48px'],\n py: ['20px', '24px'],\n display: 'flex',\n flexDirection: 'column',\n gap: ['12px', '16px'],\n borderRadius: '4px',\n border: '1px solid #E7E9EE',\n width: '100%',\n maxWidth: '100%',\n minWidth: 0,\n boxSizing: 'border-box',\n transition: 'all 0.3s ease-out',\n ':hover': {\n cursor: 'pointer',\n },\n ':active, :hover': {\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\n transition: 'all 0.3 ease-out',\n\n '.title': {\n transition: 'all 0.3s ease-out',\n color: '#000711',\n },\n },\n}\n\nconst title: SxStyleProp = {\n mb: '8px',\n fontSize: ['16px', '18px', '20px'],\n fontWeight: '400',\n lineHeight: ['24px', '28px', '30px'],\n color: 'muted.0',\n overflowWrap: 'anywhere',\n}\n\nconst description: SxStyleProp = {\n fontSize: '16px',\n lineHeight: '22px',\n fontWeight: '400',\n color: 'muted.1',\n overflow: 'hidden',\n width: '100%',\n height: '50%',\n display: ['none', 'none', 'block', 'block', 'block', 'block', 'block'],\n}\n\nconst tag: SxStyleProp = {\n width: 'max-content',\n maxWidth: '100%',\n px: '8px',\n margin: '4px',\n overflowWrap: 'anywhere',\n}\n\nconst tagsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n mt: '12px',\n gap: '16px',\n}\n\nconst tagGroup: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n gap: '8px',\n}\n\nconst groupsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '12px 20px',\n}\n\nconst groupContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n gap: '8px',\n flex: '0 1 auto',\n maxWidth: '100%',\n}\n\nconst helpcenterTagsContainer: SxStyleProp = {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n}\n\nexport default {\n devportalContainer,\n helpcenterContainer,\n title,\n description,\n tag,\n tagsContainer,\n tagGroup,\n groupsContainer,\n groupContainer,\n helpcenterTagsContainer,\n}\n","import type { TroubleshootingFilterState, TroubleshootingItem } from './types'\n\nexport function filterTroubleshootingItems(\n items: T[],\n { search, domainFilters, symptomFilters }: TroubleshootingFilterState\n): T[] {\n const selectedDomainFilters = new Set(\n domainFilters.map((filter) => filter.toLowerCase())\n )\n const selectedSymptomFilters = new Set(\n symptomFilters.map((filter) => filter.toLowerCase())\n )\n const hasDomainFilters = selectedDomainFilters.size > 0\n const hasSymptomFilters = selectedSymptomFilters.size > 0\n const normalizedSearch = search.toLowerCase()\n\n return items.filter((item) => {\n const matchesSearch =\n !normalizedSearch ||\n item.title.toLowerCase().includes(normalizedSearch)\n\n const itemDomainFiltersLower = (item.domainFilters ?? []).map((filter) =>\n filter.toLowerCase()\n )\n const itemSymptomFiltersLower = (item.symptomFilters ?? []).map((filter) =>\n filter.toLowerCase()\n )\n const matchesDomainFilters =\n !hasDomainFilters ||\n itemDomainFiltersLower.some((filter) =>\n selectedDomainFilters.has(filter)\n )\n const matchesSymptomFilters =\n !hasSymptomFilters ||\n itemSymptomFiltersLower.some((filter) =>\n selectedSymptomFilters.has(filter)\n )\n\n return matchesSearch && matchesDomainFilters && matchesSymptomFilters\n })\n}\n","import type { TroubleshootingItem } from './types'\n\nexport function collectTroubleshootingFilterOptions<\n T extends Pick\n>(items: T[]) {\n const domainFilters = new Set()\n const symptomFilters = new Set()\n\n items.forEach((item) => {\n item.domainFilters?.forEach((filter) => domainFilters.add(filter))\n item.symptomFilters?.forEach((filter) => symptomFilters.add(filter))\n })\n\n return {\n domainFilters: Array.from(domainFilters).sort(),\n symptomFilters: Array.from(symptomFilters).sort(),\n }\n}\n","export const getDaysElapsed = (date: Date) => {\n const msInDay = 1000 * 60 * 60 * 24\n const msElapsed = new Date().getTime() - date.getTime()\n return Math.floor(msElapsed / msInDay)\n}\n","import { Icon } from '@vtex/brand-ui'\nimport type { IconProps } from '@vtex/brand-ui'\n\nconst GearTroubleshootingIcon = (props: IconProps) => {\n return (\n \n \n \n \n \n \n \n \n )\n}\n\nexport default GearTroubleshootingIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DocumentationUpdatesIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default DocumentationUpdatesIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst HelpCenterIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n \n \n)\n\nexport default HelpCenterIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst DeveloperPortalIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default DeveloperPortalIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst FAQIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default FAQIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst KnownIssueIcon = (props: IconProps) => (\n \n \n \n \n \n \n)\n\nexport default KnownIssueIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst MegaphoneIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n)\n\nexport default MegaphoneIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GraphIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default GraphIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst StartHereIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default StartHereIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TutorialsIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n)\n\nexport default TutorialsIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst AnnouncementIcon = (props: IconProps) => (\n \n \n \n
\n \n)\n\nexport default AnnouncementIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst InfoIcon = (props: IconProps) => (\n \n \n \n \n \n)\n\nexport default InfoIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst NewIcon = (props: IconProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n)\n\nexport default NewIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst GithubIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default GithubIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst CommunityIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default CommunityIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst TwitterCircleIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default TwitterCircleIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\ninterface CheckboxProps extends IconProps {\n checked: boolean\n}\n\nconst CheckboxIcon = (props: CheckboxProps) => (\n \n {!props.checked ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n \n)\n\nexport default CheckboxIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ResizeIcon = (props: IconProps) => (\n \n \n \n)\n\nexport default ResizeIcon\n","import type { IconProps } from '@vtex/brand-ui'\nimport { Icon } from '@vtex/brand-ui'\n\nconst ArrowRightIcon = (props: IconProps) => (\n \n {' '}\n \n \n \n)\n\nexport default ArrowRightIcon\n"],"mappings":"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","names":["Fragment","text","text","i","checker","version","encode","header","AuthMode","addMethods","createAuth","encode","init_client_common_esm","createAuth","AuthMode","addMethods","init_client_common_esm","init_client_common_esm","createAuth","AuthMode","addMethods","createAuth","AuthMode","createRetryablePromise","createWaitablePromise","shuffle","addMethods","encode","init_client_common_esm","init_client_common_esm","createAuth","AuthMode","shuffle","version","addMethods","createRetryablePromise","createWaitablePromise","encode","searchIndex","body","client_common_esm_exports","AuthMode","addMethods","createAuth","createRetryablePromise","createWaitablePromise","destroy","encode","shuffle","version","init_client_common_esm","parse","version","requester_node_http_esm_exports","createNodeHttpRequester","http","Agent","https","Agent$1","parse","defaultHttpAgent","defaultHttpsAgent","agentOptions","init_requester_node_http_esm","algoliasearch","algoliasearch","Box","useContext","useEffect","useRef","useState","Box","Flex","mermaid","jsx","jsxs","name","icon","link","Icon","jsx","PropTypes","Box","styles_default","jsx","Box","styles_default","useEffect","Box","Flex","Icon","jsx","jsxs","body","styles_default","jsx","jsxs","useEffect","Flex","styles_default","Box","Box","Flex","Link","container","styles_default","jsx","jsxs","title","description","Link","styles_default","Box","Flex","useState","Box","Text","useEffect","useRef","useState","Box","Flex","styles_default","Icon","jsx","jsx","jsxs","label","box","useRef","useState","useEffect","Box","Flex","styles_default","useEffect","useState","jsx","title","item","heading","messages","container","styles_default","jsx","jsxs","useState","Box","styles_default","Text","useCallback","useContext","useEffect","useRef","useState","Box","Icon","jsx","jsxs","button","styles_default","jsx","jsxs","Box","styles_default","text","search","useContext","useState","useRef","label","useCallback","useEffect","control","styles_default","img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","Fragment","jsx","jsxs","useState","styles_default","icon","useRef","useEffect","mermaid","Box","useContext","Flex","item","jsx","Box","useContext","useEffect","Link","Box","Text","styles_default","jsx","jsxs","headings","item","useContext","useEffect","title","Link","Text","styles_default","Box","useContext","useState","Box","Flex","Text","AnimateHeight","Icon","jsx","jsxs","container","title","styles_default","jsx","jsxs","useContext","useState","title","Flex","styles_default","AnimateHeight","Box","Text","useContext","useEffect","useRef","useState","Box","Flex","IconCaret","Text","container","title","styles_default","jsx","jsxs","useContext","useState","photosContainer","useRef","useEffect","Flex","styles_default","Text","Box","IconCaret","Fragment","useEffect","useMemo","useRef","useState","useContext","Flex","Text","Box","Link","linkContainer","styles_default","iconTooltip","useRouter","useEffect","getIcon","icon","item","Flex","Box","Text","Button","memo","useContext","useMemo","useRef","useState","styles_default","Box","Flex","Text","Flex","Text","container","styles_default","categoryStyle","styles_default","Icon","jsx","jsxs","jsx","jsxs","Flex","Text","styles_default","useContext","useState","container","text","styles_default","jsx","jsxs","useState","useContext","Box","styles_default","Text","Flex","useRouter","Fragment","useContext","Box","Flex","Link","Button","IconCaret","sectionDivider","styles_default","item","styles_default","textStyle","jsx","jsxs","useContext","useRouter","slugPrefix","name","localizedName","Box","styles_default","Flex","Button","IconCaret","Link","item","Fragment","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","name","container","useRef","useContext","Flex","styles_default","documentation","useState","useMemo","getIcon","Box","Button","Text","sidebarSectionHidden","memo","jsx","jsxs","iconTooltip","useState","useRef","useEffect","Box","styles_default","Link","Flex","Text","useContext","useMemo","Fragment","title","Box","IconCaret","Button","arrowIcon","arrowIconActive","styles_default","useContext","useEffect","useRef","useState","useRouter","Link","Box","Flex","Text","cardContainer","titleContainer","title","description","styles_default","cardContainer","styles_default","titleContainer","cardTitle","jsx","jsxs","title","description","link","Icon","isExternalLink","Link","Box","cardContainer","Flex","titleContainer","styles_default","Text","Box","Flex","useContext","useEffect","useState","useRouter","useRef","useContext","useEffect","useState","useRouter","Flex","Box","searchInput","searchIcon","clearButton","styles_default","jsx","jsxs","styles_default","useRouter","useRef","useContext","useState","useEffect","input","Flex","Box","useRouter","Link","useContext","useEffect","useState","Box","Flex","IconCaret","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","count","item","sectionTitle","title","Flex","Text","Fragment","jsx","text","styles_default","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","useContext","title","Box","styles_default","Link","Flex","Text","IconCaret","useRouter","useState","useEffect","Box","Flex","useContext","useRef","useState","aa","aa","algoliasearch","params","hitsPerPage","allHits","count","jsx","jsxs","useContext","useState","resultsBox","useRef","searchBox","Flex","styles_default","Box","styles_default","Fragment","jsx","jsxs","useRouter","useContext","useState","useEffect","Box","styles_default","Flex","jsx","jsxs","useRouter","useRef","useContext","useState","useEffect","styles_default","Box","card","Button","IconCaret","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","useContext","useEffect","useState","container","button","styles_default","Box","Button","Flex","Text","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","useRef","useState","container","button","styles_default","Icon","jsx","jsx","jsxs","useState","useRef","Flex","styles_default","Button","Text","Box","useContext","Link","Text","Icon","jsx","jsxs","container","icon","styles_default","jsx","jsxs","useContext","label","Link","styles_default","Text","jsx","jsxs","shareButton","useState","useContext","useEffect","Flex","styles_default","Text","useContext","useEffect","useState","Box","Flex","Text","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","useEffect","useState","Box","Flex","Text","innerContainer","label","input","actions","styles_default","jsx","jsxs","title","description","useState","useEffect","Box","styles_default","Flex","Text","jsx","jsxs","DEFAULT_FEEDBACK_ENDPOINT","postFeedback","useContext","useState","useEffect","form","Box","styles_default","Text","Flex","Flex","Box","Box","Flex","Text","useContext","useEffect","disabled","styles_default","useRouter","createContext","useState","jsx","jsx","jsxs","useRouter","useContext","useEffect","Flex","styles_default","Text","Box","count","container","styles_default","useContext","jsx","jsxs","useContext","item","Box","styles_default","useRouter","useContext","useEffect","useState","Box","Text","Configure","InstantSearch","useContext","useEffect","useMemo","useRef","connectStateResults","Box","Flex","Text","IconCaret","Tooltip","useContext","useEffect","useState","useRouter","Link","container","title","httpMethod","icon","description","alignCenter","styles_default","Icon","jsx","jsxs","jsx","jsxs","Icon","title","useState","useContext","useRouter","crumb","useEffect","Flex","styles_default","Link","Box","Text","breadcrumb","Tooltip","IconCaret","Box","Flex","Text","noResults","styles_default","jsx","jsxs","useContext","connectStateResults","useEffect","useRef","useMemo","Box","Flex","styles_default","Text","jsx","jsxs","useRouter","useContext","useState","useEffect","Box","styles_default","Text","InstantSearch","Configure","useContext","useEffect","Flex","Text","container","styles_default","jsx","jsxs","count","label","Icon","useContext","Flex","styles_default","Text","useEffect","body","styles_default","jsx","jsxs","Flex","styles_default","search_default","useContext","title","buttonContainer","styles_default","Flex","Text","aa","jsx","jsxs","Button","Flex","useContext","styles_default","Text","Button","useState","styles_default","jsx","useState","Button","styles_default","useCallback","useState","useRef","useEffect","copy","Box","Button","Icon","styles_default","jsx","jsxs","useState","useRef","useCallback","copy","useEffect","Button","styles_default","Box","Icon","useContext","useEffect","useRef","useState","copy","Box","Text","IconCaret","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","container","styles_default","jsx","jsxs","errorText","useContext","useState","useRef","markdown","copy","useEffect","Box","styles_default","Text","IconCaret","useCallback","useContext","useEffect","useLayoutEffect","useMemo","useRef","useState","createPortal","copy","Box","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","item","messages","title","Box","useContext","Box","Flex","Text","trigger","overlay","header","headerActions","messages","process","actionButton","dislikeIcon","textarea","errorText","styles_default","jsx","jsxs","sources","useContext","title","Box","styles_default","Text","Flex","jsx","jsxs","text","link","Box","styles_default","body","sources","Tag","Fragment","jsx","jsxs","name","count","styles_default","steps","examples","useContext","useRef","useState","useMemo","question","useCallback","messages","title","text","item","copy","useEffect","useLayoutEffect","header","Box","Flex","panel","Text","Icon","createPortal","Flex","Link","muted","pink","breadcrumb","styles_default","jsx","Flex","styles_default","item","label","Link","useState","useEffect","input","icon","container","styles_default","Flex","jsx","jsxs","Icon","useState","useEffect","styles_default","useContext","useState","Box","Button","Text","Flex","Link","sectionContainer","cardContainer","title","description","button","styles_default","jsx","jsxs","useContext","useState","text","email","Box","styles_default","Text","Flex","Button","Link","useContext","Box","Flex","Link","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","icon","styles_default","jsx","jsxs","useContext","styles_default","Box","Flex","icon","Link","link","Flex","Text","Box","useContext","useEffect","useRef","useState","useRouter","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","useContext","Box","innerContainer","documentationContainer","sectionDivider","jsx","useContext","Box","card","searchContainer","styles_default","jsx","jsxs","Header","logo","extraRightLinks","useRouter","useContext","useRef","useState","styles_default","useEffect","body","Box","Flex","Text","useEffect","useState","Box","Button","Text","Link","Icon","container","label","button","text","closeIcon","styles_default","jsx","jsxs","CloseIcon","Icon","tag","button","label","useState","useEffect","Box","styles_default","Text","Link","Button","Text","styles_default","jsx","Text","styles_default","Box","Button","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","useState","input","name","container","innerContainer","modalTitle","tag","sectionDivider","styles_default","Fragment","jsx","jsxs","useState","numberOfFilters","Flex","styles_default","Text","Box","group","Button","Box","Flex","Button","Text","useEffect","useRef","useState","arrowButton","styles_default","jsx","jsxs","useRef","useState","useEffect","Flex","styles_default","Box","Button","count","Icon","Text","Box","Flex","Text","container","photo","styles_default","jsx","jsxs","Flex","styles_default","Box","Text","useContext","Text","styles_default","jsx","useContext","Text","styles_default","useContext","Flex","Text","styles_default","jsx","jsxs","useContext","Flex","styles_default","Text","useContext","Link","Flex","Text","Box","linkReset","styles_default","jsx","jsxs","useContext","Box","styles_default","Flex","Link","Text","useContext","Box","Flex","Text","useContext","Box","Text","title","link","description","sectionTitle","styles_default","jsx","jsxs","useContext","title","cards","Box","styles_default","Text","card","innerContainer","contentContainer","divider","styles_default","Fragment","jsx","jsxs","readingTime","text","headings","useContext","markdown","Flex","styles_default","Box","Text","Box","Link","Text","title","description","tag","styles_default","jsx","jsxs","title","description","Link","Box","styles_default","Text","search","item","item","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","Fragment","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs"]} \ No newline at end of file +{"version":3,"sources":["../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/@algolia/cache-common/dist/cache-common.esm.js","../node_modules/@algolia/cache-in-memory/dist/cache-in-memory.esm.js","../node_modules/@algolia/client-analytics/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/requester-common/dist/requester-common.esm.js","../node_modules/@algolia/transporter/dist/transporter.esm.js","../node_modules/@algolia/client-analytics/dist/client-analytics.esm.js","../node_modules/algoliasearch/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-personalization/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-personalization/dist/client-personalization.esm.js","../node_modules/@algolia/client-search/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/client-search/dist/client-search.esm.js","../node_modules/@algolia/logger-common/dist/logger-common.esm.js","../node_modules/@algolia/recommend/node_modules/@algolia/client-common/dist/client-common.esm.js","../node_modules/@algolia/recommend/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js","../node_modules/@algolia/recommend/dist/recommend.cjs.js","../node_modules/@algolia/recommend/index.js","../node_modules/algoliasearch/node_modules/@algolia/requester-node-http/dist/requester-node-http.esm.js","../node_modules/algoliasearch/dist/algoliasearch.cjs.js","../node_modules/algoliasearch/index.js","../node_modules/algoliasearch/lite.js","../src/lib/markdown-renderer/MarkdownRenderer.tsx","../src/lib/markdown-renderer/components.tsx","../src/components/overview-card/styles.ts","../src/components/overview-card/index.tsx","../src/components/overview-card/icons.tsx","../src/components/youtube-frame/index.tsx","../src/components/steps/index.tsx","../src/components/steps/styles.ts","../src/components/lightbox/index.tsx","../src/components/icons/close-icon.tsx","../src/utils/hooks/useClickOutside.ts","../src/components/lightbox/styles.ts","../src/components/whats-next-card/index.tsx","../src/components/whats-next-card/styles.ts","../src/components/insert-account-name/index.tsx","../src/components/tooltip/index.tsx","../src/components/tooltip/styles.ts","../src/components/icons/caret.tsx","../src/utils/context/libraryContext.tsx","../src/messages/en.json","../src/messages/es.json","../src/messages/pt.json","../src/utils/get-message.ts","../src/components/insert-account-name/styles.ts","../src/utils/string-utils.ts","../src/utils/mermaidInit.ts","../src/components/copy-heading-link/index.tsx","../src/components/icons/link-icon.tsx","../src/components/copy-heading-link/styles.ts","../src/lib/markdown-renderer/styles.module.css","../src/lib/table-of-contents/TableOfContents.tsx","../src/lib/table-of-contents/styles.ts","../src/lib/on-this-page/OnThisPage.tsx","../src/components/icons/menu-icon.tsx","../src/lib/on-this-page/styles.ts","../src/lib/contributors/Contributors.tsx","../src/lib/contributors/styles.ts","../src/lib/sidebar/index.tsx","../src/lib/sidebar/styles.ts","../src/lib/sidebar/functions.ts","../src/utils/navigation-utils.ts","../src/utils/sidebar-utils.ts","../src/components/sidebar-section/index.tsx","../src/components/sidebar-section/styles.ts","../src/components/sidebar-section-filter/index.tsx","../src/components/method-category/index.tsx","../src/components/method-category/styles.ts","../src/components/method-category/functions.ts","../src/components/icons/close-filter-icon.tsx","../src/components/sidebar-section-filter/styles.ts","../src/components/sidebar-elements/index.tsx","../src/components/sidebar-elements/styles.ts","../src/components/sidebar-elements/functions.tsx","../src/components/icons/search-icon.tsx","../src/components/icons/sidebar-toggle-icon.tsx","../src/components/icons/arrow-left-icon.tsx","../src/lib/hamburger-menu/index.tsx","../src/lib/hamburger-menu/styles.ts","../src/components/documentation-card/index.tsx","../src/components/documentation-card/styles.ts","../src/components/documentation-card/functions.ts","../src/components/mobile-search/index.tsx","../src/components/search-input/index.tsx","../src/components/search-input/search-box.tsx","../src/components/search-input/styles.ts","../src/components/search-input/results-box.tsx","../src/components/icons/api-guides-icon.tsx","../src/components/icons/api-reference-icon.tsx","../src/components/icons/app-development-icon.tsx","../src/components/icons/release-notes-icon.tsx","../src/components/icons/storefront-development-icon.tsx","../src/components/icons/vtex-io-apps-icon.tsx","../src/components/icons/troubleshooting-icon.tsx","../src/components/icons/added-icon.tsx","../src/components/icons/deprecated-icon.tsx","../src/components/icons/fixed-icon.tsx","../src/components/icons/improved-icon.tsx","../src/components/icons/removed-icon.tsx","../src/utils/search-utils.ts","../src/components/search-input/customHighlight.tsx","../src/components/icons/copy-icon.tsx","../src/components/icons/external-link-icon.tsx","../src/components/icons/paper-icon.tsx","../src/utils/config/search-config.ts","../src/components/mobile-search/styles.ts","../src/components/feedback-section/index.tsx","../src/components/icons/like-icon.tsx","../src/components/icons/like-selected-icon.tsx","../src/components/feedback-section/styles.ts","../src/components/share-button/index.tsx","../src/components/icons/facebook-icon.tsx","../src/components/icons/linkedin-icon.tsx","../src/components/icons/share-icon.tsx","../src/components/icons/twitter-icon.tsx","../src/components/share-button/styles.ts","../src/components/icons/email-icon.tsx","../src/components/suggest-edits/index.tsx","../src/components/icons/edit-icon.tsx","../src/components/suggest-edits/styles.ts","../src/components/feedback-modal/index.tsx","../src/components/icons/check-icon.tsx","../src/components/icons/comment-icon.tsx","../src/components/icons/warning-icon.tsx","../src/components/feedback-modal/modal.tsx","../src/components/feedback-modal/styles.ts","../src/lib/search/index.tsx","../src/components/search-sections/index.tsx","../src/components/search-section/index.tsx","../src/components/search-section/styles.ts","../src/utils/context/search.tsx","../src/components/search-sections/styles.ts","../src/components/search-results/index.tsx","../src/components/search-results/infiniteHits.tsx","../src/components/search-card/index.tsx","../src/components/search-card/styles.ts","../src/components/icons/expanded-results-icon.tsx","../src/components/search-results/styles.ts","../src/components/search-filter-tab-bar/index.tsx","../src/components/search-filter-tab-bar/styles.ts","../src/lib/search/styles.ts","../src/lib/cookie-bar/index.tsx","../src/lib/cookie-bar/styles.ts","../src/components/copy-link-button/index.tsx","../src/components/copy-link-button/styles.ts","../src/components/copy-button/index.tsx","../src/components/copy-button/styles.ts","../src/components/ask-ai/index.tsx","../src/components/icons/chatgpt-icon.tsx","../src/components/icons/copilot-icon.tsx","../src/components/icons/claude-icon.tsx","../src/components/icons/gemini-icon.tsx","../src/components/icons/long-arrow-icon.tsx","../src/components/icons/markdown-icon.tsx","../src/components/ask-ai/styles.ts","../src/components/ask-assistant/index.tsx","../src/components/icons/book-icon.tsx","../src/components/icons/collapse-icon.tsx","../src/components/icons/expand-icon.tsx","../src/components/icons/history-icon.tsx","../src/components/icons/refresh-icon.tsx","../src/components/icons/send-icon.tsx","../src/components/icons/sparkle-icon.tsx","../src/components/icons/new-chat-icon.tsx","../src/components/ask-assistant/default-examples.tsx","../src/components/ask-assistant/history.ts","../src/components/ask-assistant/markdown.tsx","../src/components/ask-assistant/sources.tsx","../src/components/ask-assistant/styles.ts","../src/components/ask-assistant/stream.ts","../src/components/breadcrumb/index.tsx","../src/components/breadcrumb/styles.ts","../src/components/input/index.tsx","../src/components/input/styles.ts","../src/components/subscription-list/index.tsx","../src/utils/get-url.tsx","../src/components/subscription-list/styles.ts","../src/components/footer/index.tsx","../src/components/icons/vtex-logo-footer.tsx","../src/components/icons/instagram-icon.tsx","../src/components/icons/youtube-icon.tsx","../src/components/icons/facebook-circle-icon.tsx","../src/components/icons/linkedin-circle-icon.tsx","../src/components/footer/styles.ts","../src/components/header/index.tsx","../src/components/icons/vtex-devportal-icon.tsx","../src/components/icons/vtex-helpcenter-icon.tsx","../src/components/icons/grid-icon.tsx","../src/components/header/dropdown-menu.tsx","../src/components/header/dropdown-menu.styles.ts","../src/components/header/styles.ts","../src/components/announcement-bar/index.tsx","../src/components/announcement-bar/styles.ts","../src/components/tag/index.tsx","../src/components/tag/styles.ts","../src/components/listing-filter/index.tsx","../src/components/icons/filter-icon.tsx","../src/components/icons/trashcan-icon.tsx","../src/components/listing-filter/normalize.ts","../src/components/listing-filter/styles.ts","../src/components/chip-filter/index.tsx","../src/components/chip-filter/styles.ts","../src/components/author/index.tsx","../src/components/author/styles.ts","../src/components/time-to-read/index.tsx","../src/components/time-to-read/styles.ts","../src/components/date-text/index.tsx","../src/components/date-text/styles.ts","../src/components/article-pagination/index.tsx","../src/utils/format-article-date.ts","../src/components/article-pagination/styles.ts","../src/components/article-render/index.tsx","../src/components/see-also-section/index.tsx","../src/components/see-also-section/functions.ts","../src/components/see-also-section/styles.ts","../src/components/article-render/styles.ts","../src/components/troubleshooting-card/index.tsx","../src/components/troubleshooting-card/styles.ts","../src/utils/troubleshooting/filterItems.ts","../src/utils/troubleshooting/collectFilterOptions.ts","../src/utils/get-days-elapsed.ts","../src/components/icons/gear-troubleshooting-icon.tsx","../src/components/icons/documentation-updates-icon.tsx","../src/components/icons/helpcenter-icon.tsx","../src/components/icons/developer-portal-icon.tsx","../src/components/icons/faq-icon.tsx","../src/components/icons/known-issues-icon.tsx","../src/components/icons/megaphone-icon.tsx","../src/components/icons/graph-icon.tsx","../src/components/icons/start-here-icon.tsx","../src/components/icons/tutorials-icon.tsx","../src/components/icons/announcement-icon.tsx","../src/components/icons/info-icon.tsx","../src/components/icons/new-icon.tsx","../src/components/icons/github-icon.tsx","../src/components/icons/community-icon.tsx","../src/components/icons/twitter-circle-icon.tsx","../src/components/icons/checkbox.tsx","../src/components/icons/resize-icon.tsx","../src/components/icons/arrow-right-icon.tsx"],"sourcesContent":["/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","// @todo Add logger on options to debug when caches go wrong.\r\nfunction createFallbackableCache(options) {\r\n const caches = [...options.caches];\r\n const current = caches.shift(); // eslint-disable-line functional/immutable-data\r\n if (current === undefined) {\r\n return createNullCache();\r\n }\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n return current.get(key, defaultValue, events).catch(() => {\r\n return createFallbackableCache({ caches }).get(key, defaultValue, events);\r\n });\r\n },\r\n set(key, value) {\r\n return current.set(key, value).catch(() => {\r\n return createFallbackableCache({ caches }).set(key, value);\r\n });\r\n },\r\n delete(key) {\r\n return current.delete(key).catch(() => {\r\n return createFallbackableCache({ caches }).delete(key);\r\n });\r\n },\r\n clear() {\r\n return current.clear().catch(() => {\r\n return createFallbackableCache({ caches }).clear();\r\n });\r\n },\r\n };\r\n}\n\nfunction createNullCache() {\r\n return {\r\n get(_key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const value = defaultValue();\r\n return value\r\n .then(result => Promise.all([result, events.miss(result)]))\r\n .then(([result]) => result);\r\n },\r\n set(_key, value) {\r\n return Promise.resolve(value);\r\n },\r\n delete(_key) {\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createFallbackableCache, createNullCache };\n","function createInMemoryCache(options = { serializable: true }) {\r\n // eslint-disable-next-line functional/no-let\r\n let cache = {};\r\n return {\r\n get(key, defaultValue, events = {\r\n miss: () => Promise.resolve(),\r\n }) {\r\n const keyAsString = JSON.stringify(key);\r\n if (keyAsString in cache) {\r\n return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);\r\n }\r\n const promise = defaultValue();\r\n const miss = (events && events.miss) || (() => Promise.resolve());\r\n return promise.then((value) => miss(value)).then(() => promise);\r\n },\r\n set(key, value) {\r\n // eslint-disable-next-line functional/immutable-data\r\n cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;\r\n return Promise.resolve(value);\r\n },\r\n delete(key) {\r\n // eslint-disable-next-line functional/immutable-data\r\n delete cache[JSON.stringify(key)];\r\n return Promise.resolve();\r\n },\r\n clear() {\r\n cache = {};\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createInMemoryCache };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","const MethodEnum = {\r\n Delete: 'DELETE',\r\n Get: 'GET',\r\n Post: 'POST',\r\n Put: 'PUT',\r\n};\n\nexport { MethodEnum };\n","import { MethodEnum } from '@algolia/requester-common';\n\nfunction createMappedRequestOptions(requestOptions, timeout) {\r\n const options = requestOptions || {};\r\n const data = options.data || {};\r\n Object.keys(options).forEach(key => {\r\n if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {\r\n data[key] = options[key]; // eslint-disable-line functional/immutable-data\r\n }\r\n });\r\n return {\r\n data: Object.entries(data).length > 0 ? data : undefined,\r\n timeout: options.timeout || timeout,\r\n headers: options.headers || {},\r\n queryParameters: options.queryParameters || {},\r\n cacheable: options.cacheable,\r\n };\r\n}\n\nconst CallEnum = {\r\n /**\r\n * If the host is read only.\r\n */\r\n Read: 1,\r\n /**\r\n * If the host is write only.\r\n */\r\n Write: 2,\r\n /**\r\n * If the host is both read and write.\r\n */\r\n Any: 3,\r\n};\n\nconst HostStatusEnum = {\r\n Up: 1,\r\n Down: 2,\r\n Timeouted: 3,\r\n};\n\n// By default, API Clients at Algolia have expiration delay\r\n// of 5 mins. In the JavaScript client, we have 2 mins.\r\nconst EXPIRATION_DELAY = 2 * 60 * 1000;\r\nfunction createStatefulHost(host, status = HostStatusEnum.Up) {\r\n return {\r\n ...host,\r\n status,\r\n lastUpdate: Date.now(),\r\n };\r\n}\r\nfunction isStatefulHostUp(host) {\r\n return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;\r\n}\r\nfunction isStatefulHostTimeouted(host) {\r\n return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);\r\n}\n\nfunction createStatelessHost(options) {\r\n if (typeof options === 'string') {\r\n return {\r\n protocol: 'https',\r\n url: options,\r\n accept: CallEnum.Any,\r\n };\r\n }\r\n return {\r\n protocol: options.protocol || 'https',\r\n url: options.url,\r\n accept: options.accept || CallEnum.Any,\r\n };\r\n}\n\nfunction createRetryableOptions(hostsCache, statelessHosts) {\r\n return Promise.all(statelessHosts.map(statelessHost => {\r\n return hostsCache.get(statelessHost, () => {\r\n return Promise.resolve(createStatefulHost(statelessHost));\r\n });\r\n })).then(statefulHosts => {\r\n const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));\r\n const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));\r\n /**\r\n * Note, we put the hosts that previously timeouted on the end of the list.\r\n */\r\n const hostsAvailable = [...hostsUp, ...hostsTimeouted];\r\n const statelessHostsAvailable = hostsAvailable.length > 0\r\n ? hostsAvailable.map(host => createStatelessHost(host))\r\n : statelessHosts;\r\n return {\r\n getTimeout(timeoutsCount, baseTimeout) {\r\n /**\r\n * Imagine that you have 4 hosts, if timeouts will increase\r\n * on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)\r\n *\r\n * Note that, the very next request, we start from the previous timeout\r\n *\r\n * 5 (timeouted) > 6 (timeouted) > 7 ...\r\n *\r\n * This strategy may need to be reviewed, but is the strategy on the our\r\n * current v3 version.\r\n */\r\n const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0\r\n ? 1\r\n : hostsTimeouted.length + 3 + timeoutsCount;\r\n return timeoutMultiplier * baseTimeout;\r\n },\r\n statelessHosts: statelessHostsAvailable,\r\n };\r\n });\r\n}\n\nconst isNetworkError = ({ isTimedOut, status }) => {\r\n return !isTimedOut && ~~status === 0;\r\n};\r\nconst isRetryable = (response) => {\r\n const status = response.status;\r\n const isTimedOut = response.isTimedOut;\r\n return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));\r\n};\r\nconst isSuccess = ({ status }) => {\r\n return ~~(status / 100) === 2;\r\n};\r\nconst retryDecision = (response, outcomes) => {\r\n if (isRetryable(response)) {\r\n return outcomes.onRetry(response);\r\n }\r\n if (isSuccess(response)) {\r\n return outcomes.onSuccess(response);\r\n }\r\n return outcomes.onFail(response);\r\n};\n\nfunction retryableRequest(transporter, statelessHosts, request, requestOptions) {\r\n const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type\r\n /**\r\n * First we prepare the payload that do not depend from hosts.\r\n */\r\n const data = serializeData(request, requestOptions);\r\n const headers = serializeHeaders(transporter, requestOptions);\r\n const method = request.method;\r\n // On `GET`, the data is proxied to query parameters.\r\n const dataQueryParameters = request.method !== MethodEnum.Get\r\n ? {}\r\n : {\r\n ...request.data,\r\n ...requestOptions.data,\r\n };\r\n const queryParameters = {\r\n 'x-algolia-agent': transporter.userAgent.value,\r\n ...transporter.queryParameters,\r\n ...dataQueryParameters,\r\n ...requestOptions.queryParameters,\r\n };\r\n let timeoutsCount = 0; // eslint-disable-line functional/no-let\r\n const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type\r\n getTimeout) => {\r\n /**\r\n * We iterate on each host, until there is no host left.\r\n */\r\n const host = hosts.pop(); // eslint-disable-line functional/immutable-data\r\n if (host === undefined) {\r\n throw createRetryError(stackTraceWithoutCredentials(stackTrace));\r\n }\r\n const payload = {\r\n data,\r\n headers,\r\n method,\r\n url: serializeUrl(host, request.path, queryParameters),\r\n connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),\r\n responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),\r\n };\r\n /**\r\n * The stackFrame is pushed to the stackTrace so we\r\n * can have information about onRetry and onFailure\r\n * decisions.\r\n */\r\n const pushToStackTrace = (response) => {\r\n const stackFrame = {\r\n request: payload,\r\n response,\r\n host,\r\n triesLeft: hosts.length,\r\n };\r\n // eslint-disable-next-line functional/immutable-data\r\n stackTrace.push(stackFrame);\r\n return stackFrame;\r\n };\r\n const decisions = {\r\n onSuccess: response => deserializeSuccess(response),\r\n onRetry(response) {\r\n const stackFrame = pushToStackTrace(response);\r\n /**\r\n * If response is a timeout, we increaset the number of\r\n * timeouts so we can increase the timeout later.\r\n */\r\n if (response.isTimedOut) {\r\n timeoutsCount++;\r\n }\r\n return Promise.all([\r\n /**\r\n * Failures are individually send the logger, allowing\r\n * the end user to debug / store stack frames even\r\n * when a retry error does not happen.\r\n */\r\n transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),\r\n /**\r\n * We also store the state of the host in failure cases. If the host, is\r\n * down it will remain down for the next 2 minutes. In a timeout situation,\r\n * this host will be added end of the list of hosts on the next request.\r\n */\r\n transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),\r\n ]).then(() => retry(hosts, getTimeout));\r\n },\r\n onFail(response) {\r\n pushToStackTrace(response);\r\n throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));\r\n },\r\n };\r\n return transporter.requester.send(payload).then(response => {\r\n return retryDecision(response, decisions);\r\n });\r\n };\r\n /**\r\n * Finally, for each retryable host perform request until we got a non\r\n * retryable response. Some notes here:\r\n *\r\n * 1. The reverse here is applied so we can apply a `pop` later on => more performant.\r\n * 2. We also get from the retryable options a timeout multiplier that is tailored\r\n * for the current context.\r\n */\r\n return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {\r\n return retry([...options.statelessHosts].reverse(), options.getTimeout);\r\n });\r\n}\n\nfunction createTransporter(options) {\r\n const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;\r\n const transporter = {\r\n hostsCache,\r\n logger,\r\n requester,\r\n requestsCache,\r\n responsesCache,\r\n timeouts,\r\n userAgent,\r\n headers,\r\n queryParameters,\r\n hosts: hosts.map(host => createStatelessHost(host)),\r\n read(request, requestOptions) {\r\n /**\r\n * First, we compute the user request options. Now, keep in mind,\r\n * that using request options the user is able to modified the intire\r\n * payload of the request. Such as headers, query parameters, and others.\r\n */\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);\r\n const createRetryableRequest = () => {\r\n /**\r\n * Then, we prepare a function factory that contains the construction of\r\n * the retryable request. At this point, we may *not* perform the actual\r\n * request. But we want to have the function factory ready.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);\r\n };\r\n /**\r\n * Once we have the function factory ready, we need to determine of the\r\n * request is \"cacheable\" - should be cached. Note that, once again,\r\n * the user can force this option.\r\n */\r\n const cacheable = mappedRequestOptions.cacheable !== undefined\r\n ? mappedRequestOptions.cacheable\r\n : request.cacheable;\r\n /**\r\n * If is not \"cacheable\", we immediatly trigger the retryable request, no\r\n * need to check cache implementations.\r\n */\r\n if (cacheable !== true) {\r\n return createRetryableRequest();\r\n }\r\n /**\r\n * If the request is \"cacheable\", we need to first compute the key to ask\r\n * the cache implementations if this request is on progress or if the\r\n * response already exists on the cache.\r\n */\r\n const key = {\r\n request,\r\n mappedRequestOptions,\r\n transporter: {\r\n queryParameters: transporter.queryParameters,\r\n headers: transporter.headers,\r\n },\r\n };\r\n /**\r\n * With the computed key, we first ask the responses cache\r\n * implemention if this request was been resolved before.\r\n */\r\n return transporter.responsesCache.get(key, () => {\r\n /**\r\n * If the request has never resolved before, we actually ask if there\r\n * is a current request with the same key on progress.\r\n */\r\n return transporter.requestsCache.get(key, () => {\r\n return (transporter.requestsCache\r\n /**\r\n * Finally, if there is no request in progress with the same key,\r\n * this `createRetryableRequest()` will actually trigger the\r\n * retryable request.\r\n */\r\n .set(key, createRetryableRequest())\r\n .then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))\r\n .then(([_, response]) => response));\r\n });\r\n }, {\r\n /**\r\n * Of course, once we get this response back from the server, we\r\n * tell response cache to actually store the received response\r\n * to be used later.\r\n */\r\n miss: response => transporter.responsesCache.set(key, response),\r\n });\r\n },\r\n write(request, requestOptions) {\r\n /**\r\n * On write requests, no cache mechanisms are applied, and we\r\n * proxy the request immediately to the requester.\r\n */\r\n return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));\r\n },\r\n };\r\n return transporter;\r\n}\n\nfunction createUserAgent(version) {\r\n const userAgent = {\r\n value: `Algolia for JavaScript (${version})`,\r\n add(options) {\r\n const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;\r\n if (userAgent.value.indexOf(addedUserAgent) === -1) {\r\n // eslint-disable-next-line functional/immutable-data\r\n userAgent.value = `${userAgent.value}${addedUserAgent}`;\r\n }\r\n return userAgent;\r\n },\r\n };\r\n return userAgent;\r\n}\n\nfunction deserializeSuccess(response) {\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n return JSON.parse(response.content);\r\n }\r\n catch (e) {\r\n throw createDeserializationError(e.message, response);\r\n }\r\n}\r\nfunction deserializeFailure({ content, status }, stackFrame) {\r\n // eslint-disable-next-line functional/no-let\r\n let message = content;\r\n // eslint-disable-next-line functional/no-try-statement\r\n try {\r\n message = JSON.parse(content).message;\r\n }\r\n catch (e) {\r\n // ..\r\n }\r\n return createApiError(message, status, stackFrame);\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nfunction serializeUrl(host, path, queryParameters) {\r\n const queryParametersAsString = serializeQueryParameters(queryParameters);\r\n // eslint-disable-next-line functional/no-let\r\n let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;\r\n if (queryParametersAsString.length) {\r\n url += `?${queryParametersAsString}`;\r\n }\r\n return url;\r\n}\r\nfunction serializeQueryParameters(parameters) {\r\n const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||\r\n Object.prototype.toString.call(value) === '[object Array]';\r\n return Object.keys(parameters)\r\n .map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))\r\n .join('&');\r\n}\r\nfunction serializeData(request, requestOptions) {\r\n if (request.method === MethodEnum.Get ||\r\n (request.data === undefined && requestOptions.data === undefined)) {\r\n return undefined;\r\n }\r\n const data = Array.isArray(request.data)\r\n ? request.data\r\n : { ...request.data, ...requestOptions.data };\r\n return JSON.stringify(data);\r\n}\r\nfunction serializeHeaders(transporter, requestOptions) {\r\n const headers = {\r\n ...transporter.headers,\r\n ...requestOptions.headers,\r\n };\r\n const serializedHeaders = {};\r\n Object.keys(headers).forEach(header => {\r\n const value = headers[header];\r\n // @ts-ignore\r\n // eslint-disable-next-line functional/immutable-data\r\n serializedHeaders[header.toLowerCase()] = value;\r\n });\r\n return serializedHeaders;\r\n}\n\nfunction stackTraceWithoutCredentials(stackTrace) {\r\n return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));\r\n}\r\nfunction stackFrameWithoutCredentials(stackFrame) {\r\n const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']\r\n ? { 'x-algolia-api-key': '*****' }\r\n : {};\r\n return {\r\n ...stackFrame,\r\n request: {\r\n ...stackFrame.request,\r\n headers: {\r\n ...stackFrame.request.headers,\r\n ...modifiedHeaders,\r\n },\r\n },\r\n };\r\n}\n\nfunction createApiError(message, status, transporterStackTrace) {\r\n return {\r\n name: 'ApiError',\r\n message,\r\n status,\r\n transporterStackTrace,\r\n };\r\n}\n\nfunction createDeserializationError(message, response) {\r\n return {\r\n name: 'DeserializationError',\r\n message,\r\n response,\r\n };\r\n}\n\nfunction createRetryError(transporterStackTrace) {\r\n return {\r\n name: 'RetryError',\r\n message: 'Unreachable hosts - your application id may be incorrect. If the error persists, please reach out to the Algolia Support team: https://alg.li/support .',\r\n transporterStackTrace,\r\n };\r\n}\n\nexport { CallEnum, HostStatusEnum, createApiError, createDeserializationError, createMappedRequestOptions, createRetryError, createStatefulHost, createStatelessHost, createTransporter, createUserAgent, deserializeFailure, deserializeSuccess, isStatefulHostTimeouted, isStatefulHostUp, serializeData, serializeHeaders, serializeQueryParameters, serializeUrl, stackFrameWithoutCredentials, stackTraceWithoutCredentials };\n","import { createAuth, AuthMode, addMethods, encode } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createAnalyticsClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `analytics.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const appId = options.appId;\r\n return addMethods({ appId, transporter }, options.methods);\r\n};\n\nconst addABTest = (base) => {\r\n return (abTest, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '2/abtests',\r\n data: abTest,\r\n }, requestOptions);\r\n };\r\n};\n\nconst deleteABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('2/abtests/%s', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getABTests = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '2/abtests',\r\n }, requestOptions);\r\n };\r\n};\n\nconst stopABTest = (base) => {\r\n return (abTestID, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('2/abtests/%s/stop', abTestID),\r\n }, requestOptions);\r\n };\r\n};\n\nexport { addABTest, createAnalyticsClient, deleteABTest, getABTest, getABTests, stopABTest };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import { createAuth, AuthMode, addMethods } from '@algolia/client-common';\nimport { createTransporter } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\n\nconst createPersonalizationClient = options => {\r\n const region = options.region || 'us';\r\n const auth = createAuth(AuthMode.WithinHeaders, options.appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [{ url: `personalization.${region}.algolia.com` }],\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/json' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n return addMethods({ appId: options.appId, transporter }, options.methods);\r\n};\n\nconst getPersonalizationStrategy = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/strategies/personalization',\r\n }, requestOptions);\r\n };\r\n};\n\nconst setPersonalizationStrategy = (base) => {\r\n return (personalizationStrategy, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/strategies/personalization',\r\n data: personalizationStrategy,\r\n }, requestOptions);\r\n };\r\n};\n\nexport { createPersonalizationClient, getPersonalizationStrategy, setPersonalizationStrategy };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import { createAuth, AuthMode, shuffle, addMethods, createWaitablePromise, createRetryablePromise, encode } from '@algolia/client-common';\nimport { createTransporter, CallEnum, createMappedRequestOptions, serializeQueryParameters } from '@algolia/transporter';\nimport { MethodEnum } from '@algolia/requester-common';\nimport { createHmac } from 'crypto';\n\nfunction createBrowsablePromise(options) {\r\n const browse = (data) => {\r\n return options.request(data).then(response => {\r\n /**\r\n * First we send to the developer the\r\n * batch retrieved from the API.\r\n */\r\n if (options.batch !== undefined) {\r\n options.batch(response.hits);\r\n }\r\n /**\r\n * Then, we ask to the browse concrete implementation\r\n * if we should stop browsing. As example, the `browseObjects`\r\n * method will stop if the cursor is not present on the response.\r\n */\r\n if (options.shouldStop(response)) {\r\n return undefined;\r\n }\r\n /**\r\n * Finally, if the response contains a cursor, we browse to the next\r\n * batch using that same cursor. Otherwise, we just use the traditional\r\n * browsing using the page element.\r\n */\r\n if (response.cursor) {\r\n return browse({\r\n cursor: response.cursor,\r\n });\r\n }\r\n return browse({\r\n page: (data.page || 0) + 1,\r\n });\r\n });\r\n };\r\n return browse({});\r\n}\n\nconst createSearchClient = options => {\r\n const appId = options.appId;\r\n const auth = createAuth(options.authMode !== undefined ? options.authMode : AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter = createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: CallEnum.Write },\r\n ].concat(shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter.requestsCache.clear(),\r\n transporter.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return addMethods(base, options.methods);\r\n};\n\nfunction createMissingObjectIDError() {\r\n return {\r\n name: 'MissingObjectIDError',\r\n message: 'All objects must have an unique objectID ' +\r\n '(like a primary key) to be valid. ' +\r\n 'Algolia is also able to generate objectIDs ' +\r\n \"automatically but *it's not recommended*. \" +\r\n \"To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option.\",\r\n };\r\n}\n\nfunction createObjectNotFoundError() {\r\n return {\r\n name: 'ObjectNotFoundError',\r\n message: 'Object not found.',\r\n };\r\n}\n\nfunction createValidUntilNotFoundError() {\r\n return {\r\n name: 'ValidUntilNotFoundError',\r\n message: 'ValidUntil not found in given secured api key.',\r\n };\r\n}\n\nconst addApiKey = (base) => {\r\n return (acl, requestOptions) => {\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = {\r\n acl,\r\n ...(queryParameters !== undefined ? { queryParameters } : {}),\r\n };\r\n const wait = (response, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(response.key, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/keys',\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst assignUserID = (base) => {\r\n return (userID, clusterName, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping',\r\n data: { cluster: clusterName },\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst assignUserIDs = (base) => {\r\n return (userIDs, clusterName, requestOptions) => {\r\n return base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/batch',\r\n data: {\r\n users: userIDs,\r\n cluster: clusterName,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst clearDictionaryEntries = (base) => {\r\n return (dictionary, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: {\r\n clearExistingDictionaryEntries: true,\r\n requests: { action: 'addEntry', body: [] },\r\n },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst copyIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'copy',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst copyRules = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Rules],\r\n });\r\n };\r\n};\n\nconst copySettings = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Settings],\r\n });\r\n };\r\n};\n\nconst copySynonyms = (base) => {\r\n return (from, to, requestOptions) => {\r\n return copyIndex(base)(from, to, {\r\n ...requestOptions,\r\n scope: [ScopeEnum.Synonyms],\r\n });\r\n };\r\n};\n\nconst customRequest = (base) => {\r\n return (request, requestOptions) => {\r\n if (request.method === MethodEnum.Get) {\r\n return base.transporter.read(request, requestOptions);\r\n }\r\n return base.transporter.write(request, requestOptions);\r\n };\r\n};\n\nconst deleteApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions)\r\n .then(retry)\r\n .catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst deleteDictionaryEntries = (base) => {\r\n return (dictionary, objectIDs, requestOptions) => {\r\n const requests = objectIDs.map(objectID => ({\r\n action: 'deleteEntry',\r\n body: { objectID },\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst generateSecuredApiKey = () => {\r\n return (parentApiKey, restrictions) => {\r\n const queryParameters = serializeQueryParameters(restrictions);\r\n const securedKey = createHmac('sha256', parentApiKey)\r\n .update(queryParameters)\r\n .digest('hex');\r\n return Buffer.from(securedKey + queryParameters).toString('base64');\r\n };\r\n};\n\nconst getApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/keys/%s', apiKey),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/task/%s', taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getDictionarySettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '/1/dictionaries/*/settings',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getLogs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/logs',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSecuredApiKeyRemainingValidity = () => {\r\n return (securedApiKey) => {\r\n const decodedString = Buffer.from(securedApiKey, 'base64').toString('ascii');\r\n const regex = /validUntil=(\\d+)/;\r\n const match = decodedString.match(regex);\r\n if (match === null) {\r\n throw createValidUntilNotFoundError();\r\n }\r\n return parseInt(match[1], 10) - Math.round(new Date().getTime() / 1000);\r\n };\r\n};\n\nconst getTopUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/top',\r\n }, requestOptions);\r\n };\r\n};\n\nconst getUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/clusters/mapping/%s', userID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst hasPendingMappings = (base) => {\r\n return (requestOptions) => {\r\n const { retrieveMappings, ...options } = requestOptions || {};\r\n if (retrieveMappings === true) {\r\n // eslint-disable-next-line functional/immutable-data\r\n options.getClusters = true;\r\n }\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping/pending',\r\n }, options);\r\n };\r\n};\n\nconst initIndex = (base) => {\r\n return (indexName, options = {}) => {\r\n const searchIndex = {\r\n transporter: base.transporter,\r\n appId: base.appId,\r\n indexName,\r\n };\r\n return addMethods(searchIndex, options.methods);\r\n };\r\n};\n\nconst listApiKeys = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/keys',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listClusters = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listIndices = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/indexes',\r\n }, requestOptions);\r\n };\r\n};\n\nconst listUserIDs = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: '1/clusters/mapping',\r\n }, requestOptions);\r\n };\r\n};\n\nconst moveIndex = (base) => {\r\n return (from, to, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return initIndex(base)(from, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: 'move',\r\n destination: to,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleBatch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return Promise.all(Object.keys(response.taskID).map(indexName => {\r\n return initIndex(base)(indexName, {\r\n methods: { waitTask },\r\n }).waitTask(response.taskID[indexName], waitRequestOptions);\r\n }));\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/batch',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst multipleGetObjects = (base) => {\r\n return (requests, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleQueries = (base) => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => {\r\n return {\r\n ...query,\r\n params: serializeQueryParameters(query.params || {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/queries',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst multipleSearchForFacetValues = (base) => {\r\n return (queries, requestOptions) => {\r\n return Promise.all(queries.map(query => {\r\n const { facetName, facetQuery, ...params } = query.params;\r\n return initIndex(base)(query.indexName, {\r\n methods: { searchForFacetValues },\r\n }).searchForFacetValues(facetName, facetQuery, {\r\n ...requestOptions,\r\n ...params,\r\n });\r\n }));\r\n };\r\n};\n\nconst removeUserID = (base) => {\r\n return (userID, requestOptions) => {\r\n const mappedRequestOptions = createMappedRequestOptions(requestOptions);\r\n // eslint-disable-next-line functional/immutable-data\r\n mappedRequestOptions.queryParameters['X-Algolia-User-ID'] = userID;\r\n return base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: '1/clusters/mapping',\r\n }, mappedRequestOptions);\r\n };\r\n};\n\nconst replaceDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: true, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst restoreApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const wait = (_, waitRequestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).catch((apiError) => {\r\n if (apiError.status !== 404) {\r\n throw apiError;\r\n }\r\n return retry();\r\n });\r\n });\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/keys/%s/restore', apiKey),\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst saveDictionaryEntries = (base) => {\r\n return (dictionary, entries, requestOptions) => {\r\n const requests = entries.map(entry => ({\r\n action: 'addEntry',\r\n body: entry,\r\n }));\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/batch', dictionary),\r\n data: { clearExistingDictionaryEntries: false, requests },\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst searchDictionaryEntries = (base) => {\r\n return (dictionary, query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('/1/dictionaries/%s/search', dictionary),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchUserIDs = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/clusters/mapping/search',\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setDictionarySettings = (base) => {\r\n return (settings, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: '/1/dictionaries/*/settings',\r\n data: settings,\r\n }, requestOptions), (response, waitRequestOptions) => waitAppTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst updateApiKey = (base) => {\r\n return (apiKey, requestOptions) => {\r\n const updatedFields = Object.assign({}, requestOptions);\r\n const { queryParameters, ...options } = requestOptions || {};\r\n const data = queryParameters ? { queryParameters } : {};\r\n const apiKeyFields = [\r\n 'acl',\r\n 'indexes',\r\n 'referers',\r\n 'restrictSources',\r\n 'queryParameters',\r\n 'description',\r\n 'maxQueriesPerIPPerHour',\r\n 'maxHitsPerQuery',\r\n ];\r\n // Check that all the fields retrieved through getApiKey are the same as the ones we wanted to update\r\n const hasChanged = (getApiKeyResponse) => {\r\n return Object.keys(updatedFields)\r\n .filter((updatedField) => apiKeyFields.indexOf(updatedField) !== -1)\r\n .every(updatedField => {\r\n // If the field is an array, we need to check that they are the same length and that all the values are the same\r\n if (Array.isArray(getApiKeyResponse[updatedField]) &&\r\n Array.isArray(updatedFields[updatedField])) {\r\n const getApiKeyResponseArray = getApiKeyResponse[updatedField];\r\n return (getApiKeyResponseArray.length === updatedFields[updatedField].length &&\r\n getApiKeyResponseArray.every((value, index) => value === updatedFields[updatedField][index]));\r\n }\r\n else {\r\n return getApiKeyResponse[updatedField] === updatedFields[updatedField];\r\n }\r\n });\r\n };\r\n const wait = (_, waitRequestOptions) => createRetryablePromise(retry => {\r\n return getApiKey(base)(apiKey, waitRequestOptions).then(getApiKeyResponse => {\r\n return hasChanged(getApiKeyResponse) ? Promise.resolve() : retry();\r\n });\r\n });\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/keys/%s', apiKey),\r\n data,\r\n }, options), wait);\r\n };\r\n};\n\nconst waitAppTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getAppTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst batch = (base) => {\r\n return (requests, requestOptions) => {\r\n const wait = (response, waitRequestOptions) => {\r\n return waitTask(base)(response.taskID, waitRequestOptions);\r\n };\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/batch', base.indexName),\r\n data: {\r\n requests,\r\n },\r\n }, requestOptions), wait);\r\n };\r\n};\n\nconst browseObjects = (base) => {\r\n return (requestOptions) => {\r\n return createBrowsablePromise({\r\n shouldStop: response => response.cursor === undefined,\r\n ...requestOptions,\r\n request: (data) => base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/browse', base.indexName),\r\n data,\r\n }, requestOptions),\r\n });\r\n };\r\n};\n\nconst browseRules = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchRules(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(rule => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete rule._highlightResult;\r\n return rule;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst browseSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const options = {\r\n hitsPerPage: 1000,\r\n ...requestOptions,\r\n };\r\n return createBrowsablePromise({\r\n shouldStop: response => response.hits.length < options.hitsPerPage,\r\n ...options,\r\n request(data) {\r\n return searchSynonyms(base)('', { ...options, ...data }).then((response) => {\r\n return {\r\n ...response,\r\n hits: response.hits.map(synonym => {\r\n // eslint-disable-next-line functional/immutable-data,no-param-reassign\r\n delete synonym._highlightResult;\r\n return synonym;\r\n }),\r\n };\r\n });\r\n },\r\n });\r\n };\r\n};\n\nconst chunkedBatch = (base) => {\r\n return (bodies, action, requestOptions) => {\r\n const { batchSize, ...options } = requestOptions || {};\r\n const response = {\r\n taskIDs: [],\r\n objectIDs: [],\r\n };\r\n const forEachBatch = (lastIndex = 0) => {\r\n // eslint-disable-next-line functional/prefer-readonly-type\r\n const bodiesChunk = [];\r\n // eslint-disable-next-line functional/no-let\r\n let index;\r\n /* eslint-disable-next-line functional/no-loop-statement */\r\n for (index = lastIndex; index < bodies.length; index++) {\r\n // eslint-disable-next-line functional/immutable-data\r\n bodiesChunk.push(bodies[index]);\r\n if (bodiesChunk.length === (batchSize || 1000)) {\r\n break;\r\n }\r\n }\r\n if (bodiesChunk.length === 0) {\r\n return Promise.resolve(response);\r\n }\r\n return batch(base)(bodiesChunk.map(body => {\r\n return {\r\n action,\r\n body,\r\n };\r\n }), options).then(res => {\r\n response.objectIDs = response.objectIDs.concat(res.objectIDs); // eslint-disable-line functional/immutable-data\r\n response.taskIDs.push(res.taskID); // eslint-disable-line functional/immutable-data\r\n index++;\r\n return forEachBatch(index);\r\n });\r\n };\r\n return createWaitablePromise(forEachBatch(), (chunkedBatchResponse, waitRequestOptions) => {\r\n return Promise.all(chunkedBatchResponse.taskIDs.map(taskID => {\r\n return waitTask(base)(taskID, waitRequestOptions);\r\n }));\r\n });\r\n };\r\n};\n\nconst clearObjects = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/clear', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearRules = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst clearSynonyms = (base) => {\r\n return (requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/clear', base.indexName),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteBy = (base) => {\r\n return (filters, requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/deleteByQuery', base.indexName),\r\n data: filters,\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteIndex = (base) => {\r\n return (requestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s', base.indexName),\r\n }, requestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return createWaitablePromise(deleteObjects(base)([objectID], requestOptions).then(response => {\r\n return { taskID: response.taskIDs[0] };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const objects = objectIDs.map(objectID => {\r\n return { objectID };\r\n });\r\n return chunkedBatch(base)(objects, BatchActionEnum.DeleteObject, requestOptions);\r\n };\r\n};\n\nconst deleteRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst deleteSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Delete,\r\n path: encode('1/indexes/%s/synonyms/%s', base.indexName, objectID),\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst exists = (base) => {\r\n return (requestOptions) => {\r\n return getSettings(base)(requestOptions)\r\n .then(() => true)\r\n .catch(error => {\r\n if (error.status !== 404) {\r\n throw error;\r\n }\r\n return false;\r\n });\r\n };\r\n};\n\nconst findAnswers = (base) => {\r\n return (query, queryLanguages, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/answers/%s/prediction', base.indexName),\r\n data: {\r\n query,\r\n queryLanguages,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst findObject = (base) => {\r\n return (callback, requestOptions) => {\r\n const { query, paginate, ...options } = requestOptions || {};\r\n // eslint-disable-next-line functional/no-let\r\n let page = 0;\r\n const forEachPage = () => {\r\n return search(base)(query || '', { ...options, page }).then(result => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(result.hits)) {\r\n // eslint-disable-next-line promise/no-callback-in-promise\r\n if (callback(hit)) {\r\n return {\r\n object: hit,\r\n position: parseInt(position, 10),\r\n page,\r\n };\r\n }\r\n }\r\n page++;\r\n // paginate if option was set and has next page\r\n if (paginate === false || page >= result.nbPages) {\r\n throw createObjectNotFoundError();\r\n }\r\n return forEachPage();\r\n });\r\n };\r\n return forEachPage();\r\n };\r\n};\n\nconst getObject = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getObjectPosition = () => {\r\n return (searchResponse, objectID) => {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const [position, hit] of Object.entries(searchResponse.hits)) {\r\n if (hit.objectID === objectID) {\r\n return parseInt(position, 10);\r\n }\r\n }\r\n return -1;\r\n };\r\n};\n\nconst getObjects = (base) => {\r\n return (objectIDs, requestOptions) => {\r\n const { attributesToRetrieve, ...options } = requestOptions || {};\r\n const requests = objectIDs.map(objectID => {\r\n return {\r\n indexName: base.indexName,\r\n objectID,\r\n ...(attributesToRetrieve ? { attributesToRetrieve } : {}),\r\n };\r\n });\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: '1/indexes/*/objects',\r\n data: {\r\n requests,\r\n },\r\n }, options);\r\n };\r\n};\n\nconst getRule = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/rules/%s', base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSettings = (base) => {\r\n return (requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: {\r\n getVersion: 2,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst getSynonym = (base) => {\r\n return (objectID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode(`1/indexes/%s/synonyms/%s`, base.indexName, objectID),\r\n }, requestOptions);\r\n };\r\n};\n\nconst getTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Get,\r\n path: encode('1/indexes/%s/task/%s', base.indexName, taskID.toString()),\r\n }, requestOptions);\r\n };\r\n};\n\nconst partialUpdateObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(partialUpdateObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst partialUpdateObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { createIfNotExists, ...options } = requestOptions || {};\r\n const action = createIfNotExists\r\n ? BatchActionEnum.PartialUpdateObject\r\n : BatchActionEnum.PartialUpdateObjectNoCreate;\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst replaceAllObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { safe, autoGenerateObjectIDIfNotExist, batchSize, ...options } = requestOptions || {};\r\n const operation = (from, to, type, operationRequestOptions) => {\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/operation', from),\r\n data: {\r\n operation: type,\r\n destination: to,\r\n },\r\n }, operationRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n const randomSuffix = Math.random()\r\n .toString(36)\r\n .substring(7);\r\n const temporaryIndexName = `${base.indexName}_tmp_${randomSuffix}`;\r\n const saveObjectsInTemporary = saveObjects({\r\n appId: base.appId,\r\n transporter: base.transporter,\r\n indexName: temporaryIndexName,\r\n });\r\n // @ts-ignore\r\n // eslint-disable-next-line prefer-const, functional/no-let, functional/prefer-readonly-type\r\n let responses = [];\r\n const copyWaitablePromise = operation(base.indexName, temporaryIndexName, 'copy', {\r\n ...options,\r\n scope: ['settings', 'synonyms', 'rules'],\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(copyWaitablePromise);\r\n const result = (safe\r\n ? copyWaitablePromise.wait(options)\r\n : copyWaitablePromise)\r\n .then(() => {\r\n const saveObjectsWaitablePromise = saveObjectsInTemporary(objects, {\r\n ...options,\r\n autoGenerateObjectIDIfNotExist,\r\n batchSize,\r\n });\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(saveObjectsWaitablePromise);\r\n return safe ? saveObjectsWaitablePromise.wait(options) : saveObjectsWaitablePromise;\r\n })\r\n .then(() => {\r\n const moveWaitablePromise = operation(temporaryIndexName, base.indexName, 'move', options);\r\n // eslint-disable-next-line functional/immutable-data\r\n responses.push(moveWaitablePromise);\r\n return safe ? moveWaitablePromise.wait(options) : moveWaitablePromise;\r\n })\r\n .then(() => Promise.all(responses))\r\n .then(([copyResponse, saveObjectsResponse, moveResponse]) => {\r\n return {\r\n objectIDs: saveObjectsResponse.objectIDs,\r\n taskIDs: [copyResponse.taskID, ...saveObjectsResponse.taskIDs, moveResponse.taskID],\r\n };\r\n });\r\n return createWaitablePromise(result, (_, waitRequestOptions) => {\r\n return Promise.all(responses.map(response => response.wait(waitRequestOptions)));\r\n });\r\n };\r\n};\n\nconst replaceAllRules = (base) => {\r\n return (rules, requestOptions) => {\r\n return saveRules(base)(rules, {\r\n ...requestOptions,\r\n clearExistingRules: true,\r\n });\r\n };\r\n};\n\nconst replaceAllSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n return saveSynonyms(base)(synonyms, {\r\n ...requestOptions,\r\n clearExistingSynonyms: true,\r\n });\r\n };\r\n};\n\nconst saveObject = (base) => {\r\n return (object, requestOptions) => {\r\n return createWaitablePromise(saveObjects(base)([object], requestOptions).then(response => {\r\n return {\r\n objectID: response.objectIDs[0],\r\n taskID: response.taskIDs[0],\r\n };\r\n }), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveObjects = (base) => {\r\n return (objects, requestOptions) => {\r\n const { autoGenerateObjectIDIfNotExist, ...options } = requestOptions || {};\r\n const action = autoGenerateObjectIDIfNotExist\r\n ? BatchActionEnum.AddObject\r\n : BatchActionEnum.UpdateObject;\r\n if (action === BatchActionEnum.UpdateObject) {\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (const object of objects) {\r\n if (object.objectID === undefined) {\r\n return createWaitablePromise(Promise.reject(createMissingObjectIDError()));\r\n }\r\n }\r\n }\r\n return chunkedBatch(base)(objects, action, options);\r\n };\r\n};\n\nconst saveRule = (base) => {\r\n return (rule, requestOptions) => {\r\n return saveRules(base)([rule], requestOptions);\r\n };\r\n};\n\nconst saveRules = (base) => {\r\n return (rules, requestOptions) => {\r\n const { forwardToReplicas, clearExistingRules, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (clearExistingRules) {\r\n mappedRequestOptions.queryParameters.clearExistingRules = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/batch', base.indexName),\r\n data: rules,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst saveSynonym = (base) => {\r\n return (synonym, requestOptions) => {\r\n return saveSynonyms(base)([synonym], requestOptions);\r\n };\r\n};\n\nconst saveSynonyms = (base) => {\r\n return (synonyms, requestOptions) => {\r\n const { forwardToReplicas, clearExistingSynonyms, replaceExistingSynonyms, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n if (replaceExistingSynonyms || clearExistingSynonyms) {\r\n mappedRequestOptions.queryParameters.replaceExistingSynonyms = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/batch', base.indexName),\r\n data: synonyms,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst search = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/query', base.indexName),\r\n data: {\r\n query,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchForFacetValues = (base) => {\r\n return (facetName, facetQuery, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/facets/%s/query', base.indexName, facetName),\r\n data: {\r\n facetQuery,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchRules = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/rules/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst searchSynonyms = (base) => {\r\n return (query, requestOptions) => {\r\n return base.transporter.read({\r\n method: MethodEnum.Post,\r\n path: encode('1/indexes/%s/synonyms/search', base.indexName),\r\n data: {\r\n query,\r\n },\r\n }, requestOptions);\r\n };\r\n};\n\nconst setSettings = (base) => {\r\n return (settings, requestOptions) => {\r\n const { forwardToReplicas, ...options } = requestOptions || {};\r\n const mappedRequestOptions = createMappedRequestOptions(options);\r\n if (forwardToReplicas) {\r\n mappedRequestOptions.queryParameters.forwardToReplicas = 1; // eslint-disable-line functional/immutable-data\r\n }\r\n return createWaitablePromise(base.transporter.write({\r\n method: MethodEnum.Put,\r\n path: encode('1/indexes/%s/settings', base.indexName),\r\n data: settings,\r\n }, mappedRequestOptions), (response, waitRequestOptions) => waitTask(base)(response.taskID, waitRequestOptions));\r\n };\r\n};\n\nconst waitTask = (base) => {\r\n return (taskID, requestOptions) => {\r\n return createRetryablePromise(retry => {\r\n return getTask(base)(taskID, requestOptions).then(response => {\r\n return response.status !== 'published' ? retry() : undefined;\r\n });\r\n });\r\n };\r\n};\n\nconst ApiKeyACLEnum = {\r\n AddObject: 'addObject',\r\n Analytics: 'analytics',\r\n Browser: 'browse',\r\n DeleteIndex: 'deleteIndex',\r\n DeleteObject: 'deleteObject',\r\n EditSettings: 'editSettings',\r\n Inference: 'inference',\r\n ListIndexes: 'listIndexes',\r\n Logs: 'logs',\r\n Personalization: 'personalization',\r\n Recommendation: 'recommendation',\r\n Search: 'search',\r\n SeeUnretrievableAttributes: 'seeUnretrievableAttributes',\r\n Settings: 'settings',\r\n Usage: 'usage',\r\n};\n\nconst BatchActionEnum = {\r\n AddObject: 'addObject',\r\n UpdateObject: 'updateObject',\r\n PartialUpdateObject: 'partialUpdateObject',\r\n PartialUpdateObjectNoCreate: 'partialUpdateObjectNoCreate',\r\n DeleteObject: 'deleteObject',\r\n DeleteIndex: 'delete',\r\n ClearIndex: 'clear',\r\n};\n\nconst ScopeEnum = {\r\n Settings: 'settings',\r\n Synonyms: 'synonyms',\r\n Rules: 'rules',\r\n};\n\nconst StrategyEnum = {\r\n None: 'none',\r\n StopIfEnoughMatches: 'stopIfEnoughMatches',\r\n};\n\nconst SynonymEnum = {\r\n Synonym: 'synonym',\r\n OneWaySynonym: 'oneWaySynonym',\r\n AltCorrection1: 'altCorrection1',\r\n AltCorrection2: 'altCorrection2',\r\n Placeholder: 'placeholder',\r\n};\n\nexport { ApiKeyACLEnum, BatchActionEnum, ScopeEnum, StrategyEnum, SynonymEnum, addApiKey, assignUserID, assignUserIDs, batch, browseObjects, browseRules, browseSynonyms, chunkedBatch, clearDictionaryEntries, clearObjects, clearRules, clearSynonyms, copyIndex, copyRules, copySettings, copySynonyms, createBrowsablePromise, createMissingObjectIDError, createObjectNotFoundError, createSearchClient, createValidUntilNotFoundError, customRequest, deleteApiKey, deleteBy, deleteDictionaryEntries, deleteIndex, deleteObject, deleteObjects, deleteRule, deleteSynonym, exists, findAnswers, findObject, generateSecuredApiKey, getApiKey, getAppTask, getDictionarySettings, getLogs, getObject, getObjectPosition, getObjects, getRule, getSecuredApiKeyRemainingValidity, getSettings, getSynonym, getTask, getTopUserIDs, getUserID, hasPendingMappings, initIndex, listApiKeys, listClusters, listIndices, listUserIDs, moveIndex, multipleBatch, multipleGetObjects, multipleQueries, multipleSearchForFacetValues, partialUpdateObject, partialUpdateObjects, removeUserID, replaceAllObjects, replaceAllRules, replaceAllSynonyms, replaceDictionaryEntries, restoreApiKey, saveDictionaryEntries, saveObject, saveObjects, saveRule, saveRules, saveSynonym, saveSynonyms, search, searchDictionaryEntries, searchForFacetValues, searchRules, searchSynonyms, searchUserIDs, setDictionarySettings, setSettings, updateApiKey, waitAppTask, waitTask };\n","function createNullLogger() {\r\n return {\r\n debug(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n info(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n error(_message, _args) {\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nconst LogLevelEnum = {\r\n Debug: 1,\r\n Info: 2,\r\n Error: 3,\r\n};\n\nexport { LogLevelEnum, createNullLogger };\n","function createAuth(authMode, appId, apiKey) {\r\n const credentials = {\r\n 'x-algolia-api-key': apiKey,\r\n 'x-algolia-application-id': appId,\r\n };\r\n return {\r\n headers() {\r\n return authMode === AuthMode.WithinHeaders ? credentials : {};\r\n },\r\n queryParameters() {\r\n return authMode === AuthMode.WithinQueryParameters ? credentials : {};\r\n },\r\n };\r\n}\n\nfunction createRetryablePromise(callback) {\r\n let retriesCount = 0; // eslint-disable-line functional/no-let\r\n const retry = () => {\r\n retriesCount++;\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve(callback(retry));\r\n }, Math.min(100 * retriesCount, 1000));\r\n });\r\n };\r\n return callback(retry);\r\n}\n\nfunction createWaitablePromise(promise, wait = (_response, _requestOptions) => {\r\n return Promise.resolve();\r\n}) {\r\n // eslint-disable-next-line functional/immutable-data\r\n return Object.assign(promise, {\r\n wait(requestOptions) {\r\n return createWaitablePromise(promise\r\n .then(response => Promise.all([wait(response, requestOptions), response]))\r\n .then(promiseResults => promiseResults[1]));\r\n },\r\n });\r\n}\n\n// eslint-disable-next-line functional/prefer-readonly-type\r\nfunction shuffle(array) {\r\n let c = array.length - 1; // eslint-disable-line functional/no-let\r\n // eslint-disable-next-line functional/no-loop-statement\r\n for (c; c > 0; c--) {\r\n const b = Math.floor(Math.random() * (c + 1));\r\n const a = array[c];\r\n array[c] = array[b]; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n array[b] = a; // eslint-disable-line functional/immutable-data, no-param-reassign\r\n }\r\n return array;\r\n}\r\nfunction addMethods(base, methods) {\r\n if (!methods) {\r\n return base;\r\n }\r\n Object.keys(methods).forEach(key => {\r\n // eslint-disable-next-line functional/immutable-data, no-param-reassign\r\n base[key] = methods[key](base);\r\n });\r\n return base;\r\n}\r\nfunction encode(format, ...args) {\r\n // eslint-disable-next-line functional/no-let\r\n let i = 0;\r\n return format.replace(/%s/g, () => encodeURIComponent(args[i++]));\r\n}\n\nconst version = '4.24.0';\n\nconst destroy = (base) => {\r\n return () => {\r\n return base.transporter.requester.destroy();\r\n };\r\n};\n\nconst AuthMode = {\r\n /**\r\n * If auth credentials should be in query parameters.\r\n */\r\n WithinQueryParameters: 0,\r\n /**\r\n * If auth credentials should be in headers.\r\n */\r\n WithinHeaders: 1,\r\n};\n\nexport { AuthMode, addMethods, createAuth, createRetryablePromise, createWaitablePromise, destroy, encode, shuffle, version };\n","import * as http from 'http';\nimport { Agent } from 'http';\nimport * as https from 'https';\nimport { Agent as Agent$1 } from 'https';\nimport { parse } from 'url';\n\n/* eslint functional/prefer-readonly-type: 0 */\r\nconst agentOptions = { keepAlive: true };\r\nconst defaultHttpAgent = new Agent(agentOptions);\r\nconst defaultHttpsAgent = new Agent$1(agentOptions);\r\nfunction createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) {\r\n const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent;\r\n const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent;\r\n return {\r\n send(request) {\r\n return new Promise(resolve => {\r\n const url = parse(request.url);\r\n const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`;\r\n const options = {\r\n ...requesterOptions,\r\n agent: url.protocol === 'https:' ? httpsAgent : httpAgent,\r\n hostname: url.hostname,\r\n path,\r\n method: request.method,\r\n headers: {\r\n ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}),\r\n ...request.headers,\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n response.on('data', chunk => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n });\r\n response.on('end', () => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(connectTimeout);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n status: response.statusCode || 0,\r\n content: Buffer.concat(contentBuffers).toString(),\r\n isTimedOut: false,\r\n });\r\n });\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n req.on('error', error => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n });\r\n req.once('response', () => {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n });\r\n if (request.data !== undefined) {\r\n req.write(request.data);\r\n }\r\n req.end();\r\n });\r\n },\r\n destroy() {\r\n httpAgent.destroy();\r\n httpsAgent.destroy();\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createNodeHttpRequester };\n","'use strict';\n\nvar cacheCommon = require('@algolia/cache-common');\nvar cacheInMemory = require('@algolia/cache-in-memory');\nvar clientCommon = require('@algolia/client-common');\nvar loggerCommon = require('@algolia/logger-common');\nvar requesterNodeHttp = require('@algolia/requester-node-http');\nvar transporter = require('@algolia/transporter');\nvar requesterCommon = require('@algolia/requester-common');\n\nconst createRecommendClient = options => {\r\n const appId = options.appId;\r\n const auth = clientCommon.createAuth(options.authMode !== undefined ? options.authMode : clientCommon.AuthMode.WithinHeaders, appId, options.apiKey);\r\n const transporter$1 = transporter.createTransporter({\r\n hosts: [\r\n { url: `${appId}-dsn.algolia.net`, accept: transporter.CallEnum.Read },\r\n { url: `${appId}.algolia.net`, accept: transporter.CallEnum.Write },\r\n ].concat(clientCommon.shuffle([\r\n { url: `${appId}-1.algolianet.com` },\r\n { url: `${appId}-2.algolianet.com` },\r\n { url: `${appId}-3.algolianet.com` },\r\n ])),\r\n ...options,\r\n headers: {\r\n ...auth.headers(),\r\n ...{ 'content-type': 'application/x-www-form-urlencoded' },\r\n ...options.headers,\r\n },\r\n queryParameters: {\r\n ...auth.queryParameters(),\r\n ...options.queryParameters,\r\n },\r\n });\r\n const base = {\r\n transporter: transporter$1,\r\n appId,\r\n addAlgoliaAgent(segment, version) {\r\n transporter$1.userAgent.add({ segment, version });\r\n },\r\n clearCache() {\r\n return Promise.all([\r\n transporter$1.requestsCache.clear(),\r\n transporter$1.responsesCache.clear(),\r\n ]).then(() => undefined);\r\n },\r\n };\r\n return clientCommon.addMethods(base, options.methods);\r\n};\n\nconst getRecommendations = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getFrequentlyBoughtTogether = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n fallbackParameters: {},\r\n model: 'bought-together',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getRelatedProducts = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n model: 'related-products',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getTrendingFacets = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'trending-facets',\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getTrendingItems = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'trending-items',\r\n // The `threshold` param is required by the endpoint to make it easier\r\n // to provide a default value later, so we default it in the client\r\n // so that users don't have to provide a value.\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nconst getLookingSimilar = base => {\r\n return (queries, requestOptions) => {\r\n return getRecommendations(base)(queries.map(query => ({\r\n ...query,\r\n model: 'looking-similar',\r\n })), requestOptions);\r\n };\r\n};\n\nconst getRecommendedForYou = base => {\r\n return (queries, requestOptions) => {\r\n const requests = queries.map(query => ({\r\n ...query,\r\n model: 'recommended-for-you',\r\n threshold: query.threshold || 0,\r\n }));\r\n return base.transporter.read({\r\n method: requesterCommon.MethodEnum.Post,\r\n path: '1/indexes/*/recommendations',\r\n data: {\r\n requests,\r\n },\r\n cacheable: true,\r\n }, requestOptions);\r\n };\r\n};\n\nfunction recommend(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 2,\r\n read: 5,\r\n write: 30,\r\n },\r\n requester: requesterNodeHttp.createNodeHttpRequester(),\r\n logger: loggerCommon.createNullLogger(),\r\n responsesCache: cacheCommon.createNullCache(),\r\n requestsCache: cacheCommon.createNullCache(),\r\n hostsCache: cacheInMemory.createInMemoryCache(),\r\n userAgent: transporter.createUserAgent(clientCommon.version)\r\n .add({ segment: 'Recommend', version: clientCommon.version })\r\n .add({ segment: 'Node.js', version: process.versions.node }),\r\n };\r\n return createRecommendClient({\r\n ...commonOptions,\r\n ...options,\r\n methods: {\r\n destroy: clientCommon.destroy,\r\n getFrequentlyBoughtTogether,\r\n getRecommendations,\r\n getRelatedProducts,\r\n getTrendingFacets,\r\n getTrendingItems,\r\n getLookingSimilar,\r\n getRecommendedForYou,\r\n },\r\n });\r\n}\r\n/* eslint-disable functional/immutable-data */\r\nrecommend.version = clientCommon.version;\r\nrecommend.getFrequentlyBoughtTogether = getFrequentlyBoughtTogether;\r\nrecommend.getRecommendations = getRecommendations;\r\nrecommend.getRelatedProducts = getRelatedProducts;\r\nrecommend.getTrendingFacets = getTrendingFacets;\r\nrecommend.getTrendingItems = getTrendingItems;\r\nrecommend.getLookingSimilar = getLookingSimilar;\r\nrecommend.getRecommendedForYou = getRecommendedForYou;\n\nmodule.exports = recommend;\n","/* eslint-disable functional/immutable-data, import/no-commonjs */\nconst recommend = require('./dist/recommend.cjs.js');\n\n/**\n * The Common JS build is the default entry point for the Node environment. Keep in\n * in mind, that for the browser environment, we hint the bundler to use the UMD\n * build instead as specified on the key `browser` of our `package.json` file.\n */\nmodule.exports = recommend;\n\n/**\n * In addition, we also set explicitly the default export below making\n * this Common JS module in compliance with es6 modules specification.\n */\nmodule.exports.default = recommend;\n","import * as http from 'http';\nimport { Agent } from 'http';\nimport * as https from 'https';\nimport { Agent as Agent$1 } from 'https';\nimport { parse } from 'url';\n\n/* eslint functional/prefer-readonly-type: 0 */\r\nconst agentOptions = { keepAlive: true };\r\nconst defaultHttpAgent = new Agent(agentOptions);\r\nconst defaultHttpsAgent = new Agent$1(agentOptions);\r\nfunction createNodeHttpRequester({ agent: userGlobalAgent, httpAgent: userHttpAgent, httpsAgent: userHttpsAgent, requesterOptions = {}, } = {}) {\r\n const httpAgent = userHttpAgent || userGlobalAgent || defaultHttpAgent;\r\n const httpsAgent = userHttpsAgent || userGlobalAgent || defaultHttpsAgent;\r\n return {\r\n send(request) {\r\n return new Promise(resolve => {\r\n const url = parse(request.url);\r\n const path = url.query === null ? url.pathname : `${url.pathname}?${url.query}`;\r\n const options = {\r\n ...requesterOptions,\r\n agent: url.protocol === 'https:' ? httpsAgent : httpAgent,\r\n hostname: url.hostname,\r\n path,\r\n method: request.method,\r\n headers: {\r\n ...(requesterOptions && requesterOptions.headers ? requesterOptions.headers : {}),\r\n ...request.headers,\r\n },\r\n ...(url.port !== undefined ? { port: url.port || '' } : {}),\r\n };\r\n const req = (url.protocol === 'https:' ? https : http).request(options, response => {\r\n // eslint-disable-next-line functional/no-let\r\n let contentBuffers = [];\r\n response.on('data', chunk => {\r\n contentBuffers = contentBuffers.concat(chunk);\r\n });\r\n response.on('end', () => {\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(connectTimeout);\r\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\r\n clearTimeout(responseTimeout);\r\n resolve({\r\n status: response.statusCode || 0,\r\n content: Buffer.concat(contentBuffers).toString(),\r\n isTimedOut: false,\r\n });\r\n });\r\n });\r\n const createTimeout = (timeout, content) => {\r\n return setTimeout(() => {\r\n req.abort();\r\n resolve({\r\n status: 0,\r\n content,\r\n isTimedOut: true,\r\n });\r\n }, timeout * 1000);\r\n };\r\n const connectTimeout = createTimeout(request.connectTimeout, 'Connection timeout');\r\n // eslint-disable-next-line functional/no-let\r\n let responseTimeout;\r\n req.on('error', error => {\r\n clearTimeout(connectTimeout);\r\n clearTimeout(responseTimeout);\r\n resolve({ status: 0, content: error.message, isTimedOut: false });\r\n });\r\n req.once('response', () => {\r\n clearTimeout(connectTimeout);\r\n responseTimeout = createTimeout(request.responseTimeout, 'Socket timeout');\r\n });\r\n if (request.data !== undefined) {\r\n req.write(request.data);\r\n }\r\n req.end();\r\n });\r\n },\r\n destroy() {\r\n httpAgent.destroy();\r\n httpsAgent.destroy();\r\n return Promise.resolve();\r\n },\r\n };\r\n}\n\nexport { createNodeHttpRequester };\n","'use strict';\n\nvar cacheCommon = require('@algolia/cache-common');\nvar cacheInMemory = require('@algolia/cache-in-memory');\nvar clientAnalytics = require('@algolia/client-analytics');\nvar clientCommon = require('@algolia/client-common');\nvar clientPersonalization = require('@algolia/client-personalization');\nvar clientSearch = require('@algolia/client-search');\nvar loggerCommon = require('@algolia/logger-common');\nvar recommend = require('@algolia/recommend');\nvar requesterNodeHttp = require('@algolia/requester-node-http');\nvar transporter = require('@algolia/transporter');\n\nfunction algoliasearch(appId, apiKey, options) {\r\n const commonOptions = {\r\n appId,\r\n apiKey,\r\n timeouts: {\r\n connect: 2,\r\n read: 5,\r\n write: 30,\r\n },\r\n requester: requesterNodeHttp.createNodeHttpRequester(),\r\n logger: loggerCommon.createNullLogger(),\r\n responsesCache: cacheCommon.createNullCache(),\r\n requestsCache: cacheCommon.createNullCache(),\r\n hostsCache: cacheInMemory.createInMemoryCache(),\r\n userAgent: transporter.createUserAgent(clientCommon.version).add({\r\n segment: 'Node.js',\r\n version: process.versions.node,\r\n }),\r\n };\r\n const searchClientOptions = { ...commonOptions, ...options };\r\n const initPersonalization = () => (clientOptions) => {\r\n return clientPersonalization.createPersonalizationClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n getPersonalizationStrategy: clientPersonalization.getPersonalizationStrategy,\r\n setPersonalizationStrategy: clientPersonalization.setPersonalizationStrategy,\r\n },\r\n });\r\n };\r\n return clientSearch.createSearchClient({\r\n ...searchClientOptions,\r\n methods: {\r\n search: clientSearch.multipleQueries,\r\n searchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n multipleBatch: clientSearch.multipleBatch,\r\n multipleGetObjects: clientSearch.multipleGetObjects,\r\n multipleQueries: clientSearch.multipleQueries,\r\n copyIndex: clientSearch.copyIndex,\r\n copySettings: clientSearch.copySettings,\r\n copyRules: clientSearch.copyRules,\r\n copySynonyms: clientSearch.copySynonyms,\r\n moveIndex: clientSearch.moveIndex,\r\n listIndices: clientSearch.listIndices,\r\n getLogs: clientSearch.getLogs,\r\n listClusters: clientSearch.listClusters,\r\n multipleSearchForFacetValues: clientSearch.multipleSearchForFacetValues,\r\n getApiKey: clientSearch.getApiKey,\r\n addApiKey: clientSearch.addApiKey,\r\n listApiKeys: clientSearch.listApiKeys,\r\n updateApiKey: clientSearch.updateApiKey,\r\n deleteApiKey: clientSearch.deleteApiKey,\r\n restoreApiKey: clientSearch.restoreApiKey,\r\n assignUserID: clientSearch.assignUserID,\r\n assignUserIDs: clientSearch.assignUserIDs,\r\n getUserID: clientSearch.getUserID,\r\n searchUserIDs: clientSearch.searchUserIDs,\r\n listUserIDs: clientSearch.listUserIDs,\r\n getTopUserIDs: clientSearch.getTopUserIDs,\r\n removeUserID: clientSearch.removeUserID,\r\n hasPendingMappings: clientSearch.hasPendingMappings,\r\n generateSecuredApiKey: clientSearch.generateSecuredApiKey,\r\n getSecuredApiKeyRemainingValidity: clientSearch.getSecuredApiKeyRemainingValidity,\r\n destroy: clientCommon.destroy,\r\n clearDictionaryEntries: clientSearch.clearDictionaryEntries,\r\n deleteDictionaryEntries: clientSearch.deleteDictionaryEntries,\r\n getDictionarySettings: clientSearch.getDictionarySettings,\r\n getAppTask: clientSearch.getAppTask,\r\n replaceDictionaryEntries: clientSearch.replaceDictionaryEntries,\r\n saveDictionaryEntries: clientSearch.saveDictionaryEntries,\r\n searchDictionaryEntries: clientSearch.searchDictionaryEntries,\r\n setDictionarySettings: clientSearch.setDictionarySettings,\r\n waitAppTask: clientSearch.waitAppTask,\r\n customRequest: clientSearch.customRequest,\r\n initIndex: base => (indexName) => {\r\n return clientSearch.initIndex(base)(indexName, {\r\n methods: {\r\n batch: clientSearch.batch,\r\n delete: clientSearch.deleteIndex,\r\n findAnswers: clientSearch.findAnswers,\r\n getObject: clientSearch.getObject,\r\n getObjects: clientSearch.getObjects,\r\n saveObject: clientSearch.saveObject,\r\n saveObjects: clientSearch.saveObjects,\r\n search: clientSearch.search,\r\n searchForFacetValues: clientSearch.searchForFacetValues,\r\n waitTask: clientSearch.waitTask,\r\n setSettings: clientSearch.setSettings,\r\n getSettings: clientSearch.getSettings,\r\n partialUpdateObject: clientSearch.partialUpdateObject,\r\n partialUpdateObjects: clientSearch.partialUpdateObjects,\r\n deleteObject: clientSearch.deleteObject,\r\n deleteObjects: clientSearch.deleteObjects,\r\n deleteBy: clientSearch.deleteBy,\r\n clearObjects: clientSearch.clearObjects,\r\n browseObjects: clientSearch.browseObjects,\r\n getObjectPosition: clientSearch.getObjectPosition,\r\n findObject: clientSearch.findObject,\r\n exists: clientSearch.exists,\r\n saveSynonym: clientSearch.saveSynonym,\r\n saveSynonyms: clientSearch.saveSynonyms,\r\n getSynonym: clientSearch.getSynonym,\r\n searchSynonyms: clientSearch.searchSynonyms,\r\n browseSynonyms: clientSearch.browseSynonyms,\r\n deleteSynonym: clientSearch.deleteSynonym,\r\n clearSynonyms: clientSearch.clearSynonyms,\r\n replaceAllObjects: clientSearch.replaceAllObjects,\r\n replaceAllSynonyms: clientSearch.replaceAllSynonyms,\r\n searchRules: clientSearch.searchRules,\r\n getRule: clientSearch.getRule,\r\n deleteRule: clientSearch.deleteRule,\r\n saveRule: clientSearch.saveRule,\r\n saveRules: clientSearch.saveRules,\r\n replaceAllRules: clientSearch.replaceAllRules,\r\n browseRules: clientSearch.browseRules,\r\n clearRules: clientSearch.clearRules,\r\n },\r\n });\r\n },\r\n initAnalytics: () => (clientOptions) => {\r\n return clientAnalytics.createAnalyticsClient({\r\n ...commonOptions,\r\n ...clientOptions,\r\n methods: {\r\n addABTest: clientAnalytics.addABTest,\r\n getABTest: clientAnalytics.getABTest,\r\n getABTests: clientAnalytics.getABTests,\r\n stopABTest: clientAnalytics.stopABTest,\r\n deleteABTest: clientAnalytics.deleteABTest,\r\n },\r\n });\r\n },\r\n initPersonalization,\r\n initRecommendation: () => (clientOptions) => {\r\n searchClientOptions.logger.info('The `initRecommendation` method is deprecated. Use `initPersonalization` instead.');\r\n return initPersonalization()(clientOptions);\r\n },\r\n getRecommendations: recommend.getRecommendations,\r\n getFrequentlyBoughtTogether: recommend.getFrequentlyBoughtTogether,\r\n getLookingSimilar: recommend.getLookingSimilar,\r\n getRecommendedForYou: recommend.getRecommendedForYou,\r\n getRelatedProducts: recommend.getRelatedProducts,\r\n getTrendingFacets: recommend.getTrendingFacets,\r\n getTrendingItems: recommend.getTrendingItems,\r\n },\r\n });\r\n}\r\n// eslint-disable-next-line functional/immutable-data\r\nalgoliasearch.version = clientCommon.version;\n\nmodule.exports = algoliasearch;\n","/* eslint-disable functional/immutable-data, import/no-commonjs */\nconst algoliasearch = require('./dist/algoliasearch.cjs.js');\n\n/**\n * The Common JS build is the default entry point for the Node environment. Keep in\n * in mind, that for the browser environment, we hint the bundler to use the UMD\n * build instead as specified on the key `browser` of our `package.json` file.\n */\nmodule.exports = algoliasearch;\n\n/**\n * In addition, we also set explicitly the default export below making\n * this Common JS module in compliance with es6 modules specification.\n */\nmodule.exports.default = algoliasearch;\n","// eslint-disable-next-line functional/immutable-data, import/no-commonjs\nmodule.exports = require('./index');\n","import { Box } from '@vtex/brand-ui'\r\nimport { MDXRemote } from 'next-mdx-remote'\r\nimport { MarkdownRendererProps } from './MarkdownRenderer.types'\r\nimport components from './components'\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst MDXRemote2 = MDXRemote as any\r\n\r\nconst MarkdownRenderer = ({\r\n serialized,\r\n customComponents,\r\n scope,\r\n}: MarkdownRendererProps) => {\r\n if (components && scope) {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default MarkdownRenderer\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { useContext, useEffect, useRef, useState } from 'react'\r\nimport { Box, Flex } from '@vtex/brand-ui'\r\nimport {\r\n ReactSVGPanZoom,\r\n UncontrolledReactSVGPanZoom,\r\n} from 'react-svg-pan-zoom'\r\nimport mermaid from 'mermaid'\r\nimport parse from 'html-react-parser'\r\nimport { InView } from 'react-intersection-observer'\r\n\r\nimport { CH } from '@code-hike/mdx/components'\r\nimport OverviewCard from 'components/overview-card'\r\nimport YoutubeFrame from 'components/youtube-frame'\r\nimport Steps from 'components/steps'\r\nimport LightBox from 'components/lightbox'\r\nimport WhatsNextCard from 'components/whats-next-card'\r\nimport InsertAccountName from 'components/insert-account-name'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { childrenToString, slugify } from 'utils/string-utils'\r\nimport mermaidInit from 'utils/mermaidInit'\r\n\r\nimport CopyHeadingLink from 'components/copy-heading-link'\r\nimport { Component, ObservableHeadingProps } from './MarkdownRenderer.types'\r\nimport styles from './styles.module.css'\r\nimport { messages } from 'utils/get-message'\r\n\r\nmermaidInit()\r\n\r\nconst ObservableHeading = ({\r\n level,\r\n onEnterView,\r\n onLeaveView,\r\n ...headingProps\r\n}: ObservableHeadingProps) => {\r\n const [y, setY] = useState(Infinity)\r\n const { children, ...restHeadingProps } = headingProps\r\n const toSlugify = childrenToString(children)\r\n const slug = slugify(toSlugify)\r\n const headingContent = (\r\n \r\n {children}\r\n \r\n )\r\n\r\n return (\r\n {\r\n if (inView) onEnterView(slug)\r\n else onLeaveView(slug, entry, y)\r\n\r\n setY(entry.boundingClientRect.y)\r\n }}\r\n >\r\n {level === 2 ? (\r\n

\r\n {headingContent}\r\n

\r\n ) : (\r\n

\r\n {headingContent}\r\n

\r\n )}\r\n \r\n )\r\n}\r\n\r\nconst calloutColors: Record = {\r\n info: '#8C929D',\r\n danger: '#DC5A41',\r\n warning: '#FFB100',\r\n success: '#80BE80',\r\n}\r\n\r\nconst CalloutIcon = ({ type }: { type: string }) => (\r\n \r\n \r\n {type === 'success' ? (\r\n \r\n ) : type === 'info' ? (\r\n <>\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n)\r\n\r\nexport const Callout = ({ node, icon, ...props }: Component) => {\r\n const blockquoteType: string = icon ? icon : 'info'\r\n return (\r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nconst MermaidDiagram = ({ node, ...props }: Component) => {\r\n const viewerRef = useRef(null)\r\n const ref = useRef()\r\n\r\n const [diagram, setDiagram] = useState('')\r\n const [width, setWidth] = useState(0)\r\n const [height, setHeight] = useState(0)\r\n\r\n useEffect(() => {\r\n const resizeObserver = new ResizeObserver(() => {\r\n if (!ref.current) return\r\n setWidth(ref.current?.clientWidth ?? 0)\r\n setHeight(ref.current?.clientWidth / 2 ?? 0)\r\n })\r\n\r\n const mermaidRenderer = async function () {\r\n const { svg } = await mermaid.render('mermaid-id', props.children)\r\n setDiagram(\r\n svg.replace('id=\"mermaid-id\"', '').replaceAll('#mermaid-id', '')\r\n )\r\n }\r\n\r\n mermaidRenderer()\r\n if (ref.current) resizeObserver.observe(ref.current)\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n {parse(diagram)}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nconst ImageComponent = ({ node, ...props }: Component) => {\r\n const [srcHasError, setSrcHasError] = useState(false)\r\n const { locale } = useContext(LibraryContext)\r\n const regularImg = (\r\n // eslint-disable-next-line @next/next/no-img-element\r\n {props.alt} setSrcHasError(true)} />\r\n )\r\n const errorMessage = (\r\n
\r\n \r\n
\r\n {messages[locale]['image.error_loading']} {props.src}\r\n
\r\n
\r\n )\r\n\r\n let data: { base64: string; img: object } = { base64: '', img: {} }\r\n try {\r\n data = JSON.parse(props.alt)\r\n } catch (error) {\r\n console.log(`Error parsing`, error)\r\n return errorMessage\r\n }\r\n return !srcHasError ? {regularImg} : errorMessage\r\n}\r\n\r\nexport default {\r\n CH,\r\n OverviewCard,\r\n WhatsNextCard,\r\n YoutubeFrame,\r\n Steps,\r\n InsertAccountName,\r\n Flex: ({ node, ...props }: Component) => (\r\n \r\n ),\r\n table: ({ node, ...props }: Component) => ,\r\n td: ({ node, ...props }: Component) =>
,\r\n img: ImageComponent,\r\n text: ({ node, ...props }: Component) => {\r\n return \r\n },\r\n blockquote: ({ ...props }: Component) => {\r\n return \r\n },\r\n code: ({ node, ...props }: Component) => {\r\n return \r\n },\r\n pre: ({ ...props }: Component) => {\r\n if (props.className && props.className === 'mermaid')\r\n return \r\n\r\n return
\r\n  },\r\n  h2: ({ node, ...props }: Component) => {\r\n    const { activeItem, setActiveItem, goToPreviousItem } =\r\n      useContext(LibraryContext)\r\n\r\n    return (\r\n       {\r\n          setActiveItem(({ item, subItem }) => ({\r\n            item: slug,\r\n            subItem: item !== slug ? '' : subItem,\r\n          }))\r\n        }}\r\n        onLeaveView={(slug, entry, y) => {\r\n          if (entry.boundingClientRect.y > y && activeItem.item === slug) {\r\n            goToPreviousItem()\r\n          }\r\n        }}\r\n        {...props}\r\n      />\r\n    )\r\n  },\r\n  h3: ({ node, ...props }: Component) => {\r\n    const { activeItem, setActiveItem, goToPreviousSubItem } =\r\n      useContext(LibraryContext)\r\n\r\n    return (\r\n       {\r\n          setActiveItem(({ item }) => ({\r\n            item,\r\n            subItem: slug,\r\n          }))\r\n        }}\r\n        onLeaveView={(slug, entry, y) => {\r\n          if (entry.boundingClientRect.y > y && activeItem.subItem === slug) {\r\n            goToPreviousSubItem()\r\n          }\r\n        }}\r\n        {...props}\r\n      />\r\n    )\r\n  },\r\n}\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst overviewCard: SxStyleProp = {\r\n  alignItems: 'flex-start',\r\n  margin: '20px 0px',\r\n  border: '1px solid #E7E9EE',\r\n  borderRadius: '4px',\r\n  padding: '18px 24px 4px',\r\n  color: '#4A596B',\r\n  ':active, :hover': {\r\n    borderColor: 'muted.2',\r\n    boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n    transition: 'all 0.3 ease-out',\r\n    '*':{\r\n      color: '#000711',\r\n    }\r\n  },\r\n  ul: {\r\n    borderLeft: '1px rgb(202, 203, 204) solid',\r\n    fontSize: '0.9em',\r\n    mt: '0',\r\n    paddingLeft: '1.5em',\r\n    listStyleType: 'none',\r\n    display: 'block',\r\n    textDecoration: 'none',\r\n  },\r\n  'h3, h4': {\r\n    color: '#4A596B',\r\n    fontSize: '1.125em',\r\n    fontWeight: '400',\r\n    my: '0',\r\n  },\r\n}\r\n\r\nconst overviewIcon: SxStyleProp = {\r\n  marginRight: '1.25em',\r\n  marginTop: '0.375em',\r\n}\r\n\r\nexport default {\r\n  overviewCard,\r\n  overviewIcon,\r\n}\r\n","import styles from './styles'\r\nimport { Flex, Box } from '@vtex/brand-ui'\r\nimport * as Icons from './icons'\r\nimport { IconComponent } from 'utils/typings/types'\r\nimport Link from 'next/link.js'\r\n\r\ninterface IconsI {\r\n  name: string\r\n  Icon: IconComponent\r\n}\r\n\r\nconst IconsMap: IconsI[] = [\r\n  {\r\n    name: 'StorageUnit',\r\n    Icon: Icons.StorageUnit,\r\n  },\r\n  {\r\n    name: 'Board',\r\n    Icon: Icons.Board,\r\n  },\r\n  {\r\n    name: 'Integration',\r\n    Icon: Icons.Integration,\r\n  },\r\n  {\r\n    name: 'SearchList',\r\n    Icon: Icons.SearchList,\r\n  },\r\n  {\r\n    name: 'SearchDetails',\r\n    Icon: Icons.SearchDetails,\r\n  },\r\n  {\r\n    name: 'SwitchArrows',\r\n    Icon: Icons.SwitchArrows,\r\n  },\r\n  {\r\n    name: 'ChangeCart',\r\n    Icon: Icons.ChangeCart,\r\n  },\r\n  {\r\n    name: 'ToStore',\r\n    Icon: Icons.ToStore,\r\n  },\r\n  {\r\n    name: 'PaymentHand',\r\n    Icon: Icons.PaymentHand,\r\n  },\r\n  {\r\n    name: 'GlobeCart',\r\n    Icon: Icons.GlobeCart,\r\n  },\r\n  {\r\n    name: 'StoreCart',\r\n    Icon: Icons.StoreCart,\r\n  },\r\n  {\r\n    name: 'List',\r\n    Icon: Icons.List,\r\n  },\r\n  {\r\n    name: 'Blocks',\r\n    Icon: Icons.Blocks,\r\n  },\r\n  {\r\n    name: 'StoreData',\r\n    Icon: Icons.StoreData,\r\n  },\r\n  {\r\n    name: 'Cart',\r\n    Icon: Icons.Cart,\r\n  },\r\n  {\r\n    name: 'FileConfiguration',\r\n    Icon: Icons.FileConfiguration,\r\n  },\r\n  {\r\n    name: 'Platform',\r\n    Icon: Icons.Platform,\r\n  },\r\n  {\r\n    name: 'RestApis',\r\n    Icon: Icons.RestApis,\r\n  },\r\n  {\r\n    name: 'Catalog',\r\n    Icon: Icons.Catalog,\r\n  },\r\n  {\r\n    name: 'Orders',\r\n    Icon: Icons.Orders,\r\n  },\r\n  {\r\n    name: 'Checkout',\r\n    Icon: Icons.Checkout,\r\n  },\r\n  {\r\n    name: 'Payments',\r\n    Icon: Icons.Payments,\r\n  },\r\n  {\r\n    name: 'Promotions',\r\n    Icon: Icons.Promotions,\r\n  },\r\n  {\r\n    name: 'Pricing',\r\n    Icon: Icons.Pricing,\r\n  },\r\n  {\r\n    name: 'AccountManagement',\r\n    Icon: Icons.AccountManagement,\r\n  },\r\n  {\r\n    name: 'StoreSearch',\r\n    Icon: Icons.StoreSearch,\r\n  },\r\n  {\r\n    name: 'Subscriptions',\r\n    Icon: Icons.Subscriptions,\r\n  },\r\n  {\r\n    name: 'Fulfillment',\r\n    Icon: Icons.Fulfillment,\r\n  },\r\n]\r\n\r\nconst getIcon = (name: string) => {\r\n  return IconsMap.find((icon) => icon.name === name)?.Icon\r\n}\r\n\r\n//Interfaces\r\nexport interface OverviewCardProps {\r\n  icon: string\r\n  link: string\r\n  children: string\r\n}\r\n\r\nconst OverviewCard = ({ icon, link, children }: OverviewCardProps) => {\r\n  const Icon = getIcon(icon)\r\n  return (\r\n    \r\n      \r\n        {Icon && }\r\n        {children}\r\n      \r\n    \r\n  )\r\n}\r\n\r\nexport default OverviewCard\r\n","import React from 'react'\r\nimport type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst StorageUnit = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst Board = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst Composable = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst Integration = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst SearchList = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst SwitchArrows = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst SearchDetails = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst List = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst StoreCart = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst GlobeCart = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst PaymentHand = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst ToStore = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\nconst ChangeCart = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst Blocks = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    \r\n      {' '}\r\n      {' '}\r\n      {' '}\r\n      {' '}\r\n      {' '}\r\n    \r\n  \r\n)\r\nconst StoreData = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\nconst FileConfiguration = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\nconst Cart = (props: IconProps) => (\r\n  \r\n    \r\n    \r\n    \r\n    \r\n  \r\n)\r\n\r\nconst Platform = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst RestApis = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst Catalog = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst Orders = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst Checkout = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst Payments = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst Promotions = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst Pricing = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst AccountManagement = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\n\r\nconst StoreSearch = (props: IconProps) => (\r\n  \r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    {' '}\r\n    \r\n  \r\n)\r\nconst Subscriptions = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nconst Fulfillment = (props: IconProps) => (\r\n  \r\n    \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n      \r\n    \r\n  \r\n)\r\n\r\nexport {\r\n  StorageUnit,\r\n  Board,\r\n  Composable,\r\n  Integration,\r\n  SearchList,\r\n  SwitchArrows,\r\n  SearchDetails,\r\n  ChangeCart,\r\n  ToStore,\r\n  PaymentHand,\r\n  GlobeCart,\r\n  StoreCart,\r\n  List,\r\n  Blocks,\r\n  StoreData,\r\n  FileConfiguration,\r\n  Cart,\r\n  Platform,\r\n  RestApis,\r\n  Catalog,\r\n  Orders,\r\n  Checkout,\r\n  Payments,\r\n  Promotions,\r\n  Pricing,\r\n  AccountManagement,\r\n  StoreSearch,\r\n  Subscriptions,\r\n  Fulfillment,\r\n}\r\n","import React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nexport interface IYoutubeFrame {\r\n  embedId: string\r\n}\r\nconst YoutubeFrame = ({ embedId }: IYoutubeFrame) => (\r\n  
\r\n \r\n
\r\n)\r\n\r\nYoutubeFrame.propTypes = {\r\n embedId: PropTypes.string.isRequired,\r\n}\r\n\r\nexport default YoutubeFrame\r\n","import React from 'react'\r\nimport { Box } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\nexport interface StepsProps {\r\n children: string\r\n}\r\nconst Steps = ({ children }: StepsProps) => {\r\n return {children}\r\n}\r\nexport default Steps\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst steps: SxStyleProp = {\r\n ml: '4px',\r\n mt: '12px',\r\n mb: '27px',\r\n borderLeft: '1px solid #e5e7eb',\r\n pl: '25px',\r\n position: 'relative',\r\n '.heading': {\r\n counterIncrement: `step`,\r\n },\r\n '.heading:before': {\r\n content: `counter(step)`,\r\n position: 'absolute',\r\n border: '4px solid #ffffff',\r\n width: '2em',\r\n height: '2em',\r\n left: '-1.3em',\r\n color: '#a1a1aa',\r\n backgroundColor: '#f2f3f6',\r\n borderRadius: '9999px',\r\n fontSize: '1em',\r\n textAlign: 'center',\r\n lineHeight: '2.1em',\r\n boxSizing: 'content-box',\r\n },\r\n}\r\n\r\nexport default {\r\n steps,\r\n}\r\n","import React, { ReactElement, useEffect, useRef, useState } from 'react'\r\nimport { Box, Button, Flex } from '@vtex/brand-ui'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport useClickOutside from 'utils/hooks/useClickOutside'\r\nimport styles from './styles'\r\n\r\ninterface Props {\r\n children: ReactElement\r\n}\r\n\r\nexport default function LightBox({ children }: Props) {\r\n const [isModalOpen, setIsModalOpen] = useState(false)\r\n const modalRef = useRef()\r\n\r\n useEffect(() => {\r\n if (isModalOpen) {\r\n const scrollTop = document.body.getBoundingClientRect().top\r\n document.body.style.top = `${scrollTop}px`\r\n document.body.classList.add('modal-open')\r\n } else {\r\n document.body.classList.remove('modal-open')\r\n document.body.style.removeProperty('top')\r\n }\r\n }, [isModalOpen])\r\n\r\n useClickOutside(modalRef, () => setIsModalOpen(false))\r\n\r\n return (\r\n
\r\n {isModalOpen && (\r\n \r\n }\r\n onClick={() => setIsModalOpen(false)}\r\n />\r\n \r\n {children}\r\n \r\n \r\n )}\r\n setIsModalOpen(true)}>\r\n {children}\r\n \r\n
\r\n )\r\n}\r\n","import React from 'react'\r\nimport type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CloseIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default CloseIcon\r\n","import { useEffect, MutableRefObject, SetStateAction, Dispatch } from 'react'\r\n\r\nexport default function useClickOutside(\r\n ref: MutableRefObject,\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n openModal: Dispatch>\r\n) {\r\n useEffect(() => {\r\n function handleClickOutside(event: MouseEvent) {\r\n const { body, documentElement } = document\r\n if (\r\n ref.current &&\r\n event.target instanceof Node &&\r\n !ref.current.contains(event.target)\r\n ) {\r\n openModal({ modalToggle: false })\r\n const scrollTop = body.getBoundingClientRect().top * -1\r\n body.classList.remove('modal-open')\r\n documentElement.scrollTop = scrollTop\r\n body.style.removeProperty('top')\r\n }\r\n }\r\n document.addEventListener('mousedown', handleClickOutside)\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside)\r\n }\r\n }, [])\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst imageContainer: SxStyleProp = {\r\n cursor: 'pointer',\r\n borderRadius: '5px',\r\n width: 'fit-content',\r\n mt: '16px',\r\n mb: '24px',\r\n transition: '0.3s',\r\n ':hover': {\r\n boxShadow: '2px 4px 8px 2px rgb(0 0 0 / 10%)',\r\n },\r\n\r\n '> img': {\r\n maxWidth: '100%',\r\n display: 'block',\r\n padding: '0',\r\n margin: '0',\r\n border: '1px solid #e7e9ed',\r\n borderRadius: '4px'\r\n },\r\n}\r\n\r\nconst container: SxStyleProp = {\r\n margin: '0',\r\n width: '100%',\r\n height: '100%',\r\n backgroundColor: 'rgba(0,0,0,0.9)',\r\n position: 'fixed',\r\n top: '0',\r\n left: '0',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n zIndex: '10000',\r\n}\r\n\r\nconst modal: SxStyleProp = {\r\n display: 'inline-block',\r\n margin: 'auto',\r\n boxShadow: '2px 4px 16px rgb(0 0 0 / 30%)',\r\n position: 'relative',\r\n zIndex: '10001',\r\n padding: '0',\r\n\r\n '> img': {\r\n display: 'block',\r\n maxHeight: 'calc(100vh - 50px)',\r\n maxWidth: 'calc(100vw - 50px)',\r\n width: 'auto',\r\n margin: '0',\r\n padding: '0',\r\n },\r\n}\r\n\r\nconst closeButton: SxStyleProp = {\r\n position: 'absolute',\r\n zIndex: '10002',\r\n top: '10px',\r\n right: '10px',\r\n color: '#FEFEFE',\r\n\r\n ':hover': {\r\n color: 'rgb(100, 100, 100)',\r\n },\r\n}\r\n\r\nexport default {\r\n imageContainer,\r\n container,\r\n modal,\r\n closeButton,\r\n}\r\n","import React from 'react'\r\nimport { Box, Flex, IconCaret, Text, Link } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\nimport Image from 'next/image.js'\r\n\r\nexport type WhatsNextDataElement = {\r\n title: string\r\n description?: string\r\n linkTitle?: string\r\n linkTo: string\r\n image?: string\r\n}\r\n\r\nconst WhatsNextCard = ({\r\n title,\r\n description,\r\n linkTitle,\r\n linkTo,\r\n image,\r\n}: WhatsNextDataElement) => {\r\n return (\r\n \r\n {image ? (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {title}\r\n \r\n {description && (\r\n \r\n {description}\r\n \r\n )}\r\n {linkTitle && (\r\n \r\n \r\n {linkTitle}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default WhatsNextCard","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n mt: 0,\r\n padding: '16px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n width: '100%',\r\n maxWidth: '100%',\r\n minWidth: 0,\r\n height: '100%',\r\n boxSizing: 'border-box',\r\n textDecoration: 'none',\r\n transition: 'all 0.3s ease-out',\r\n ':hover': {\r\n cursor: 'pointer',\r\n },\r\n ':active, :hover': {\r\n borderColor: 'muted.2',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n transition: 'all 0.3 ease-out',\r\n '.title, .description': {\r\n transition: 'all 0.3s ease-out',\r\n color: '#000711',\r\n },\r\n '.link, .caret': {\r\n transition: 'all 0.3s ease-out',\r\n color: 'muted.0',\r\n },\r\n },\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n mb: '8px',\r\n fontSize: '16px',\r\n fontWeight: '400',\r\n lineHeight: '22px',\r\n color: 'muted.0',\r\n}\r\n\r\nconst imageTitle: SxStyleProp = {\r\n padding: '16px',\r\n fontSize: '16px',\r\n fontWeight: '400',\r\n color: 'muted.0',\r\n ':after': {\r\n content: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='rgb(74 89 108)' %3E%3Cpath fill-rule='evenodd' d='M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z' clip-rule='evenodd' /%3E%3C/svg%3E\")`,\r\n position: 'absolute',\r\n height: '16px',\r\n width: '16px',\r\n marginLeft: '3px',\r\n lineHeight: '30px',\r\n },\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n fontSize: '14px',\r\n fontWeight: '400',\r\n lineHeight: '20px',\r\n color: 'muted.0',\r\n}\r\n\r\nconst linkContainer: SxStyleProp = {\r\n mt: '8px',\r\n alignItems: 'center',\r\n}\r\n\r\nconst link: SxStyleProp = {\r\n ...description,\r\n color: 'muted.1',\r\n}\r\n\r\nexport default {\r\n container,\r\n title,\r\n imageTitle,\r\n description,\r\n linkContainer,\r\n link,\r\n}\r\n","import { useContext, useState, type ChangeEvent } from 'react'\r\nimport { Box, Text } from '@vtex/brand-ui'\r\n\r\nimport Tooltip from 'components/tooltip'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type InsertAccountNameProps = {\r\n id: string\r\n}\r\n\r\nconst InsertAccountName = ({ id }: InsertAccountNameProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const [accountName, setAccountName] = useState('')\r\n const [showError, setShowError] = useState(false)\r\n const [hovered, setHovered] = useState(false)\r\n\r\n const handleNavigate = () => {\r\n if (!accountName.trim()) {\r\n setShowError(true)\r\n return\r\n }\r\n window.open(\r\n `https://${accountName.trim()}.myvtex.com/admin/docs/${id}`,\r\n '_blank'\r\n )\r\n }\r\n\r\n const handleChange = (e: ChangeEvent) => {\r\n setAccountName(e.target.value)\r\n if (showError) setShowError(false)\r\n }\r\n\r\n return (\r\n \r\n \r\n {\r\n if (e.key === 'Enter') handleNavigate()\r\n }}\r\n style={{\r\n ...styles.input,\r\n ...(showError ? styles.inputError : {}),\r\n }}\r\n />\r\n \r\n setHovered(true)}\r\n onMouseLeave={() => setHovered(false)}\r\n style={{\r\n ...styles.button,\r\n ...(hovered ? styles.buttonHover : {}),\r\n }}\r\n >\r\n {messages[locale]['insert_account_name.button'] ||\r\n 'Go to documentation'}\r\n \r\n \r\n \r\n {showError && (\r\n \r\n {messages[locale]['insert_account_name.error'] ||\r\n 'Account name is required'}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default InsertAccountName\r\n","import { useEffect, useRef, useState } from 'react'\r\nimport { Box, Flex, TooltipProps, SxStyleProp } from '@vtex/brand-ui'\r\n\r\nimport styles from './styles'\r\nimport CaretIcon from 'components/icons/caret'\r\ninterface Props extends Pick {\r\n sx?: SxStyleProp\r\n isCard?: boolean\r\n /** When true, the tooltip stays visible even without hover. */\r\n open?: boolean\r\n wrapperSx?: SxStyleProp\r\n}\r\n\r\nconst Tooltip = ({\r\n children,\r\n label,\r\n placement,\r\n sx,\r\n isCard,\r\n open,\r\n wrapperSx,\r\n}: Props) => {\r\n const box = useRef()\r\n const [boxWidth, setBoxWidth] = useState(0)\r\n const [boxHeight, setBoxHeight] = useState(0)\r\n const [boxOffsetLeft, setBoxOffsetLeft] = useState(0)\r\n const [boxOffsetTop, setBoxOffsetTop] = useState(0)\r\n const [hovered, setHovered] = useState(false)\r\n const visible = Boolean(open) || hovered\r\n\r\n useEffect(() => {\r\n if (box.current) {\r\n setBoxWidth(box.current.clientWidth)\r\n setBoxHeight(box.current.clientHeight)\r\n setBoxOffsetLeft(box.current.offsetLeft)\r\n setBoxOffsetTop(box.current.offsetTop)\r\n }\r\n }, [\r\n open,\r\n box.current,\r\n box.current?.clientWidth,\r\n box.current?.clientHeight,\r\n box.current?.offsetLeft,\r\n box.current?.offsetTop,\r\n ])\r\n\r\n return (\r\n \r\n setHovered(true)}\r\n onMouseLeave={() => setHovered(false)}\r\n >\r\n {children}\r\n \r\n {visible && (isCard ?? true) && (\r\n \r\n \r\n {label}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default Tooltip\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\ntype Placement = 'top' | 'right' | 'bottom' | 'left'\r\n\r\nconst tooltipContainer: (\r\n sx: SxStyleProp,\r\n placement: Placement,\r\n width: number,\r\n height: number,\r\n x: number,\r\n y: number\r\n) => SxStyleProp = (sx, placement, width, height, x, y) => {\r\n const position = {\r\n bottom: {\r\n left: `${x + width / 2}px`,\r\n top: `${y + height + 3}px`,\r\n },\r\n left: {\r\n left: `${x - 1}px`,\r\n top: `${y + height / 2}px`,\r\n },\r\n top: {\r\n left: `${x + width / 2}px`,\r\n top: `${y - 3}px`,\r\n },\r\n right: {\r\n left: `${x + width + 1}px`,\r\n top: `${y + height / 2}px`,\r\n },\r\n }\r\n\r\n const translation = {\r\n bottom: 'translateX(-50%)',\r\n left: 'translateX(-100%) translateY(-50%)',\r\n top: 'translateX(-50%) translateY(-100%)',\r\n right: 'translateY(-50%)',\r\n }\r\n\r\n const direction = {\r\n bottom: 'column',\r\n left: 'row-reverse',\r\n top: 'column-reverse',\r\n right: 'row',\r\n }\r\n\r\n return {\r\n ...sx,\r\n zIndex: '100',\r\n position: 'absolute',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n ...position[placement],\r\n transform: translation[placement],\r\n flexDirection: direction[placement],\r\n }\r\n}\r\n\r\nconst caret: (placement: Placement) => SxStyleProp = (placement) => {\r\n const rotation = {\r\n bottom: 0,\r\n left: 90,\r\n top: 180,\r\n right: 270,\r\n }\r\n\r\n const translation = {\r\n bottom: 1,\r\n left: 3,\r\n top: 1,\r\n right: 3,\r\n }\r\n\r\n return {\r\n width: '8px',\r\n height: '4px',\r\n minWidth: 'initial',\r\n minHeight: 'initial',\r\n transform: `rotate(${rotation[placement]}deg) translateY(${translation[placement]}px)`,\r\n }\r\n}\r\n\r\nconst label: SxStyleProp = {\r\n borderRadius: '4px',\r\n backgroundColor: 'black',\r\n color: 'white',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n lineHeight: '130%',\r\n width: 'max-content',\r\n minWidth: '64px',\r\n maxWidth: '240px',\r\n overflowWrap: 'break-word',\r\n textAlign: 'center',\r\n}\r\n\r\nconst labelContibutorsContainer: SxStyleProp = {\r\n ...label,\r\n padding: '4px 8px',\r\n}\r\n\r\nconst labelDocumentationContainer: SxStyleProp = {\r\n ...label,\r\n width: '284px',\r\n minWidth: '284px',\r\n maxWidth: '284px',\r\n textAlign: 'center',\r\n px: '12px',\r\n py: '8px',\r\n}\r\n\r\nconst labelStyle = (documentationSection: boolean): SxStyleProp => {\r\n if (documentationSection) return labelDocumentationContainer\r\n return labelContibutorsContainer\r\n}\r\nexport default { tooltipContainer, caret, labelStyle }\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CaretIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default CaretIcon\r\n","import type { Dispatch, ReactNode, SetStateAction } from 'react'\r\nimport { createContext, useCallback, useEffect, useMemo, useState } from 'react'\r\nimport { Item } from 'lib/table-of-contents/TableOfContents.types'\r\nimport { Section } from 'utils/typings/types'\r\nimport { SWRConfig } from 'swr'\r\n\r\ninterface Props extends Partial {\r\n children: ReactNode\r\n /** The navigation array containing the list of documentations shown in the sidebar. */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n fallback?: any\r\n /** Documentation sections, the same sections that divide the fallback. */\r\n sections: Section[][]\r\n /** Whether is a branch preview or not. */\r\n isPreview: boolean\r\n /** The section currently selected. */\r\n sectionSelected: string\r\n /** The sections to be used on the hamburguer menu */\r\n hamburguerMenuSections: Section[][]\r\n /** The portal language. The default is english. */\r\n locale?: 'en' | 'pt' | 'es'\r\n}\r\n\r\nexport type ContextType = {\r\n headingItems: Item[]\r\n setHeadingItems: Dispatch>\r\n activeItem: ActiveItem\r\n setActiveItem: Dispatch>\r\n goToPreviousItem: () => void\r\n goToPreviousSubItem: () => void\r\n isEditorPreview: boolean\r\n sidebarSectionHidden: boolean\r\n activeSectionName: string\r\n activeSidebarElement: string\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n sidebarDataMaster: any\r\n sidebarElementStatus: Map\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n setSidebarDataMaster: Dispatch>\r\n setIsEditorPreview: Dispatch>\r\n setSidebarSectionHidden: Dispatch>\r\n setActiveSectionName: Dispatch>\r\n setActiveSidebarElement: Dispatch>\r\n toggleSidebarElementStatus: (title: string, currentlyOpen?: boolean) => void\r\n openSidebarElement: (title: string) => void\r\n closeSidebarElements: (parentsArray: string[]) => void\r\n setOpenSidebarElements: (parentsArray: string[]) => void\r\n sidebarSections: Section[][]\r\n setSidebarSections: Dispatch>\r\n hamburguerSections: Section[][]\r\n setHamburguerSections: Dispatch>\r\n locale: 'en' | 'pt' | 'es'\r\n}\r\n\r\ntype ActiveItem = {\r\n item: string\r\n subItem: string\r\n}\r\n\r\nexport const LibraryContext = createContext({\r\n headingItems: [],\r\n setHeadingItems: () => undefined,\r\n activeItem: {\r\n item: '',\r\n subItem: '',\r\n },\r\n setActiveItem: () => undefined,\r\n goToPreviousItem: () => undefined,\r\n goToPreviousSubItem: () => undefined,\r\n isEditorPreview: false,\r\n sidebarSectionHidden: false,\r\n activeSectionName: '',\r\n activeSidebarElement: '',\r\n sidebarDataMaster: {},\r\n setIsEditorPreview: () => undefined,\r\n sidebarElementStatus: new Map(),\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\r\n setSidebarDataMaster: (_: any) => undefined,\r\n setSidebarSectionHidden: () => undefined,\r\n setActiveSectionName: () => undefined,\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\r\n setActiveSidebarElement: (_: any) => undefined,\r\n toggleSidebarElementStatus: () => undefined,\r\n openSidebarElement: () => undefined,\r\n closeSidebarElements: () => undefined,\r\n setOpenSidebarElements: () => undefined,\r\n sidebarSections: [],\r\n setSidebarSections: () => undefined,\r\n hamburguerSections: [],\r\n setHamburguerSections: () => undefined,\r\n locale: 'en',\r\n})\r\n\r\n/** Provider for the LibraryContext created with React.createContext. The context is used in the following components: feedback, search, sidebar, hamburger menu, markdown renderer and table of contents. */\r\nconst LibraryContextProvider = ({ children, ...props }: Props) => {\r\n const [headingItems, setHeadingItems] = useState([])\r\n const [activeItem, setActiveItem] = useState({\r\n item: '',\r\n subItem: '',\r\n })\r\n\r\n const [activeSectionName, setActiveSectionName] = useState(\r\n props.sectionSelected\r\n )\r\n const [sidebarSectionHidden, setSidebarSectionHidden] = useState(false)\r\n const [activeSidebarElement, setActiveSidebarElement] = useState('')\r\n const [sidebarElementStatus, setSidebarElementStatus] = useState(new Map())\r\n const [sidebarDataMaster, setSidebarDataMaster] = useState(props.fallback)\r\n const [isEditorPreview, setIsEditorPreview] = useState(props.isPreview)\r\n const [sidebarSections, setSidebarSections] = useState(props.sections)\r\n const [hamburguerSections, setHamburguerSections] = useState(\r\n props.hamburguerMenuSections\r\n )\r\n const locale = props.locale ?? 'en'\r\n const fallback = props.fallback\r\n\r\n useEffect(() => {\r\n setSidebarDataMaster(props.fallback)\r\n }, [props.fallback])\r\n\r\n useEffect(() => {\r\n if (props.sectionSelected === '') setSidebarSectionHidden(true)\r\n else if (props.sectionSelected !== activeSectionName)\r\n setActiveSectionName(props.sectionSelected)\r\n }, [props.sectionSelected])\r\n\r\n const toggleSidebarElementStatus = useCallback(\r\n (title: string, currentlyOpen?: boolean) => {\r\n setSidebarElementStatus((prev) => {\r\n const open = prev.has(title) ? !prev.get(title) : !currentlyOpen\r\n const next = new Map(prev)\r\n next.set(title, open)\r\n return next\r\n })\r\n },\r\n []\r\n )\r\n\r\n const closeSidebarElements = useCallback((parentsArray: string[]) => {\r\n const parentSet = new Set(parentsArray)\r\n setSidebarElementStatus((prev) => {\r\n let changed = false\r\n const next = new Map(prev)\r\n next.forEach((value, key) => {\r\n if (!parentSet.has(key) && value) {\r\n next.set(key, false)\r\n changed = true\r\n }\r\n })\r\n return changed ? next : prev\r\n })\r\n }, [])\r\n\r\n const openSidebarElement = useCallback((title: string) => {\r\n setSidebarElementStatus((prev) => {\r\n if (prev.get(title) === true) return prev\r\n const next = new Map(prev)\r\n next.set(title, true)\r\n return next\r\n })\r\n }, [])\r\n\r\n const setOpenSidebarElements = useCallback((parentsArray: string[]) => {\r\n if (parentsArray.length === 0) {\r\n setSidebarElementStatus((prev) => (prev.size === 0 ? prev : new Map()))\r\n return\r\n }\r\n\r\n const parentSet = new Set(parentsArray)\r\n setSidebarElementStatus((prev) => {\r\n const next = new Map(prev)\r\n let changed = false\r\n next.forEach((value, key) => {\r\n if (!parentSet.has(key) && value) {\r\n next.set(key, false)\r\n changed = true\r\n }\r\n })\r\n parentsArray.forEach((slug) => {\r\n if (next.get(slug) !== true) {\r\n next.set(slug, true)\r\n changed = true\r\n }\r\n })\r\n return changed ? next : prev\r\n })\r\n }, [])\r\n\r\n const goToPreviousItem = useCallback(() => {\r\n setActiveItem(({ item, subItem }) => {\r\n const index = headingItems.findIndex((heading) => heading.slug === item)\r\n if (index === -1) return { item, subItem }\r\n\r\n const previousItem = !index ? '' : headingItems[index - 1].slug\r\n const previousChildren = !index ? [] : headingItems[index - 1].children\r\n const previousSubItem = !previousChildren.length\r\n ? ''\r\n : previousChildren.slice(-1)[0].slug\r\n\r\n return {\r\n item: previousItem,\r\n subItem: previousSubItem,\r\n }\r\n })\r\n }, [headingItems])\r\n\r\n const goToPreviousSubItem = useCallback(() => {\r\n setActiveItem(({ item, subItem }) => {\r\n const heading = headingItems.find((heading) => heading.slug === item)\r\n const index = heading?.children.findIndex(\r\n (child) => child.slug === subItem\r\n )\r\n\r\n if (!heading || index === -1) return { item, subItem }\r\n\r\n return {\r\n item,\r\n subItem: !index ? '' : heading.children[index - 1].slug,\r\n }\r\n })\r\n }, [headingItems])\r\n\r\n const contextValue = useMemo(\r\n () => ({\r\n headingItems,\r\n activeItem,\r\n setHeadingItems,\r\n setActiveItem,\r\n goToPreviousItem,\r\n goToPreviousSubItem,\r\n isEditorPreview,\r\n setIsEditorPreview,\r\n sidebarSectionHidden,\r\n activeSectionName,\r\n activeSidebarElement,\r\n sidebarElementStatus,\r\n setActiveSectionName,\r\n setSidebarSectionHidden,\r\n setActiveSidebarElement,\r\n toggleSidebarElementStatus,\r\n openSidebarElement,\r\n closeSidebarElements,\r\n setOpenSidebarElements,\r\n sidebarDataMaster,\r\n setSidebarDataMaster,\r\n sidebarSections,\r\n setSidebarSections,\r\n hamburguerSections,\r\n setHamburguerSections,\r\n locale,\r\n }),\r\n [\r\n headingItems,\r\n activeItem,\r\n goToPreviousItem,\r\n goToPreviousSubItem,\r\n isEditorPreview,\r\n sidebarSectionHidden,\r\n activeSectionName,\r\n activeSidebarElement,\r\n sidebarElementStatus,\r\n toggleSidebarElementStatus,\r\n openSidebarElement,\r\n closeSidebarElements,\r\n setOpenSidebarElements,\r\n sidebarDataMaster,\r\n sidebarSections,\r\n hamburguerSections,\r\n locale,\r\n ]\r\n )\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default LibraryContextProvider\r\n","{\r\n \"feedback_section.question\": \"Was this helpful?\",\r\n \"feedback_section.response\": \"Thanks for the feedback!\",\r\n \"feedback_section.positive\": \"Yes\",\r\n \"feedback_section.negative\": \"No\",\r\n \"feedback_section.edit\": \"Suggest Edits (GitHub)\",\r\n \"feedback_modal.button\": \"Send feedback\",\r\n \"feedback_modal.title\": \"Send feedback\",\r\n \"feedback_modal.description\": \"Share suggestions, issues found, or ideas to improve our documentation.\",\r\n \"feedback_modal.success\": \"Thank you! Your feedback has been received.\",\r\n \"feedback_modal.error\": \"Sorry, we couldn’t send your feedback. Please try again later.\",\r\n \"feedback_modal.article\": \"Article\",\r\n \"feedback_modal.message\": \"Message\",\r\n \"feedback_modal.type\": \"Feedback type\",\r\n \"feedback_modal.name\": \"Name\",\r\n \"feedback_modal.email\": \"Email\",\r\n \"feedback_modal.cancel\": \"Cancel\",\r\n \"feedback_modal.submit\": \"Send\",\r\n \"feedback_modal.submitting\": \"Sending...\",\r\n \"feedback_modal.close\": \"Close modal\",\r\n \"feedback_modal.done\": \"Done\",\r\n \"feedback_modal.message_placeholder\": \"Describe your suggestion, question, or issue...\",\r\n \"feedback_modal.name_placeholder\": \"Your name\",\r\n \"feedback_modal.email_placeholder\": \"you@example.com\",\r\n \"feedback_modal.type.incorrect\": \"Incorrect information\",\r\n \"feedback_modal.type.page_not_found\": \"Page not found\",\r\n \"feedback_modal.type.content_improvement\": \"Content improvement\",\r\n \"feedback_modal.type.new_documentation\": \"New documentation\",\r\n \"feedback_modal.type.other\": \"Other documentation feedback\",\r\n \"search_input.empty\": \"No results found. Try different search terms.\",\r\n \"search_input.placeholder\": \"Search\",\r\n \"search_input.copy_link\": \"Copy link\",\r\n \"search_input.copied\": \"Copied\",\r\n \"heading_link.copy\": \"Copy link\",\r\n \"heading_link.copied\": \"Copied\",\r\n \"search_input.open_new_tab\": \"Open in new tab\",\r\n \"search_input.clear\": \"Clear search\",\r\n \"search_input.navigate\": \"Navigate\",\r\n \"search_input.open\": \"Open\",\r\n \"search_input.close\": \"Close\",\r\n \"search_input.open_search\": \"Search\",\r\n \"search_results.showing\": \"Showing\",\r\n \"search_results.results_for\": \"results for\",\r\n \"search_results.in\": \"in\",\r\n \"search_results.all_lowercase\": \"all results\",\r\n \"sidebar_search.placeholder\": \"Search in\",\r\n \"search_input.see_all\": \"See all results\",\r\n \"search_results.summary\": \"Showing {count} results for \\\"{keyword}\\\" in {section}\",\r\n \"search_results.all\": \"All results\",\r\n \"search_card.in\": \"In\",\r\n \"image.error_loading\": \"An error occurred while loading the image\",\r\n \"api_reference_sidebar_filter_clear\": \"Clear All\",\r\n \"api_reference_sidebar_filter\": \"Filter By\",\r\n \"cookie_bar.title\": \"We use cookies\",\r\n \"cookie_bar.description\": \"This website uses cookies to improve navigation, analyze usage, and assist with our marketing efforts.\",\r\n \"cookie_bar.accept\": \"I agree\",\r\n \"cookie_bar.decline\": \"I decline\",\r\n \"landing_page_subscription.title\": \"Stay up to date with VTEX documentation\",\r\n \"landing_page_subscription.description\": \"Subscribe to our monthly newsletter to receive information about the latest announcements, release notes, and newly published articles.\",\r\n \"landing_page_newsletter.Button\": \"Subscribe\",\r\n \"subscription_list.api_key_error\": \"Newsletter API key is not defined\",\r\n \"subscription_list.invalid_email\": \"Invalid email address, please try another one.\",\r\n \"subscription_list.success\": \"You've successfully subscribed!\",\r\n \"subscription_list.error\": \"Sorry, we couldn't subscribe you. Please try again later.\",\r\n \"subscription_list.privacy_notice\": \"By subscribing to our newsletter, you agree to our\",\r\n \"subscription_list.privacy_policy_link\": \"Privacy Policy\",\r\n \"on_this_page.title\": \"On this page\",\r\n \"contributors.title\": \"Contributors\",\r\n \"contributors.toggle_less\": \"Show less\",\r\n \"contributors.toggle_more\": \"+ {count} contributors\",\r\n \"contributors.photo_alt\": \"Photo of the contributor {name}\",\r\n \"footer.github\": \"GitHub\",\r\n \"footer.developer_portal\": \"Developer Portal\",\r\n \"footer.help_center\": \"Help Center\",\r\n \"footer.community\": \"Community\",\r\n \"footer.feedback\": \"Feedback\",\r\n \"header.docs\": \"Menu\",\r\n \"header.feedback\": \"Feedback\",\r\n \"header.admin_tools\": \"Admin tools\",\r\n \"header.home_aria\": \"Go back to Home\",\r\n \"documentation_reading_time.text\": \"{minutes} min read\",\r\n \"date_text.created\": \"Published on\",\r\n \"date_text.updated\": \"Last updated on\",\r\n \"date_text.last_update\": \"Last update:\",\r\n \"article_pagination.previous\": \"Previous\",\r\n \"article_pagination.next\": \"Next\",\r\n \"see_also_section.title\": \"See also\",\r\n \"insert_account_name.placeholder\": \"Account name\",\r\n \"insert_account_name.button\": \"Go to documentation\",\r\n \"insert_account_name.tooltip\": \"View documentation page on VTEX Admin\",\r\n \"insert_account_name.error\": \"Account name is required\",\r\n \"ask_ai.copy\": \"Copy markdown\",\r\n \"ask_ai.view\": \"View markdown\",\r\n \"ask_ai.copied\": \"Copied\",\r\n \"ask_assistant.button\": \"Ask Assistant\",\r\n \"ask_assistant.title\": \"Assistant\",\r\n \"ask_assistant.hero_title\": \"How can I help you?\",\r\n \"ask_assistant.hero_subtitle\": \"Get answers from VTEX documentation.\",\r\n \"ask_assistant.placeholder\": \"Ask a question...\",\r\n \"ask_assistant.examples\": \"Examples:\",\r\n \"ask_assistant.send\": \"Send\",\r\n \"ask_assistant.close\": \"Close\",\r\n \"ask_assistant.clear\": \"New chat\",\r\n \"ask_assistant.history\": \"History\",\r\n \"ask_assistant.history_clear\": \"clear\",\r\n \"ask_assistant.expand\": \"Expand\",\r\n \"ask_assistant.collapse\": \"Collapse\",\r\n \"ask_assistant.copy\": \"Copy\",\r\n \"ask_assistant.copied\": \"Copied\",\r\n \"ask_assistant.regenerate\": \"Regenerate\",\r\n \"ask_assistant.helpful\": \"Helpful\",\r\n \"ask_assistant.not_helpful\": \"Not helpful\",\r\n \"ask_assistant.error\": \"Could not reach the assistant. Please try again.\",\r\n \"ask_assistant.searching\": \"Searching...\",\r\n \"ask_assistant.searching_docs\": \"Searching documentation\",\r\n \"ask_assistant.searching_endpoints\": \"Searching endpoints\",\r\n \"ask_assistant.reading_endpoints\": \"Reading endpoint details\",\r\n \"ask_assistant.reading_document\": \"Reading document\",\r\n \"ask_assistant.read_file\": \"Read 1 file\",\r\n \"ask_assistant.read_files\": \"Read {count} files\",\r\n \"ask_assistant.found_endpoint\": \"Found 1 endpoint\",\r\n \"ask_assistant.found_endpoints\": \"Found {count} endpoints\",\r\n \"ask_assistant.tool\": \"Tool\",\r\n \"ask_assistant.process_running\": \"Processing...\",\r\n \"ask_assistant.process_completed\": \"Process completed ({count} steps)\",\r\n \"ask_assistant.process_completed_one\": \"Process completed (1 step)\",\r\n \"ask_assistant.step_search_docs\": \"Search documentation\",\r\n \"ask_assistant.step_search_endpoints\": \"Search endpoints\",\r\n \"ask_assistant.step_read_endpoints\": \"Read endpoint details\",\r\n \"ask_assistant.step_read_document\": \"Read document\",\r\n \"ask_assistant.step_create_response\": \"Create response\",\r\n \"ask_assistant.step_search\": \"Search\",\r\n \"ask_assistant.sources\": \"Sources\"\r\n}\r\n","{\r\n \"feedback_section.question\": \"¿Te ha parecido útil?\",\r\n \"feedback_section.response\": \"Gracias por tu feedback\",\r\n \"feedback_section.positive\": \"Sí\",\r\n \"feedback_section.negative\": \"No\",\r\n \"feedback_section.edit\": \"Sugerir cambios (GitHub)\",\r\n \"feedback_modal.button\": \"Enviar feedback\",\r\n \"feedback_modal.title\": \"Enviar feedback\",\r\n \"feedback_modal.description\": \"Comparte sugerencias, problemas encontrados o ideas para mejorar nuestra documentación.\",\r\n \"feedback_modal.success\": \"¡Gracias! Hemos recibido tu feedback.\",\r\n \"feedback_modal.error\": \"No pudimos enviar tu feedback. Inténtalo de nuevo más tarde.\",\r\n \"feedback_modal.article\": \"Artículo\",\r\n \"feedback_modal.message\": \"Mensaje\",\r\n \"feedback_modal.type\": \"Tipo de feedback\",\r\n \"feedback_modal.name\": \"Nombre\",\r\n \"feedback_modal.email\": \"Correo electrónico\",\r\n \"feedback_modal.cancel\": \"Cancelar\",\r\n \"feedback_modal.submit\": \"Enviar\",\r\n \"feedback_modal.submitting\": \"Enviando...\",\r\n \"feedback_modal.close\": \"Cerrar modal\",\r\n \"feedback_modal.done\": \"Listo\",\r\n \"feedback_modal.message_placeholder\": \"Describe tu sugerencia, pregunta o problema...\",\r\n \"feedback_modal.name_placeholder\": \"Tu nombre\",\r\n \"feedback_modal.email_placeholder\": \"tu@ejemplo.com\",\r\n \"feedback_modal.type.incorrect\": \"Incorrect information\",\r\n \"feedback_modal.type.page_not_found\": \"Page not found\",\r\n \"feedback_modal.type.content_improvement\": \"Content improvement\",\r\n \"feedback_modal.type.new_documentation\": \"New documentation\",\r\n \"feedback_modal.type.other\": \"Other documentation feedback\",\r\n \"search_input.empty\": \"No se encontraron resultados. Intenta utilizar otros términos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"search_input.copy_link\": \"Copiar enlace\",\r\n \"search_input.copied\": \"Copiado\",\r\n \"heading_link.copy\": \"Copiar enlace\",\r\n \"heading_link.copied\": \"Copiado\",\r\n \"search_input.open_new_tab\": \"Abrir en nueva pestaña\",\r\n \"search_input.clear\": \"Limpiar búsqueda\",\r\n \"search_input.navigate\": \"Navegar\",\r\n \"search_input.open\": \"Abrir\",\r\n \"search_input.close\": \"Cerrar\",\r\n \"search_input.open_search\": \"Buscar\",\r\n \"sidebar_search.placeholder\": \"Buscar en\",\r\n \"search_results.showing\": \"Mostrando\",\r\n \"search_results.results_for\": \"resultados para\",\r\n \"search_results.in\": \"en\",\r\n \"search_results.all_lowercase\": \"todos los resultados\",\r\n \"search_input.see_all\": \"Ver todos los resultados\",\r\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" en {section}\",\r\n \"search_results.all\": \"Todos los resultados\",\r\n \"search_card.in\": \"En\",\r\n \"image.error_loading\": \"Se produjo un error al cargar la imagen\",\r\n \"api_reference_sidebar_filter_clear\": \"Limpiar todo\",\r\n \"api_reference_sidebar_filter\": \"Filtrar por\",\r\n \"cookie_bar.title\": \"Utilizamos cookies\",\r\n \"cookie_bar.description\": \"Este sitio web utiliza cookies para optimizar la navegación, analizar el uso e impulsar nuestros esfuerzos de marketing.\",\r\n \"cookie_bar.accept\": \"Acepto\",\r\n \"cookie_bar.decline\": \"Rechazo\",\r\n \"landing_page_subscription.title\": \"Mantente al día con la documentación de VTEX\",\r\n \"landing_page_subscription.description\": \"Suscríbete a nuestro newsletter mensual para recibir información sobre los últimos anuncios, release notes y artículos recién publicados.\",\r\n \"landing_page_newsletter.Button\": \"Inscríbete\",\r\n \"subscription_list.api_key_error\": \"La clave de API de la newsletter no está definida\",\r\n \"subscription_list.invalid_email\": \"Dirección de email inválida, por favor intenta con otra.\",\r\n \"subscription_list.success\": \"¡Te has suscrito con éxito!\",\r\n \"subscription_list.error\": \"Lo sentimos, no pudimos suscribirte. Por favor, inténtalo de nuevo más tarde.\",\r\n \"subscription_list.privacy_notice\": \"Al suscribirte a nuestra newsletter, aceptas nuestro\",\r\n \"subscription_list.privacy_policy_link\": \"Aviso de privacidad\",\r\n \"on_this_page.title\": \"En esta página\",\r\n \"contributors.title\": \"Contribuidores\",\r\n \"contributors.toggle_less\": \"Mostrar menos\",\r\n \"contributors.toggle_more\": \"+ {count} contribuidores\",\r\n \"contributors.photo_alt\": \"Foto del contribuidor {name}\",\r\n \"footer.github\": \"GitHub\",\r\n \"footer.developer_portal\": \"Developer Portal\",\r\n \"footer.help_center\": \"Help Center\",\r\n \"footer.community\": \"Comunidad\",\r\n \"footer.feedback\": \"Feedback\",\r\n \"header.docs\": \"Menú\",\r\n \"header.feedback\": \"Feedback\",\r\n \"header.admin_tools\": \"Herramientas de admin\",\r\n \"header.home_aria\": \"Volver al inicio\",\r\n \"copy_heading_link.copy\": \"Copiar enlace\",\r\n \"copy_heading_link.copied\": \"Copiado\",\r\n \"documentation_reading_time.text\": \"{minutes} min de lectura\",\r\n \"date_text.created\": \"Publicado el\",\r\n \"date_text.updated\": \"Última actualización el\",\r\n \"date_text.last_update\": \"Última actualización:\",\r\n \"article_pagination.previous\": \"Anterior\",\r\n \"article_pagination.next\": \"Siguiente\",\r\n \"see_also_section.title\": \"Véase también\",\r\n \"insert_account_name.placeholder\": \"Nombre de cuenta\",\r\n \"insert_account_name.button\": \"Ir a la documentación\",\r\n \"insert_account_name.tooltip\": \"Ver página de documentación en VTEX Admin\",\r\n \"insert_account_name.error\": \"El nombre de cuenta es obligatorio\",\r\n \"ask_ai.copy\": \"Copiar markdown\",\r\n \"ask_ai.view\": \"Ver markdown\",\r\n \"ask_ai.copied\": \"Copiado\",\r\n \"ask_assistant.button\": \"Preguntar al Assistant\",\r\n \"ask_assistant.title\": \"Assistant\",\r\n \"ask_assistant.hero_title\": \"¿Cómo puedo ayudarte?\",\r\n \"ask_assistant.hero_subtitle\": \"Obtén respuestas de la documentación de VTEX.\",\r\n \"ask_assistant.placeholder\": \"Haz una pregunta...\",\r\n \"ask_assistant.examples\": \"Ejemplos:\",\r\n \"ask_assistant.send\": \"Enviar\",\r\n \"ask_assistant.close\": \"Cerrar\",\r\n \"ask_assistant.clear\": \"Nueva conversación\",\r\n \"ask_assistant.history\": \"Historial\",\r\n \"ask_assistant.history_clear\": \"borrar\",\r\n \"ask_assistant.expand\": \"Expandir\",\r\n \"ask_assistant.collapse\": \"Contraer\",\r\n \"ask_assistant.copy\": \"Copiar\",\r\n \"ask_assistant.copied\": \"Copiado\",\r\n \"ask_assistant.regenerate\": \"Volver a generar\",\r\n \"ask_assistant.helpful\": \"Útil\",\r\n \"ask_assistant.not_helpful\": \"No fue útil\",\r\n \"ask_assistant.error\": \"No se pudo contactar al assistant. Inténtalo de nuevo.\",\r\n \"ask_assistant.searching\": \"Buscando...\",\r\n \"ask_assistant.searching_docs\": \"Buscando documentación\",\r\n \"ask_assistant.searching_endpoints\": \"Buscando endpoints\",\r\n \"ask_assistant.reading_endpoints\": \"Leyendo detalles del endpoint\",\r\n \"ask_assistant.reading_document\": \"Leyendo documento\",\r\n \"ask_assistant.read_file\": \"Leyó 1 archivo\",\r\n \"ask_assistant.read_files\": \"Leyó {count} archivos\",\r\n \"ask_assistant.found_endpoint\": \"Encontró 1 endpoint\",\r\n \"ask_assistant.found_endpoints\": \"Encontró {count} endpoints\",\r\n \"ask_assistant.tool\": \"Herramienta\",\r\n \"ask_assistant.process_running\": \"Procesando...\",\r\n \"ask_assistant.process_completed\": \"Proceso completado ({count} pasos)\",\r\n \"ask_assistant.process_completed_one\": \"Proceso completado (1 paso)\",\r\n \"ask_assistant.step_search_docs\": \"Buscar documentación\",\r\n \"ask_assistant.step_search_endpoints\": \"Buscar endpoints\",\r\n \"ask_assistant.step_read_endpoints\": \"Leer detalles del endpoint\",\r\n \"ask_assistant.step_read_document\": \"Leer documento\",\r\n \"ask_assistant.step_create_response\": \"Crear respuesta\",\r\n \"ask_assistant.step_search\": \"Buscar\",\r\n \"ask_assistant.sources\": \"Fuentes\"\r\n}\r\n","{\r\n \"feedback_section.question\": \"Isso foi útil?\",\r\n \"feedback_section.response\": \"Agradecemos pelo seu feedback.\",\r\n \"feedback_section.positive\": \"Sim\",\r\n \"feedback_section.negative\": \"Não\",\r\n \"feedback_section.edit\": \"Sugerir edições (GitHub)\",\r\n \"feedback_modal.button\": \"Enviar feedback\",\r\n \"feedback_modal.title\": \"Enviar feedback\",\r\n \"feedback_modal.description\": \"Compartilhe sugestões, problemas encontrados ou ideias para melhorar nossa documentação.\",\r\n \"feedback_modal.success\": \"Obrigado! Seu feedback foi recebido.\",\r\n \"feedback_modal.error\": \"Não foi possível enviar seu feedback. Tente novamente mais tarde.\",\r\n \"feedback_modal.article\": \"Artigo\",\r\n \"feedback_modal.message\": \"Mensagem\",\r\n \"feedback_modal.type\": \"Tipo de feedback\",\r\n \"feedback_modal.name\": \"Nome\",\r\n \"feedback_modal.email\": \"E-mail\",\r\n \"feedback_modal.cancel\": \"Cancelar\",\r\n \"feedback_modal.submit\": \"Enviar\",\r\n \"feedback_modal.submitting\": \"Enviando...\",\r\n \"feedback_modal.close\": \"Fechar modal\",\r\n \"feedback_modal.done\": \"Concluir\",\r\n \"feedback_modal.message_placeholder\": \"Descreva sua sugestão, dúvida ou problema...\",\r\n \"feedback_modal.name_placeholder\": \"Seu nome\",\r\n \"feedback_modal.email_placeholder\": \"voce@exemplo.com\",\r\n \"feedback_modal.type.incorrect\": \"Incorrect information\",\r\n \"feedback_modal.type.page_not_found\": \"Page not found\",\r\n \"feedback_modal.type.content_improvement\": \"Content improvement\",\r\n \"feedback_modal.type.new_documentation\": \"New documentation\",\r\n \"feedback_modal.type.other\": \"Other documentation feedback\",\r\n \"search_input.empty\": \"Nenhum resultado encontrado. Tente buscar por outros termos.\",\r\n \"search_input.placeholder\": \"Buscar\",\r\n \"search_input.copy_link\": \"Copiar link\",\r\n \"search_input.copied\": \"Copiado\",\r\n \"heading_link.copy\": \"Copiar link\",\r\n \"heading_link.copied\": \"Copiado\",\r\n \"search_input.open_new_tab\": \"Abrir em nova aba\",\r\n \"search_input.clear\": \"Limpar busca\",\r\n \"search_input.navigate\": \"Navegar\",\r\n \"search_input.open\": \"Abrir\",\r\n \"search_input.close\": \"Fechar\",\r\n \"search_input.open_search\": \"Buscar\",\r\n \"sidebar_search.placeholder\": \"Buscar em\",\r\n \"search_results.showing\": \"Mostrando\",\r\n \"search_results.results_for\": \"resultados para\",\r\n \"search_results.in\": \"em\",\r\n \"search_results.all_lowercase\": \"todos os resultados\",\r\n \"search_input.see_all\": \"Ver todos os resultados\",\r\n \"search_results.summary\": \"Mostrando {count} resultados para \\\"{keyword}\\\" em {section}\",\r\n \"search_results.all\": \"Todos os resultados\",\r\n \"search_card.in\": \"Em\",\r\n \"image.error_loading\": \"Ocorreu um erro ao carregar a imagem\",\r\n \"api_reference_sidebar_filter_clear\": \"Limpar tudo\",\r\n \"api_reference_sidebar_filter\": \"Filtrar por\",\r\n \"cookie_bar.title\": \"Nós usamos cookies\",\r\n \"cookie_bar.description\": \"Este site utiliza cookies para melhorar a navegação, analisar a experiência de uso e auxiliar em nossas ações de marketing.\",\r\n \"cookie_bar.accept\": \"Concordo\",\r\n \"cookie_bar.decline\": \"Discordo\",\r\n \"landing_page_subscription.title\": \"Mantenha-se em dia com a documentação da VTEX\",\r\n \"landing_page_subscription.description\": \"Assine nossa newsletter mensal para receber informações sobre os Announcements mais recentes, Release Notes e os artigos recém-publicados.\",\r\n \"landing_page_newsletter.Button\": \"Inscreva-se\",\r\n \"subscription_list.api_key_error\": \"A chave da API da newsletter não está definida\",\r\n \"subscription_list.invalid_email\": \"Endereço de email inválido, por favor tente outro.\",\r\n \"subscription_list.success\": \"Você se inscreveu com sucesso!\",\r\n \"subscription_list.error\": \"Desculpe, não foi possível realizar sua inscrição. Por favor, tente novamente mais tarde.\",\r\n \"subscription_list.privacy_notice\": \"Ao assinar nossa newsletter, você concorda com a nossa\",\r\n \"subscription_list.privacy_policy_link\": \"Política de Privacidade\",\r\n \"on_this_page.title\": \"Nesta página\",\r\n \"contributors.title\": \"Contribuidores\",\r\n \"contributors.toggle_less\": \"Ver menos\",\r\n \"contributors.toggle_more\": \"+ {count} contribuidores\",\r\n \"contributors.photo_alt\": \"Foto do contribuidor {name}\",\r\n \"footer.github\": \"GitHub\",\r\n \"footer.developer_portal\": \"Developer Portal\",\r\n \"footer.help_center\": \"Help Center\",\r\n \"footer.community\": \"Comunidade\",\r\n \"footer.feedback\": \"Feedback\",\r\n \"header.docs\": \"Menu\",\r\n \"header.feedback\": \"Feedback\",\r\n \"header.admin_tools\": \"Ferramentas de admin\",\r\n \"header.home_aria\": \"Voltar para o início\",\r\n \"copy_heading_link.copy\": \"Copiar link\",\r\n \"copy_heading_link.copied\": \"Copiado\",\r\n \"documentation_reading_time.text\": \"{minutes} min de leitura\",\r\n \"date_text.created\": \"Publicado em\",\r\n \"date_text.updated\": \"Última atualização em\",\r\n \"date_text.last_update\": \"Última atualização:\",\r\n \"article_pagination.previous\": \"Anterior\",\r\n \"article_pagination.next\": \"Próximo\",\r\n \"see_also_section.title\": \"Veja também\",\r\n \"insert_account_name.placeholder\": \"Nome da conta\",\r\n \"insert_account_name.button\": \"Acessar documentação\",\r\n \"insert_account_name.tooltip\": \"Ver página de documentação no Admin VTEX\",\r\n \"insert_account_name.error\": \"O nome da conta é obrigatório\",\r\n \"ask_ai.copy\": \"Copiar markdown\",\r\n \"ask_ai.view\": \"Ver markdown\",\r\n \"ask_ai.copied\": \"Copiado\",\r\n \"ask_assistant.button\": \"Perguntar ao Assistant\",\r\n \"ask_assistant.title\": \"Assistant\",\r\n \"ask_assistant.hero_title\": \"Como posso te ajudar?\",\r\n \"ask_assistant.hero_subtitle\": \"Obtenha respostas da documentação da VTEX.\",\r\n \"ask_assistant.placeholder\": \"Faça uma pergunta...\",\r\n \"ask_assistant.examples\": \"Exemplos:\",\r\n \"ask_assistant.send\": \"Enviar\",\r\n \"ask_assistant.close\": \"Fechar\",\r\n \"ask_assistant.clear\": \"Nova conversa\",\r\n \"ask_assistant.history\": \"Histórico\",\r\n \"ask_assistant.history_clear\": \"limpar\",\r\n \"ask_assistant.expand\": \"Expandir\",\r\n \"ask_assistant.collapse\": \"Recolher\",\r\n \"ask_assistant.copy\": \"Copiar\",\r\n \"ask_assistant.copied\": \"Copiado\",\r\n \"ask_assistant.regenerate\": \"Gerar novamente\",\r\n \"ask_assistant.helpful\": \"Útil\",\r\n \"ask_assistant.not_helpful\": \"Não foi útil\",\r\n \"ask_assistant.error\": \"Não foi possível falar com o assistant. Tente novamente.\",\r\n \"ask_assistant.searching\": \"Buscando...\",\r\n \"ask_assistant.searching_docs\": \"Buscando documentação\",\r\n \"ask_assistant.searching_endpoints\": \"Buscando endpoints\",\r\n \"ask_assistant.reading_endpoints\": \"Lendo detalhes do endpoint\",\r\n \"ask_assistant.reading_document\": \"Lendo documento\",\r\n \"ask_assistant.read_file\": \"Leu 1 arquivo\",\r\n \"ask_assistant.read_files\": \"Leu {count} arquivos\",\r\n \"ask_assistant.found_endpoint\": \"Encontrou 1 endpoint\",\r\n \"ask_assistant.found_endpoints\": \"Encontrou {count} endpoints\",\r\n \"ask_assistant.tool\": \"Ferramenta\",\r\n \"ask_assistant.process_running\": \"Processando...\",\r\n \"ask_assistant.process_completed\": \"Processo concluído ({count} passos)\",\r\n \"ask_assistant.process_completed_one\": \"Processo concluído (1 passo)\",\r\n \"ask_assistant.step_search_docs\": \"Buscar documentação\",\r\n \"ask_assistant.step_search_endpoints\": \"Buscar endpoints\",\r\n \"ask_assistant.step_read_endpoints\": \"Ler detalhes do endpoint\",\r\n \"ask_assistant.step_read_document\": \"Ler documento\",\r\n \"ask_assistant.step_create_response\": \"Criar resposta\",\r\n \"ask_assistant.step_search\": \"Buscar\",\r\n \"ask_assistant.sources\": \"Fontes\"\r\n}\r\n","import enMessages from '../messages/en.json'\r\nimport esMessages from '../messages/es.json'\r\nimport ptMessages from '../messages/pt.json'\r\nimport { MessagesType } from './typings/messages-types'\r\n\r\nconst getMessages = (): {\r\n en: MessagesType\r\n es: MessagesType\r\n pt: MessagesType\r\n} => {\r\n const messages = {\r\n en: enMessages,\r\n es: esMessages,\r\n pt: ptMessages,\r\n }\r\n\r\n return messages\r\n}\r\n\r\nexport const messages = getMessages()\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\nimport type { CSSProperties } from 'react'\r\n\r\nconst wrapper: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '4px',\r\n my: '16px',\r\n}\r\n\r\nconst container: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n gap: '8px',\r\n}\r\n\r\nconst input: CSSProperties = {\r\n width: '280px',\r\n height: '40px',\r\n padding: '0 12px',\r\n border: '1px solid #ccc',\r\n borderRadius: '4px',\r\n fontSize: '14px',\r\n boxSizing: 'border-box',\r\n transition: 'border-color 0.3s ease-out',\r\n}\r\n\r\nconst inputError: CSSProperties = {\r\n borderColor: '#E31C58',\r\n outline: 'none',\r\n}\r\n\r\nconst button: CSSProperties = {\r\n height: '40px',\r\n padding: '0 16px',\r\n border: '1px solid #ccc',\r\n borderRadius: '4px',\r\n fontSize: '14px',\r\n background: 'transparent',\r\n cursor: 'pointer',\r\n whiteSpace: 'nowrap',\r\n boxSizing: 'border-box',\r\n transition: 'all 0.3s ease-out',\r\n}\r\n\r\nconst buttonHover: CSSProperties = {\r\n background: '#F8F7FC',\r\n borderColor: '#5E6E84',\r\n color: '#E31C58',\r\n}\r\n\r\nconst errorText: SxStyleProp = {\r\n fontSize: '12px',\r\n color: '#E31C58',\r\n}\r\n\r\nexport default {\r\n wrapper,\r\n container,\r\n input,\r\n inputError,\r\n button,\r\n buttonHover,\r\n errorText,\r\n}\r\n","export const removeHTML = (str: string) => str.replace(/<\\/?[^>]+>/g, '')\r\n\r\nconst SYMBOL_RUN_THRESHOLD = 3\r\n\r\n/**\r\n * Strips Markdown syntax from text snippets to render as plain text.\r\n * Removes headings, bold, italic, inline code, images, and links while preserving\r\n * the readable content. Also handles tokens left truncated by the upstream\r\n * snippet (e.g. an image/link cut off mid-URL with no closing paren).\r\n */\r\nexport const stripMarkdownForSnippet = (str: string): string => {\r\n if (!str) return ''\r\n\r\n let cleaned = str\r\n // Drop closed fenced blocks (code, mermaid, etc.) including their contents\r\n .replace(/```[\\s\\S]*?```/g, '')\r\n // Drop unclosed/truncated fenced blocks at the end of a snippet\r\n .replace(/```[^\\n]*(?:\\n[\\s\\S]*)?$/g, '')\r\n // Remove markdown images ![alt](url) entirely (alt is usually a filename)\r\n .replace(/!\\[[^\\]]*\\]\\([^)]*\\)/g, '')\r\n // Remove markdown links [text](url) - keep only the text\r\n .replace(/\\[([^\\]]+)\\]\\([^)]+\\)/g, '$1')\r\n // Remove truncated markdown images/links left dangling at the end of a\r\n // snippet (upstream cuts the string mid-token, e.g. \"![alt](https://...\" )\r\n .replace(/!?\\[[^\\]]*\\]\\([^)]*$/g, '')\r\n // Remove a dangling image/link label with no closing bracket (\"![alt\" )\r\n .replace(/!?\\[[^\\]]*$/g, '')\r\n // Remove markdown headings (# ## ### etc.) at line start\r\n .replace(/^#{1,6}\\s+/gm, '')\r\n // Remove markdown headings anywhere in text\r\n .replace(/\\s#{1,6}\\s+/g, ' ')\r\n // Remove bold (**text** or __text__)\r\n .replace(/\\*\\*(.+?)\\*\\*/g, '$1')\r\n .replace(/__(.+?)__/g, '$1')\r\n // Remove italic (*text* or _text_)\r\n .replace(/\\*(.+?)\\*/g, '$1')\r\n .replace(/_(.+?)_/g, '$1')\r\n // Remove inline code (`text`) — keep readable inner text\r\n .replace(/`([^`]+)`/g, '$1')\r\n // Remove horizontal rules (---, ***, ___)\r\n .replace(/^(\\*{3,}|-{3,}|_{3,})$/gm, '')\r\n // Remove blockquotes (>)\r\n .replace(/^>\\s+/gm, '')\r\n // Remove table separator rows (| --- | :--: | etc.)\r\n .replace(/^\\s*\\|?\\s*:?-{3,}:?\\s*(\\|\\s*:?-{3,}:?\\s*)*\\|?\\s*$/gm, '')\r\n // Replace remaining table pipes with spaces so cell content stays readable\r\n .replace(/\\s*\\|\\s*/g, ' ')\r\n // Collapse stray horizontal-rule / table-separator symbol runs\r\n .replace(new RegExp(`-{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\r\n .replace(new RegExp(`={${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\r\n .replace(new RegExp(`\\\\|{${SYMBOL_RUN_THRESHOLD},}`, 'g'), ' ')\r\n // Remove extra whitespace and normalize spaces\r\n .replace(/\\s+/g, ' ')\r\n .trim()\r\n\r\n // If the snippet starts mid-word (lowercase letter), try to find the start of the next word\r\n if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) {\r\n const firstSpaceIndex = cleaned.indexOf(' ')\r\n if (firstSpaceIndex > 0 && firstSpaceIndex < 50) {\r\n cleaned = cleaned.substring(firstSpaceIndex + 1).trim()\r\n }\r\n }\r\n\r\n return cleaned\r\n}\r\n\r\nexport const capitalizeFirstLetter = (str: string) => {\r\n return str.charAt(0).toUpperCase() + str.slice(1)\r\n}\r\n\r\nexport const toCamelCase = (str: string) => {\r\n const [firstWord, ...otherWords] = str.split('-')\r\n return `${firstWord}${otherWords.map(capitalizeFirstLetter).join('')}`\r\n}\r\n\r\nexport const slugify = (str: string) => {\r\n return str\r\n .normalize('NFD') // Decomposes diacritics (e.g., \"é\" → \"é\")\r\n .replace(/[\\u0300-\\u036f]/g, '') // Removes diacritic marks\r\n .toLowerCase()\r\n .replace(/[^\\w\\s-]/g, '') // Removes non-word characters except spaces and hyphens\r\n .replace(/\\s+/g, '-') // Replaces spaces with hyphens\r\n .replace(/-+/g, '-') // Removes multiple consecutive hyphens\r\n .trim() // Trims leading/trailing spaces\r\n}\r\n\r\ntype Child = string | { props: { children: Child[] } }\r\n\r\nexport const childrenToString: (children: Child[]) => string = (children) => {\r\n if (!children) return ''\r\n else if (Array.isArray(children))\r\n return children\r\n .map((child) => {\r\n if (typeof child === 'string') return child\r\n return childrenToString(child.props.children)\r\n })\r\n .join('')\r\n else {\r\n if (typeof children === 'string') return children\r\n return childrenToString(children['props']['children'])\r\n }\r\n}\r\n\r\nexport const matrixToMarkdownTable: (matrix: string[][]) => string = (\r\n matrix\r\n) => {\r\n const matrixRowToMarkdownTableRow = (matrixRow: string[]) =>\r\n `|${matrixRow\r\n .map((matrixElement) => ` ${matrixElement.replace(/\\n/g, '
')} |`)\r\n .join('')}`\r\n\r\n let table = matrixRowToMarkdownTableRow(matrix[0]) + '\\n|'\r\n for (let i = 0; i < matrix[0].length; i++) table += ' --- |'\r\n\r\n table += '\\n'\r\n for (let i = 1; i < matrix.length; i++)\r\n table += matrixRowToMarkdownTableRow(matrix[i]) + '\\n'\r\n\r\n return table\r\n}\r\n","import mermaid from 'mermaid'\r\n\r\nconst mermaidInit = () => {\r\n mermaid.initialize({\r\n theme: 'base',\r\n themeVariables: {\r\n primaryColor: '#FFFFFF',\r\n primaryTextColor: '#142032',\r\n primaryBorderColor: '#A1AAB7',\r\n labelBoxBorderColor: '#E31C58',\r\n labelTextColor: '#E31C58',\r\n labelBoxBkgColor: '#FFF3F6',\r\n lineColor: '#A1AAB7',\r\n mainBkg: '#F8F7FC',\r\n },\r\n })\r\n}\r\n\r\nexport default mermaidInit\r\n","import {\r\n Children,\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n useState,\r\n type MouseEvent,\r\n type ReactNode,\r\n} from 'react'\r\nimport { Box } from '@vtex/brand-ui'\r\nimport type { SxStyleProp } from '@vtex/brand-ui'\r\nimport copy from 'copy-text-to-clipboard'\r\n\r\nimport LinkIcon from 'components/icons/link-icon'\r\nimport Tooltip from 'components/tooltip'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type CopyHeadingLinkProps = {\r\n /**\r\n * Heading `id` used as the URL hash. An empty slug means the heading is an\r\n * h1 (the page title), so the copied URL has no hash.\r\n */\r\n slug?: string\r\n size?: number\r\n sx?: SxStyleProp\r\n /**\r\n * Heading text. When set, the copy control is glued to the last word so it\r\n * never wraps onto a line by itself.\r\n */\r\n children?: ReactNode\r\n}\r\n\r\nconst LAST_WORD = /^(.*?)(\\s+)(\\S+)$/su\r\n\r\nconst glueToLastWord = (content: ReactNode, tail: ReactNode): ReactNode => {\r\n const glued = (word: ReactNode) => (\r\n \r\n {word}\r\n {tail}\r\n \r\n )\r\n\r\n if (content == null || typeof content === 'boolean') return tail\r\n\r\n if (typeof content === 'string' || typeof content === 'number') {\r\n const text = String(content)\r\n const match = text.match(LAST_WORD)\r\n if (!match) return glued(text)\r\n return (\r\n <>\r\n {match[1]}\r\n {match[2]}\r\n {glued(match[3])}\r\n \r\n )\r\n }\r\n\r\n const items = Children.toArray(content)\r\n if (items.length === 0) return tail\r\n\r\n const last = items[items.length - 1]\r\n const gluedLast =\r\n typeof last === 'string' || typeof last === 'number'\r\n ? glueToLastWord(last, tail)\r\n : glued(last)\r\n\r\n if (items.length === 1) return gluedLast\r\n\r\n return (\r\n <>\r\n {items.slice(0, -1)}\r\n {gluedLast}\r\n \r\n )\r\n}\r\n\r\nexport const getHeadingUrl = (slug = '') => {\r\n const { origin, pathname, search } = window.location\r\n const pageUrl = `${origin}${pathname}${search}`\r\n if (!slug) return pageUrl\r\n\r\n const hash = slug.startsWith('#') ? slug : `#${slug}`\r\n return `${pageUrl}${hash}`\r\n}\r\n\r\nconst CopyHeadingLink = ({\r\n slug = '',\r\n size = 16,\r\n sx = {},\r\n children,\r\n}: CopyHeadingLinkProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const [copied, setCopied] = useState(false)\r\n const copyTimeout = useRef(undefined)\r\n\r\n const copyLabel = messages[locale]['heading_link.copy'] || 'Copy link'\r\n const copiedLabel = messages[locale]['heading_link.copied'] || 'Copied'\r\n const label = copied ? copiedLabel : copyLabel\r\n\r\n const handleCopy = useCallback(\r\n (event: MouseEvent) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n\r\n copy(getHeadingUrl(slug))\r\n setCopied(true)\r\n window.clearTimeout(copyTimeout.current)\r\n copyTimeout.current = window.setTimeout(() => {\r\n setCopied(false)\r\n }, 2000)\r\n },\r\n [slug]\r\n )\r\n\r\n useEffect(() => () => window.clearTimeout(copyTimeout.current), [])\r\n\r\n const control = (\r\n \r\n event.preventDefault()}\r\n >\r\n \r\n \r\n \r\n )\r\n\r\n if (children == null) return control\r\n return <>{glueToLastWord(children, control)}\r\n}\r\n\r\nexport default CopyHeadingLink\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LinkIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default LinkIcon\r\n\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst muted = '#A1AAB7'\r\nconst mutedHover = '#5E6E84'\r\nconst pink = '#E31C58'\r\n\r\nconst lastWord: SxStyleProp = {\r\n display: 'inline-block',\r\n whiteSpace: 'nowrap',\r\n overflowWrap: 'normal',\r\n wordBreak: 'normal',\r\n verticalAlign: 'baseline',\r\n}\r\n\r\nconst tooltipWrapper: SxStyleProp = {\r\n display: 'inline-flex',\r\n verticalAlign: 'middle',\r\n position: 'relative',\r\n lineHeight: 0,\r\n}\r\n\r\nconst button: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n ml: '8px',\r\n p: 0,\r\n border: 'none',\r\n background: 'transparent',\r\n color: muted,\r\n cursor: 'pointer',\r\n verticalAlign: 'middle',\r\n lineHeight: 0,\r\n userSelect: 'none',\r\n transition: 'color 0.15s ease',\r\n ':hover': {\r\n color: mutedHover,\r\n },\r\n ':focus-visible': {\r\n outline: `2px solid ${pink}`,\r\n outlineOffset: '2px',\r\n borderRadius: '2px',\r\n },\r\n}\r\n\r\nconst buttonCopied: SxStyleProp = {\r\n ...button,\r\n color: mutedHover,\r\n}\r\n\r\nexport default { lastWord, tooltipWrapper, button, buttonCopied }\r\n",".img {\r\n max-width: 100%;\r\n padding-top: 2vh;\r\n border-radius: 4px;\r\n}\r\n\r\n.heading::before {\r\n content: '';\r\n display: block;\r\n visibility: hidden;\r\n pointer-events: none;\r\n}\r\n\r\n.heading :global([data-copy-heading-link]) {\r\n position: relative;\r\n top: -0.08em;\r\n}\r\n\r\n.code {\r\n background-color: unset;\r\n background-color: var(--md-code-background, #f6f8fa);\r\n border-radius: 4px;\r\n color: var(--md-code-text);\r\n margin: 0;\r\n padding: 0.2em 0.4em;\r\n font-size: 0.875em;\r\n word-break: break-word;\r\n overflow-wrap: break-word;\r\n}\r\n\r\ntable .code {\r\n word-break: normal;\r\n}\r\n\r\n.blockquote {\r\n display: grid;\r\n padding: 20px;\r\n gap: 20px;\r\n width: 100%;\r\n margin: 16px 0px 24px;\r\n border-radius: 4px;\r\n align-items: center;\r\n border: 1px solid #ccced8;\r\n grid-template-columns: 20px 1fr;\r\n grid-template-rows: auto;\r\n word-break: break-word;\r\n}\r\n\r\n.blockquote a {\r\n word-break: break-word;\r\n overflow-wrap: break-word;\r\n}\r\n\r\n.blockquote p,\r\n.blockquote div {\r\n margin: 0px;\r\n grid-column: 2 / -1;\r\n grid-row: 1 / 1;\r\n}\r\n\r\n.blockquote > div {\r\n width: 100%;\r\n max-width: 100%;\r\n min-width: 0;\r\n}\r\n\r\n.blockquote ch-code-scroll-parent {\r\n width: 100% !important;\r\n overflow-x: auto !important;\r\n overflow-y: hidden !important;\r\n background-color: unset !important;\r\n}\r\n\r\n.blockquote a {\r\n color: #e31c58 !important;\r\n -webkit-text-decoration: underline 1px solid;\r\n text-decoration: underline 1px solid;\r\n}\r\n\r\n.blockquote a:hover {\r\n color: #c81e51;\r\n}\r\n\r\n.blockquoteIcon {\r\n display: inline-block;\r\n flex-shrink: 0;\r\n grid-row: 1;\r\n}\r\n\r\n.blockquoteInfo {\r\n background: #f8f7fc;\r\n border: 1px solid #ccced8;\r\n}\r\n\r\n.blockquoteDanger {\r\n background: #fdefef;\r\n border: 1px solid #dc5a41;\r\n}\r\n\r\n.blockquoteWarning {\r\n background: #fff2d4;\r\n border: 1px solid #ffb100;\r\n}\r\n\r\n.blockquoteWarning code {\r\n background-color: #ffe5b5;\r\n}\r\n\r\n.blockquoteInfo code {\r\n background-color: unset;\r\n}\r\n\r\n.blockquoteSuccess {\r\n background: #f3f8f3;\r\n border: 1px solid #80be80;\r\n}\r\n\r\n.flexWrap {\r\n flex-wrap: wrap;\r\n justify-content: space-between;\r\n}\r\n\r\n.svgContainer {\r\n width: 100%;\r\n}","import { useContext, useEffect } from 'react'\r\nimport Link from 'next/link.js'\r\nimport { useRouter } from 'next/router.js'\r\nimport { Box, Text } from '@vtex/brand-ui'\r\nimport AnimateHeight from 'react-animate-height'\r\n\r\nimport { removeHTML } from 'utils/string-utils'\r\nimport { Item } from './TableOfContents.types'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\nimport styles from './styles'\r\n\r\nconst MARKDOWN_HEADINGS_SELECTOR = [\r\n '[data-markdown-renderer] h2',\r\n '[data-markdown-renderer] h3',\r\n '[data-markdown-renderer] h4',\r\n '[data-markdown-renderer] h5',\r\n '[data-markdown-renderer] h6',\r\n].join(', ')\r\n\r\nconst headingTitle = (heading: Element) => {\r\n const clone = heading.cloneNode(true) as HTMLElement\r\n clone\r\n .querySelectorAll('[data-copy-heading-link]')\r\n .forEach((node) => node.remove())\r\n return removeHTML(clone.innerHTML).replace(':', '').trim()\r\n}\r\n\r\nconst collectHeadingsFromDom = (): Item[] => {\r\n const headings: Item[] = []\r\n document.querySelectorAll(MARKDOWN_HEADINGS_SELECTOR).forEach((heading) => {\r\n const item = {\r\n title: headingTitle(heading),\r\n slug: heading.id,\r\n }\r\n\r\n if (heading.tagName === 'H2') {\r\n headings.push({ ...item, children: [] })\r\n } else if (headings.length > 0) {\r\n headings[headings.length - 1].children.push({ ...item })\r\n } else {\r\n headings.push({ ...item, children: [] })\r\n }\r\n })\r\n return headings\r\n}\r\n\r\ninterface Props {\r\n /** List of headings in the current documentation page */\r\n headingList?: Item[]\r\n children?: React.ReactNode\r\n}\r\n\r\n/** Table of contents for documentation pages. */\r\nconst TableOfContents = ({ headingList, children }: Props) => {\r\n const router = useRouter()\r\n const { headingItems, activeItem, setHeadingItems, setActiveItem, locale } =\r\n useContext(LibraryContext)\r\n\r\n useEffect(() => {\r\n if (headingList) {\r\n setHeadingItems(headingList)\r\n return\r\n }\r\n\r\n const applyFromDom = () => {\r\n const headings = collectHeadingsFromDom()\r\n if (!headings.length) return false\r\n setHeadingItems(headings)\r\n return true\r\n }\r\n\r\n if (applyFromDom()) return\r\n\r\n // MarkdownRenderer uses `lazy`, so headings may appear after this effect.\r\n const observer = new MutationObserver(() => {\r\n if (applyFromDom()) observer.disconnect()\r\n })\r\n observer.observe(document.body, { childList: true, subtree: true })\r\n return () => observer.disconnect()\r\n }, [router.asPath, headingList, setHeadingItems])\r\n\r\n const items = headingList?.length ? headingList : headingItems\r\n\r\n const Item = ({\r\n title,\r\n slug,\r\n level,\r\n active,\r\n }: {\r\n title: string\r\n slug: string\r\n level: number\r\n active: boolean\r\n }) => {\r\n return (\r\n {\r\n setActiveItem(({ item }) => ({\r\n item: level === 1 ? slug : item,\r\n subItem: level === 1 ? '' : slug,\r\n }))\r\n }}\r\n >\r\n {title}\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n {items.length > 0 && (\r\n \r\n {messages[locale]['on_this_page.title']}\r\n \r\n )}\r\n \r\n {items.map((item) => (\r\n \r\n \r\n \r\n \r\n {item.children.map((subItem) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n ))}\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default TableOfContents\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst itemsContainer: SxStyleProp = {\r\n position: 'sticky',\r\n top: 'calc(5rem + 32px)',\r\n}\r\n\r\nconst tocTitle: SxStyleProp = {\r\n fontSize: '10px',\r\n fontWeight: '600',\r\n textTransform: 'uppercase',\r\n mb: '6px',\r\n color: 'muted.0',\r\n}\r\n\r\nconst headings: SxStyleProp = {\r\n borderLeft: '1px solid #E7E9EE',\r\n mb: '16px',\r\n}\r\n\r\nconst item: (level: number, active: boolean) => SxStyleProp = (\r\n level,\r\n active\r\n) => {\r\n const defaultLineHeight = `${level === 1 ? 18 : 22}px`\r\n return {\r\n ml: '-1px',\r\n pl: `${level * 8}px`,\r\n py: ['6px', '6px', '6px', '6px', '4px', '4px'],\r\n borderLeft: `1px solid ${active && level === 1 ? '#E31C58' : '#E7E9EE'}`,\r\n fontSize: ['16px', '16px', '16px', '16px', '12px', '16px'],\r\n lineHeight: [\r\n defaultLineHeight,\r\n defaultLineHeight,\r\n defaultLineHeight,\r\n defaultLineHeight,\r\n `${level === 1 ? 16 : 18}px`,\r\n defaultLineHeight,\r\n ],\r\n fontWeight: `${active ? '600' : '400'}`,\r\n color: `${active ? '#0C1522' : 'muted.0'}`,\r\n\r\n ':hover': {\r\n color: '#000711',\r\n },\r\n }\r\n}\r\n\r\nconst subItemsContainer: SxStyleProp = {\r\n ml: '16px',\r\n borderLeft: '1px solid #E7E9EE',\r\n}\r\n\r\nexport default { tocTitle, itemsContainer, item, subItemsContainer, headings }\r\n","import { useContext, useState } from 'react'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport AnimateHeight from 'react-animate-height'\r\n\r\nimport TableOfContents from 'lib/table-of-contents'\r\nimport MenuIcon from 'components/icons/menu-icon'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\nimport styles from './styles'\r\nimport { OnThisPageProps } from './OnThisPage.types'\r\n\r\n/** Mobile floating table of contents for documentation pages. */\r\nconst OnThisPage = ({ headingList }: OnThisPageProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const [isOpen, setIsOpen] = useState(false)\r\n const title = messages[locale]['on_this_page.title']\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n setIsOpen((open) => !open)}\r\n >\r\n {title}\r\n \r\n {!isOpen ? : }\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default OnThisPage\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst MenuIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default MenuIcon\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n left: '20px',\r\n bottom: '20px',\r\n position: 'fixed',\r\n alignItems: 'flex-end',\r\n display: ['flex', 'flex', 'flex', 'flex', 'none'],\r\n flexDirection: ['column-reverse', 'row'],\r\n}\r\n\r\nconst contentContainer: SxStyleProp = {\r\n mt: ['8px', 0],\r\n mb: ['-20px', 0],\r\n mr: ['-20px', '8px'],\r\n width: ['100vw', '360px'],\r\n padding: '16px',\r\n borderRadius: ['8px 8px 0px 0px', '8px'],\r\n backgroundColor: 'white',\r\n border: '1px solid #CCCED8',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n}\r\n\r\nconst onThisPageTitle: SxStyleProp = {\r\n mb: '16px',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n lineHeight: '16px',\r\n color: '#4A4A4A',\r\n}\r\n\r\nconst buttonContainer: SxStyleProp = {\r\n cursor: 'pointer',\r\n alignItems: 'center',\r\n backgroundColor: 'muted.4',\r\n border: '1px solid #CCCED8',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n borderRadius: '8px',\r\n}\r\n\r\nconst iconContainer: SxStyleProp = {\r\n width: '32px',\r\n height: '32px',\r\n padding: '6px',\r\n boxSizing: 'initial',\r\n borderRadius: '8px',\r\n backgroundColor: 'white',\r\n borderLeft: '1px solid #CCCED8',\r\n}\r\n\r\nconst title: (open: boolean) => SxStyleProp = (open) => ({\r\n color: 'black',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n lineHeight: '16px',\r\n padding: open ? '0px' : '8px',\r\n overflow: 'hidden',\r\n whiteSpace: 'nowrap',\r\n width: open ? '0px' : 'min-width',\r\n transition: 'all 0.3s ease-in-out',\r\n transitionDelay: open ? '0s' : '0.3s',\r\n})\r\n\r\nexport default {\r\n container,\r\n contentContainer,\r\n onThisPageTitle,\r\n buttonContainer,\r\n iconContainer,\r\n title,\r\n}\r\n","import { useContext, useEffect, useRef, useState } from 'react'\r\nimport { Box, Flex, Grid, IconCaret, Text } from '@vtex/brand-ui'\r\n\r\nimport Tooltip from 'components/tooltip'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\nimport styles from './styles'\r\nimport { ContributorsProps } from './Contributors.types'\r\n\r\n/** List of GitHub contributors for a documentation page. */\r\nconst Contributors = ({ contributors }: ContributorsProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n\r\n const [showAll, setShowAll] = useState(false)\r\n const [pageWidth, setPageWidth] = useState(0)\r\n const [photosPerRow, setPhotosPerRow] = useState(0)\r\n const [minRows, setMinRows] = useState(0)\r\n const [isClient, setIsClient] = useState(false)\r\n const photosContainer = useRef(null)\r\n\r\n useEffect(() => {\r\n setIsClient(true)\r\n setPageWidth(window.innerWidth)\r\n\r\n const updatePageWidth = () => {\r\n setPageWidth(window.innerWidth)\r\n }\r\n\r\n window.addEventListener('resize', updatePageWidth)\r\n return () => window.removeEventListener('resize', updatePageWidth)\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (isClient && photosContainer.current) {\r\n const gridStyle = window.getComputedStyle(photosContainer.current)\r\n setPhotosPerRow(gridStyle.gridTemplateColumns.split(' ').length)\r\n }\r\n }, [pageWidth, isClient])\r\n\r\n useEffect(() => {\r\n setMinRows(photosPerRow === 6 ? 1 : 2)\r\n }, [photosPerRow])\r\n\r\n const visibleRows = photosPerRow\r\n ? showAll\r\n ? Math.ceil(contributors.length / photosPerRow)\r\n : Math.min(Math.ceil(contributors.length / photosPerRow), minRows)\r\n : minRows\r\n const hiddenCount = contributors.length - minRows * photosPerRow\r\n\r\n return (\r\n \r\n \r\n {messages[locale]['contributors.title']}\r\n {contributors.length}\r\n \r\n\r\n \r\n {contributors.map((contributor) => (\r\n \r\n \r\n \r\n {/* eslint-disable-next-line @next/next/no-img-element */}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n {contributors.length > minRows * photosPerRow && (\r\n {\r\n setShowAll(!showAll)\r\n }}\r\n >\r\n \r\n {showAll\r\n ? messages[locale]['contributors.toggle_less']\r\n : messages[locale]['contributors.toggle_more'].replace(\r\n '{count}',\r\n String(hiddenCount)\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default Contributors\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n mb: '32px',\r\n flexDirection: 'column',\r\n alignItems: ['initial', 'center', 'center', 'center', 'initial'],\r\n}\r\n\r\nconst titleContainer: SxStyleProp = {\r\n alignItems: 'center',\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n fontWeight: '400',\r\n fontSize: ['12px', '16px', '16px', '16px', '12px', '16px'],\r\n lineHeight: ['16px', '18px', '18px', '18px', '16px', '18px'],\r\n color: '#4A4A4A',\r\n}\r\n\r\nconst count: SxStyleProp = {\r\n px: '8px',\r\n ml: '8px',\r\n width: '30px',\r\n height: '16px',\r\n borderRadius: '24px',\r\n backgroundColor: 'muted.4',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n lineHeight: '16px',\r\n textAlign: 'center',\r\n color: '#4A4A4A',\r\n}\r\n\r\nconst photosContainer: (rows: number) => SxStyleProp = (rows) => ({\r\n mt: '16px',\r\n gap: '8px',\r\n gridTemplateColumns: [\r\n '1fr 1fr 1fr 1fr',\r\n '1fr 1fr 1fr 1fr 1fr 1fr',\r\n '1fr 1fr 1fr 1fr 1fr 1fr',\r\n '1fr 1fr 1fr 1fr 1fr 1fr',\r\n '1fr 1fr 1fr 1fr',\r\n '1fr 1fr 1fr 1fr 1fr',\r\n ],\r\n overflow: 'hidden',\r\n width: [0, 'min-content', 'min-content', 'min-content', '152px', '192px'],\r\n maxHeight: `${32 * rows + 8 * (rows - 1)}px`,\r\n transition: 'max-height 0.3s ease-in-out',\r\n})\r\n\r\nconst photo: SxStyleProp = {\r\n width: '32px',\r\n height: '32px',\r\n img: {\r\n width: '32px',\r\n height: '32px',\r\n borderRadius: '100%',\r\n },\r\n}\r\n\r\nconst collapseButton: SxStyleProp = {\r\n ...title,\r\n mt: '8px',\r\n height: '24px',\r\n color: 'muted.0',\r\n cursor: 'pointer',\r\n alignItems: 'center',\r\n\r\n ':active': {\r\n color: '#0C1522',\r\n },\r\n\r\n ':hover': {\r\n color: '#000711',\r\n },\r\n}\r\n\r\nexport default {\r\n container,\r\n titleContainer,\r\n title,\r\n count,\r\n photosContainer,\r\n photo,\r\n collapseButton,\r\n}\r\n","import {\r\n Fragment,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n useContext,\r\n} from 'react'\r\nimport { Flex, Text, Box } from '@vtex/brand-ui'\r\nimport Link from 'next/link.js'\r\n\r\nimport styles from './styles'\r\nimport { iconTooltipStyle } from './functions'\r\n\r\nimport { Section } from 'utils/typings/types'\r\nimport Tooltip from 'components/tooltip'\r\nimport { updateOpenPage, getSectionLabel } from 'utils/sidebar-utils'\r\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\n\r\nexport interface SideBarSectionState {\r\n /** Array containing the name of the parents of the expanded page in the menu. */\r\n parentsArray?: string[]\r\n}\r\n\r\ninterface SideBarIconProps extends Section {\r\n expandDelayStatus: boolean\r\n isEditorPreview: boolean\r\n activeSectionName: string\r\n setActiveSectionName: (id: string) => void\r\n}\r\n\r\nconst SideBarIcon = ({\r\n expandDelayStatus,\r\n isEditorPreview,\r\n activeSectionName,\r\n setActiveSectionName,\r\n ...sectionElement\r\n}: SideBarIconProps) => {\r\n const [iconTooltip, setIconTooltip] = useState(false)\r\n const [tooltipLabel, setTooltipLabel] = useState(sectionElement.title)\r\n const titleRef = useRef()\r\n\r\n useEffect(() => {\r\n setTooltipLabel(sectionElement.title)\r\n }, [sectionElement.title])\r\n\r\n useEffect(() => {\r\n const target = titleRef.current\r\n if (!target) return\r\n\r\n const updateTooltip = () => {\r\n setIconTooltip(target.offsetWidth < target.scrollWidth)\r\n if (target.offsetWidth > 0) setTooltipLabel(target.innerText)\r\n }\r\n\r\n updateTooltip()\r\n const resizeObserver = new MutationObserver(updateTooltip)\r\n resizeObserver.observe(target, {\r\n childList: true,\r\n characterData: true,\r\n subtree: true,\r\n })\r\n return () => {\r\n resizeObserver.disconnect()\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n {\r\n if (isEditorPreview) {\r\n e.preventDefault()\r\n }\r\n setActiveSectionName(sectionElement.id)\r\n }}\r\n passHref\r\n aria-label={sectionElement.title}\r\n >\r\n \r\n \r\n \r\n {sectionElement.title}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\n/**\r\n * Sidebar component.\r\n */\r\nconst Sidebar = ({ parentsArray = [] }: SideBarSectionState) => {\r\n const [expandDelayStatus, setExpandDelayStatus] = useState(true)\r\n\r\n const context = useContext(LibraryContext)\r\n const {\r\n isEditorPreview,\r\n setActiveSectionName,\r\n activeSectionName,\r\n sidebarSections,\r\n sidebarDataMaster,\r\n locale,\r\n } = context\r\n\r\n const sidebarSectionContent = useMemo(() => {\r\n if (!Array.isArray(sidebarDataMaster)) return undefined\r\n return sidebarDataMaster.find(\r\n (section: SidebarSectionProps) =>\r\n section.documentation === activeSectionName\r\n ) as SidebarSectionProps | undefined\r\n }, [sidebarDataMaster, activeSectionName])\r\n\r\n updateOpenPage({\r\n parentsArray,\r\n context,\r\n })\r\n\r\n useEffect(() => {\r\n let timer: NodeJS.Timeout | undefined = undefined\r\n if (sidebarSectionContent?.categories?.length)\r\n timer = setTimeout(() => setExpandDelayStatus(false), 5000)\r\n else setExpandDelayStatus(true)\r\n\r\n return () => {\r\n timer && clearTimeout(timer)\r\n }\r\n }, [activeSectionName, sidebarSectionContent?.categories?.length])\r\n\r\n return (\r\n \r\n \r\n {sidebarSections.map((section, id) => (\r\n \r\n {id > 0 && (\r\n \r\n
\r\n
\r\n )}\r\n \r\n {section.map((element) => {\r\n const title = getSectionLabel(\r\n element,\r\n sidebarDataMaster,\r\n locale\r\n )\r\n return (\r\n \r\n )\r\n })}\r\n \r\n
\r\n ))}\r\n
\r\n {activeSectionName && sidebarSectionContent ? (\r\n \r\n ) : null}\r\n \r\n )\r\n}\r\n\r\nexport default Sidebar\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst sidebar: SxStyleProp = {\r\n display: [\r\n 'none !important',\r\n 'none !important',\r\n 'none !important',\r\n 'flex !important',\r\n ],\r\n position: 'sticky',\r\n left: '0',\r\n top: '5rem',\r\n flex: '1 0 auto',\r\n height: 'calc(100vh - 5rem)',\r\n maxHeight: 'calc(100vh - 5rem)',\r\n minHeight: 0,\r\n paddingRight: '16px',\r\n marginRight: '-16px',\r\n zIndex: 2,\r\n 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\r\n width: 'auto',\r\n minWidth: 'auto',\r\n transition: 'all 0.3s ease-in-out',\r\n '.active': {\r\n marginLeft: '-276px',\r\n transition: 'all 0.3s ease-in-out',\r\n },\r\n '.iconContainerExpanded': {\r\n transition: 'all 0.3s ease-in-out',\r\n width: '160px',\r\n },\r\n '.iconDescriptionExpanded': {\r\n display: 'block',\r\n },\r\n}\r\n\r\nconst sidebarIcons: SxStyleProp = {\r\n width: ['56px', '56px', '56px', '56px', '56px', '160px'],\r\n minWidth: 'max-content',\r\n height: '100%',\r\n minHeight: 0,\r\n overflowX: 'hidden',\r\n overflowY: 'auto',\r\n overscrollBehavior: 'contain',\r\n scrollbarWidth: 'none',\r\n '::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n transition: 'all 0.3s ease-in-out',\r\n flexDirection: 'column',\r\n borderRight: '1px solid #E7E9EE',\r\n background: '#FFFFFF',\r\n zIndex: '2',\r\n 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\r\n paddingBottom: '32px',\r\n}\r\n\r\nconst linkContainer: SxStyleProp = {\r\n minWidth: '100%',\r\n}\r\n\r\nconst iconBox: SxStyleProp = {\r\n mt: ['16px'],\r\n width: '100%',\r\n maxWidth: '144px',\r\n paddingLeft: ['0', '0', '0', '8px'],\r\n paddingRight: ['0', '0', '0', '8px', '8px', '0'],\r\n py: ['0', '0', '0', '8px', '8px', '10px'],\r\n height: '40px',\r\n borderRadius: '4px',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n background: 'transparent',\r\n color: 'muted.0',\r\n cursor: 'pointer',\r\n ':hover': {\r\n background: '#F8F7FC',\r\n color: '#000711',\r\n path: {\r\n stroke: [\r\n '#000711',\r\n '#000711',\r\n '#000711',\r\n '#000711',\r\n '#000711',\r\n '#4A596B',\r\n ],\r\n },\r\n },\r\n}\r\n\r\nconst iconBoxActive: SxStyleProp = {\r\n ...iconBox,\r\n background: ['#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', '#F8F7FC', 'none'],\r\n color: '#E31C58',\r\n}\r\n\r\nconst sidebarIconsContainer: SxStyleProp = {\r\n width: '100%',\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n px: ['0', '0', '0', '8px'],\r\n}\r\n\r\nconst icon: SxStyleProp = {\r\n width: ['24px'],\r\n height: ['24px'],\r\n}\r\n\r\nconst iconActive: SxStyleProp = {\r\n ...icon,\r\n '> path': {\r\n stroke: '#E31C58',\r\n },\r\n}\r\n\r\nconst sectionDivider: SxStyleProp = {\r\n px: '8px',\r\n marginTop: '16px',\r\n hr: {\r\n border: '1px solid #E7E9EE',\r\n borderTop: 'none',\r\n },\r\n}\r\n\r\nconst iconTitle: SxStyleProp = {\r\n display: ['none', 'none', 'none', 'none', 'none', 'block'],\r\n width: '100%',\r\n fontSize: '14px',\r\n ml: ['8px', '8px', '8px', '8px', '8px', '12px'],\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n}\r\n\r\nconst iconTooltip: SxStyleProp = {\r\n display: [\r\n 'flex !important',\r\n 'flex !important',\r\n 'flex !important',\r\n 'flex !important',\r\n 'flex !important',\r\n 'none !important',\r\n ],\r\n}\r\n\r\nexport default {\r\n sidebar,\r\n sidebarIcons,\r\n sidebarIconsContainer,\r\n linkContainer,\r\n iconBox,\r\n icon,\r\n iconActive,\r\n iconBoxActive,\r\n sectionDivider,\r\n iconTitle,\r\n iconTooltip,\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nexport const iconTooltipStyle: SxStyleProp = (tooltipState: boolean) => {\r\n const iconTooltip: SxStyleProp = {\r\n display: [\r\n 'flex',\r\n 'flex',\r\n 'flex',\r\n 'flex',\r\n 'flex',\r\n tooltipState ? 'flex' : 'none !important',\r\n ],\r\n }\r\n return iconTooltip\r\n}\r\n","export const flattenJSON = (\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n obj: any = {},\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n res: any = {},\r\n extraKey = ''\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n): any => {\r\n if (!obj || typeof obj !== 'object') return res\r\n\r\n for (const key in obj) {\r\n const value = obj[key]\r\n if (value !== null && typeof value === 'object') {\r\n flattenJSON(value, res, `${extraKey}${key}.`)\r\n } else {\r\n res[extraKey + key] = value\r\n }\r\n }\r\n return res\r\n}\r\n\r\nconst documentationTypeCache = new WeakMap>()\r\n\r\nfunction indexDocumentationTypes(\r\n data: unknown,\r\n index: Map\r\n): void {\r\n if (!data || typeof data !== 'object') return\r\n\r\n if (Array.isArray(data)) {\r\n for (let i = 0; i < data.length; i++) {\r\n indexDocumentationTypes(data[i], index)\r\n }\r\n return\r\n }\r\n\r\n const node = data as { slug?: unknown; type?: unknown }\r\n if (typeof node.type === 'string' && node.slug != null) {\r\n if (typeof node.slug === 'string') {\r\n index.set(node.slug, node.type)\r\n } else if (typeof node.slug === 'object') {\r\n for (const value of Object.values(node.slug as Record)) {\r\n if (typeof value === 'string' && value) {\r\n index.set(value, node.type)\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (const value of Object.values(data as Record)) {\r\n if (value && typeof value === 'object') {\r\n indexDocumentationTypes(value, index)\r\n }\r\n }\r\n}\r\n\r\n/** O(1) lookup of a nav node's `type` (`markdown` | `category` | `link`). */\r\nexport function getDocumentationType(\r\n sidebarData: unknown,\r\n slug: string\r\n): string | undefined {\r\n if (!sidebarData || typeof sidebarData !== 'object') return undefined\r\n\r\n let index = documentationTypeCache.get(sidebarData)\r\n if (!index) {\r\n index = new Map()\r\n indexDocumentationTypes(sidebarData, index)\r\n documentationTypeCache.set(sidebarData, index)\r\n }\r\n\r\n return index.get(slug)\r\n}\r\n\r\nexport const getKeyByEndpoint = (\r\n object: { [x: string]: string },\r\n endpoint: string,\r\n slug: string,\r\n method?: string\r\n) => {\r\n const slugPaths = Object.keys(object).filter((key) => object[key] === slug)\r\n let path = ''\r\n slugPaths?.map((el) => {\r\n if (\r\n method &&\r\n object[`${el.replace('.slug', '.method')}`] == method?.toUpperCase() &&\r\n object[`${el.replace('.slug', '.endpoint')}`] == endpoint\r\n ) {\r\n path = el\r\n } else if (hasChildren(object, el.replace('.slug', '.children'))) {\r\n path = el\r\n }\r\n })\r\n return path\r\n}\r\n\r\nfunction hasChildren(\r\n flattenedJson: { [x: string]: string },\r\n elementKey: string\r\n): boolean {\r\n for (const key in flattenedJson) {\r\n if (key.startsWith(`${elementKey}.`)) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nexport const getParents = (\r\n path: string,\r\n data: string,\r\n flattenedSidebar: { [x: string]: string },\r\n parentsArray: string[],\r\n parent?: string\r\n) => {\r\n const pathParts = path?.split('children')\r\n pathParts?.splice(-1)\r\n let prev = ''\r\n pathParts?.map((el) => {\r\n el = prev + el\r\n prev = el + 'children'\r\n\r\n if (!parent || flattenedSidebar[`${el}${data}`].includes(parent)) {\r\n parentsArray.push(flattenedSidebar[`${el}${data}`])\r\n }\r\n })\r\n return parentsArray\r\n}\r\n","import { Section } from './typings/types'\r\nimport { flattenJSON, getKeyByEndpoint, getParents } from './navigation-utils'\r\nimport { useRouter } from 'next/router.js'\r\nimport { useEffect } from 'react'\r\nimport { ContextType } from './context/libraryContext'\r\n\r\nexport const getIcon = (doc: string, sections: Section[][]) => {\r\n return sections.flat().find((icon) => icon.id === doc || icon.title === doc)\r\n ?.Icon\r\n}\r\n\r\ntype LocalizedField = string | { en: string; pt: string; es: string }\r\n\r\nexport function resolveLocalizedName(\r\n value: LocalizedField | undefined,\r\n locale: 'en' | 'pt' | 'es'\r\n): string {\r\n if (!value) return ''\r\n if (typeof value === 'string') return value\r\n return value[locale] || value.en || ''\r\n}\r\n\r\n/** Label for a sidebar section, preferring the localized `name` from navigation. */\r\nexport function getSectionLabel(\r\n section: { id: string; title: string },\r\n navigation: unknown,\r\n locale: 'en' | 'pt' | 'es'\r\n): string {\r\n if (Array.isArray(navigation)) {\r\n const navSection = navigation.find(\r\n (item: { documentation?: string; name?: LocalizedField }) =>\r\n item.documentation === section.id\r\n )\r\n const fromNav = resolveLocalizedName(navSection?.name, locale)\r\n if (fromNav) return fromNav\r\n }\r\n return section.title\r\n}\r\n\r\ninterface updateOpenPageProps {\r\n parentsArray?: string[]\r\n context: ContextType\r\n}\r\nexport const updateOpenPage = ({\r\n parentsArray = [],\r\n context,\r\n}: updateOpenPageProps) => {\r\n const { sidebarDataMaster, setActiveSidebarElement, setOpenSidebarElements } =\r\n context\r\n const router = useRouter()\r\n const parentsKey = parentsArray.join('\\0')\r\n\r\n useEffect(() => {\r\n const expandedSlugs = parentsArray.slice()\r\n let activeSlug = ''\r\n const querySlug = router.query.slug\r\n\r\n if (querySlug && router.pathname === '/docs/api-reference/[slug]') {\r\n const flattenedSidebar = flattenJSON(sidebarDataMaster)\r\n activeSlug = router.asPath.replace('/docs/api-reference/', '')\r\n const docPath = activeSlug.split('/')\r\n const hasHashTag = router.asPath.indexOf('#') > -1\r\n const apiSlug = docPath[0].split(hasHashTag ? '#' : '?endpoint=')[0]\r\n const endpoint = '/' + docPath.splice(1, docPath.length).join('/')\r\n let keyPath\r\n if (endpoint == '/') {\r\n activeSlug = apiSlug\r\n keyPath = getKeyByEndpoint(flattenedSidebar, '', apiSlug)\r\n } else {\r\n const method = docPath[0]\r\n .split(hasHashTag ? '#' : '?endpoint=')[1]\r\n .split('-')[0]\r\n keyPath = getKeyByEndpoint(flattenedSidebar, endpoint, apiSlug, method)\r\n }\r\n expandedSlugs.push(activeSlug)\r\n if (keyPath) {\r\n getParents(keyPath, 'slug', flattenedSidebar, expandedSlugs)\r\n }\r\n } else {\r\n activeSlug = expandedSlugs[expandedSlugs.length - 1]\r\n }\r\n\r\n setOpenSidebarElements(expandedSlugs)\r\n setActiveSidebarElement(activeSlug?.replace('?endpoint=', '#'))\r\n }, [\r\n parentsKey,\r\n router.asPath,\r\n router.pathname,\r\n router.query.slug,\r\n sidebarDataMaster,\r\n setActiveSidebarElement,\r\n setOpenSidebarElements,\r\n ])\r\n}\r\n","// Sidebar Section\r\nimport { Flex, Box, Text, Button } from '@vtex/brand-ui'\r\nimport {\r\n memo,\r\n useContext,\r\n useLayoutEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n} from 'react'\r\n\r\nimport styles from './styles'\r\nimport { SidebarElement } from '../sidebar-elements'\r\nimport SectionFilter from '../sidebar-section-filter'\r\nimport SideBarElements from '../sidebar-elements'\r\nimport SearchIcon from 'components/icons/search-icon'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport SideBarToggleIcon from 'components/icons/sidebar-toggle-icon'\r\nimport ArrowLeftIcon from 'components/icons/arrow-left-icon'\r\nimport { getIcon } from 'utils/sidebar-utils'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\nexport interface SidebarSectionProps {\r\n documentation: string\r\n name: string | { en: string; es: string; pt: string }\r\n categories: SidebarElement[]\r\n slugPrefix: string\r\n isHamburgerMenu: boolean\r\n}\r\n\r\ntype MethodFilter = {\r\n name: string\r\n active: boolean\r\n}\r\n\r\nfunction localizedName(\r\n name: SidebarElement['name'],\r\n locale: 'en' | 'pt' | 'es'\r\n): string {\r\n return typeof name === 'string' ? name : name[locale]\r\n}\r\n\r\nfunction matchesQuery(\r\n name: SidebarElement['name'],\r\n query: string,\r\n locale: 'en' | 'pt' | 'es'\r\n): boolean {\r\n if (!query) return true\r\n return localizedName(name, locale).toLowerCase().includes(query)\r\n}\r\n\r\nfunction matchesMethodFilter(\r\n node: SidebarElement,\r\n methodFilterList: MethodFilter[],\r\n filterStatus: boolean\r\n): boolean {\r\n if (!filterStatus || !node.method) return true\r\n return methodFilterList.some(\r\n (methodFilter) => methodFilter.name === node.method && methodFilter.active\r\n )\r\n}\r\n\r\nfunction filterSidebarNode(\r\n node: SidebarElement,\r\n query: string,\r\n methodFilterList: MethodFilter[],\r\n filterStatus: boolean,\r\n locale: 'en' | 'pt' | 'es'\r\n): SidebarElement | null {\r\n const selfMatches =\r\n matchesQuery(node.name, query, locale) &&\r\n matchesMethodFilter(node, methodFilterList, filterStatus)\r\n const children = node.children || []\r\n\r\n if (selfMatches && !filterStatus) {\r\n return node\r\n }\r\n\r\n const filteredChildren = children\r\n .map((child) =>\r\n filterSidebarNode(\r\n child,\r\n selfMatches ? '' : query,\r\n methodFilterList,\r\n filterStatus,\r\n locale\r\n )\r\n )\r\n .filter((child): child is SidebarElement => child != null)\r\n\r\n if (filteredChildren.length > 0) {\r\n return { ...node, children: filteredChildren }\r\n }\r\n\r\n if (selfMatches && children.length === 0) {\r\n return node\r\n }\r\n\r\n return null\r\n}\r\n\r\nfunction scrollDesktopSidebarToActiveItem(container: HTMLElement) {\r\n const activeEl = container.querySelector(\r\n '[data-sidebar-active=\"true\"]'\r\n )\r\n if (!activeEl) return false\r\n\r\n const containerRect = container.getBoundingClientRect()\r\n const elRect = activeEl.getBoundingClientRect()\r\n const isFullyVisible =\r\n elRect.top >= containerRect.top && elRect.bottom <= containerRect.bottom\r\n\r\n if (isFullyVisible) return true\r\n\r\n const topInsideContainer =\r\n elRect.top - containerRect.top + container.scrollTop\r\n const centered =\r\n topInsideContainer - container.clientHeight / 2 + elRect.height / 2\r\n\r\n container.scrollTop = Math.max(0, centered)\r\n return true\r\n}\r\n\r\nfunction filterSidebarCategories(\r\n categories: SidebarElement[] | undefined,\r\n searchValue: string,\r\n methodFilterList: MethodFilter[],\r\n filterStatus: boolean,\r\n locale: 'en' | 'pt' | 'es'\r\n): SidebarElement[] | undefined {\r\n if (!categories?.length || (!filterStatus && searchValue === '')) {\r\n return categories\r\n }\r\n\r\n const query = searchValue.toLowerCase()\r\n\r\n return categories\r\n .map((category) =>\r\n filterSidebarNode(category, query, methodFilterList, filterStatus, locale)\r\n )\r\n .filter((category): category is SidebarElement => category != null)\r\n}\r\n\r\nconst SidebarSearchBox = ({\r\n value,\r\n placeholder,\r\n onChange,\r\n}: {\r\n value: string\r\n placeholder: string\r\n onChange: (value: string) => void\r\n}) => {\r\n const inputRef = useRef(null)\r\n const { locale } = useContext(LibraryContext)\r\n const clearLabel = messages[locale]['search_input.clear'] || 'Clear search'\r\n\r\n return (\r\n \r\n \r\n onChange(e.currentTarget.value)}\r\n />\r\n {value ? (\r\n {\r\n onChange('')\r\n inputRef.current?.focus()\r\n }}\r\n >\r\n \r\n \r\n ) : null}\r\n \r\n )\r\n}\r\n\r\nconst SidebarSection = ({\r\n documentation,\r\n name,\r\n categories,\r\n slugPrefix,\r\n isHamburgerMenu = false,\r\n}: SidebarSectionProps) => {\r\n const [searchValue, setSearchValue] = useState('')\r\n const sidebarBoxRef = useRef(null)\r\n const {\r\n isEditorPreview,\r\n sidebarSectionHidden,\r\n setSidebarSectionHidden,\r\n sidebarSections,\r\n activeSidebarElement,\r\n locale,\r\n } = useContext(LibraryContext)\r\n const [methodFilterList, setMethodFilterList] = useState([\r\n { name: 'POST', active: false },\r\n { name: 'GET', active: false },\r\n { name: 'PUT', active: false },\r\n { name: 'DELETE', active: false },\r\n { name: 'PATCH', active: false },\r\n ])\r\n\r\n const filterStatus = methodFilterList.some(\r\n (methodFilter) => methodFilter.active\r\n )\r\n\r\n const filteredResult = useMemo(\r\n () =>\r\n filterSidebarCategories(\r\n categories,\r\n searchValue,\r\n methodFilterList,\r\n filterStatus,\r\n locale\r\n ),\r\n [filterStatus, methodFilterList, categories, searchValue, locale]\r\n )\r\n\r\n useLayoutEffect(() => {\r\n if (isHamburgerMenu || !activeSidebarElement) return\r\n const container = sidebarBoxRef.current\r\n if (!container) return\r\n\r\n const tryScroll = () => scrollDesktopSidebarToActiveItem(container)\r\n if (tryScroll()) return\r\n\r\n const observer = new MutationObserver(() => {\r\n if (tryScroll()) observer.disconnect()\r\n })\r\n observer.observe(container, { childList: true, subtree: true })\r\n const timeout = window.setTimeout(() => observer.disconnect(), 1500)\r\n\r\n return () => {\r\n observer.disconnect()\r\n window.clearTimeout(timeout)\r\n }\r\n }, [activeSidebarElement, filteredResult, isHamburgerMenu])\r\n\r\n const DocIcon = getIcon(documentation, sidebarSections)\r\n\r\n let localizedSectionTitle = ''\r\n\r\n if (!categories || categories.length <= 0) {\r\n return <>\r\n } else {\r\n localizedSectionTitle = typeof name === 'string' ? name : name[locale]\r\n }\r\n\r\n return isHamburgerMenu ? (\r\n \r\n \r\n \r\n }\r\n onClick={() => {\r\n setSidebarSectionHidden(true)\r\n }}\r\n />\r\n {DocIcon && }\r\n {localizedSectionTitle}\r\n \r\n {documentation == 'API Reference' && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {isEditorPreview && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n PREVIEW MODE\r\n \r\n )}\r\n {localizedSectionTitle}\r\n \r\n \r\n {documentation == 'API Reference' && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setSidebarSectionHidden(\r\n (sidebarSectionHidden) => !sidebarSectionHidden\r\n )\r\n }}\r\n sx={sidebarSectionHidden ? styles.toggleIcon : {}}\r\n />\r\n \r\n \r\n )\r\n}\r\n\r\nexport default memo(SidebarSection)\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst sidebarContainer: SxStyleProp = {\r\n position: 'relative',\r\n width: 'auto',\r\n height: 'inherit',\r\n minHeight: 0,\r\n overflow: 'visible',\r\n borderRight: '1px solid #E7E9EE',\r\n zIndex: '1',\r\n 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\r\n left: '0',\r\n transition: 'all 0.3s ease-in-out',\r\n '.toggleIcon': {\r\n opacity: '0',\r\n transition: 'all 0.3s ease-out',\r\n },\r\n '.sidebarHide': {\r\n opacity: '0',\r\n transition: 'all 0.5s ease-out',\r\n },\r\n ':hover': {\r\n '.toggleIcon': {\r\n opacity: '100',\r\n transition: 'all 0.3s ease-out',\r\n },\r\n },\r\n}\r\n\r\nconst sidebarContainerHamburger: SxStyleProp = {\r\n width: '100%',\r\n height: '100%',\r\n zIndex: '1',\r\n}\r\n\r\nconst sidebarContainerBox: SxStyleProp = {\r\n opacity: '100',\r\n paddingTop: '34px',\r\n paddingBottom: '24px',\r\n width: '300px',\r\n overflowY: 'auto',\r\n height: 'inherit',\r\n maskImage:\r\n 'linear-gradient(to top, transparent, black), linear-gradient(to left, transparent 17px, black 17px)',\r\n maskSize: '100% 20000px',\r\n maskPosition: 'left bottom',\r\n transition: 'mask-position 0.3s, -webkit-mask-position 0.3s',\r\n ':hover': {\r\n maskPosition: 'left top',\r\n },\r\n}\r\n\r\nconst sidebarContainerBoxHamburger: SxStyleProp = {\r\n opacity: '100',\r\n width: '100%',\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n background: '#FFFFFF',\r\n overflow: 'hidden',\r\n}\r\n\r\nconst sidebarContainerBody: SxStyleProp = {\r\n px: '16px',\r\n}\r\n\r\nconst sidebarContainerHeader: SxStyleProp = {\r\n px: '16px',\r\n}\r\n\r\nconst sidebarContainerTitle: SxStyleProp = {\r\n alignItems: 'center',\r\n minHeight: '52px',\r\n padding: '4px 16px 4px 8px',\r\n borderBottom: '1px solid #E7E9EE',\r\n flexShrink: 0,\r\n position: 'sticky',\r\n top: 0,\r\n zIndex: 2,\r\n 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\r\n background: '#FFFFFF',\r\n px: '16px',\r\n}\r\n\r\nconst sidebarTitle: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n fontSize: '16px',\r\n lineHeight: '18px',\r\n}\r\n\r\nconst sidebarTitleHamburger: SxStyleProp = {\r\n flex: 1,\r\n minWidth: 0,\r\n fontSize: '16px',\r\n lineHeight: '24px',\r\n color: '#4a596b',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n pl: '8px',\r\n}\r\n\r\nconst sidebarTitleIcon: SxStyleProp = {\r\n width: '24px',\r\n height: '24px',\r\n minWidth: '24px',\r\n flexShrink: 0,\r\n color: '#4A596B',\r\n}\r\n\r\nconst sidebarContainerFilterHamburger: SxStyleProp = {\r\n px: '16px',\r\n pt: '16px',\r\n pb: 0,\r\n flexShrink: 0,\r\n background: '#FFFFFF',\r\n}\r\n\r\nconst sidebarContainerBodyHamburger: SxStyleProp = {\r\n px: '8px',\r\n pt: '8px',\r\n pb: 'calc(24px + env(safe-area-inset-bottom, 0px))',\r\n flex: 1,\r\n minHeight: 0,\r\n overflowY: 'auto',\r\n}\r\n\r\nconst sidebarHelpIcon: SxStyleProp = {\r\n ml: '4px',\r\n width: '24px',\r\n height: '24px',\r\n}\r\n\r\nconst searchBox: SxStyleProp = {\r\n mt: '16px',\r\n mb: '20px',\r\n alignItems: 'center',\r\n borderRadius: '4px',\r\n background: '#F4F4F4',\r\n width: '265px',\r\n height: '40px',\r\n paddingLeft: '12px',\r\n paddingRight: '8px',\r\n}\r\n\r\nconst searchInput: SxStyleProp = {\r\n width: 'auto',\r\n flex: '1',\r\n minWidth: 0,\r\n background: '#F4F4F4',\r\n border: '#F4F4F4',\r\n color: '#545454',\r\n fontSize: ['14px'],\r\n outline: 'none',\r\n}\r\n\r\nconst searchIcon: SxStyleProp = {\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n width: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst clearButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '24px',\r\n height: '24px',\r\n ml: '4px',\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: '50%',\r\n background: 'transparent',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n flexShrink: 0,\r\n ':hover': {\r\n background: '#EDEDED',\r\n color: '#142032',\r\n },\r\n}\r\n\r\nconst clearIcon: SxStyleProp = {\r\n width: '14px',\r\n height: '14px',\r\n}\r\n\r\nconst toggleIconBox: SxStyleProp = {\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n width: '32px',\r\n height: '32px',\r\n borderRadius: '50%',\r\n border: '1px solid #E7E9EE',\r\n background: '#FFFFFF',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n position: 'absolute',\r\n top: '32px',\r\n right: '-16px',\r\n cursor: 'pointer',\r\n zIndex: 3,\r\n 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\r\n}\r\n\r\nconst toggleIconBoxActive: SxStyleProp = {\r\n ...toggleIconBox,\r\n opacity: '100 !important',\r\n}\r\n\r\nconst toggleIcon: SxStyleProp = {\r\n transform: 'scaleX(-1)',\r\n}\r\n\r\nconst arrowButton: SxStyleProp = {\r\n padding: '0px',\r\n width: '40px',\r\n minWidth: '40px',\r\n height: '40px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: '#4A596B',\r\n flexShrink: 0,\r\n}\r\n\r\nconst previewMode: SxStyleProp = {\r\n display: 'flex',\r\n color: '#A87600',\r\n backgroundColor: '#ffe5b5',\r\n padding: '10px',\r\n borderRadius: '10px',\r\n fontWeight: '600',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n letterSpacing: '0.5px',\r\n mb: '20px',\r\n svg: {\r\n width: '20px',\r\n mr: '10px',\r\n },\r\n}\r\n\r\nexport default {\r\n sidebarContainer,\r\n sidebarContainerHamburger,\r\n sidebarContainerBox,\r\n sidebarContainerBoxHamburger,\r\n sidebarContainerBodyHamburger,\r\n sidebarContainerFilterHamburger,\r\n sidebarContainerBody,\r\n sidebarContainerHeader,\r\n sidebarContainerTitle,\r\n sidebarTitle,\r\n sidebarTitleHamburger,\r\n sidebarTitleIcon,\r\n sidebarHelpIcon,\r\n searchBox,\r\n searchInput,\r\n searchIcon,\r\n clearButton,\r\n clearIcon,\r\n toggleIconBox,\r\n toggleIconBoxActive,\r\n toggleIcon,\r\n arrowButton,\r\n previewMode,\r\n}\r\n","import { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport MethodCategory from 'components/method-category'\r\nimport { Dispatch, SetStateAction, useContext, useState } from 'react'\r\n\r\nimport styles from './styles'\r\nimport { MethodType } from 'utils/typings/types'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\ntype MethodFilter = {\r\n name: string\r\n active: boolean\r\n}\r\n\r\ninterface MethodButtonProps {\r\n methodFilter: MethodFilter\r\n}\r\n\r\ninterface SectionFilterProps {\r\n methodFilterList: MethodFilter[]\r\n setMethodFilter: Dispatch>\r\n isHamburgerMenu?: boolean\r\n}\r\n\r\nconst SectionFilter = ({\r\n methodFilterList,\r\n setMethodFilter,\r\n isHamburgerMenu = false,\r\n}: SectionFilterProps) => {\r\n const [activeFilters, setActiveFilters] = useState([])\r\n const { locale } = useContext(LibraryContext)\r\n\r\n const setFilter = (methodFilterChanged: MethodType | null) => {\r\n if (methodFilterChanged) {\r\n const index = activeFilters.indexOf(methodFilterChanged)\r\n index === -1\r\n ? setActiveFilters([...activeFilters, methodFilterChanged])\r\n : setActiveFilters(\r\n activeFilters.filter((filter) => filter !== methodFilterChanged)\r\n )\r\n setMethodFilter(\r\n methodFilterList.map((methodFilter) => {\r\n if (methodFilter.name === methodFilterChanged)\r\n methodFilter.active = !methodFilter.active\r\n return methodFilter\r\n })\r\n )\r\n } else {\r\n setActiveFilters([])\r\n setMethodFilter(\r\n methodFilterList.map((methodFilter) => {\r\n methodFilter.active = false\r\n return methodFilter\r\n })\r\n )\r\n }\r\n }\r\n\r\n const MethodButton = ({ methodFilter }: MethodButtonProps) => {\r\n return (\r\n setFilter(methodFilter.name as MethodType)}\r\n >\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n {messages[locale]['api_reference_sidebar_filter']}\r\n \r\n \r\n {methodFilterList.map((methodFilter) => (\r\n \r\n ))}\r\n {activeFilters.length > 1 && (\r\n setFilter(null)} sx={styles.clear}>\r\n {messages[locale]['api_reference_sidebar_filter_clear']}\r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SectionFilter\r\n","import { Flex, Text, SxStyleProp } from '@vtex/brand-ui'\r\nimport { categoryStyle, categoryText, closeCategoryStyle } from './functions'\r\nimport styles from './styles'\r\nimport CloseFilterIcon from 'components/icons/close-filter-icon'\r\nimport { MethodType } from 'utils/typings/types'\r\n\r\nexport interface MethodCategoryProps {\r\n method: MethodType\r\n active: boolean\r\n origin: 'sidebar' | 'search' | 'filter' | 'pagination'\r\n sx?: SxStyleProp\r\n}\r\n\r\nconst MethodCategory = ({\r\n method,\r\n active,\r\n origin,\r\n sx,\r\n}: MethodCategoryProps) => {\r\n return (\r\n \r\n {categoryText(method)}\r\n {origin === 'filter' && active && (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default MethodCategory\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n border: '1px solid #DDDDDD',\r\n borderRadius: '6px',\r\n boxSizing: 'border-box',\r\n width: '24px',\r\n minWidth: '24px',\r\n height: '24px',\r\n minHeight: '24px',\r\n flexShrink: 0,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n px: 0,\r\n}\r\n\r\nconst text: SxStyleProp = {\r\n fontWeight: '600',\r\n fontSize: '11px',\r\n lineHeight: '14px',\r\n letterSpacing: '0.02em',\r\n whiteSpace: 'nowrap',\r\n}\r\n\r\nconst filled: SxStyleProp = {\r\n border: 'none',\r\n borderRadius: '4px',\r\n width: '48px',\r\n minWidth: '48px',\r\n maxWidth: '48px',\r\n height: '20px',\r\n minHeight: '20px',\r\n px: '3px',\r\n}\r\n\r\nconst closeIcon: SxStyleProp = {\r\n minWidth: '12px',\r\n minHeight: '12px',\r\n height: '12px',\r\n width: '12px',\r\n ml: '4px',\r\n}\r\n\r\nexport default {\r\n container,\r\n filled,\r\n text,\r\n closeIcon,\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\nimport { MethodType } from 'utils/typings/unionTypes'\r\n\r\nimport styles from './styles'\r\n\r\nexport const methodsColors = {\r\n POST: {\r\n border: '1px solid #7CBBEA',\r\n color: '#2978B5',\r\n background: '#DEECF7',\r\n },\r\n GET: {\r\n border: '1px solid #83D187',\r\n color: '#38853C',\r\n background: '#DFF1E0',\r\n },\r\n PUT: {\r\n border: '1px solid #F5AE70',\r\n color: '#D56A00',\r\n background: '#FFEBD7',\r\n },\r\n DELETE: {\r\n border: '1px solid #F49494',\r\n color: '#CC3D3D',\r\n background: '#F8E3E3',\r\n },\r\n PATCH: {\r\n border: '1px solid #afa871',\r\n color: '#6C6314',\r\n background: '#e9e7da',\r\n },\r\n}\r\n\r\nexport const categoryStyle = (\r\n method: MethodType,\r\n active: boolean,\r\n origin: string,\r\n sx?: SxStyleProp\r\n): SxStyleProp => {\r\n const categoryColors = methodsColors[method] || {\r\n border: '1px solid #F49494',\r\n color: '#CC3D3D',\r\n background: '#F8E3E3',\r\n }\r\n\r\n const isFilled = active || origin !== 'filter'\r\n\r\n const categoryStyle: SxStyleProp = isFilled\r\n ? {\r\n ...styles.container,\r\n ...categoryColors,\r\n ...(origin !== 'filter' ? styles.filled : {}),\r\n ...sx,\r\n ':hover': {\r\n '.filter-close-button': {\r\n rect: {\r\n fill: categoryColors.color,\r\n },\r\n path: {\r\n stroke: '#DEECF7',\r\n },\r\n },\r\n },\r\n }\r\n : {\r\n ...styles.container,\r\n color: categoryColors.color,\r\n ...sx,\r\n }\r\n\r\n return categoryStyle\r\n}\r\n\r\nexport const categoryText = (method: MethodType): string => method.toUpperCase()\r\n\r\nexport const closeCategoryStyle = (method: MethodType) => {\r\n const categoryColors = methodsColors[method]\r\n const categoryStyle: SxStyleProp = {\r\n ...styles.closeIcon,\r\n rect: {\r\n fill: 'transparent',\r\n },\r\n path: {\r\n stroke: categoryColors.color,\r\n },\r\n }\r\n\r\n return categoryStyle\r\n}\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CloseFilterIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default CloseFilterIcon\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n px: '16px',\r\n pt: '8px',\r\n pb: '16px',\r\n mb: '16px',\r\n borderBottom: '1px solid #E7E9EE',\r\n}\r\n\r\nconst containerHamburger: SxStyleProp = {\r\n px: 0,\r\n pt: 0,\r\n pb: '16px',\r\n mb: 0,\r\n borderBottom: '1px solid #E7E9EE',\r\n}\r\n\r\nconst text: SxStyleProp = {\r\n mb: '10px',\r\n}\r\n\r\nconst textHamburger: SxStyleProp = {\r\n mt: 0,\r\n mb: '10px',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n letterSpacing: '0.02em',\r\n color: '#4A596B',\r\n}\r\n\r\nconst methodsRow: SxStyleProp = {\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '8px',\r\n}\r\n\r\nconst methodsRowHamburger: SxStyleProp = methodsRow\r\n\r\nconst methodButton: SxStyleProp = {\r\n flexShrink: 0,\r\n}\r\n\r\nconst categoryHamburger: SxStyleProp = {\r\n mr: 0,\r\n px: '10px',\r\n height: '24px',\r\n minHeight: '24px',\r\n width: 'auto',\r\n minWidth: 'max-content',\r\n flexShrink: 0,\r\n cursor: 'pointer',\r\n borderRadius: '16px',\r\n ':hover': {\r\n border: '1px solid #D8D8E3',\r\n },\r\n}\r\n\r\nconst clear: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n color: 'muted.0',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n whiteSpace: 'nowrap',\r\n flexShrink: 0,\r\n cursor: 'pointer',\r\n ':hover': {\r\n color: '#000711',\r\n },\r\n}\r\n\r\nexport default {\r\n container,\r\n containerHamburger,\r\n text,\r\n textHamburger,\r\n methodsRow,\r\n methodsRowHamburger,\r\n methodButton,\r\n categoryHamburger,\r\n clear,\r\n}\r\n","import { useRouter } from 'next/router.js'\r\nimport { Fragment, memo, useContext } from 'react'\r\nimport {\r\n Box,\r\n Flex,\r\n Link,\r\n Button,\r\n IconCaret,\r\n IconExternalLink,\r\n} from '@vtex/brand-ui'\r\n\r\nimport MethodCategory from 'components/method-category'\r\n\r\nimport { isInActivePath, styleByLevelNormal, textStyle } from './functions'\r\nimport styles from './styles'\r\nimport { MethodType } from 'utils/typings/types'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { getDocumentationType } from 'utils/navigation-utils'\r\n\r\nexport interface SidebarElement {\r\n name: string | { en: string; pt: string; es: string }\r\n slug: string | { en: string; pt: string; es: string }\r\n origin: string\r\n type: string\r\n method?: MethodType\r\n endpoint?: string\r\n children: SidebarElement[]\r\n /** When true, the category starts expanded instead of collapsed. */\r\n defaultOpen?: boolean\r\n}\r\n\r\nexport interface SidebarProps {\r\n slugPrefix?: string\r\n items: SidebarElement[]\r\n subItemLevel: number\r\n /** Expand every branch, used while search/method filters are active. */\r\n forceOpen?: boolean\r\n isHamburgerMenu?: boolean\r\n}\r\n\r\nconst SidebarElements = ({\r\n slugPrefix,\r\n items,\r\n subItemLevel,\r\n forceOpen = false,\r\n isHamburgerMenu = false,\r\n}: SidebarProps) => {\r\n const {\r\n isEditorPreview,\r\n activeSidebarElement,\r\n sidebarElementStatus,\r\n toggleSidebarElementStatus,\r\n sidebarDataMaster,\r\n locale,\r\n } = useContext(LibraryContext)\r\n const router = useRouter()\r\n\r\n const isElementOpen = (slug: string, defaultOpen?: boolean) =>\r\n forceOpen ||\r\n (sidebarElementStatus.has(slug)\r\n ? sidebarElementStatus.get(slug)\r\n : !!defaultOpen)\r\n\r\n const handleClick = (\r\n e: { preventDefault: () => void },\r\n pathSuffix: string,\r\n slug: string\r\n ) => {\r\n e.preventDefault()\r\n const hasEndpointQuery = router.query.endpoint\r\n const href = getHref(slugPrefix || '', pathSuffix, slug)\r\n router.push(href, href, { locale }).then(() => {\r\n if (hasEndpointQuery) router.reload()\r\n })\r\n }\r\n\r\n const getHref = (slugPrefix: string, pathSuffix: string, slug: string) => {\r\n const validLocales = ['pt', 'es']\r\n const localePrefix =\r\n locale && validLocales.includes(locale) ? `/${locale}` : ''\r\n const href =\r\n slugPrefix === 'docs/api-reference'\r\n ? `/${slugPrefix}/${slug}/${pathSuffix}`\r\n : `${localePrefix}/${slugPrefix}/${slug}`\r\n return href.replaceAll('//', '/')\r\n }\r\n\r\n const ElementRoot = ({\r\n slug,\r\n name,\r\n method,\r\n endpoint,\r\n children,\r\n defaultOpen,\r\n }: SidebarElement) => {\r\n const localizedName: string = typeof name === 'string' ? name : name[locale]\r\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\r\n const isExpandable = children.length > 0\r\n const isOpen = isElementOpen(localizedSlug, defaultOpen)\r\n const pathSuffix = method ? `#${method.toLowerCase()}-${endpoint}` : ''\r\n const activeItem = method ? `${localizedSlug}${pathSuffix}` : localizedSlug\r\n const isActive = activeSidebarElement === activeItem\r\n const isArrowActive = isInActivePath(\r\n { slug, method, endpoint, children },\r\n activeSidebarElement,\r\n locale\r\n )\r\n const documentationType = getDocumentationType(\r\n sidebarDataMaster,\r\n localizedSlug\r\n )\r\n return (\r\n \r\n \r\n {isExpandable ? (\r\n (\r\n \r\n )}\r\n onClick={() => toggleSidebarElementStatus(localizedSlug, isOpen)}\r\n />\r\n ) : (\r\n \r\n )}\r\n {documentationType !== 'category' && documentationType !== 'link' ? (\r\n void }) => {\r\n if (!isEditorPreview) {\r\n handleClick(e, pathSuffix, localizedSlug)\r\n }\r\n toggleSidebarElementStatus(activeItem)\r\n }}\r\n href={getHref(slugPrefix || '', pathSuffix, localizedSlug)}\r\n target={isEditorPreview === true ? '_blank' : '_self'}\r\n locale={locale}\r\n >\r\n {method && (\r\n \r\n )}\r\n {localizedName}\r\n \r\n ) : documentationType === 'link' ? (\r\n \r\n \r\n {localizedName}\r\n \r\n ) : (\r\n {\r\n toggleSidebarElementStatus(localizedSlug, isOpen)\r\n }}\r\n >\r\n {method && (\r\n \r\n )}\r\n {localizedName}\r\n \r\n )}\r\n \r\n \r\n )\r\n }\r\n\r\n const ElementChildren = ({ slug, children, defaultOpen }: SidebarElement) => {\r\n const isExpandable = children.length > 0\r\n // const newPathPrefix =\r\n // slugPrefix === 'api-reference' ? `/api-reference/${slug}` : slugPrefix\r\n\r\n const localizedSlug: string = typeof slug === 'string' ? slug : slug[locale]\r\n return isExpandable && isElementOpen(localizedSlug, defaultOpen) ? (\r\n \r\n \r\n \r\n ) : null\r\n }\r\n\r\n return (\r\n \r\n {items?.map((item, index) => {\r\n const key =\r\n typeof item.slug === 'string'\r\n ? String(item.slug) + String(index)\r\n : String(item.slug[locale]) + String(index)\r\n const slug =\r\n typeof item.slug === 'string'\r\n ? `${item.slug}`\r\n : `${item.slug[locale]}`\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {subItemLevel == 0 && !isHamburgerMenu ? (\r\n \r\n
\r\n
\r\n ) : null}\r\n
\r\n )\r\n })}\r\n
\r\n )\r\n}\r\n\r\nexport default memo(SidebarElements)\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst elementContainer: SxStyleProp = {\r\n maxWidth: '100%',\r\n background: '#FFFFFF',\r\n borderRadius: '8px',\r\n ':hover': {\r\n background: '#F8F7FC',\r\n a: {\r\n color: '#142032',\r\n textDecoration: 'none',\r\n },\r\n },\r\n}\r\n\r\nconst elementContainerHamburger: SxStyleProp = {\r\n ...elementContainer,\r\n borderRadius: '8px',\r\n px: '8px',\r\n}\r\n\r\nconst linkReset: SxStyleProp = {\r\n pl: \"1px\",\r\n textDecoration: 'none !important',\r\n ':hover, :focus, :visited, :active': {\r\n textDecoration: 'none !important',\r\n },\r\n}\r\n\r\nconst elementText: SxStyleProp = {\r\n color: '#4A596B',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n fontWeight: '400',\r\n textAlign: 'initial',\r\n paddingBlock: '8px',\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n gap: '8px',\r\n flex: 1,\r\n minWidth: 0,\r\n whiteSpace: 'normal',\r\n overflowWrap: 'break-word',\r\n cursor: 'pointer',\r\n ...linkReset,\r\n}\r\n\r\nconst elementActive: SxStyleProp = {\r\n ...elementText,\r\n color: '#D71D55 !important',\r\n}\r\n\r\nconst arrowIcon: SxStyleProp = {\r\n padding: '0',\r\n margin: '0',\r\n color: '#A1A8B3',\r\n height: '36px',\r\n minHeight: '36px',\r\n minWidth: '16px',\r\n width: '16px',\r\n maxWidth: '16px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n}\r\n\r\nconst arrowIconHamburger: SxStyleProp = {\r\n ...arrowIcon,\r\n height: '44px',\r\n minHeight: '44px',\r\n minWidth: '20px',\r\n width: '20px',\r\n maxWidth: '20px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n color: '#A1A8B3',\r\n}\r\n\r\nconst arrowIconSpacer: SxStyleProp = {\r\n width: '6px',\r\n minWidth: '6px',\r\n maxWidth: '16px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst arrowIconSpacerHamburger: SxStyleProp = {\r\n width: '8px',\r\n minWidth: '8px',\r\n maxWidth: '20px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst nestedGroup: SxStyleProp = {\r\n ml: '8px',\r\n pl: '8px',\r\n borderLeft: '1px solid #E7E9EE',\r\n}\r\n\r\nconst nestedGroupFirst: SxStyleProp = {\r\n pl: '16px',\r\n}\r\n\r\nconst nestedGroupHamburger: SxStyleProp = {\r\n ml: '12px',\r\n pl: '8px',\r\n borderLeft: '1px solid #E7E9EE',\r\n}\r\n\r\nconst nestedGroupHamburgerFirst: SxStyleProp = {\r\n pl: '20px',\r\n}\r\n\r\nconst arrowIconActive: SxStyleProp = {\r\n ...arrowIcon,\r\n color: '#D71D55',\r\n}\r\n\r\nconst arrowIconActiveHamburger: SxStyleProp = {\r\n ...arrowIconHamburger,\r\n color: '#D71D55',\r\n}\r\n\r\nconst elementButton: SxStyleProp = {\r\n textTransform: 'initial',\r\n fontVariationSettings: 'unset',\r\n padding: '0',\r\n margin: '0',\r\n textDecoration: 'none !important',\r\n}\r\n\r\nconst methodBox: SxStyleProp = {\r\n mr: 0,\r\n flexShrink: 0,\r\n}\r\n\r\nconst sectionDivider: SxStyleProp = {\r\n hr: {\r\n border: '1px solid #E7E9EE',\r\n borderTop: 'none',\r\n },\r\n}\r\n\r\nexport default {\r\n elementContainer,\r\n elementContainerHamburger,\r\n elementText,\r\n elementActive,\r\n arrowIcon,\r\n arrowIconHamburger,\r\n arrowIconSpacer,\r\n arrowIconSpacerHamburger,\r\n arrowIconActive,\r\n arrowIconActiveHamburger,\r\n nestedGroup,\r\n nestedGroupFirst,\r\n nestedGroupHamburger,\r\n nestedGroupHamburgerFirst,\r\n elementButton,\r\n methodBox,\r\n sectionDivider,\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\ntype NestedSidebarNode = {\r\n slug: string | { en: string; pt: string; es: string }\r\n method?: string\r\n endpoint?: string\r\n children: NestedSidebarNode[]\r\n}\r\n\r\nexport const isInActivePath = (\r\n node: NestedSidebarNode,\r\n activeSlug: string,\r\n locale: 'en' | 'pt' | 'es'\r\n): boolean => {\r\n const slug = typeof node.slug === 'string' ? node.slug : node.slug[locale]\r\n const item = node.method\r\n ? `${slug}#${node.method.toLowerCase()}-${node.endpoint}`\r\n : slug\r\n\r\n if (item === activeSlug || slug === activeSlug) return true\r\n\r\n return node.children.some((child) =>\r\n isInActivePath(child, activeSlug, locale)\r\n )\r\n}\r\n\r\nexport const styleByLevelNormal = (isHamburgerMenu = false) => {\r\n const normal: SxStyleProp = {\r\n gap: isHamburgerMenu ? '8px' : '3px',\r\n alignItems: 'flex-start',\r\n ...(isHamburgerMenu\r\n ? {\r\n minHeight: '44px',\r\n alignItems: 'center',\r\n }\r\n : {}),\r\n }\r\n\r\n return normal\r\n}\r\n\r\nexport const textStyle = (\r\n active: boolean,\r\n isHamburgerMenu = false,\r\n isExpandable = false\r\n) => {\r\n const hamburgerText: SxStyleProp = isHamburgerMenu\r\n ? {\r\n fontSize: '15px',\r\n lineHeight: '22px',\r\n paddingBlock: '11px',\r\n minHeight: '44px',\r\n color: active ? '#D71D55' : '#4A596B',\r\n fontWeight: '400',\r\n flex: 1,\r\n minWidth: 0,\r\n whiteSpace: 'normal',\r\n overflowWrap: 'break-word',\r\n alignItems: 'center',\r\n }\r\n : isExpandable\r\n ? {\r\n fontWeight: '500',\r\n }\r\n : {}\r\n\r\n if (active) {\r\n const textStyleActive: SxStyleProp = {\r\n ...styles.elementActive,\r\n ...hamburgerText,\r\n }\r\n return textStyleActive\r\n }\r\n const textStyle: SxStyleProp = {\r\n ...styles.elementText,\r\n ...hamburgerText,\r\n }\r\n\r\n return textStyle\r\n}\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst SearchIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default SearchIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst SideBarToggleIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default SideBarToggleIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ArrowLeftIcon = (props: IconProps) => (\r\n \r\n {' '}\r\n \r\n \r\n \r\n)\r\n\r\nexport default ArrowLeftIcon\r\n","import {\r\n Header,\r\n HamburgerMenu as VtexHamburgerMenu,\r\n Box,\r\n IconCaret,\r\n Button,\r\n} from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\nimport { useContext, useEffect, useRef, useState } from 'react'\r\nimport { useRouter } from 'next/router.js'\r\nimport DocumentationCard from 'components/documentation-card'\r\nimport SidebarSection, { SidebarSectionProps } from 'components/sidebar-section'\r\nimport { updateOpenPage, getSectionLabel } from 'utils/sidebar-utils'\r\nimport { getDocumentationType } from 'utils/navigation-utils'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport MobileSearch from 'components/mobile-search'\r\n\r\nfunction getRouteSlug(slug: string | string[] | undefined): string {\r\n if (typeof slug === 'string') return slug\r\n if (Array.isArray(slug)) return slug[0] ?? ''\r\n return ''\r\n}\r\n\r\nexport interface HamburgerMenuProps {\r\n /** Array that contains the name of the sections in the menu that should be expanded. */\r\n parentsArray?: string[]\r\n}\r\n\r\n/** Hamburger Menu component, the menu uses the sidebar components internally, but it is only visible on the smaller breakpoints. */\r\nconst HamburgerMenu = ({ parentsArray = [] }: HamburgerMenuProps) => {\r\n const router = useRouter()\r\n const hamburgerRef = useRef(null)\r\n const context = useContext(LibraryContext)\r\n const {\r\n sidebarDataMaster,\r\n sidebarSectionHidden,\r\n activeSectionName,\r\n setActiveSectionName,\r\n setSidebarSectionHidden,\r\n hamburguerSections,\r\n locale,\r\n } = context\r\n\r\n const [userOpenedSection, setUserOpenedSection] = useState(false)\r\n const articleSlug = getRouteSlug(router.query.slug)\r\n const isListedArticle =\r\n parentsArray.length > 0 ||\r\n (Boolean(articleSlug) &&\r\n getDocumentationType(sidebarDataMaster, articleSlug) != null)\r\n const showNestedSidebar =\r\n Boolean(activeSectionName) &&\r\n !sidebarSectionHidden &&\r\n (userOpenedSection || isListedArticle || !articleSlug)\r\n\r\n const closeMenu = () => {\r\n const toggleButton = hamburgerRef.current?.querySelector(\r\n '[aria-expanded=\"true\"]'\r\n )\r\n toggleButton?.click()\r\n }\r\n\r\n const openSection = (sectionId: string) => {\r\n setActiveSectionName(sectionId)\r\n setSidebarSectionHidden(false)\r\n setUserOpenedSection(true)\r\n }\r\n\r\n useEffect(() => {\r\n setUserOpenedSection(false)\r\n }, [articleSlug])\r\n\r\n useEffect(() => {\r\n router.events?.on('routeChangeStart', closeMenu)\r\n router.events?.on('hashChangeStart', closeMenu)\r\n\r\n return () => {\r\n router.events?.off('routeChangeStart', closeMenu)\r\n router.events?.off('hashChangeStart', closeMenu)\r\n }\r\n }, [router.events])\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const isDocument = (sections: any, documentID: string) => {\r\n let isDoc = false\r\n\r\n if (Array.isArray(sections)) {\r\n isDoc = sections.find((section) => section.documentation === documentID)\r\n }\r\n\r\n return isDoc\r\n }\r\n\r\n updateOpenPage({ parentsArray, context })\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {hamburguerSections.map((section, id) => (\r\n 0\r\n ? styles.updatesContainer\r\n : styles.documentationContainer\r\n }\r\n key={id}\r\n data-cy=\"dropdown-menu-first-section\"\r\n >\r\n {section.map((card) => (\r\n \r\n \r\n {\r\n if (isDocument(sidebarDataMaster, card.id)) {\r\n openSection(card.id)\r\n } else {\r\n setActiveSectionName(card.id)\r\n }\r\n }}\r\n />\r\n \r\n {isDocument(sidebarDataMaster, card.id) ? (\r\n (\r\n \r\n )}\r\n sx={\r\n activeSectionName === card.id && showNestedSidebar\r\n ? styles.arrowIconActive\r\n : styles.arrowIcon\r\n }\r\n onClick={() => openSection(card.id)}\r\n />\r\n ) : null}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n {activeSectionName ? (\r\n \r\n section.documentation === activeSectionName\r\n )\r\n : null)}\r\n />\r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default HamburgerMenu\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst headerActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n marginLeft: 'auto',\r\n height: '100%',\r\n width: 'auto',\r\n minWidth: 'auto',\r\n maxWidth: 'none',\r\n flex: '0 0 auto',\r\n color: '#4A596B',\r\n 'button[role=\"presentation\"]': {\r\n display: ['flex', 'flex', 'flex', 'none'],\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n color: '#4A596B',\r\n border: 'none',\r\n borderLeft: 'none',\r\n outline: 'none',\r\n width: '56px',\r\n minWidth: '56px',\r\n maxWidth: '56px',\r\n height: '100%',\r\n padding: 0,\r\n background: 'transparent',\r\n cursor: 'pointer',\r\n flexShrink: 0,\r\n '> div': {\r\n color: '#4A596B',\r\n },\r\n svg: {\r\n color: '#4A596B',\r\n rect: {\r\n fill: '#4A596B',\r\n },\r\n },\r\n ':hover, :focus, :active': {\r\n color: '#4A596B',\r\n background: 'transparent',\r\n '> div': {\r\n color: '#4A596B',\r\n },\r\n svg: {\r\n color: '#4A596B',\r\n rect: {\r\n fill: '#4A596B',\r\n },\r\n },\r\n },\r\n },\r\n}\r\n\r\nconst drawerWidth = ['100%', '280px', '280px']\r\nconst panelWidth = ['100vw', '280px', '280px']\r\n\r\nconst hamburgerContainer: SxStyleProp = {\r\n display: ['flex', 'flex', 'flex', 'none'],\r\n position: 'fixed',\r\n top: ['5rem', 0, 0],\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n marginTop: 0,\r\n paddingBottom: 0,\r\n width: '100%',\r\n height: ['calc(100vh - 5rem)', '100vh', '100vh'],\r\n flexDirection: 'column',\r\n alignItems: ['stretch', 'flex-start', 'flex-start'],\r\n justifyContent: 'flex-start',\r\n backgroundColor: ['#FFFFFF', 'transparent', 'transparent'],\r\n zIndex: [9998, 10000, 10000],\r\n overflow: 'hidden',\r\n '.menuHidden': {\r\n transform: 'translateX(-100%)',\r\n },\r\n}\r\n\r\nconst backdrop: SxStyleProp = {\r\n display: ['none', 'block', 'block'],\r\n position: 'absolute',\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n backgroundColor: 'rgba(20, 32, 50, 0.45)',\r\n backdropFilter: 'blur(4px)',\r\n WebkitBackdropFilter: 'blur(4px)',\r\n cursor: 'pointer',\r\n}\r\n\r\nconst innerHambugerContainer: SxStyleProp = {\r\n padding: '0px',\r\n paddingY: 0,\r\n position: 'relative',\r\n zIndex: 1,\r\n overflowX: 'hidden',\r\n overflowY: 'hidden',\r\n width: drawerWidth,\r\n maxWidth: drawerWidth,\r\n height: '100%',\r\n flexShrink: 0,\r\n backgroundColor: '#FFFFFF',\r\n boxShadow: [\r\n 'none',\r\n '4px 0 24px rgba(20, 32, 50, 0.18)',\r\n '4px 0 24px rgba(20, 32, 50, 0.18)',\r\n ],\r\n}\r\n\r\nconst menuContainer: SxStyleProp = {\r\n display: 'flex',\r\n width: 'max-content',\r\n height: '100%',\r\n}\r\n\r\nconst cardContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: panelWidth,\r\n overflowY: 'scroll',\r\n height: ['calc(100vh - 5rem)', '100vh', '100vh'],\r\n paddingBottom: 'env(safe-area-inset-bottom, 0px)',\r\n}\r\n\r\nconst sideMenuContainer: SxStyleProp = {\r\n backgroundColor: '#ffff',\r\n height: ['calc(100vh - 5rem)', '100vh', '100vh'],\r\n width: panelWidth,\r\n overflow: 'hidden',\r\n transform: 'translate(0)',\r\n transition: 'transform .5s cubic-bezier(.4,0,.2,1)',\r\n}\r\n\r\nconst documentationContainer: SxStyleProp = {\r\n px: '8px',\r\n pt: ['12px', '24px', '24px'],\r\n pb: '12px',\r\n}\r\n\r\nconst updatesContainer: SxStyleProp = {\r\n px: '8px',\r\n py: '12px',\r\n borderRadius: '0px 0px 8px 8px',\r\n borderTop: '1px solid #E7E9EE',\r\n}\r\n\r\nconst innerCardContainer: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n gap: '8px',\r\n minHeight: '72px',\r\n width: '100%',\r\n maxWidth: '100%',\r\n overflow: 'hidden',\r\n borderRadius: '12px',\r\n px: '16px',\r\n py: '14px',\r\n ':hover, :active': {\r\n backgroundColor: '#F8F7FC',\r\n },\r\n}\r\n\r\nconst innerCardContent: SxStyleProp = {\r\n flex: 1,\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n}\r\n\r\nconst arrowIcon: SxStyleProp = {\r\n padding: '0',\r\n height: '40px',\r\n width: '40px',\r\n minWidth: '40px',\r\n flexShrink: 0,\r\n color: '#A1A8B3',\r\n}\r\n\r\nconst arrowIconActive: SxStyleProp = {\r\n ...arrowIcon,\r\n color: '#D71D55',\r\n}\r\n\r\nexport default {\r\n headerActions,\r\n menuContainer,\r\n cardContainer,\r\n sideMenuContainer,\r\n documentationContainer,\r\n updatesContainer,\r\n hamburgerContainer,\r\n backdrop,\r\n innerHambugerContainer,\r\n innerCardContainer,\r\n innerCardContent,\r\n arrowIcon,\r\n arrowIconActive,\r\n}\r\n","import Link from 'next/link.js'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport {\r\n cardContainer,\r\n cardTitle,\r\n cardDescription,\r\n titleContainer,\r\n} from './functions'\r\nimport styles from './styles'\r\nimport { MouseEventHandler } from 'react'\r\nimport { DataElement } from 'utils/typings/types'\r\n\r\nexport interface DocumentProps extends DataElement {\r\n title: string\r\n}\r\nexport interface CardProps extends DocumentProps {\r\n containerType: 'dropdown' | 'see-also' | 'mobile'\r\n onClick?: MouseEventHandler | undefined\r\n isExternalLink?: boolean\r\n}\r\nconst DocumentationCard = ({\r\n title,\r\n description,\r\n link,\r\n containerType,\r\n Icon,\r\n onClick,\r\n isExternalLink,\r\n}: CardProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {containerType === 'dropdown' ? (\r\n \r\n \r\n \r\n ) : containerType === 'see-also' ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {title}\r\n \r\n \r\n {description}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default DocumentationCard\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst cardContainer: SxStyleProp = {\r\n my: ['16px', '16px', '16px', '16px', '16px', '16px', '24px'],\r\n padding: '8px',\r\n cursor: 'pointer',\r\n ':active, :hover': {\r\n borderRadius: '4px',\r\n backgroundColor: '#F8F7FC',\r\n\r\n '.description': {\r\n color: 'muted.0',\r\n },\r\n },\r\n\r\n ':active .title': {\r\n color: '#0C1522',\r\n },\r\n\r\n ':hover .title': {\r\n color: '#000711',\r\n },\r\n}\r\n\r\nconst titleContainer: SxStyleProp = {\r\n alignItems: 'center',\r\n}\r\n\r\nconst dropdownIcon: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n width: '36px',\r\n height: '36px',\r\n borderRadius: '8px',\r\n backgroundColor: '#f8f7fc',\r\n transition: 'background-color 0.15s ease',\r\n}\r\n\r\nconst seeAlsoIcon: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n width: '32px',\r\n height: '32px',\r\n borderRadius: '8px',\r\n backgroundColor: '#F4F5F7',\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n ml: '8px',\r\n color: 'muted.0',\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n ml: '32px',\r\n fontSize: '16px',\r\n lineHeight: '18px',\r\n color: 'muted.1',\r\n}\r\n\r\nexport default {\r\n cardContainer,\r\n description,\r\n title,\r\n titleContainer,\r\n dropdownIcon,\r\n seeAlsoIcon,\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\nconst cardContainer = (containerType: string) => {\r\n const containerWidth =\r\n containerType === 'dropdown' ||\r\n containerType === 'mobile' ||\r\n containerType === 'see-also'\r\n ? '100%'\r\n : ['324px', '544px', '544px', '544px', '544px', '720px', '1400px']\r\n\r\n const textWidth =\r\n containerType === 'dropdown'\r\n ? '100%'\r\n : containerType === 'mobile'\r\n ? '100%'\r\n : ['276px', '496px', '496px', '496px', '496px', '672px', '1352px']\r\n\r\n const cardContainer: SxStyleProp = {\r\n ...styles.cardContainer,\r\n width: containerWidth,\r\n ...(containerType === 'mobile'\r\n ? {\r\n my: 0,\r\n padding: 0,\r\n borderRadius: 0,\r\n maxWidth: '100%',\r\n overflow: 'hidden',\r\n ':active, :hover': {\r\n borderRadius: 0,\r\n backgroundColor: 'transparent',\r\n },\r\n '.title': {\r\n minWidth: 0,\r\n width: '100%',\r\n },\r\n '.description': {\r\n width: '100%',\r\n maxWidth: '100%',\r\n },\r\n }\r\n : containerType === 'dropdown'\r\n ? {\r\n my: 0,\r\n padding: '12px',\r\n borderRadius: '8px',\r\n boxSizing: 'border-box',\r\n minWidth: 0,\r\n ':active, :hover': {\r\n borderRadius: '8px',\r\n backgroundColor: 'transparent',\r\n '.description': {\r\n color: '#142032',\r\n },\r\n },\r\n ':hover .title, :active .title': {\r\n color: '#142032',\r\n },\r\n '.title, .description': {\r\n width: '100%',\r\n },\r\n }\r\n : containerType === 'see-also'\r\n ? {\r\n my: 0,\r\n width: '100%',\r\n maxWidth: '100%',\r\n minWidth: 0,\r\n height: '100%',\r\n padding: '12px 14px',\r\n borderRadius: '8px',\r\n border: '1px solid #E7E9EE',\r\n boxSizing: 'border-box',\r\n transition:\r\n 'border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease',\r\n ':active, :hover': {\r\n borderRadius: '8px',\r\n borderColor: '#CCCED8',\r\n backgroundColor: '#F8F7FC',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.06)',\r\n '.description': {\r\n color: '#4A596B',\r\n },\r\n },\r\n ':hover .title, :active .title': {\r\n color: '#000711',\r\n },\r\n '.title, .description': {\r\n width: '100%',\r\n },\r\n }\r\n : {\r\n '.title, .description': {\r\n width: textWidth,\r\n },\r\n }),\r\n }\r\n\r\n return cardContainer\r\n}\r\n\r\nconst titleContainer = (containerType: string) => {\r\n const isStacked =\r\n containerType === 'dropdown' ||\r\n containerType === 'mobile' ||\r\n containerType === 'see-also'\r\n\r\n const titleContainer: SxStyleProp = {\r\n ...styles.titleContainer,\r\n marginBottom: isStacked ? 0 : '8px',\r\n ...(isStacked\r\n ? {\r\n alignItems: 'flex-start',\r\n gap: '12px',\r\n }\r\n : {}),\r\n }\r\n\r\n return titleContainer\r\n}\r\n\r\nconst cardTitle = (containerType: string) => {\r\n const titleAttributes =\r\n containerType === 'see-also'\r\n ? {\r\n ml: 0,\r\n fontSize: '15px',\r\n lineHeight: '22px',\r\n fontWeight: 500,\r\n color: '#142032',\r\n whiteSpace: 'normal',\r\n overflow: 'hidden',\r\n display: '-webkit-box',\r\n WebkitLineClamp: 2,\r\n WebkitBoxOrient: 'vertical',\r\n }\r\n : containerType === 'mobile'\r\n ? {\r\n ml: '0px',\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n color: '#4a596b',\r\n }\r\n : containerType === 'dropdown'\r\n ? {\r\n ml: 0,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n fontWeight: 500,\r\n color: '#142032',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n }\r\n : {\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n }\r\n\r\n const cardTitle: SxStyleProp = {\r\n ...styles.title,\r\n ...titleAttributes,\r\n }\r\n\r\n return cardTitle\r\n}\r\n\r\nconst cardDescription = (containerType: string) => {\r\n if (containerType === 'mobile') {\r\n const mobileDescription: SxStyleProp = {\r\n ...styles.description,\r\n ml: '0px',\r\n mt: '4px',\r\n fontSize: '13px',\r\n lineHeight: '18px',\r\n color: '#4A596B',\r\n overflowWrap: 'break-word',\r\n wordBreak: 'break-word',\r\n }\r\n return mobileDescription\r\n }\r\n\r\n if (containerType === 'dropdown') {\r\n const dropdownDescription: SxStyleProp = {\r\n ...styles.description,\r\n ml: 0,\r\n mt: '2px',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n color: '#4A596B',\r\n display: '-webkit-box',\r\n WebkitLineClamp: 2,\r\n WebkitBoxOrient: 'vertical',\r\n overflow: 'hidden',\r\n }\r\n return dropdownDescription\r\n }\r\n\r\n if (containerType === 'see-also') {\r\n const seeAlsoDescription: SxStyleProp = {\r\n ...styles.description,\r\n ml: 0,\r\n mt: '2px',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n color: '#5E6E84',\r\n }\r\n return seeAlsoDescription\r\n }\r\n\r\n return styles.description\r\n}\r\n\r\nexport { cardContainer, cardTitle, cardDescription, titleContainer }\r\n","import { Box, Flex } from '@vtex/brand-ui'\r\nimport { useContext, useEffect, useState, MouseEvent } from 'react'\r\nimport { useRouter } from 'next/router.js'\r\n\r\nimport SearchInput from 'components/search-input'\r\nimport SearchIcon from 'components/icons/search-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport interface MobileSearchProps {\r\n /** Called when the search modal opens, e.g. to close the hamburger menu. */\r\n onOpen?: () => void\r\n}\r\n\r\nconst MobileSearch = ({ onOpen }: MobileSearchProps) => {\r\n const router = useRouter()\r\n const { locale } = useContext(LibraryContext)\r\n const [isOpen, setIsOpen] = useState(false)\r\n\r\n const openLabel =\r\n messages[locale]['search_input.open_search'] ||\r\n messages[locale]['search_input.placeholder'] ||\r\n 'Search'\r\n\r\n const openModal = () => {\r\n onOpen?.()\r\n setIsOpen(true)\r\n }\r\n\r\n const closeModal = () => {\r\n setIsOpen(false)\r\n }\r\n\r\n useEffect(() => {\r\n if (!isOpen) return\r\n\r\n const html = document.documentElement\r\n const previousOverflow = html.style.overflow\r\n html.style.overflow = 'hidden'\r\n\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') closeModal()\r\n }\r\n window.addEventListener('keydown', onKeyDown)\r\n\r\n return () => {\r\n window.removeEventListener('keydown', onKeyDown)\r\n html.style.overflow = previousOverflow\r\n }\r\n }, [isOpen])\r\n\r\n useEffect(() => {\r\n const handleRouteChange = () => closeModal()\r\n router.events?.on('routeChangeStart', handleRouteChange)\r\n router.events?.on('hashChangeStart', handleRouteChange)\r\n return () => {\r\n router.events?.off('routeChangeStart', handleRouteChange)\r\n router.events?.off('hashChangeStart', handleRouteChange)\r\n }\r\n }, [router.events])\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {isOpen && (\r\n \r\n event.stopPropagation()}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default MobileSearch\r\n","import { Configure, InstantSearch } from 'react-instantsearch-dom'\r\nimport SearchBox from './search-box'\r\nimport Results from './results-box'\r\nimport { Box, Flex } from '@vtex/brand-ui'\r\nimport { useContext, useRef, useState } from 'react'\r\nimport useClickOutside from 'utils/hooks/useClickOutside'\r\nimport { searchClient, searchIndex } from 'utils/config/search-config'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport styles from './styles'\r\nimport { SearchInputVariant } from './types'\r\n\r\nexport type { SearchInputVariant }\r\n\r\nexport interface SearchInputProps {\r\n /** `modal` renders a full-width input with results in the document flow. */\r\n variant?: SearchInputVariant\r\n autoFocus?: boolean\r\n onClose?: () => void\r\n}\r\n\r\nexport default function SearchInput({\r\n variant = 'default',\r\n autoFocus = false,\r\n onClose,\r\n}: SearchInputProps) {\r\n const { locale } = useContext(LibraryContext)\r\n const isModal = variant === 'modal'\r\n const [focusOut, setfocusOut] = useState<{ modaltoggle: boolean }>({\r\n modaltoggle: true,\r\n })\r\n const resultsBox = useRef()\r\n useClickOutside(resultsBox, setfocusOut)\r\n\r\n const changeFocus = (value: boolean) => {\r\n setfocusOut({ modaltoggle: value })\r\n if (!value) onClose?.()\r\n }\r\n\r\n const searchBox = (\r\n \r\n )\r\n\r\n return (\r\n \r\n {searchClient.instantSearchConfigs && (\r\n \r\n )}\r\n {searchClient.useLanguageFilter && (\r\n \r\n )}\r\n {!searchClient.useLanguageFilter && }\r\n {isModal ? (\r\n \r\n {searchBox}\r\n \r\n \r\n \r\n \r\n ) : (\r\n setfocusOut({ modaltoggle: true })}\r\n ref={resultsBox}\r\n >\r\n {searchBox}\r\n {focusOut.modaltoggle && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import {\r\n useRef,\r\n KeyboardEvent,\r\n MouseEvent,\r\n useContext,\r\n useEffect,\r\n useState,\r\n} from 'react'\r\nimport { useRouter } from 'next/router.js'\r\nimport { Flex, Box } from '@vtex/brand-ui'\r\nimport { connectSearchBox } from 'react-instantsearch-dom'\r\nimport { SearchBoxProvided } from 'react-instantsearch-core'\r\n\r\nimport SearchIcon from 'components/icons/search-icon'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport styles from './styles'\r\nimport { messages } from 'utils/get-message'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { SearchInputVariant } from './types'\r\n\r\ninterface SearchBoxProps extends SearchBoxProvided {\r\n changeFocus: (value: boolean) => void\r\n autoFocus?: boolean\r\n variant?: SearchInputVariant\r\n}\r\n\r\nconst containerStyle = (variant: SearchInputVariant) =>\r\n variant === 'modal' ? styles.searchContainerModal : styles.searchContainer\r\n\r\nconst iconStyle = (variant: SearchInputVariant) =>\r\n variant === 'modal' ? styles.searchIconModal : styles.searchIcon\r\n\r\nconst inputStyle = (variant: SearchInputVariant) =>\r\n variant === 'modal' ? styles.searchInputModal : styles.searchInput\r\n\r\nconst SearchBoxComponent = ({\r\n currentRefinement,\r\n refine,\r\n changeFocus,\r\n autoFocus = false,\r\n variant = 'default',\r\n}: SearchBoxProps) => {\r\n const router = useRouter()\r\n const inputRef = useRef(null)\r\n const { locale } = useContext(LibraryContext)\r\n const [isMac, setIsMac] = useState(false)\r\n\r\n useEffect(() => {\r\n if (autoFocus) inputRef.current?.focus()\r\n }, [autoFocus])\r\n\r\n useEffect(() => {\r\n setIsMac(\r\n /Mac|iPhone|iPad|iPod/.test(\r\n navigator.platform || navigator.userAgent || ''\r\n )\r\n )\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (variant === 'modal') return\r\n\r\n const onKeyDown = (event: globalThis.KeyboardEvent) => {\r\n if (!(event.metaKey || event.ctrlKey) || event.key.toLowerCase() !== 'k') {\r\n return\r\n }\r\n\r\n const target = event.target as HTMLElement | null\r\n if (\r\n target &&\r\n (target.tagName === 'TEXTAREA' || target.isContentEditable)\r\n ) {\r\n return\r\n }\r\n\r\n const input = inputRef.current\r\n if (!input || input.offsetParent === null) return\r\n\r\n event.preventDefault()\r\n input.focus()\r\n changeFocus(true)\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [variant, changeFocus])\r\n\r\n const handleClick = () => {\r\n if (inputRef.current != null) inputRef.current.focus()\r\n }\r\n\r\n const keyPressed = (e: KeyboardEvent) => {\r\n if (e.key === 'Escape') {\r\n changeFocus(false)\r\n inputRef.current?.blur()\r\n return\r\n }\r\n if (e.key === 'Enter') {\r\n router.push({\r\n pathname: '/search',\r\n query: { keyword: inputRef.current?.value },\r\n })\r\n inputRef.current?.blur()\r\n changeFocus(false)\r\n }\r\n }\r\n\r\n const handleClear = (e: MouseEvent) => {\r\n e.stopPropagation()\r\n refine('')\r\n inputRef.current?.focus()\r\n }\r\n\r\n return (\r\n \r\n \r\n keyPressed(e)}\r\n onChange={(e) => refine(e.currentTarget.value)}\r\n />\r\n {currentRefinement ? (\r\n \r\n \r\n \r\n ) : variant === 'default' ? (\r\n \r\n {isMac ? (\r\n \r\n ⌘\r\n \r\n ) : (\r\n \r\n Ctrl\r\n \r\n )}\r\n \r\n K\r\n \r\n \r\n ) : null}\r\n \r\n )\r\n}\r\n\r\nconst SearchBox = connectSearchBox(SearchBoxComponent)\r\n\r\nexport default SearchBox\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst resultsOuterContainer: SxStyleProp = {\r\n position: 'relative',\r\n}\r\n\r\nconst searchWidth = ['288px', '458px', '288px', '288px', '416px', '544px']\r\nconst keyboardHintsDisplay = ['none', 'flex', 'flex', 'none', 'flex', 'flex']\r\n\r\nconst resultsInnerContainer: SxStyleProp = {\r\n top: '4px',\r\n position: 'absolute',\r\n width: searchWidth,\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n background: '#FFFFFF',\r\n boxShadow: '0 12px 32px rgba(20, 32, 50, 0.12)',\r\n overflow: 'hidden',\r\n zIndex: 20,\r\n}\r\n\r\nconst resultsBox: SxStyleProp = {\r\n padding: '8px',\r\n maxHeight: 'min(60vh, 420px)',\r\n overflowY: 'auto',\r\n}\r\n\r\nconst resultsFooter = (hasSeeAll: boolean): SxStyleProp => ({\r\n display: hasSeeAll ? 'flex' : keyboardHintsDisplay,\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n gap: '8px 12px',\r\n padding: ['8px 12px', '8px 16px'],\r\n borderTop: '1px solid #E7E9EE',\r\n background: '#FAFAFB',\r\n})\r\n\r\nconst resultsFooterModal = (hasSeeAll: boolean): SxStyleProp => ({\r\n display: hasSeeAll ? 'flex' : 'none',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n padding: '4px 8px 8px',\r\n borderTop: 'none',\r\n background: 'transparent',\r\n})\r\n\r\nconst keyboardHints: SxStyleProp = {\r\n display: keyboardHintsDisplay,\r\n alignItems: 'center',\r\n gap: '12px',\r\n flexWrap: 'wrap',\r\n flex: '1 1 200px',\r\n minWidth: 0,\r\n}\r\n\r\nconst keyboardHint: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '4px',\r\n color: 'muted.1',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n whiteSpace: 'nowrap',\r\n}\r\n\r\nconst kbd: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minWidth: '20px',\r\n height: '20px',\r\n px: '5px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n background: '#FFFFFF',\r\n boxShadow: '0 1px 0 #E7E9EE',\r\n fontSize: '11px',\r\n fontFamily: 'inherit',\r\n color: '#4A596B',\r\n lineHeight: '20px',\r\n}\r\n\r\nconst seeAllCaret: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n color: '#D71D55',\r\n flexShrink: 0,\r\n}\r\n\r\nconst seeAll: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: [\r\n 'space-between',\r\n 'flex-start',\r\n 'flex-start',\r\n 'space-between',\r\n 'flex-start',\r\n ],\r\n gap: '4px',\r\n width: ['100%', 'auto', 'auto', '100%', 'auto'],\r\n maxWidth: '100%',\r\n boxSizing: 'border-box',\r\n ml: ['0', 'auto', 'auto', '0', 'auto'],\r\n flex: '0 1 auto',\r\n minWidth: 0,\r\n padding: '6px 10px',\r\n borderRadius: '6px',\r\n color: '#D71D55',\r\n fontSize: '13px',\r\n fontWeight: '600',\r\n lineHeight: '16px',\r\n cursor: 'pointer',\r\n whiteSpace: ['normal', 'nowrap', 'nowrap', 'normal', 'nowrap'],\r\n '& p': {\r\n minWidth: 0,\r\n flex: [1, 'none', 'none', 1, 'none'],\r\n },\r\n ':hover, &[data-active=\"true\"]': {\r\n background: '#F8E3EC',\r\n },\r\n}\r\n\r\nconst hitBox: SxStyleProp = {\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n padding: '10px 12px',\r\n cursor: 'pointer',\r\n borderRadius: '8px',\r\n a: {\r\n minWidth: 0,\r\n flex: 1,\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n },\r\n '.hit-actions': {\r\n opacity: [1, 0],\r\n },\r\n ':hover, &[data-active=\"true\"]': {\r\n backgroundColor: '#F8F7FC',\r\n '.hit-content-title': {\r\n color: '#000711',\r\n },\r\n '.hit-icon': {\r\n '> path': {\r\n stroke: '#000711',\r\n },\r\n },\r\n '.hit-icon-wrap': {\r\n backgroundColor: '#EDEAF6',\r\n },\r\n '.hit-actions': {\r\n opacity: 1,\r\n },\r\n },\r\n}\r\n\r\nconst hitLink: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n minWidth: 0,\r\n flex: 1,\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n pr: ['0', '64px'],\r\n}\r\n\r\nconst hitIconWrap: SxStyleProp = {\r\n flexShrink: 0,\r\n width: '32px',\r\n height: '32px',\r\n borderRadius: '8px',\r\n backgroundColor: '#F4F2FA',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n mr: '12px',\r\n mt: '1px',\r\n}\r\n\r\nconst hitIcon: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n color: '#4A596B',\r\n}\r\n\r\nconst hitText: SxStyleProp = {\r\n minWidth: 0,\r\n flex: 1,\r\n}\r\n\r\nconst hitContentContainer: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n}\r\n\r\nconst snippetText: SxStyleProp = {\r\n overflowWrap: 'break-word',\r\n wordBreak: 'break-word',\r\n overflow: 'hidden',\r\n display: '-webkit-box',\r\n WebkitBoxOrient: 'vertical',\r\n}\r\n\r\nconst hitTitle: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n minWidth: 0,\r\n color: '#142032',\r\n fontSize: ['14px', '15px'],\r\n fontWeight: '600',\r\n lineHeight: ['20px', '22px'],\r\n}\r\n\r\nconst hitTitleText: SxStyleProp = {\r\n minWidth: 0,\r\n flex: 1,\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n}\r\n\r\nconst httpMethod: SxStyleProp = {\r\n mr: '8px',\r\n flexShrink: 0,\r\n alignSelf: 'center',\r\n}\r\n\r\nconst hitContent: SxStyleProp = {\r\n color: 'muted.0',\r\n fontSize: ['13px', '16px'],\r\n lineHeight: ['18px', '22px'],\r\n width: '100%',\r\n minWidth: 0,\r\n ...snippetText,\r\n WebkitLineClamp: [3, 4],\r\n}\r\n\r\nconst hitContentSmall: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: '13px',\r\n lineHeight: '18px',\r\n width: '100%',\r\n minWidth: 0,\r\n mt: '2px',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n}\r\n\r\nconst hitActions: SxStyleProp = {\r\n position: ['static', 'absolute'],\r\n top: '8px',\r\n right: '8px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '4px',\r\n ml: ['8px', 0],\r\n flexShrink: 0,\r\n}\r\n\r\nconst hitActionButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '28px',\r\n height: '28px',\r\n padding: 0,\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '6px',\r\n background: '#FFFFFF',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n ':hover': {\r\n background: '#FFFFFF',\r\n borderColor: '#C7CDD6',\r\n color: '#142032',\r\n },\r\n}\r\n\r\nconst hitActionButtonCopied: SxStyleProp = {\r\n ...hitActionButton,\r\n borderColor: '#8CD2A8',\r\n color: '#36875A',\r\n background: '#F0FAF4',\r\n}\r\n\r\nconst alignCenter: SxStyleProp = {\r\n alignItems: 'center',\r\n}\r\n\r\nconst hitBreadcrumbs: SxStyleProp = {\r\n alignItems: 'center',\r\n minWidth: 0,\r\n mt: '4px',\r\n}\r\n\r\nconst hitBreadCrumb: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n}\r\n\r\nconst hitBreadCrumbIn: SxStyleProp = {\r\n ...hitBreadCrumb,\r\n minWidth: 'fit-content',\r\n}\r\n\r\nconst hitBreadCrumbArrow: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n color: 'muted.2',\r\n flexShrink: 0,\r\n}\r\n\r\nconst searchInput: SxStyleProp = {\r\n width: '100%',\r\n background: 'none',\r\n border: 'none',\r\n outline: 'none',\r\n color: '#142032',\r\n fontSize: ['14px'],\r\n flex: 1,\r\n minWidth: 0,\r\n}\r\n\r\nconst searchIcon: SxStyleProp = {\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n width: '16px',\r\n mr: '8px',\r\n flex: 0,\r\n maxWidth: 'fit-content',\r\n color: '#5E6E84',\r\n path: {\r\n fill: '#5E6E84',\r\n },\r\n}\r\n\r\nconst searchContainer: SxStyleProp = {\r\n paddingLeft: '12px',\r\n paddingRight: '8px',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n background: '#FFFFFF',\r\n width: searchWidth,\r\n height: '40px',\r\n boxSizing: 'border-box',\r\n borderRadius: '8px',\r\n border: '1px solid #E7E9EE',\r\n transition:\r\n 'background 0.2s ease-out, border-color 0.2s ease-out, box-shadow 0.2s ease-out',\r\n cursor: 'pointer',\r\n 'input[type=\"search\"]::-webkit-search-cancel-button': {\r\n display: 'none',\r\n },\r\n 'input[type=\"search\"]::-webkit-search-decoration': {\r\n display: 'none',\r\n },\r\n ':hover': {\r\n borderColor: '#C7CDD6',\r\n },\r\n ':focus-within': {\r\n background: '#FFFFFF',\r\n borderColor: '#E31C58',\r\n boxShadow: '0 0 0 3px rgba(227, 28, 88, 0.16)',\r\n '[data-search-shortcut]': {\r\n display: 'none',\r\n },\r\n },\r\n}\r\n\r\nconst shortcutHint: SxStyleProp = {\r\n display: ['none', 'flex', 'none', 'none', 'flex', 'flex'],\r\n alignItems: 'center',\r\n gap: '4px',\r\n ml: '8px',\r\n flexShrink: 0,\r\n pointerEvents: 'none',\r\n}\r\n\r\nconst shortcutKbd: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minWidth: '20px',\r\n height: '20px',\r\n px: '5px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n background: '#FAFAFB',\r\n boxShadow: '0 1px 0 #E7E9EE',\r\n fontSize: '11px',\r\n fontFamily: 'inherit',\r\n color: '#4A596B',\r\n lineHeight: '20px',\r\n}\r\n\r\nconst clearButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '24px',\r\n height: '24px',\r\n ml: '4px',\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: '50%',\r\n background: 'transparent',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n flexShrink: 0,\r\n ':hover': {\r\n background: '#EDEDED',\r\n color: '#142032',\r\n },\r\n}\r\n\r\nconst noResults: SxStyleProp = {\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n padding: '20px 12px',\r\n color: 'muted.1',\r\n textAlign: 'center',\r\n}\r\n\r\nconst searchContainerModal: SxStyleProp = {\r\n paddingLeft: '16px',\r\n paddingRight: '12px',\r\n alignItems: 'center',\r\n background: 'transparent',\r\n width: '100%',\r\n minHeight: '56px',\r\n borderRadius: 0,\r\n cursor: 'text',\r\n 'input[type=\"search\"]::-webkit-search-cancel-button': {\r\n display: 'none',\r\n },\r\n 'input[type=\"search\"]::-webkit-search-decoration': {\r\n display: 'none',\r\n },\r\n ':hover': {\r\n border: 'none',\r\n },\r\n ':focus-within': {\r\n background: 'transparent',\r\n border: 'none',\r\n boxShadow: 'none',\r\n },\r\n}\r\n\r\nconst searchIconModal: SxStyleProp = {\r\n minWidth: '18px',\r\n minHeight: '18px',\r\n width: '18px',\r\n height: '18px',\r\n mr: '12px',\r\n flex: 0,\r\n color: '#A1A8B3',\r\n path: {\r\n fill: '#A1A8B3',\r\n },\r\n}\r\n\r\nconst searchInputModal = {\r\n width: '100%',\r\n background: 'none',\r\n border: 'none',\r\n outline: 'none',\r\n color: '#142032',\r\n fontSize: '16px',\r\n lineHeight: '24px',\r\n flex: 1,\r\n minWidth: 0,\r\n}\r\n\r\nconst modalRoot: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flex: 1,\r\n minHeight: 0,\r\n maxHeight: 'min(80vh, 640px)',\r\n}\r\n\r\nconst modalSearchBox: SxStyleProp = {\r\n flexShrink: 0,\r\n borderBottom: '1px solid #F0F0F0',\r\n}\r\n\r\nconst modalResults: SxStyleProp = {\r\n flex: 1,\r\n minHeight: 0,\r\n overflowY: 'auto',\r\n}\r\n\r\nconst resultsOuterContainerModal: SxStyleProp = {\r\n position: 'relative',\r\n height: '100%',\r\n}\r\n\r\nconst resultsInnerContainerModal: SxStyleProp = {\r\n position: 'relative',\r\n top: 0,\r\n width: '100%',\r\n border: 'none',\r\n borderRadius: 0,\r\n background: 'transparent',\r\n boxShadow: 'none',\r\n overflow: 'visible',\r\n}\r\n\r\nconst resultsBoxModal: SxStyleProp = {\r\n padding: '8px',\r\n maxHeight: 'none',\r\n overflowY: 'visible',\r\n}\r\n\r\nconst hitBoxModal: SxStyleProp = {\r\n position: 'relative',\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n padding: '10px 12px',\r\n cursor: 'pointer',\r\n borderRadius: '12px',\r\n a: {\r\n minWidth: 0,\r\n flex: 1,\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n },\r\n ':hover, &[data-active=\"true\"]': {\r\n backgroundColor: '#F4F4F5',\r\n '.hit-content-title': {\r\n color: '#142032',\r\n },\r\n },\r\n}\r\n\r\nconst hitLinkModal: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n minWidth: 0,\r\n flex: 1,\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n pr: 0,\r\n}\r\n\r\nconst hitIconWrapModal: SxStyleProp = {\r\n flexShrink: 0,\r\n width: '24px',\r\n height: '24px',\r\n borderRadius: 0,\r\n backgroundColor: 'transparent',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n mr: '10px',\r\n mt: '2px',\r\n}\r\n\r\nconst hitIconModal: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n color: '#8A8A8A',\r\n}\r\n\r\nconst hitTitleModal: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n minWidth: 0,\r\n color: '#142032',\r\n fontSize: '15px',\r\n fontWeight: '600',\r\n lineHeight: '22px',\r\n}\r\n\r\nconst hitContentHighlighted: SxStyleProp = {\r\n background: '#F8E3EC',\r\n color: '#142032',\r\n borderRadius: '3px',\r\n padding: '0 2px',\r\n fontWeight: '600',\r\n display: 'inline',\r\n}\r\n\r\nexport default {\r\n resultsOuterContainer,\r\n resultsInnerContainer,\r\n resultsBox,\r\n resultsFooter,\r\n resultsFooterModal,\r\n keyboardHints,\r\n keyboardHint,\r\n kbd,\r\n seeAll,\r\n seeAllCaret,\r\n hitBox,\r\n hitLink,\r\n hitIconWrap,\r\n hitIcon,\r\n hitText,\r\n hitContentContainer,\r\n hitTitle,\r\n hitTitleText,\r\n httpMethod,\r\n hitContent,\r\n hitContentSmall,\r\n hitActions,\r\n hitActionButton,\r\n hitActionButtonCopied,\r\n hitBreadcrumbs,\r\n hitBreadCrumb,\r\n hitBreadCrumbIn,\r\n hitBreadCrumbArrow,\r\n searchInput,\r\n searchIcon,\r\n searchContainer,\r\n shortcutHint,\r\n shortcutKbd,\r\n searchContainerModal,\r\n searchIconModal,\r\n searchInputModal,\r\n clearButton,\r\n alignCenter,\r\n noResults,\r\n hitContentHighlighted,\r\n modalRoot,\r\n modalSearchBox,\r\n modalResults,\r\n resultsOuterContainerModal,\r\n resultsInnerContainerModal,\r\n resultsBoxModal,\r\n hitBoxModal,\r\n hitLinkModal,\r\n hitIconWrapModal,\r\n hitIconModal,\r\n hitTitleModal,\r\n}\r\n","import { useRouter } from 'next/router.js'\r\nimport Link from 'next/link.js'\r\nimport { useContext, useEffect, useState, MouseEvent } from 'react'\r\nimport {\r\n connectStateResults,\r\n connectHitInsights,\r\n} from 'react-instantsearch-dom'\r\nimport {\r\n Hit,\r\n StateResultsProvided,\r\n WrappedInsightsClient,\r\n} from 'react-instantsearch-core'\r\nimport aa from 'search-insights'\r\nimport { Box, Flex, IconCaret, Text } from '@vtex/brand-ui'\r\n\r\nimport {\r\n getIconFromSection,\r\n getRelativeURL,\r\n getSearchBreadcrumbs,\r\n getSearchHitMethod,\r\n} from 'utils/search-utils'\r\nimport CustomHighlight, { HighlightQuery } from './customHighlight'\r\nimport styles from './styles'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport CopyIcon from 'components/icons/copy-icon'\r\nimport ExternalLinkIcon from 'components/icons/external-link-icon'\r\nimport PaperIcon from 'components/icons/paper-icon'\r\nimport MethodCategory from 'components/method-category'\r\nimport { SearchInputVariant } from './types'\r\n\r\nconst VISIBLE_HITS = 7\r\nconst VISIBLE_HITS_MODAL = 5\r\n\r\ninterface HitProps {\r\n hit: Hit\r\n insights: WrappedInsightsClient\r\n query?: string\r\n isActive?: boolean\r\n copied?: boolean\r\n variant?: SearchInputVariant\r\n onCopy: (event: MouseEvent, url: string, objectID: string) => void\r\n onOpenNewTab: (event: MouseEvent, url: string) => void\r\n onMouseEnter: () => void\r\n}\r\n\r\ninterface HitsBoxProps extends StateResultsProvided {\r\n changeFocus: (value: boolean) => void\r\n variant?: SearchInputVariant\r\n}\r\n\r\nconst Hit2 = ({\r\n hit,\r\n insights,\r\n query,\r\n isActive,\r\n copied,\r\n variant = 'default',\r\n onCopy,\r\n onOpenNewTab,\r\n onMouseEnter,\r\n}: HitProps) => {\r\n const { sidebarSections, sidebarDataMaster, locale } =\r\n useContext(LibraryContext)\r\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype) || PaperIcon\r\n const title = typeof hit.doctitle === 'string' ? hit.doctitle : ''\r\n const relativeUrl = getRelativeURL(hit.url)\r\n const breadcrumbs = getSearchBreadcrumbs({\r\n hit,\r\n navigation: sidebarDataMaster,\r\n sections: sidebarSections,\r\n locale,\r\n })\r\n const isModal = variant === 'modal'\r\n const method = getSearchHitMethod(hit)\r\n\r\n return (\r\n \r\n \r\n \r\n insights('clickedObjectIDsAfterSearch', {\r\n eventName: 'Search in top bar',\r\n objectIDs: [hit.objectID],\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {title ? (\r\n \r\n {method ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n ) : null}\r\n {!isModal && hit.content ? (\r\n \r\n ) : null}\r\n {typeof hit.doctype === 'string' && (\r\n \r\n {isModal ? (\r\n (breadcrumbs.length\r\n ? breadcrumbs\r\n : [String(hit.doctype)]\r\n ).map((filter: string, index: number) => (\r\n \r\n {index > 0 && (\r\n \r\n )}\r\n \r\n {filter || hit.doctype}\r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n \r\n {`${messages[locale]['search_card.in'] || 'In'} ${\r\n breadcrumbs[0] || hit.doctype\r\n }`}\r\n \r\n {breadcrumbs\r\n .slice(1)\r\n .map((filter: string, index: number) => (\r\n \r\n \r\n {filter}\r\n \r\n ))}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {!isModal && (\r\n \r\n \r\n onCopy(event, relativeUrl, hit.objectID)\r\n }\r\n onMouseDown={(event: MouseEvent) => event.preventDefault()}\r\n >\r\n \r\n \r\n onOpenNewTab(event, relativeUrl)}\r\n onMouseDown={(event: MouseEvent) => event.preventDefault()}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst HitWithInsights = connectHitInsights(aa)(Hit2) as any\r\n\r\nconst HitsBox = connectStateResults(\r\n ({ searchState, searchResults, changeFocus, variant = 'default' }) => {\r\n const router = useRouter()\r\n const { locale } = useContext(LibraryContext)\r\n const [activeIndex, setActiveIndex] = useState(-1)\r\n const [copiedId, setCopiedId] = useState(null)\r\n const isModal = variant === 'modal'\r\n const maxHits = isModal ? VISIBLE_HITS_MODAL : VISIBLE_HITS\r\n\r\n const visibleHits = searchResults\r\n ? searchResults.hits.slice(0, maxHits)\r\n : []\r\n const hasSeeAll = Boolean(\r\n searchResults && searchResults.hits.length > maxHits\r\n )\r\n const itemCount = visibleHits.length + (hasSeeAll ? 1 : 0)\r\n\r\n const seeAllSubmit = (keyword: string) => {\r\n router.push({\r\n pathname: '/search',\r\n query: { keyword },\r\n })\r\n changeFocus(false)\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const setQueryIDAndPosition = (hit: Hit, index: number): any => {\r\n return {\r\n ...hit,\r\n __queryID: searchResults.queryID || '',\r\n __position: searchResults.hitsPerPage * searchResults.page + index + 1,\r\n }\r\n }\r\n\r\n const handleCopy = async (\r\n event: MouseEvent,\r\n url: string,\r\n objectID: string\r\n ) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n try {\r\n await navigator.clipboard.writeText(`${window.location.origin}${url}`)\r\n setCopiedId(objectID)\r\n } catch {\r\n setCopiedId(null)\r\n }\r\n }\r\n\r\n const handleOpenNewTab = (event: MouseEvent, url: string) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n window.open(url, '_blank', 'noopener,noreferrer')\r\n }\r\n\r\n useEffect(() => {\r\n setActiveIndex(-1)\r\n }, [searchState.query])\r\n\r\n useEffect(() => {\r\n if (!copiedId) return\r\n const timeout = window.setTimeout(() => setCopiedId(null), 2000)\r\n return () => window.clearTimeout(timeout)\r\n }, [copiedId])\r\n\r\n useEffect(() => {\r\n const activeHit = document.querySelector('[data-active=\"true\"]')\r\n activeHit?.scrollIntoView({ block: 'nearest' })\r\n }, [activeIndex])\r\n\r\n useEffect(() => {\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') {\r\n changeFocus(false)\r\n return\r\n }\r\n\r\n if (!itemCount) return\r\n\r\n if (event.key === 'ArrowDown') {\r\n event.preventDefault()\r\n setActiveIndex((current) => (current + 1) % itemCount)\r\n } else if (event.key === 'ArrowUp') {\r\n event.preventDefault()\r\n setActiveIndex((current) =>\r\n current <= 0 ? itemCount - 1 : current - 1\r\n )\r\n } else if (event.key === 'Enter' && activeIndex >= 0) {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n if (hasSeeAll && activeIndex === visibleHits.length) {\r\n seeAllSubmit(searchState.query || '')\r\n return\r\n }\r\n const hit = visibleHits[activeIndex]\r\n if (hit) {\r\n router.push(getRelativeURL(hit.url))\r\n changeFocus(false)\r\n }\r\n }\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown, true)\r\n return () => window.removeEventListener('keydown', onKeyDown, true)\r\n }, [\r\n activeIndex,\r\n changeFocus,\r\n hasSeeAll,\r\n itemCount,\r\n router,\r\n searchState.query,\r\n visibleHits,\r\n ])\r\n\r\n if (isModal && !searchState.query) return null\r\n\r\n return (\r\n <>\r\n {searchResults && (\r\n \r\n \r\n \r\n {visibleHits.map((searchResult, index) => (\r\n changeFocus(false)}\r\n >\r\n setActiveIndex(index)}\r\n />\r\n \r\n ))}\r\n \r\n {searchResults.hits.length > 0 && (\r\n \r\n {!isModal && (\r\n \r\n \r\n \r\n ↑\r\n \r\n \r\n ↓\r\n \r\n \r\n {messages[locale]['search_input.navigate'] ||\r\n 'Navigate'}\r\n \r\n \r\n \r\n \r\n ↵\r\n \r\n \r\n {messages[locale]['search_input.open'] || 'Open'}\r\n \r\n \r\n \r\n \r\n esc\r\n \r\n \r\n {messages[locale]['search_input.close'] || 'Close'}\r\n \r\n \r\n \r\n )}\r\n {hasSeeAll && (\r\n setActiveIndex(visibleHits.length)}\r\n onClick={() => seeAllSubmit(searchState.query || '')}\r\n >\r\n \r\n {messages[locale]['search_input.see_all'] ||\r\n 'See all results'}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {!searchResults.hits.length && (\r\n \r\n \r\n {messages[locale]['search_input.empty'] ||\r\n 'No results found. Try different search terms.'}\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n )\r\n }\r\n)\r\n\r\nexport default HitsBox\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst APIGuidesIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default APIGuidesIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst APIReferenceIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default APIReferenceIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst AppDevelopmentIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default AppDevelopmentIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ReleaseNotesIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default ReleaseNotesIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst StorefrontDevelopmentIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default StorefrontDevelopmentIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst VTEXIOAppsIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default VTEXIOAppsIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst TroubleshootingIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default TroubleshootingIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst AddedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default AddedIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst DeprecatedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default DeprecatedIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst FixedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default FixedIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ImprovedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default ImprovedIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst RemovedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default RemovedIcon\r\n","import { Hit } from 'react-instantsearch-core'\r\n\r\nimport APIGuidesIcon from 'components/icons/api-guides-icon'\r\nimport APIReferenceIcon from 'components/icons/api-reference-icon'\r\nimport AppDevelopmentIcon from 'components/icons/app-development-icon'\r\nimport ReleaseNotesIcon from 'components/icons/release-notes-icon'\r\nimport StorefrontDevelopmentIcon from 'components/icons/storefront-development-icon'\r\nimport VTEXIOAppsIcon from 'components/icons/vtex-io-apps-icon'\r\nimport TroubleshootingIcon from 'components/icons/troubleshooting-icon'\r\nimport { IconComponent, MethodType, Section } from './typings/types'\r\nimport AddedIcon from 'components/icons/added-icon'\r\nimport DeprecatedIcon from 'components/icons/deprecated-icon'\r\nimport FixedIcon from 'components/icons/fixed-icon'\r\nimport ImprovedIcon from 'components/icons/improved-icon'\r\nimport RemovedIcon from 'components/icons/removed-icon'\r\n\r\nexport const getBreadcrumbs = (hit: Hit) => {\r\n const breadcrumbs: string[] = []\r\n if (hit.doctype === 'API Reference' && hit.doccategory)\r\n breadcrumbs.push(hit.doccategory)\r\n breadcrumbs.push(hit.doctitle)\r\n return breadcrumbs\r\n}\r\n\r\nexport const getRelativeURL = (url: string) => {\r\n const relativeURL = url.replace(/^(?:\\/\\/|[^/]+)*\\//, '')\r\n return '/' + relativeURL\r\n}\r\n\r\nconst HTTP_METHODS: readonly MethodType[] = [\r\n 'POST',\r\n 'GET',\r\n 'PUT',\r\n 'DELETE',\r\n 'PATCH',\r\n]\r\n\r\nconst isMethodType = (value: string): value is MethodType =>\r\n (HTTP_METHODS as readonly string[]).includes(value)\r\n\r\n/** HTTP method badge for API Reference hits, matching the search results page. */\r\nexport const getSearchHitMethod = (hit: Hit): MethodType | undefined => {\r\n const raw = typeof hit.method === 'string' ? hit.method.toUpperCase() : ''\r\n if (isMethodType(raw)) return raw\r\n\r\n const url = typeof hit.url === 'string' ? hit.url : ''\r\n const hash = url.includes('#') ? url.slice(url.indexOf('#') + 1) : ''\r\n const fromHash = hash.split('-')[0]?.toUpperCase() || ''\r\n if (isMethodType(fromHash)) return fromHash\r\n\r\n return undefined\r\n}\r\n\r\n/** Display cap for tab counts; values at or above this render as \"999+\". */\r\nexport const HYBRID_SEARCH_COUNT_CAP = 1000\r\n\r\nexport function formatSearchTabCount(\r\n count: number | undefined\r\n): string | undefined {\r\n if (count === undefined) return undefined\r\n if (count >= HYBRID_SEARCH_COUNT_CAP) return '999+'\r\n return String(count)\r\n}\r\n\r\ninterface IconsI {\r\n name: string\r\n Icon: IconComponent\r\n}\r\n\r\nconst iconsMap: IconsI[] = [\r\n {\r\n Icon: APIGuidesIcon,\r\n name: 'Guides',\r\n },\r\n {\r\n Icon: APIReferenceIcon,\r\n name: 'API Reference',\r\n },\r\n {\r\n Icon: AppDevelopmentIcon,\r\n name: 'App Development',\r\n },\r\n {\r\n Icon: StorefrontDevelopmentIcon,\r\n name: 'Storefront Development',\r\n },\r\n {\r\n Icon: VTEXIOAppsIcon,\r\n name: 'VTEX IO Apps',\r\n },\r\n {\r\n Icon: TroubleshootingIcon,\r\n name: 'Troubleshooting',\r\n },\r\n {\r\n Icon: ReleaseNotesIcon,\r\n name: 'Release Notes',\r\n },\r\n]\r\n\r\nexport const getIcon = (name: string) => {\r\n return iconsMap.find((icon) => icon.name === name)?.Icon\r\n}\r\n\r\nexport const getIconFromSection = (sections: Section[][], id: string) => {\r\n return sections.flat().find((section) => section.id === id)?.Icon\r\n}\r\n\r\nexport type ActionType =\r\n | 'added'\r\n | 'deprecated'\r\n | 'fixed'\r\n | 'improved'\r\n | 'removed'\r\nexport interface Action {\r\n type: ActionType\r\n title: string\r\n Icon: IconComponent\r\n}\r\n\r\nconst actions: Action[] = [\r\n {\r\n type: 'added',\r\n title: 'Added',\r\n Icon: AddedIcon,\r\n },\r\n {\r\n type: 'deprecated',\r\n title: 'Deprecated',\r\n Icon: DeprecatedIcon,\r\n },\r\n {\r\n type: 'fixed',\r\n title: 'Fixed',\r\n Icon: FixedIcon,\r\n },\r\n {\r\n type: 'improved',\r\n title: 'Improved',\r\n Icon: ImprovedIcon,\r\n },\r\n {\r\n type: 'removed',\r\n title: 'Removed',\r\n Icon: RemovedIcon,\r\n },\r\n]\r\n\r\nexport const getAction = (actionType: ActionType): Action => {\r\n return actions.find((action) => action.type === actionType) as Action\r\n}\r\n\r\nexport const getTitleById = (sections: Section[][], id: string) => {\r\n return sections.flat().find((item) => item.id === id)?.title || id\r\n}\r\n\r\ntype LocalizedField = string | { en: string; pt: string; es: string }\r\n\r\ntype NavigationNode = {\r\n name?: LocalizedField\r\n slug?: LocalizedField\r\n children?: NavigationNode[]\r\n categories?: NavigationNode[]\r\n documentation?: string\r\n slugPrefix?: string\r\n}\r\n\r\nfunction resolveLocalized(\r\n value: LocalizedField | undefined,\r\n locale: 'en' | 'pt' | 'es'\r\n): string {\r\n if (!value) return ''\r\n if (typeof value === 'string') return value\r\n return value[locale] || value.en || ''\r\n}\r\n\r\nfunction urlMatchesSlug(\r\n relativeUrl: string,\r\n slugPrefix: string,\r\n slug: string\r\n): boolean {\r\n if (!slug) return false\r\n const url = relativeUrl.replace(/\\/$/, '').split('#')[0].split('?')[0]\r\n const expected = `/${slugPrefix}/${slug}`.replace(/\\/{2,}/g, '/')\r\n return url === expected || url.endsWith(expected) || url.endsWith(`/${slug}`)\r\n}\r\n\r\nfunction nodeContainsHit(\r\n node: NavigationNode,\r\n relativeUrl: string,\r\n slugPrefix: string,\r\n locale: 'en' | 'pt' | 'es'\r\n): boolean {\r\n const slug = resolveLocalized(node.slug, locale)\r\n if (slug && urlMatchesSlug(relativeUrl, slugPrefix, slug)) return true\r\n return (node.children || []).some((child) =>\r\n nodeContainsHit(child, relativeUrl, slugPrefix, locale)\r\n )\r\n}\r\n\r\n/**\r\n * Builds search breadcrumbs as [section, parent category, page title].\r\n * API Reference omits the category and uses [section, page title].\r\n */\r\nexport function getSearchBreadcrumbs({\r\n hit,\r\n navigation,\r\n sections,\r\n locale = 'en',\r\n}: {\r\n hit: Hit\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n navigation: any\r\n sections: Section[][]\r\n locale?: 'en' | 'pt' | 'es'\r\n}): string[] {\r\n const sectionTitle = getTitleById(sections, hit.doctype)\r\n const title = typeof hit.doctitle === 'string' ? hit.doctitle : ''\r\n const crumbs = [sectionTitle]\r\n const isApiReference =\r\n String(hit.doctype).toLowerCase() === 'api reference'\r\n\r\n if (isApiReference) {\r\n if (title && title !== sectionTitle) crumbs.push(title)\r\n return crumbs.filter(Boolean)\r\n }\r\n\r\n const relativeUrl = typeof hit.url === 'string' ? getRelativeURL(hit.url) : ''\r\n\r\n const navigationList: NavigationNode[] = Array.isArray(navigation)\r\n ? navigation\r\n : []\r\n const navSection = navigationList.find(\r\n (item) =>\r\n item.documentation === hit.doctype ||\r\n String(item.documentation).toLowerCase() ===\r\n String(hit.doctype).toLowerCase()\r\n )\r\n\r\n let categoryName = ''\r\n if (navSection?.categories?.length) {\r\n const slugPrefix = navSection.slugPrefix || ''\r\n const category = navSection.categories.find((cat) =>\r\n nodeContainsHit(cat, relativeUrl, slugPrefix, locale)\r\n )\r\n categoryName = resolveLocalized(category?.name, locale)\r\n }\r\n\r\n if (!categoryName && typeof hit.doccategory === 'string' && hit.doccategory) {\r\n categoryName = hit.doccategory\r\n }\r\n\r\n if (categoryName && categoryName !== sectionTitle && categoryName !== title) {\r\n crumbs.push(categoryName)\r\n }\r\n\r\n if (title && crumbs[crumbs.length - 1] !== title) {\r\n crumbs.push(title)\r\n }\r\n\r\n return crumbs.filter(Boolean)\r\n}\r\n","import { connectHighlight } from 'react-instantsearch-dom'\r\nimport { HighlightProps, Hit } from 'react-instantsearch-core'\r\nimport { Flex, Text } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\ninterface HitHighlightProps {\r\n value: string\r\n isHighlighted: boolean\r\n}\r\ninterface CustomHighlightProps extends HighlightProps {\r\n searchPage?: boolean\r\n}\r\n\r\nfunction clipAroundHighlight(\r\n parts: HitHighlightProps[],\r\n maxChars: number\r\n): HitHighlightProps[] {\r\n if (!parts.length) return parts\r\n\r\n const full = parts.map((part) => part.value).join('')\r\n if (full.length <= maxChars) {\r\n return parts.map((part) => ({ ...part }))\r\n }\r\n\r\n const firstHighlight = parts.findIndex((part) => part.isHighlighted)\r\n let start = 0\r\n if (firstHighlight > 0) {\r\n const beforeLength = parts\r\n .slice(0, firstHighlight)\r\n .reduce((sum, part) => sum + part.value.length, 0)\r\n start = Math.max(0, beforeLength - 36)\r\n }\r\n\r\n if (start > 0) {\r\n const space = full.lastIndexOf(' ', start)\r\n if (space >= 0) start = space + 1\r\n }\r\n\r\n let end = Math.min(full.length, start + maxChars)\r\n if (end < full.length) {\r\n const space = full.lastIndexOf(' ', end)\r\n if (space > start) end = space\r\n }\r\n\r\n const result: HitHighlightProps[] = []\r\n let cursor = 0\r\n for (const part of parts) {\r\n const partStart = cursor\r\n const partEnd = cursor + part.value.length\r\n cursor = partEnd\r\n\r\n if (partEnd <= start || partStart >= end) continue\r\n\r\n const sliceFrom = Math.max(0, start - partStart)\r\n const sliceTo = Math.min(part.value.length, end - partStart)\r\n const value = part.value.slice(sliceFrom, sliceTo)\r\n if (!value) continue\r\n result.push({ value, isHighlighted: part.isHighlighted })\r\n }\r\n\r\n if (start > 0 && result.length) {\r\n result[0] = { ...result[0], value: `...${result[0].value}` }\r\n }\r\n if (end < full.length && result.length) {\r\n const last = result[result.length - 1]\r\n result[result.length - 1] = { ...last, value: `${last.value}...` }\r\n }\r\n\r\n return result\r\n}\r\n\r\nexport const HighlightQuery = ({\r\n text,\r\n query,\r\n}: {\r\n text: string\r\n query?: string\r\n}) => {\r\n if (!query?.trim() || !text) return <>{text}\r\n const escaped = query.trim().replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\r\n const regex = new RegExp(`(${escaped})`, 'ig')\r\n const parts = text.split(regex)\r\n const normalizedQuery = query.trim().toLowerCase()\r\n\r\n return (\r\n <>\r\n {parts.map((part, index) =>\r\n part.toLowerCase() === normalizedQuery ? (\r\n \r\n {part}\r\n \r\n ) : (\r\n part\r\n )\r\n )}\r\n \r\n )\r\n}\r\n\r\nconst Highlight = ({\r\n highlight,\r\n attribute,\r\n hit,\r\n searchPage,\r\n}: CustomHighlightProps) => {\r\n const hitHighlights: HitHighlightProps[] = highlight({\r\n highlightProperty: '_highlightResult',\r\n attribute: hit.type != 'content' ? `hierarchy.${hit.type}` : attribute,\r\n hit,\r\n })\r\n const displayParts = clipAroundHighlight(\r\n hitHighlights,\r\n searchPage ? 700 : 160\r\n )\r\n\r\n return (\r\n \r\n \r\n {displayParts.map((part: HitHighlightProps, index: number) =>\r\n part.isHighlighted ? (\r\n \r\n {part.value}\r\n \r\n ) : (\r\n part.value\r\n )\r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ninterface HighlightPassedThru {\r\n hit: Hit\r\n attribute: string\r\n highlightProperty?: string | undefined\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst connectedHighlight: React.ComponentClass> =\r\n connectHighlight(Highlight)\r\n\r\nexport default connectedHighlight\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CopyIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default CopyIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ExternalLinkIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default ExternalLinkIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst PaperIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default PaperIcon\r\n","import algoliasearch, { AlgoliaSearchOptions } from 'algoliasearch/lite'\r\nimport aa from 'search-insights'\r\nimport {\r\n MultipleQueriesQuery,\r\n MultipleQueriesResponse,\r\n} from '@algolia/client-search'\r\nimport { stripMarkdownForSnippet } from '../string-utils'\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport let searchClient: any = {}\r\nexport let searchIndex = ''\r\nexport let hitsPerPage = 10 // Default page size for search results\r\n/** Page size for the search results page; more hits load as the user scrolls. */\r\nexport const SEARCH_RESULTS_HITS_PER_PAGE = 100\r\n\r\nexport interface AlgoliaConfig {\r\n appId: string\r\n apiKey: string\r\n index: string\r\n algoliaOptions?: AlgoliaSearchOptions\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n customOptions?: any\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n instantSearchConfigs?: any\r\n useLanguageFilter?: boolean\r\n}\r\n\r\nexport interface HybridSearchConfig {\r\n apiEndpoint: string\r\n source: 'help-center' | 'dev-portal'\r\n defaultLimit?: number\r\n itemsPerPage?: number // Alias for defaultLimit (for backward compatibility)\r\n useLanguageFilter?: boolean\r\n /**\r\n * Max number of results to request from the upstream API in a single call.\r\n * The Hybrid Search upstream does not support pagination, so the adapter\r\n * fetches a large slice once and paginates / filters client-side.\r\n * Defaults to 100 (the upstream HS_MAX_LIMIT).\r\n */\r\n upstreamFetchSize?: number\r\n /**\r\n * TTL (ms) for the in-memory response cache keyed by query+locale.\r\n * A short TTL is enough to let `connectInfiniteHits` page through the\r\n * results without re-fetching the upstream on every refineNext call.\r\n * Defaults to 60_000 ms.\r\n */\r\n cacheTtlMs?: number\r\n}\r\n\r\nexport type SearchBackendConfig =\r\n | { backend: 'algolia'; algolia: AlgoliaConfig }\r\n | { backend: 'hybrid'; hybrid: HybridSearchConfig; index: string }\r\n\r\nconst createAlgoliaClient = (config: AlgoliaConfig) => {\r\n const {\r\n apiKey,\r\n appId,\r\n index,\r\n algoliaOptions,\r\n customOptions,\r\n instantSearchConfigs,\r\n useLanguageFilter = true,\r\n } = config\r\n searchIndex = index\r\n\r\n aa('init', {\r\n appId: appId || '',\r\n apiKey: apiKey || '',\r\n useCookie: false,\r\n })\r\n\r\n aa('getUserToken', null, (err) => {\r\n if (err) {\r\n console.error(err)\r\n return\r\n }\r\n })\r\n\r\n const algoliaClient = algoliasearch(appId || '', apiKey || '', algoliaOptions)\r\n\r\n searchClient = {\r\n ...algoliaClient,\r\n ...customOptions,\r\n instantSearchConfigs,\r\n useLanguageFilter,\r\n search(requests: MultipleQueriesQuery[]) {\r\n if (requests.every(({ params }) => !params?.query)) return\r\n return algoliaClient.search(requests)\r\n },\r\n }\r\n}\r\n\r\n// Upstream hard cap (must match HS_MAX_LIMIT in the API proxy).\r\nconst HYBRID_UPSTREAM_MAX_LIMIT = 100\r\n\r\n/** Fixed Help Center doctype ids (matches helpcenter src/utils/constants.ts). */\r\nconst HYBRID_DOCTYPE_IDS = [\r\n 'tracks',\r\n 'tutorials',\r\n 'faq',\r\n 'known-issues',\r\n 'troubleshooting',\r\n 'announcements',\r\n] as const\r\n\r\n/** Portal tab id → upstream canonical doctype (matches helpcenter search proxy). */\r\nconst PORTAL_TO_CANONICAL_DOCTYPE: Record = {\r\n tutorials: 'tutorial',\r\n tracks: 'tracks',\r\n faq: 'faq',\r\n troubleshooting: 'troubleshooting',\r\n announcements: 'announcements',\r\n}\r\n\r\ntype HybridDoctypeCounts = Record\r\n\r\ntype HybridSearchCountsApiResponse = {\r\n counts: {\r\n tracks: number\r\n tutorial: number\r\n faq: number\r\n troubleshooting: number\r\n announcements: number\r\n }\r\n total: number\r\n}\r\n\r\ntype HybridCacheEntry = {\r\n key: string\r\n ts: number\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n hits: any[]\r\n}\r\n\r\ntype HybridCountCacheEntry = {\r\n key: string\r\n ts: number\r\n counts: HybridDoctypeCounts\r\n}\r\n\r\ntype HybridDoctypeDeepCacheEntry = {\r\n key: string\r\n ts: number\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n hits: any[]\r\n}\r\n\r\nconst createHybridClient = (config: HybridSearchConfig) => {\r\n const {\r\n apiEndpoint,\r\n defaultLimit,\r\n itemsPerPage,\r\n useLanguageFilter = true,\r\n upstreamFetchSize = HYBRID_UPSTREAM_MAX_LIMIT,\r\n cacheTtlMs = 60_000,\r\n } = config\r\n\r\n // Support both defaultLimit and itemsPerPage (itemsPerPage takes precedence)\r\n const pageSize = itemsPerPage ?? defaultLimit ?? 10\r\n hitsPerPage = pageSize\r\n\r\n const effectiveUpstreamLimit = clampUpstreamLimit(upstreamFetchSize)\r\n const cache: HybridCacheEntry[] = []\r\n const countCache: HybridCountCacheEntry[] = []\r\n const doctypeDeepCache: HybridDoctypeDeepCacheEntry[] = []\r\n const deepenPagination = new Map<\r\n string,\r\n { lastPage: number; endOffset: number }\r\n >()\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const getCached = (key: string): any[] | undefined => {\r\n const now = Date.now()\r\n for (let i = cache.length - 1; i >= 0; i--) {\r\n if (now - cache[i].ts > cacheTtlMs) {\r\n cache.splice(i, 1)\r\n }\r\n }\r\n return cache.find((e) => e.key === key)?.hits\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const setCached = (key: string, hits: any[]) => {\r\n cache.push({ key, ts: Date.now(), hits })\r\n while (cache.length > 20) cache.shift()\r\n }\r\n\r\n const getCachedCounts = (key: string): HybridDoctypeCounts | undefined => {\r\n const now = Date.now()\r\n for (let i = countCache.length - 1; i >= 0; i--) {\r\n if (now - countCache[i].ts > cacheTtlMs) {\r\n countCache.splice(i, 1)\r\n }\r\n }\r\n return countCache.find((e) => e.key === key)?.counts\r\n }\r\n\r\n const setCachedCounts = (key: string, counts: HybridDoctypeCounts) => {\r\n countCache.push({ key, ts: Date.now(), counts })\r\n while (countCache.length > 20) countCache.shift()\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const getDoctypeDeepCached = (key: string): any[] | undefined => {\r\n const now = Date.now()\r\n for (let i = doctypeDeepCache.length - 1; i >= 0; i--) {\r\n if (now - doctypeDeepCache[i].ts > cacheTtlMs) {\r\n doctypeDeepCache.splice(i, 1)\r\n }\r\n }\r\n return doctypeDeepCache.find((e) => e.key === key)?.hits\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const setDoctypeDeepCached = (key: string, hits: any[]) => {\r\n doctypeDeepCache.push({ key, ts: Date.now(), hits })\r\n while (doctypeDeepCache.length > 20) doctypeDeepCache.shift()\r\n }\r\n\r\n const countsEndpoint = `${apiEndpoint.replace(/\\/?$/, '')}/counts`\r\n\r\n const mapApiCountsToPortal = (\r\n counts: HybridSearchCountsApiResponse['counts'],\r\n total: number\r\n ): HybridDoctypeCounts => ({\r\n '': total,\r\n tracks: counts.tracks,\r\n tutorials: counts.tutorial,\r\n faq: counts.faq,\r\n troubleshooting: counts.troubleshooting,\r\n announcements: counts.announcements,\r\n 'known-issues': 0,\r\n })\r\n\r\n const fetchDoctypeCounts = async (\r\n query: string,\r\n locale: string\r\n ): Promise => {\r\n try {\r\n const url = new URL(countsEndpoint, window.location.origin)\r\n url.searchParams.set('q', query)\r\n if (useLanguageFilter && locale) {\r\n url.searchParams.set('locale', locale)\r\n }\r\n\r\n const response = await fetch(url.toString())\r\n if (!response.ok) {\r\n return undefined\r\n }\r\n\r\n const data =\r\n (await response.json()) as Partial\r\n const { counts, total } = data\r\n if (\r\n !counts ||\r\n typeof total !== 'number' ||\r\n typeof counts.tracks !== 'number' ||\r\n typeof counts.tutorial !== 'number' ||\r\n typeof counts.faq !== 'number' ||\r\n typeof counts.troubleshooting !== 'number' ||\r\n typeof counts.announcements !== 'number'\r\n ) {\r\n return undefined\r\n }\r\n\r\n return mapApiCountsToPortal(counts, total)\r\n } catch {\r\n return undefined\r\n }\r\n }\r\n\r\n // Initialize minimal analytics (disabled for hybrid)\r\n aa('init', {\r\n appId: 'hybrid-search',\r\n apiKey: 'none',\r\n useCookie: false,\r\n })\r\n\r\n searchClient = {\r\n appId: 'hybrid-search',\r\n apiKey: 'hybrid',\r\n useLanguageFilter,\r\n instantSearchConfigs: null,\r\n\r\n async search(\r\n requests: MultipleQueriesQuery[]\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n ): Promise | undefined> {\r\n if (requests.every(({ params }) => !params?.query)) {\r\n return undefined\r\n }\r\n\r\n try {\r\n // Find the first request with a non-empty query\r\n const request =\r\n requests.find(({ params }) => params?.query) || requests[0]\r\n const params = request.params || {}\r\n const query = params.query || ''\r\n const hitsPerPage = params.hitsPerPage || pageSize\r\n const page = params.page || 0\r\n\r\n const { locale, doctypes, excludedDoctypes } =\r\n extractHybridFilters(params)\r\n\r\n // The upstream Hybrid Search API does not support pagination, so we\r\n // fetch a large slice once per (query, locale) pair and paginate /\r\n // doctype-filter client-side for the result list. Excluded doctypes\r\n // (e.g. `NOT doctype:\"...\"` from `excludeFromSearch`) are dropped\r\n // client-side as well.\r\n const cacheKey = JSON.stringify({\r\n q: query,\r\n locale: useLanguageFilter ? locale || '' : '',\r\n limit: effectiveUpstreamLimit,\r\n })\r\n\r\n const countCacheKey = JSON.stringify({\r\n q: query,\r\n locale: useLanguageFilter ? locale || '' : '',\r\n })\r\n\r\n const isSearchResultsRequest =\r\n typeof params?.filters === 'string' && params.filters.length > 0\r\n\r\n const cachedHits = getCached(cacheKey)\r\n let cachedCounts = getCachedCounts(countCacheKey)\r\n\r\n const hitsPromise = (async () => {\r\n if (cachedHits) return cachedHits\r\n\r\n const url = new URL(apiEndpoint, window.location.origin)\r\n url.searchParams.set('q', query)\r\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\r\n if (useLanguageFilter && locale) {\r\n url.searchParams.set('locale', locale)\r\n }\r\n\r\n const response = await fetch(url.toString())\r\n if (!response.ok) {\r\n throw new Error(`Hybrid search failed: ${response.status}`)\r\n }\r\n\r\n const data = await response.json()\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const rawResults: any[] = Array.isArray(data?.results)\r\n ? data.results\r\n : []\r\n const allHits = rawResults.map(transformHybridToAlgolia)\r\n setCached(cacheKey, allHits)\r\n return allHits\r\n })()\r\n\r\n const countsPromise = (async (): Promise<\r\n HybridDoctypeCounts | undefined\r\n > => {\r\n if (!isSearchResultsRequest) return undefined\r\n if (cachedCounts) return cachedCounts\r\n\r\n const counts = await fetchDoctypeCounts(query, locale)\r\n if (counts) {\r\n setCachedCounts(countCacheKey, counts)\r\n }\r\n return counts\r\n })()\r\n\r\n const [fetchedHits, doctypeCounts] = await Promise.all([\r\n hitsPromise,\r\n countsPromise,\r\n ])\r\n\r\n if (doctypeCounts) {\r\n cachedCounts = doctypeCounts\r\n }\r\n\r\n const allHits = excludeHitsByDoctype(fetchedHits, excludedDoctypes)\r\n const initialFilteredHits = filterHitsByDoctype(allHits, doctypes)\r\n let listHits = doctypes.length ? initialFilteredHits : allHits\r\n\r\n const doctypeDeepCacheKey =\r\n doctypes.length === 1\r\n ? JSON.stringify({\r\n q: query,\r\n locale: useLanguageFilter ? locale || '' : '',\r\n doctype: doctypes[0],\r\n limit: effectiveUpstreamLimit,\r\n })\r\n : ''\r\n\r\n let start = page * hitsPerPage\r\n\r\n if (doctypes.length === 1) {\r\n const portalDoctype = doctypes[0]\r\n const canonicalDoctype = PORTAL_TO_CANONICAL_DOCTYPE[portalDoctype]\r\n const prevPage = deepenPagination.get(doctypeDeepCacheKey)\r\n\r\n if (page === 0 || !prevPage || prevPage.lastPage !== page - 1) {\r\n start = page === 0 ? 0 : page * hitsPerPage\r\n if (page === 0) deepenPagination.delete(doctypeDeepCacheKey)\r\n } else {\r\n start = prevPage.endOffset\r\n }\r\n\r\n if (canonicalDoctype && start >= initialFilteredHits.length) {\r\n let deepenedHits = getDoctypeDeepCached(doctypeDeepCacheKey)\r\n if (!deepenedHits) {\r\n const url = new URL(apiEndpoint, window.location.origin)\r\n url.searchParams.set('q', query)\r\n url.searchParams.set('limit', String(effectiveUpstreamLimit))\r\n url.searchParams.set('doctype', portalDoctype)\r\n if (useLanguageFilter && locale) {\r\n url.searchParams.set('locale', locale)\r\n }\r\n\r\n const response = await fetch(url.toString())\r\n if (response.ok) {\r\n const data = await response.json()\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const rawResults: any[] = Array.isArray(data?.results)\r\n ? data.results\r\n : []\r\n deepenedHits = rawResults.map(transformHybridToAlgolia)\r\n setDoctypeDeepCached(doctypeDeepCacheKey, deepenedHits)\r\n } else {\r\n deepenedHits = []\r\n }\r\n }\r\n\r\n listHits = mergeDeepenedHits(initialFilteredHits, deepenedHits)\r\n }\r\n }\r\n\r\n const doctypeCount =\r\n doctypes.length === 1 ? cachedCounts?.[doctypes[0]] : undefined\r\n const hasDeepened =\r\n doctypes.length === 1 &&\r\n (Boolean(getDoctypeDeepCached(doctypeDeepCacheKey)) ||\r\n listHits.length > initialFilteredHits.length)\r\n const nbHits = (() => {\r\n if (!doctypes.length) return allHits.length\r\n const cap = HYBRID_UPSTREAM_MAX_LIMIT\r\n if (typeof doctypeCount === 'number') {\r\n if (hasDeepened) {\r\n return Math.min(doctypeCount, cap, listHits.length)\r\n }\r\n return Math.min(doctypeCount, cap)\r\n }\r\n return Math.min(listHits.length, cap)\r\n })()\r\n const nbPages = Math.max(1, Math.ceil(nbHits / hitsPerPage))\r\n const pageHits = listHits.slice(start, start + hitsPerPage)\r\n\r\n if (doctypes.length === 1) {\r\n deepenPagination.set(doctypeDeepCacheKey, {\r\n lastPage: page,\r\n endOffset: start + pageHits.length,\r\n })\r\n }\r\n\r\n const excludedDoctypeSet = new Set(\r\n excludedDoctypes.map((d) => d.toLowerCase())\r\n )\r\n const doctypeFacetData: Record = {}\r\n if (cachedCounts) {\r\n HYBRID_DOCTYPE_IDS.forEach((id) => {\r\n if (excludedDoctypeSet.has(id.toLowerCase())) return\r\n const count = cachedCounts[id]\r\n if (typeof count === 'number') {\r\n doctypeFacetData[id] = count\r\n }\r\n })\r\n }\r\n\r\n const hybridAllCount = cachedCounts?.['']\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const searchResult: any = {\r\n hits: pageHits,\r\n nbHits,\r\n page,\r\n nbPages,\r\n hitsPerPage,\r\n exhaustiveNbHits: true,\r\n query,\r\n params: '',\r\n index: request.indexName || '',\r\n processingTimeMS: 0,\r\n facets: {\r\n doctype: doctypeFacetData,\r\n language: {},\r\n },\r\n facets_stats: {},\r\n exhaustiveFacetsCount: true,\r\n queryID: generateQueryID(),\r\n _hybridCountsAttempted: isSearchResultsRequest,\r\n _hybridAllCount:\r\n typeof hybridAllCount === 'number' ? hybridAllCount : undefined,\r\n }\r\n\r\n return {\r\n results: [searchResult],\r\n }\r\n } catch (error) {\r\n console.error('Hybrid search error:', error)\r\n return {\r\n results: [\r\n {\r\n hits: [],\r\n nbHits: 0,\r\n page: 0,\r\n nbPages: 0,\r\n hitsPerPage: pageSize,\r\n exhaustiveNbHits: true,\r\n query: requests[0]?.params?.query || '',\r\n params: '',\r\n index: requests[0]?.indexName || '',\r\n processingTimeMS: 0,\r\n },\r\n ],\r\n }\r\n }\r\n },\r\n }\r\n}\r\n\r\nfunction clampUpstreamLimit(raw: number): number {\r\n if (!Number.isFinite(raw) || raw <= 0) return HYBRID_UPSTREAM_MAX_LIMIT\r\n return Math.min(HYBRID_UPSTREAM_MAX_LIMIT, Math.max(1, Math.floor(raw)))\r\n}\r\n\r\n/**\r\n * Extracts the language and doctype filters from an InstantSearch request.\r\n *\r\n * Two filter shapes need to be supported:\r\n * 1. `Configure.filters` (a single string like\r\n * `language:en AND doctype:\"tutorials\" AND NOT doctype:\"known-issues\"`),\r\n * used by the full Search page.\r\n * 2. `Configure.facetFilters` (an array like `['language:en']`), used by\r\n * the SearchInput dropdown in the header.\r\n *\r\n * `NOT doctype:\"...\"` clauses are parsed as exclusions (e.g. sections flagged\r\n * `excludeFromSearch` in the consuming app). Positive `doctype:\"...\"` clauses\r\n * narrow results to a selected tab.\r\n */\r\nfunction extractHybridFilters(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n params: any\r\n): { locale: string; doctypes: string[]; excludedDoctypes: string[] } {\r\n let locale = ''\r\n const doctypes: string[] = []\r\n const excludedDoctypes: string[] = []\r\n\r\n const pushDoctype = (raw: string) => {\r\n const value = raw.replace(/^\"|\"$/g, '').trim()\r\n if (value && !doctypes.includes(value)) doctypes.push(value)\r\n }\r\n\r\n const pushExcludedDoctype = (raw: string) => {\r\n const value = raw.replace(/^\"|\"$/g, '').trim()\r\n if (value && !excludedDoctypes.includes(value)) {\r\n excludedDoctypes.push(value)\r\n }\r\n }\r\n\r\n // 1) Configure.filters as a string expression\r\n const filtersStr = typeof params?.filters === 'string' ? params.filters : ''\r\n if (filtersStr) {\r\n const langMatch = filtersStr.match(/language\\s*:\\s*([\\w-]+)/i)\r\n if (langMatch) locale = langMatch[1]\r\n\r\n const excludedRegex = /NOT\\s+doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\r\n let excludedMatch: RegExpExecArray | null\r\n while ((excludedMatch = excludedRegex.exec(filtersStr)) !== null) {\r\n pushExcludedDoctype(excludedMatch[1] || excludedMatch[2] || '')\r\n }\r\n\r\n // Strip exclusion clauses before parsing positive doctype selections.\r\n const positiveFiltersStr = filtersStr.replace(\r\n /NOT\\s+doctype\\s*:\\s*(?:\"[^\"]+\"|[^\\s)]+)/gi,\r\n ''\r\n )\r\n const doctypeRegex = /doctype\\s*:\\s*(?:\"([^\"]+)\"|([^\\s)]+))/gi\r\n let m: RegExpExecArray | null\r\n while ((m = doctypeRegex.exec(positiveFiltersStr)) !== null) {\r\n pushDoctype(m[1] || m[2] || '')\r\n }\r\n }\r\n\r\n // 2) facetFilters (string | string[] | (string | string[])[])\r\n const facetFilters = params?.facetFilters\r\n const visit = (entry: unknown) => {\r\n if (typeof entry === 'string') {\r\n if (!locale && entry.startsWith('language:')) {\r\n locale = entry.slice('language:'.length)\r\n } else if (entry.startsWith('doctype:')) {\r\n pushDoctype(entry.slice('doctype:'.length))\r\n }\r\n } else if (Array.isArray(entry)) {\r\n entry.forEach(visit)\r\n }\r\n }\r\n visit(facetFilters)\r\n\r\n return { locale, doctypes, excludedDoctypes }\r\n}\r\n\r\nfunction excludeHitsByDoctype(\r\n hits: T[],\r\n excludedDoctypes: string[]\r\n): T[] {\r\n if (!excludedDoctypes.length) return hits\r\n const excluded = new Set(excludedDoctypes.map((d) => d.toLowerCase()))\r\n return hits.filter(\r\n (h) => !excluded.has(String(h.doctype || '').toLowerCase())\r\n )\r\n}\r\n\r\nfunction filterHitsByDoctype(\r\n hits: T[],\r\n doctypes: string[]\r\n): T[] {\r\n if (!doctypes.length) return hits\r\n const wanted = new Set(doctypes.map((d) => d.toLowerCase()))\r\n return hits.filter((h) => wanted.has(String(h.doctype || '').toLowerCase()))\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction mergeDeepenedHits(initial: any[], deepened: any[]): any[] {\r\n const seen = new Set()\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const merged: any[] = []\r\n\r\n for (const hit of [...initial, ...deepened]) {\r\n const key = hit.url_without_anchor || hit.objectID || ''\r\n if (!key || seen.has(key)) continue\r\n seen.add(key)\r\n merged.push(hit)\r\n }\r\n\r\n return merged.slice(0, HYBRID_UPSTREAM_MAX_LIMIT)\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nfunction transformHybridToAlgolia(result: any): any {\r\n const filePath = result.filePath || ''\r\n const doctype = deriveDoctypeFromFilePath(filePath)\r\n\r\n const hierarchy = {\r\n lvl0: doctype,\r\n lvl1: result.title || 'Untitled',\r\n lvl2: deriveCategoryFromFilePath(filePath),\r\n }\r\n\r\n const url = buildUrlFromFilePath(filePath)\r\n\r\n // Strip markdown syntax from snippets for display\r\n const rawContent = result.snippet || result.content || ''\r\n const cleanContent = stripMarkdownForSnippet(rawContent)\r\n\r\n return {\r\n objectID: String(result.id),\r\n ...result,\r\n url,\r\n url_without_anchor: url.split('#')[0],\r\n doctype,\r\n doctitle: result.title || 'Untitled',\r\n content: cleanContent,\r\n hierarchy,\r\n language: result.metadata?.locale || 'en',\r\n type: 'content',\r\n _highlightResult: {\r\n content: {\r\n value: cleanContent,\r\n matchLevel: 'full',\r\n fullyHighlighted: false,\r\n matchedWords: [],\r\n },\r\n hierarchy: {\r\n lvl0: {\r\n value: hierarchy.lvl0,\r\n matchLevel: 'none',\r\n },\r\n lvl1: {\r\n value: hierarchy.lvl1,\r\n matchLevel: result.title ? 'partial' : 'none',\r\n },\r\n },\r\n },\r\n _snippetResult: {\r\n content: {\r\n value: result.snippet ? stripMarkdownForSnippet(result.snippet) : '',\r\n matchLevel: 'full',\r\n },\r\n },\r\n }\r\n}\r\n\r\nconst LOCALE_SEGMENT = /^(en|es|pt)$/i\r\n\r\n/**\r\n * Derives the doctype id from a filePath returned by the Hybrid Search upstream.\r\n *\r\n * Supports the two layouts currently produced by the help-center / dev-portal\r\n * content repositories:\r\n * - `docs///...` → doctype = 3rd segment\r\n * - `//...` → doctype = 1st segment\r\n * - `/...` → doctype = 1st segment (fallback)\r\n *\r\n * Returns 'documentation' as a safe default so SearchCard rendering does not\r\n * break. The id is kept lowercase so it can be matched against the\r\n * `filterSelectedSection` values defined in the consuming app\r\n * (e.g. 'tutorials', 'faq', 'known-issues', 'troubleshooting', 'announcements').\r\n */\r\nfunction deriveDoctypeFromFilePath(filePath: string): string {\r\n const parts = filePath.split('/').filter(Boolean)\r\n if (parts.length === 0) return 'documentation'\r\n\r\n if (parts[0] === 'docs' && parts.length > 2) {\r\n return parts[2].toLowerCase()\r\n }\r\n\r\n if (parts.length > 1 && LOCALE_SEGMENT.test(parts[1])) {\r\n return parts[0].toLowerCase()\r\n }\r\n\r\n return parts[0].toLowerCase()\r\n}\r\n\r\nfunction deriveCategoryFromFilePath(filePath: string): string | null {\r\n const parts = filePath.split('/').filter(Boolean)\r\n if (parts[0] === 'docs' && parts.length > 3) return parts[3]\r\n if (parts.length > 2 && LOCALE_SEGMENT.test(parts[1])) return parts[2]\r\n if (parts.length > 1) return parts[1]\r\n return null\r\n}\r\n\r\n/**\r\n * Builds the user-facing URL for a search hit from its upstream filePath.\r\n *\r\n * The rule is doctype-driven (not path-position-driven):\r\n * - tutorials/tracks → //docs//\r\n * - everything else → ///\r\n *\r\n * The doctype comes from deriveDoctypeFromFilePath (the same source used for\r\n * the facet tabs) and the slug is always the last path segment, so this works\r\n * regardless of how deep the file is nested or where the doctype sits in the\r\n * path (`docs///...` or `//...`).\r\n */\r\nfunction buildUrlFromFilePath(filePath: string): string {\r\n const parts = filePath.split('/').filter(Boolean)\r\n if (parts.length === 0) return '/'\r\n\r\n const stripExt = (s: string) => s.replace(/\\.mdx?$/, '')\r\n const slug = stripExt(parts[parts.length - 1])\r\n\r\n const doctype = deriveDoctypeFromFilePath(filePath)\r\n\r\n // Locale is the 2nd segment in both supported layouts:\r\n // docs//... and //...\r\n const locale =\r\n parts.length > 1 && LOCALE_SEGMENT.test(parts[1])\r\n ? parts[1].toLowerCase()\r\n : 'en'\r\n\r\n if (doctype === 'tutorials' || doctype === 'tracks') {\r\n return `/${locale}/docs/${doctype}/${slug}`\r\n }\r\n\r\n return `/${locale}/${doctype}/${slug}`\r\n}\r\n\r\nfunction generateQueryID(): string {\r\n return `hybrid_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`\r\n}\r\n\r\nexport default function SearchConfig(\r\n config: SearchBackendConfig | AlgoliaConfig\r\n) {\r\n // Backward compatibility: if config doesn't have 'backend', assume Algolia\r\n if ('backend' in config) {\r\n if (config.backend === 'hybrid') {\r\n searchIndex = config.index\r\n createHybridClient(config.hybrid)\r\n } else {\r\n createAlgoliaClient(config.algolia)\r\n }\r\n } else {\r\n // Old API: direct AlgoliaConfig\r\n createAlgoliaClient(config as AlgoliaConfig)\r\n }\r\n}\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst trigger: SxStyleProp = {\r\n display: ['flex', 'flex', 'flex', 'none'],\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '56px',\r\n minWidth: '56px',\r\n height: '100%',\r\n padding: 0,\r\n border: 'none',\r\n background: 'transparent',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n flexShrink: 0,\r\n 'svg path': {\r\n fill: '#4A596B',\r\n },\r\n ':hover': {\r\n color: '#4A596B',\r\n 'svg path': {\r\n fill: '#4A596B',\r\n },\r\n },\r\n}\r\n\r\nconst overlay: SxStyleProp = {\r\n position: 'fixed',\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n zIndex: 10000,\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'flex-start',\r\n padding: '16px',\r\n background: 'rgba(20, 32, 50, 0.45)',\r\n backdropFilter: 'blur(4px)',\r\n WebkitBackdropFilter: 'blur(4px)',\r\n overscrollBehavior: 'contain',\r\n}\r\n\r\nconst card: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '100%',\r\n maxWidth: '560px',\r\n maxHeight: 'min(80vh, 640px)',\r\n marginTop: '8px',\r\n background: '#FFFFFF',\r\n borderRadius: '20px',\r\n boxShadow: '0 16px 48px rgba(20, 32, 50, 0.24)',\r\n overflow: 'hidden',\r\n}\r\n\r\nexport default {\r\n trigger,\r\n overlay,\r\n card,\r\n}\r\n","import { Flex, Text } from '@vtex/brand-ui'\r\nimport LikeIcon from 'components/icons/like-icon'\r\nimport LikeSelectedIcon from 'components/icons/like-selected-icon'\r\nimport { useContext, useEffect, useState } from 'react'\r\nimport styles from './styles'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport ShareButton from 'components/share-button'\r\nimport SuggestEdits from 'components/suggest-edits'\r\n\r\nconst DEFAULT_FEEDBACK_ENDPOINT = '/api/feedback/'\r\n\r\nexport interface FeedbackSectionProps {\r\n /** Slug that corresponds to the current page. */\r\n slug?: string\r\n /** Github edit URL to the corresponding documentation file. */\r\n urlToEdit?: string\r\n /** Whether is possible for the user to suggest edits or not. */\r\n suggestEdits?: boolean\r\n /** Include or not a share button. */\r\n shareButton?: boolean\r\n /**\r\n * Canonical page URL stored with the vote.\r\n * Defaults to `window.location.href` so Help Center and Developer Portal\r\n * both record the page the user is on.\r\n */\r\n pageUrl?: string\r\n /** Endpoint that receives the like/dislike payload. Defaults to `/api/feedback/`. */\r\n feedbackEndpoint?: string\r\n /** Override the default POST. Receives whether the vote was positive (liked). */\r\n sendFeedback?: (liked: boolean) => Promise\r\n /** Whether to render the small version of the component or not. */\r\n small?: boolean\r\n}\r\n\r\n/** @deprecated Use FeedbackSectionProps */\r\nexport type DocPath = FeedbackSectionProps\r\n\r\nconst postFeedback = async (\r\n liked: boolean,\r\n pageUrl: string,\r\n endpoint: string\r\n) => {\r\n await fetch(endpoint, {\r\n method: 'POST',\r\n body: JSON.stringify({\r\n data: [\r\n new Date().toISOString(),\r\n pageUrl,\r\n liked ? 'positive' : 'negative',\r\n ],\r\n }),\r\n })\r\n}\r\n\r\nconst FeedbackSection = ({\r\n slug,\r\n urlToEdit,\r\n suggestEdits = true,\r\n shareButton = false,\r\n pageUrl,\r\n feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT,\r\n sendFeedback,\r\n small = false,\r\n}: FeedbackSectionProps) => {\r\n const [feedback, setFeedback] = useState(undefined)\r\n const { locale } = useContext(LibraryContext)\r\n\r\n useEffect(() => {\r\n setFeedback(undefined)\r\n }, [slug])\r\n\r\n const handleSend = async (liked: boolean) => {\r\n if (feedback !== undefined) return\r\n setFeedback(liked)\r\n const resolvedPageUrl =\r\n pageUrl ?? (typeof window !== 'undefined' ? window.location.href : '')\r\n try {\r\n if (sendFeedback) {\r\n await sendFeedback(liked)\r\n } else {\r\n await postFeedback(liked, resolvedPageUrl, feedbackEndpoint)\r\n }\r\n } catch (e) {\r\n setFeedback(undefined)\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {feedback !== undefined\r\n ? messages[locale]['feedback_section.response']\r\n : messages[locale]['feedback_section.question']}\r\n \r\n\r\n \r\n handleSend(true)}\r\n role=\"button\"\r\n aria-pressed={feedback === true}\r\n data-cy=\"feedback-section-like\"\r\n >\r\n {feedback === true ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {!small && (\r\n {messages[locale]['feedback_section.positive']}\r\n )}\r\n \r\n\r\n handleSend(false)}\r\n role=\"button\"\r\n aria-pressed={feedback === false}\r\n data-cy=\"feedback-section-dislike\"\r\n >\r\n {feedback === false ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {!small && (\r\n {messages[locale]['feedback_section.negative']}\r\n )}\r\n \r\n \r\n \r\n {suggestEdits && urlToEdit && (\r\n \r\n )}\r\n {shareButton && (\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default FeedbackSection\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LikeIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default LikeIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LikeSelectedIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default LikeSelectedIcon\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\ntype StyleFn = (opts?: { small?: boolean }) => SxStyleProp\r\n\r\nconst container: StyleFn = ({ small } = {}) => ({\r\n width: '100%',\r\n flexDirection: small ? 'column' : ['column', 'row'],\r\n alignItems: small ? 'flex-start' : 'center',\r\n alignContent: ['initial', 'space-between'],\r\n justifyContent: ['initial', 'space-between'],\r\n marginTop: small ? '0px' : '32px',\r\n marginBottom: small ? '0px' : '16px',\r\n gap: small ? '8px' : '0px',\r\n})\r\n\r\nconst question: StyleFn = ({ small } = {}) => ({\r\n fontSize: small ? '12px' : '16px',\r\n lineHeight: '18px',\r\n color: '#4A596B',\r\n})\r\n\r\nconst iconsContainer: StyleFn = ({ small } = {}) => ({\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: small ? '0px' : '4px',\r\n ml: small ? '3px' : '6px',\r\n})\r\n\r\nconst likeContainer: SxStyleProp = {\r\n paddingBottom: ['16px', '0'],\r\n borderBottom: ['1px solid #E7E9EE', 'none'],\r\n mt: ['8px', '0'],\r\n mb: ['16px', '0'],\r\n width: ['100%', 'auto'],\r\n justifyContent: ['center', 'initial'],\r\n alignItems: 'center',\r\n}\r\n\r\nconst likeIcon: SxStyleProp = {\r\n mr: '2px',\r\n}\r\n\r\nconst dislikeIcon: SxStyleProp = {\r\n mr: '2px',\r\n transform: 'rotateX(180deg) rotateY(180deg)',\r\n}\r\n\r\nconst button: SxStyleProp = {\r\n ':hover': {\r\n cursor: 'pointer',\r\n color: '#000711',\r\n 'svg > path': {\r\n stroke: '#000711',\r\n },\r\n },\r\n}\r\n\r\nconst buttonActive: SxStyleProp = {\r\n cursor: 'pointer',\r\n color: '#000711',\r\n 'svg > path': {\r\n stroke: '#000711',\r\n },\r\n}\r\n\r\nconst selectedButton: SxStyleProp = {\r\n color: 'muted.1',\r\n}\r\n\r\nconst disabled: SxStyleProp = {\r\n display: 'none !important',\r\n}\r\n\r\nconst shareButton: SxStyleProp = {}\r\n\r\nexport default {\r\n disabled,\r\n container,\r\n question,\r\n likeContainer,\r\n likeIcon,\r\n dislikeIcon,\r\n button,\r\n buttonActive,\r\n selectedButton,\r\n shareButton,\r\n iconsContainer,\r\n}\r\n","import { Box, Button, Flex, Text } from '@vtex/brand-ui'\r\nimport FacebookIcon from 'components/icons/facebook-icon'\r\nimport LinkedinIcon from 'components/icons/linkedin-icon'\r\nimport ShareIcon from 'components/icons/share-icon'\r\nimport TwitterIcon from 'components/icons/twitter-icon'\r\nimport { useRef, useState } from 'react'\r\nimport {\r\n FacebookShareButton,\r\n LinkedinShareButton,\r\n TwitterShareButton,\r\n EmailShareButton,\r\n} from 'react-share'\r\nimport styles from './styles'\r\nimport EmailIcon from 'components/icons/email-icon'\r\nimport LinkIcon from 'components/icons/link-icon'\r\nimport { SxStyleProp } from '@vtex/brand-ui'\r\nimport useClickOutside from 'utils/hooks/useClickOutside'\r\n\r\ninterface Props {\r\n url: string\r\n sx?: SxStyleProp\r\n}\r\n\r\nconst ShareButton = ({ url, sx={} }: Props) => {\r\n const [isOpen, setIsOpen] = useState(false)\r\n const containerRef = useRef()\r\n useClickOutside(containerRef, () => setIsOpen(false))\r\n\r\n const handleCopyLink = async () => {\r\n try {\r\n if (window) await navigator.clipboard.writeText(window.location.href)\r\n } catch (error) {\r\n console.error('Error copying link to clipboard:', error)\r\n }\r\n }\r\n\r\n return (\r\n \r\n setIsOpen(!isOpen)}\r\n >\r\n Share\r\n \r\n {isOpen && (\r\n \r\n \r\n \r\n Copy link\r\n \r\n \r\n \r\n \r\n \r\n E-mail\r\n \r\n \r\n \r\n \r\n \r\n Twitter\r\n \r\n \r\n \r\n \r\n \r\n Facebook\r\n \r\n \r\n \r\n \r\n \r\n LinkedIn\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default ShareButton\r\n\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst FacebookIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default FacebookIcon\r\n\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LinkedinIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default LinkedinIcon\r\n\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ShareIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default ShareIcon\r\n\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst TwitterIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default TwitterIcon\r\n\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n position: 'relative',\r\n height: '24px',\r\n}\r\n\r\nconst button: SxStyleProp = {\r\n cursor: 'pointer',\r\n textTransform: 'none',\r\n fontSize: '16px',\r\n lineHeight: '18px',\r\n color: '#4A596B',\r\n width: '24px',\r\n height: '24px',\r\n transition: '0.3s',\r\n ':hover': {\r\n color: '#000711 !important',\r\n textDecoration: 'none',\r\n },\r\n alignItems: 'start',\r\n}\r\n\r\nconst shareIcon: SxStyleProp = {\r\n marginRight: '4px',\r\n}\r\n\r\nconst innerButton: SxStyleProp = {\r\n gap: '16px',\r\n color: '#A1AAB7',\r\n cursor: 'pointer',\r\n transition: '0.3s',\r\n ':hover': {\r\n color: '#4A4A4A',\r\n },\r\n alignItems: 'center',\r\n}\r\n\r\nconst innerContainer: SxStyleProp = {\r\n position: 'absolute',\r\n backgroundColor: 'white',\r\n flexDirection: 'column',\r\n top: '100%',\r\n right: '0',\r\n mt: '8px',\r\n padding: '16px',\r\n gap: '16px',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n borderRadius: '5px',\r\n\r\n ':before': {\r\n content: \"''\",\r\n position: 'absolute',\r\n top: '-8px',\r\n right: '8px',\r\n borderLeft: '8px solid transparent',\r\n borderRight: '8px solid transparent',\r\n borderBottom: '8px solid white',\r\n boxShadow: '0 16px 10px -17px rgba(0, 0, 0, 0.5)',\r\n },\r\n}\r\n\r\nconst divider: SxStyleProp = {\r\n borderBottom: '1px solid #E7E9EE',\r\n}\r\n\r\nexport default {\r\n container,\r\n button,\r\n shareIcon,\r\n innerButton,\r\n innerContainer,\r\n divider,\r\n}\r\n\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst EmailIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default EmailIcon\r\n\r\n","import { useContext } from 'react'\r\nimport { Link, Text } from '@vtex/brand-ui'\r\nimport type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nimport EditIcon from 'components/icons/edit-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type SuggestEditsProps = {\r\n /** GitHub edit URL for the current documentation file. */\r\n urlToEdit: string\r\n /** Compact size used next to the table of contents. */\r\n small?: boolean\r\n sx?: SxStyleProp\r\n}\r\n\r\nconst SuggestEdits = ({\r\n urlToEdit,\r\n small = false,\r\n sx = {},\r\n}: SuggestEditsProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const label =\r\n messages[locale]['feedback_section.edit'] || 'Suggest Edits (GitHub)'\r\n\r\n return (\r\n \r\n \r\n {label}\r\n \r\n )\r\n}\r\n\r\nexport default SuggestEdits\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst EditIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default EditIcon\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\ntype StyleFn = (opts?: { small?: boolean }) => SxStyleProp\r\n\r\nconst container: StyleFn = ({ small } = {}) => ({\r\n alignItems: 'center',\r\n gap: '4px',\r\n fontSize: small ? '12px' : '16px',\r\n lineHeight: '22px',\r\n color: '#4A596B !important',\r\n display: 'flex',\r\n ':hover': {\r\n color: '#000711 !important',\r\n cursor: 'pointer',\r\n },\r\n})\r\n\r\nconst icon: SxStyleProp = {\r\n flexShrink: 0,\r\n}\r\n\r\nexport default { container, icon }\r\n","import { FormEvent, useContext, useEffect, useState } from 'react'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport CheckIcon from 'components/icons/check-icon'\r\nimport CommentIcon from 'components/icons/comment-icon'\r\nimport WarningIcon from 'components/icons/warning-icon'\r\nimport Modal from './modal'\r\nimport styles from './styles'\r\n\r\nconst DEFAULT_FEEDBACK_ENDPOINT = '/api/feedback-google'\r\n\r\nconst FEEDBACK_TYPES = [\r\n {\r\n value: 'Incorrect information',\r\n labelKey: 'feedback_modal.type.incorrect',\r\n },\r\n {\r\n value: 'Page not found',\r\n labelKey: 'feedback_modal.type.page_not_found',\r\n },\r\n {\r\n value: 'Content improvement',\r\n labelKey: 'feedback_modal.type.content_improvement',\r\n },\r\n {\r\n value: 'New documentation',\r\n labelKey: 'feedback_modal.type.new_documentation',\r\n },\r\n {\r\n value: 'Other documentation feedback',\r\n labelKey: 'feedback_modal.type.other',\r\n },\r\n] as const\r\n\r\nexport type FeedbackModalPayload = {\r\n name: string\r\n email: string\r\n type: string\r\n feedback: string\r\n url: string\r\n}\r\n\r\nexport interface FeedbackModalProps {\r\n /**\r\n * Canonical page URL prefilled in the Article field.\r\n * Defaults to `window.location.href` so Help Center and Developer Portal\r\n * both record the page the user is on.\r\n */\r\n pageUrl?: string\r\n /**\r\n * @deprecated Use `pageUrl`.\r\n */\r\n initialMessage?: string\r\n /** Endpoint that receives the form payload. Defaults to `/api/feedback-google`. */\r\n feedbackEndpoint?: string\r\n /** Override the default POST. */\r\n sendFeedback?: (payload: FeedbackModalPayload) => Promise\r\n /** Open the modal on first render. Useful for Storybook. */\r\n defaultOpen?: boolean\r\n}\r\n\r\nconst postFeedback = async (\r\n payload: FeedbackModalPayload,\r\n endpoint: string\r\n) => {\r\n const res = await fetch(endpoint, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(payload),\r\n })\r\n if (!res.ok) {\r\n const data = await res.json().catch(() => ({}))\r\n throw new Error(data?.error || 'Failed to send feedback. Try again')\r\n }\r\n}\r\n\r\nconst FeedbackModal = ({\r\n pageUrl,\r\n initialMessage,\r\n feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT,\r\n sendFeedback,\r\n defaultOpen = false,\r\n}: FeedbackModalProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const localizedMessages = messages[locale] ?? messages.en\r\n const [isOpen, setIsOpen] = useState(defaultOpen)\r\n const [submitted, setSubmitted] = useState(false)\r\n const [submitting, setSubmitting] = useState(false)\r\n const [error, setError] = useState(false)\r\n\r\n const handleClose = () => setIsOpen(false)\r\n\r\n const articleUrl =\r\n pageUrl ||\r\n initialMessage ||\r\n (typeof window !== 'undefined' ? window.location.href : '')\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n setSubmitted(false)\r\n setSubmitting(false)\r\n setError(false)\r\n }\r\n }, [isOpen])\r\n\r\n async function handleSubmit(event: FormEvent) {\r\n event.preventDefault()\r\n setSubmitting(true)\r\n setError(false)\r\n\r\n const form = event.currentTarget\r\n const formData = new FormData(form)\r\n const payload: FeedbackModalPayload = {\r\n name: String(formData.get('name') || ''),\r\n email: String(formData.get('email') || ''),\r\n type: String(formData.get('type') || 'Other documentation feedback'),\r\n url: String(formData.get('url') || ''),\r\n feedback: String(formData.get('feedback') || ''),\r\n }\r\n\r\n try {\r\n if (sendFeedback) {\r\n await sendFeedback(payload)\r\n } else {\r\n await postFeedback(payload, feedbackEndpoint)\r\n }\r\n form.reset()\r\n setSubmitted(true)\r\n } catch {\r\n setError(true)\r\n } finally {\r\n setSubmitting(false)\r\n }\r\n }\r\n\r\n return (\r\n \r\n setIsOpen(true)}\r\n sx={styles.triggerButton}\r\n >\r\n \r\n {localizedMessages['feedback_modal.button']}\r\n \r\n \r\n {submitted ? (\r\n \r\n \r\n \r\n \r\n \r\n {localizedMessages['feedback_modal.success']}\r\n \r\n \r\n {localizedMessages['feedback_modal.done']}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {error ? (\r\n \r\n \r\n {localizedMessages['feedback_modal.error']}\r\n \r\n ) : null}\r\n\r\n \r\n \r\n {localizedMessages['feedback_modal.article']}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {localizedMessages['feedback_modal.message']}{' '}\r\n \r\n *\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {localizedMessages['feedback_modal.type']}\r\n \r\n \r\n {FEEDBACK_TYPES.map((type) => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {localizedMessages['feedback_modal.name']}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {localizedMessages['feedback_modal.email']}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {localizedMessages['feedback_modal.cancel']}\r\n \r\n \r\n {submitting\r\n ? localizedMessages['feedback_modal.submitting']\r\n : localizedMessages['feedback_modal.submit']}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default FeedbackModal\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CheckIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default CheckIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CommentIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default CommentIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst WarningIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default WarningIcon\r\n","import { useEffect, useState, type MouseEvent, type ReactNode } from 'react'\r\nimport { createPortal } from 'react-dom'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport styles from './styles'\r\n\r\ninterface ModalProps {\r\n isOpen: boolean\r\n onClose: () => void\r\n title: string\r\n description?: string\r\n closeLabel: string\r\n children: ReactNode\r\n}\r\n\r\nconst Modal = ({\r\n isOpen,\r\n onClose,\r\n title,\r\n description,\r\n closeLabel,\r\n children,\r\n}: ModalProps) => {\r\n const [mounted, setMounted] = useState(false)\r\n\r\n useEffect(() => {\r\n setMounted(true)\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!isOpen) return\r\n\r\n const html = document.documentElement\r\n const previousOverflow = html.style.overflow\r\n html.style.overflow = 'hidden'\r\n\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') onClose()\r\n }\r\n window.addEventListener('keydown', onKeyDown)\r\n\r\n return () => {\r\n window.removeEventListener('keydown', onKeyDown)\r\n html.style.overflow = previousOverflow\r\n }\r\n }, [isOpen, onClose])\r\n\r\n if (!isOpen || !mounted) return null\r\n\r\n return createPortal(\r\n \r\n ) => e.stopPropagation()}\r\n >\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n {description ? (\r\n \r\n {description}\r\n \r\n ) : null}\r\n \r\n\r\n {children}\r\n \r\n ,\r\n document.body\r\n )\r\n}\r\n\r\nexport default Modal\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst triggerWrap: SxStyleProp = {\r\n display: 'inline-flex',\r\n flexShrink: 0,\r\n width: 'max-content',\r\n}\r\n\r\nconst triggerButton: SxStyleProp = {\r\n mt: 0,\r\n px: 3,\r\n minHeight: 36,\r\n background: '#fff',\r\n borderRadius: '4px',\r\n cursor: 'pointer',\r\n fontSize: 12,\r\n height: 'min-content',\r\n textTransform: 'none',\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n gap: 3,\r\n width: 'max-content',\r\n maxWidth: '180px',\r\n flexShrink: 0,\r\n whiteSpace: 'nowrap',\r\n color: 'muted.0',\r\n border: '1px solid #E7E9EE',\r\n '&:hover': { backgroundColor: '#F8F7FC', color: '#000711' },\r\n}\r\n\r\nconst wrapContainer: SxStyleProp = {\r\n position: 'fixed',\r\n inset: 0,\r\n backgroundColor: 'rgba(20, 32, 50, 0.45)',\r\n backdropFilter: 'blur(4px)',\r\n WebkitBackdropFilter: 'blur(4px)',\r\n display: 'flex',\r\n alignItems: ['flex-end', 'center'],\r\n justifyContent: 'center',\r\n zIndex: 20000,\r\n padding: ['0', '24px'],\r\n overscrollBehavior: 'contain',\r\n}\r\n\r\nconst innerContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: '#FFFFFF',\r\n borderRadius: ['20px 20px 0 0', '20px'],\r\n boxShadow: '0 16px 48px rgba(20, 32, 50, 0.24)',\r\n maxWidth: '520px',\r\n width: '100%',\r\n maxHeight: ['92vh', 'min(80vh, 720px)'],\r\n overflow: 'hidden',\r\n position: 'relative',\r\n}\r\n\r\nconst header: SxStyleProp = {\r\n flexShrink: 0,\r\n px: ['20px', '24px'],\r\n pt: ['20px', '24px'],\r\n pb: '16px',\r\n borderBottom: '1px solid #E7E9EE',\r\n}\r\n\r\nconst headerTop: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n justifyContent: 'space-between',\r\n gap: '12px',\r\n}\r\n\r\nconst modalButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n width: '32px',\r\n height: '32px',\r\n mt: '-4px',\r\n mr: '-4px',\r\n p: 0,\r\n background: 'transparent',\r\n border: 'none',\r\n borderRadius: '8px',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n transition: 'background 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n background: '#F4F4F5',\r\n color: '#142032',\r\n },\r\n ':focus-visible': {\r\n outline: '2px solid #E31C58',\r\n outlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst modalTitle: SxStyleProp = {\r\n fontSize: ['18px', '20px'],\r\n fontWeight: '600',\r\n lineHeight: ['24px', '28px'],\r\n letterSpacing: '-0.02em',\r\n color: '#142032',\r\n pr: '8px',\r\n}\r\n\r\nconst modalDescription: SxStyleProp = {\r\n mt: '6px',\r\n color: '#4A596B',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n}\r\n\r\nconst body: SxStyleProp = {\r\n flex: 1,\r\n minHeight: 0,\r\n overflowY: 'auto',\r\n px: ['20px', '24px'],\r\n py: ['20px', '24px'],\r\n}\r\n\r\nconst form: SxStyleProp = {\r\n display: 'grid',\r\n gap: '16px',\r\n}\r\n\r\nconst field: SxStyleProp = {\r\n display: 'grid',\r\n gap: '6px',\r\n minWidth: 0,\r\n}\r\n\r\nconst row: SxStyleProp = {\r\n display: 'grid',\r\n gridTemplateColumns: ['1fr', '1fr 1fr'],\r\n gap: '12px',\r\n}\r\n\r\nconst label: SxStyleProp = {\r\n fontSize: '13px',\r\n fontWeight: '600',\r\n lineHeight: '18px',\r\n color: '#142032',\r\n}\r\n\r\nconst requiredMark: SxStyleProp = {\r\n color: '#E31C58',\r\n}\r\n\r\nconst control: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n boxSizing: 'border-box',\r\n padding: '10px 12px',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n background: '#FFFFFF',\r\n color: '#142032',\r\n fontFamily: 'inherit',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n outline: 'none',\r\n transition:\r\n 'border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease',\r\n '::placeholder': {\r\n color: '#A1A8B3',\r\n },\r\n ':hover': {\r\n borderColor: '#C7CDD6',\r\n },\r\n ':focus': {\r\n borderColor: '#E31C58',\r\n boxShadow: '0 0 0 3px rgba(227, 28, 88, 0.16)',\r\n },\r\n}\r\n\r\nconst input: SxStyleProp = {\r\n ...control,\r\n height: '40px',\r\n}\r\n\r\nconst inputMuted: SxStyleProp = {\r\n ...input,\r\n background: '#FAFAFB',\r\n color: '#4A596B',\r\n fontSize: '13px',\r\n}\r\n\r\nconst textarea: SxStyleProp = {\r\n ...control,\r\n minHeight: '120px',\r\n resize: 'vertical',\r\n}\r\n\r\nconst dropdownMenu: SxStyleProp = {\r\n ...input,\r\n appearance: 'none',\r\n WebkitAppearance: 'none',\r\n cursor: 'pointer',\r\n paddingRight: '36px',\r\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%234A596B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\")`,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'right 12px center',\r\n}\r\n\r\nconst actions: SxStyleProp = {\r\n display: 'flex',\r\n gap: '8px',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n pt: '8px',\r\n}\r\n\r\nconst cancelButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minHeight: '40px',\r\n px: '16px',\r\n background: 'transparent',\r\n color: '#4A596B',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n cursor: 'pointer',\r\n fontFamily: 'inherit',\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n transition:\r\n 'background 0.15s ease, color 0.15s ease, border-color 0.15s ease',\r\n ':hover': {\r\n background: '#F8F7FC',\r\n color: '#142032',\r\n borderColor: '#C7CDD6',\r\n },\r\n ':focus-visible': {\r\n outline: '2px solid #E31C58',\r\n outlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst submitButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minHeight: '40px',\r\n px: '16px',\r\n background: '#142032',\r\n color: '#FFFFFF',\r\n border: 'none',\r\n borderRadius: '8px',\r\n cursor: 'pointer',\r\n fontFamily: 'inherit',\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n transition: 'background 0.15s ease, opacity 0.15s ease',\r\n ':hover': {\r\n background: '#000711',\r\n },\r\n ':disabled': {\r\n opacity: 0.6,\r\n cursor: 'not-allowed',\r\n },\r\n ':focus-visible': {\r\n outline: '2px solid #142032',\r\n outlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst feedbackErrorText: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'flex-start',\r\n gap: '8px',\r\n padding: '12px 14px',\r\n background: '#FFF6F4',\r\n border: '1px solid #F8D0C8',\r\n borderRadius: '8px',\r\n color: '#8A1F11',\r\n fontSize: '13px',\r\n lineHeight: '18px',\r\n}\r\n\r\nconst errorIcon: SxStyleProp = {\r\n flexShrink: 0,\r\n width: '16px',\r\n height: '16px',\r\n mt: '1px',\r\n color: '#D44333',\r\n}\r\n\r\nconst successState: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n textAlign: 'center',\r\n py: ['16px', '24px'],\r\n px: '8px',\r\n gap: '12px',\r\n}\r\n\r\nconst successIconWrap: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '48px',\r\n height: '48px',\r\n borderRadius: '50%',\r\n background: '#F0FAF4',\r\n color: '#36875A',\r\n}\r\n\r\nconst successTitle: SxStyleProp = {\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n lineHeight: '22px',\r\n color: '#142032',\r\n maxWidth: '320px',\r\n}\r\n\r\nexport default {\r\n triggerWrap,\r\n triggerButton,\r\n wrapContainer,\r\n innerContainer,\r\n header,\r\n headerTop,\r\n modalButton,\r\n modalTitle,\r\n modalDescription,\r\n body,\r\n form,\r\n field,\r\n row,\r\n label,\r\n requiredMark,\r\n input,\r\n inputMuted,\r\n textarea,\r\n dropdownMenu,\r\n actions,\r\n cancelButton,\r\n submitButton,\r\n feedbackErrorText,\r\n errorIcon,\r\n successState,\r\n successIconWrap,\r\n successTitle,\r\n}\r\n","import { Flex } from '@vtex/brand-ui'\r\nimport SearchSections from 'components/search-sections'\r\nimport SearchResults from 'components/search-results'\r\nimport SearchFilterTabBar from 'components/search-filter-tab-bar'\r\nimport SearchContextProvider from 'utils/context/search'\r\nimport styles from './styles'\r\n\r\nconst Search = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default Search\r\n","import { Box } from '@vtex/brand-ui'\r\n\r\nimport SearchSection from 'components/search-section'\r\nimport styles from './styles'\r\nimport { useContext } from 'react'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\n\r\nconst SearchSections = () => {\r\n const { sidebarSections } = useContext(LibraryContext)\r\n\r\n const internalOnlySections = sidebarSections.map((section) =>\r\n section.filter((item) => !item.isExternalLink && !item.excludeFromSearch)\r\n )\r\n\r\n return (\r\n \r\n {internalOnlySections.map((sections, id) => (\r\n \r\n {id === 0 && }\r\n {sections.map((section, index) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default SearchSections\r\n","import { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport { useContext, useEffect } from 'react'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\nimport { useRouter } from 'next/router.js'\r\nimport { FilterType, SearchContext } from 'utils/context/search'\r\nimport { Section } from 'utils/typings/types'\r\nimport { formatSearchTabCount } from 'utils/search-utils'\r\nimport { getSectionLabel } from 'utils/sidebar-utils'\r\n\r\ninterface SearchSectionProps {\r\n dataElement: Section | null\r\n index?: number\r\n}\r\n\r\nconst SearchSection = ({ dataElement, index }: SearchSectionProps) => {\r\n const router = useRouter()\r\n const { filterSelectedSection, ocurrenceCount, changeFilterSelectedSection } =\r\n useContext(SearchContext)\r\n const { locale, sidebarDataMaster } = useContext(LibraryContext)\r\n\r\n const updateFilter = (value: FilterType) => {\r\n router.query.filter = value\r\n changeFilterSelectedSection(value)\r\n }\r\n\r\n useEffect(() => {\r\n updateFilter('')\r\n }, [router.query])\r\n\r\n const allCountLabel = formatSearchTabCount(ocurrenceCount[''])\r\n\r\n if (!dataElement) {\r\n return (\r\n updateFilter('')}>\r\n \r\n {messages[locale]['search_results.all'] || 'All results'}\r\n \r\n {allCountLabel !== undefined && (\r\n \r\n {allCountLabel}\r\n \r\n )}\r\n \r\n )\r\n }\r\n\r\n const countsLoaded = Object.keys(ocurrenceCount).length > 0\r\n const count = countsLoaded\r\n ? ocurrenceCount[dataElement.id] ?? 0\r\n : ocurrenceCount[dataElement.id]\r\n const isDisabled = count === 0\r\n const countLabel = formatSearchTabCount(count)\r\n\r\n return (\r\n {\r\n if (isDisabled) return\r\n updateFilter(dataElement.id)\r\n }}\r\n data-disabled={String(isDisabled)}\r\n >\r\n \r\n \r\n \r\n {getSectionLabel(dataElement, sidebarDataMaster, locale)}\r\n \r\n \r\n {countLabel !== undefined && (\r\n \r\n {countLabel}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default SearchSection\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst sectionContainer: (disabled?: boolean) => SxStyleProp = (\r\n disabled = false\r\n) => ({\r\n justifyContent: 'space-between',\r\n padding: '8px',\r\n mb: '8px',\r\n cursor: disabled ? 'not-allowed' : 'pointer',\r\n opacity: disabled ? 0.5 : 1,\r\n ':active, :hover': disabled\r\n ? {}\r\n : {\r\n backgroundColor: '#F8F7FC',\r\n borderRadius: '4px',\r\n '.search-section-title': {\r\n color: '#000711',\r\n },\r\n '.search-section-count': {\r\n background: '#E7E9EE',\r\n },\r\n },\r\n})\r\n\r\nconst sectionIconTitleBox: SxStyleProp = {\r\n alignItems: 'center',\r\n}\r\n\r\nconst sectionIcon: (disabled?: boolean) => SxStyleProp = (\r\n disabled = false\r\n) => ({\r\n width: '16px',\r\n height: '16px',\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n mr: '8px',\r\n opacity: disabled ? 0.6 : 1,\r\n})\r\n\r\nconst sectionTitle: (disabled?: boolean) => SxStyleProp = (\r\n disabled = false\r\n) => ({\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n color: disabled ? '#AFAFAF' : undefined,\r\n})\r\n\r\nconst sectionTitleActive: SxStyleProp = {\r\n ...sectionTitle(),\r\n color: '#142032',\r\n fontWeight: '600',\r\n}\r\n\r\nconst sectionCount: SxStyleProp = {\r\n background: '#F8F7FC',\r\n borderRadius: '24px',\r\n width: 'auto',\r\n textAlign: 'center',\r\n px: '8px',\r\n fontSize: '12px',\r\n lineHeight: '16px',\r\n}\r\n\r\nconst allResultsText: SxStyleProp = {\r\n ...sectionTitle(),\r\n ml: '24px',\r\n}\r\n\r\nconst allResultsTextActive: SxStyleProp = {\r\n ...allResultsText,\r\n fontWeight: 'bold',\r\n color: '#0C1522',\r\n}\r\n\r\nexport default {\r\n sectionContainer,\r\n sectionIconTitleBox,\r\n sectionIcon,\r\n sectionTitle,\r\n sectionTitleActive,\r\n sectionCount,\r\n allResultsText,\r\n allResultsTextActive,\r\n}\r\n","import {\r\n createContext,\r\n Dispatch,\r\n ReactNode,\r\n SetStateAction,\r\n useState,\r\n} from 'react'\r\n\r\nexport type FilterType = string\r\n\r\ntype OcurrenceType = {\r\n [key: string]: number | undefined\r\n}\r\n\r\ntype SearchContextType = {\r\n filterSelectedSection: FilterType\r\n changeFilterSelectedSection: Dispatch>\r\n ocurrenceCount: OcurrenceType\r\n updateOcurrenceCount: (resultsData: OcurrenceType) => void\r\n}\r\n\r\nexport const SearchContext = createContext({\r\n filterSelectedSection: '',\r\n changeFilterSelectedSection: () => undefined,\r\n ocurrenceCount: {},\r\n updateOcurrenceCount: () => undefined,\r\n})\r\n\r\ninterface Props {\r\n children: ReactNode\r\n}\r\n\r\nconst SearchContextProvider = ({ children }: Props) => {\r\n const [filterSelectedSection, changeFilterSelectedSection] =\r\n useState('')\r\n const [ocurrenceCount, changeOcurrenceCount] = useState({})\r\n\r\n const updateOcurrenceCount = (resultsData: OcurrenceType) => {\r\n changeOcurrenceCount(resultsData)\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default SearchContextProvider\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n display: ['none', 'none', 'none', 'initial'],\r\n height: '100%',\r\n width: '242px',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '4px',\r\n mr: ['32px', '32px', '32px', '32px', '32px', '32px', '64px'],\r\n mt: '32px',\r\n}\r\n\r\nconst notesSection: SxStyleProp = {\r\n px: '8px',\r\n paddingTop: '8px',\r\n}\r\n\r\nconst docsSection: SxStyleProp = {\r\n ...notesSection,\r\n borderBottom: '1px solid #E7E9EE',\r\n}\r\n\r\nexport default {\r\n container,\r\n notesSection,\r\n docsSection,\r\n}\r\n","import { useRouter } from 'next/router.js'\r\nimport { useContext, useEffect, useState } from 'react'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport { Box, Text } from '@vtex/brand-ui'\r\n\r\nimport { Configure, InstantSearch } from 'react-instantsearch-dom'\r\nimport { SearchState } from 'react-instantsearch-core'\r\nimport InfiniteHits from './infiniteHits'\r\n\r\nimport styles from './styles'\r\nimport { SearchContext } from 'utils/context/search'\r\nimport {\r\n searchClient,\r\n searchIndex,\r\n SEARCH_RESULTS_HITS_PER_PAGE,\r\n} from 'utils/config/search-config'\r\nimport { formatSearchTabCount } from 'utils/search-utils'\r\n\r\nconst SearchResults = () => {\r\n const router = useRouter()\r\n const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext)\r\n const { locale, sidebarSections } = useContext(LibraryContext)\r\n const excludedDoctypesFilter = sidebarSections\r\n .flat()\r\n .filter((section) => section.excludeFromSearch)\r\n .map((section) => `NOT doctype:\"${section.id}\"`)\r\n .join(' AND ')\r\n const filters = [\r\n `language:${locale}`,\r\n filterSelectedSection ? `doctype:\"${filterSelectedSection}\"` : '',\r\n excludedDoctypesFilter,\r\n ]\r\n .filter(Boolean)\r\n .join(' AND ')\r\n const keyword = String(router.query.keyword ?? '')\r\n const [prevFilter, setPrevFilter] = useState('')\r\n const [prevKeyword, setPrevKeyword] = useState(keyword)\r\n const [searchState, setSearchState] = useState({})\r\n\r\n useEffect(() => {\r\n if (!keyword || keyword === prevKeyword) return\r\n setPrevKeyword(keyword)\r\n setSearchState((currentState) => ({\r\n ...currentState,\r\n page: 1,\r\n }))\r\n }, [keyword, prevKeyword])\r\n\r\n const updateSearchState = (currentState: SearchState) => {\r\n const keywordChanged = keyword !== prevKeyword\r\n const filterChanged = filters !== prevFilter\r\n const page = keywordChanged || filterChanged ? 1 : currentState.page || 1\r\n if (keywordChanged) setPrevKeyword(keyword)\r\n setPrevFilter(filters)\r\n setSearchState({\r\n ...currentState,\r\n page,\r\n })\r\n }\r\n\r\n return (\r\n \r\n \r\n {`${messages[locale]['search_results.showing'] || 'Showing'} `}\r\n \r\n {formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? ''}\r\n \r\n {` ${messages[locale]['search_results.results_for'] || 'results for'} `}\r\n \r\n {`“${router.query.keyword}”`}\r\n \r\n {` ${messages[locale]['search_results.in'] || 'in'} ${\r\n !filterSelectedSection\r\n ? messages[locale]['search_results.all_lowercase'] || 'all results'\r\n : filterSelectedSection\r\n }`}\r\n \r\n
\r\n \r\n \r\n updateSearchState(currentState)\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default SearchResults\r\n","import { useContext, useEffect, useMemo, useRef } from 'react'\r\nimport {\r\n connectInfiniteHits,\r\n connectStateResults,\r\n} from 'react-instantsearch-dom'\r\nimport {\r\n Hit,\r\n InfiniteHitsProvided,\r\n StateResultsProvided,\r\n} from 'react-instantsearch-core'\r\nimport SearchCard from 'components/search-card'\r\nimport {\r\n ActionType,\r\n getIconFromSection,\r\n getRelativeURL,\r\n getSearchBreadcrumbs,\r\n getSearchHitMethod,\r\n} from 'utils/search-utils'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport { SearchContext } from 'utils/context/search'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport resultsStyles from 'components/search-results/styles'\r\n\r\nexport type FilteredHit2 = Hit & { filteredMatches?: Hit[] }\r\n\r\ninterface HitProps {\r\n hit: FilteredHit2\r\n}\r\n\r\nconst HitCard = ({ hit }: HitProps) => {\r\n const { sidebarSections, sidebarDataMaster, locale } =\r\n useContext(LibraryContext)\r\n const breadcrumbs = getSearchBreadcrumbs({\r\n hit,\r\n navigation: sidebarDataMaster,\r\n sections: sidebarSections,\r\n locale,\r\n })\r\n const DocIcon = getIconFromSection(sidebarSections, hit.doctype)\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nconst StateResults = connectStateResults(\r\n ({ searchResults }: StateResultsProvided) => {\r\n const { updateOcurrenceCount } = useContext(SearchContext)\r\n\r\n useEffect(() => {\r\n if (!searchResults) return\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const results = searchResults as any\r\n const isFilteringByDoctype =\r\n typeof results?._state.filters === 'string' &&\r\n results._state.filters.includes('doctype:')\r\n\r\n const formattedFacets: Record = {}\r\n const rawFacets = results?.facets\r\n\r\n if (Array.isArray(rawFacets)) {\r\n const doctypeFacet = rawFacets.find(\r\n (facet: { name?: string; data?: Record }) =>\r\n facet.name === 'doctype'\r\n )\r\n if (doctypeFacet?.data) {\r\n Object.entries(doctypeFacet.data).forEach(([key, value]) => {\r\n if (typeof value === 'number') {\r\n formattedFacets[key] = value\r\n }\r\n })\r\n }\r\n } else if (rawFacets?.doctype && typeof rawFacets.doctype === 'object') {\r\n Object.entries(rawFacets.doctype).forEach(([key, value]) => {\r\n if (typeof value === 'number') {\r\n formattedFacets[key] = value\r\n }\r\n })\r\n }\r\n\r\n const hybridAllCount = results?._hybridAllCount\r\n const hybridCountsAttempted = results?._hybridCountsAttempted === true\r\n if (typeof hybridAllCount === 'number') {\r\n formattedFacets[''] = hybridAllCount\r\n } else if (!isFilteringByDoctype && !hybridCountsAttempted) {\r\n formattedFacets[''] = results?.nbHits ?? 0\r\n }\r\n\r\n if (!isFilteringByDoctype) {\r\n updateOcurrenceCount(formattedFacets)\r\n }\r\n }, [searchResults?.queryID])\r\n\r\n return null\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n) as any\r\n\r\nconst InfiniteHits = ({ hits, hasMore, refineNext }: InfiniteHitsProvided) => {\r\n const scrollRef = useRef(null)\r\n const { locale } = useContext(LibraryContext)\r\n\r\n const filteredResult = useMemo(() => {\r\n const mergeHits: FilteredHit2[] = [] //hitsData\r\n hits.forEach((hit) => {\r\n const alreadyExists = mergeHits.findIndex(\r\n (e) => e.url_without_anchor === hit.url_without_anchor\r\n )\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const filteredHit: any = { ...hit, filteredMatches: [] }\r\n if (alreadyExists >= 0) {\r\n mergeHits[alreadyExists].filteredMatches?.push(filteredHit)\r\n } else mergeHits.push(filteredHit)\r\n })\r\n return mergeHits\r\n }, [hits])\r\n\r\n useEffect(() => {\r\n const observer = new IntersectionObserver((entries) => {\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting && hasMore) {\r\n refineNext()\r\n }\r\n })\r\n })\r\n\r\n const sentinel = scrollRef.current\r\n if (sentinel) observer.observe(sentinel)\r\n return () => {\r\n observer.disconnect()\r\n }\r\n }, [hasMore, refineNext])\r\n\r\n return (\r\n \r\n \r\n {filteredResult.length === 0 && (\r\n \r\n \r\n {messages[locale]['search_input.empty'] ||\r\n 'No results found. Try different search terms.'}\r\n \r\n \r\n )}\r\n {filteredResult.map((hit: Hit, index: number) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nexport default connectInfiniteHits(InfiniteHits) as any\r\n","import { Box, Flex, Text, IconCaret, Tooltip } from '@vtex/brand-ui'\r\nimport { useContext, useEffect, useState, MouseEvent } from 'react'\r\nimport { useRouter } from 'next/router.js'\r\nimport Link from 'next/link.js'\r\nimport { Hit } from 'react-instantsearch-core'\r\n\r\nimport styles from './styles'\r\nimport CustomHighlight, {\r\n HighlightQuery,\r\n} from 'components/search-input/customHighlight'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport ExpandedResultsIcon from 'components/icons/expanded-results-icon'\r\nimport CopyIcon from 'components/icons/copy-icon'\r\nimport ExternalLinkIcon from 'components/icons/external-link-icon'\r\nimport PaperIcon from 'components/icons/paper-icon'\r\nimport MethodCategory from 'components/method-category'\r\nimport { IconComponent, MethodType } from 'utils/typings/types'\r\nimport { ActionType, getAction } from 'utils/search-utils'\r\n\r\nexport type FilteredHit = Hit & { filteredMatches?: Hit[] }\r\ninterface SearchCardProps {\r\n doc: string\r\n title: string\r\n breadcrumbs?: string[]\r\n method?: MethodType\r\n actionType?: ActionType\r\n Icon?: IconComponent\r\n url: string\r\n hit: FilteredHit\r\n}\r\n\r\nconst SearchCard = ({\r\n Icon,\r\n title,\r\n method,\r\n breadcrumbs,\r\n actionType,\r\n url,\r\n hit,\r\n}: SearchCardProps) => {\r\n const actionValue = actionType ? getAction(actionType) : null\r\n const [toggleChildResults, setToggleChildResults] = useState(false)\r\n const [copied, setCopied] = useState(false)\r\n const { locale } = useContext(LibraryContext)\r\n const router = useRouter()\r\n const query = String(router.query.keyword ?? '')\r\n const DocIcon = Icon || PaperIcon\r\n const displayTitle =\r\n title === 'overview' && hit.doccategory\r\n ? `${hit.doccategory} ${title}`\r\n : title\r\n const crumbs = (breadcrumbs || []).filter(\r\n (crumb): crumb is string => Boolean(crumb)\r\n )\r\n\r\n useEffect(() => {\r\n if (!copied) return\r\n const timeout = window.setTimeout(() => setCopied(false), 2000)\r\n return () => window.clearTimeout(timeout)\r\n }, [copied])\r\n\r\n const handleCopy = async (event: MouseEvent) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n try {\r\n await navigator.clipboard.writeText(`${window.location.origin}${url}`)\r\n setCopied(true)\r\n } catch {\r\n setCopied(false)\r\n }\r\n }\r\n\r\n const handleOpenNewTab = (event: MouseEvent) => {\r\n event.preventDefault()\r\n event.stopPropagation()\r\n window.open(url, '_blank', 'noopener,noreferrer')\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {method ? (\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {toggleChildResults &&\r\n hit.filteredMatches?.map((childHit, index: number) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n {crumbs.length > 0 ? (\r\n \r\n \r\n {messages[locale]['search_card.in'] || 'In'}\r\n \r\n {crumbs.map((breadcrumb, index) => (\r\n \r\n \r\n {breadcrumb}\r\n \r\n {index < crumbs.length - 1 ? (\r\n \r\n ) : null}\r\n \r\n ))}\r\n \r\n ) : null}\r\n {actionValue ? (\r\n \r\n {' '}\r\n {actionValue?.title}\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n event.preventDefault()}\r\n >\r\n \r\n \r\n event.preventDefault()}\r\n >\r\n \r\n \r\n \r\n {hit.filteredMatches && hit.filteredMatches.length > 0 && (\r\n {\r\n setToggleChildResults(!toggleChildResults)\r\n event.stopPropagation()\r\n }}\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default SearchCard\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n position: 'relative',\r\n flexWrap: ['wrap', 'nowrap'],\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n borderRadius: ['8px', '12px'],\r\n border: '1px solid #E7E9EE',\r\n width: '100%',\r\n minWidth: 0,\r\n mb: ['12px', '16px'],\r\n padding: ['14px 16px', '20px 24px'],\r\n background: '#FFFFFF',\r\n cursor: 'pointer',\r\n a: {\r\n minWidth: 0,\r\n flex: ['1 1 100%', '1 1 auto'],\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n },\r\n '.search-card-actions': {\r\n opacity: [1, 0],\r\n },\r\n}\r\n\r\nconst containerActive: SxStyleProp = {\r\n ...container,\r\n ':hover': {\r\n background: '#F8F7FC',\r\n borderColor: '#D8D8E3',\r\n '.searchCardTitle, .searchCardDescription': {\r\n color: '#142032',\r\n },\r\n '.search-card-icon': {\r\n '> path': {\r\n stroke: '#000711',\r\n },\r\n },\r\n '.search-card-icon-wrap': {\r\n backgroundColor: '#EDEAF6',\r\n },\r\n '.search-card-actions': {\r\n opacity: 1,\r\n },\r\n },\r\n}\r\n\r\nconst cardBody: SxStyleProp = {\r\n alignItems: 'flex-start',\r\n minWidth: 0,\r\n width: '100%',\r\n}\r\n\r\nconst cardText: SxStyleProp = {\r\n minWidth: 0,\r\n flex: 1,\r\n}\r\n\r\nconst iconWrap: SxStyleProp = {\r\n flexShrink: 0,\r\n width: ['32px', '36px'],\r\n height: ['32px', '36px'],\r\n borderRadius: '8px',\r\n backgroundColor: '#F4F2FA',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n mr: ['10px', '12px'],\r\n mt: '2px',\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n fontSize: ['15px', '18px'],\r\n fontWeight: '600',\r\n lineHeight: ['20px', '24px'],\r\n color: '#142032',\r\n}\r\n\r\nconst titleText: SxStyleProp = {\r\n minWidth: 0,\r\n flex: 1,\r\n display: 'inline',\r\n whiteSpace: 'normal',\r\n overflowWrap: 'break-word',\r\n wordBreak: 'break-word',\r\n}\r\n\r\nconst httpMethod: SxStyleProp = {\r\n mr: '8px',\r\n flexShrink: 0,\r\n alignSelf: 'center',\r\n}\r\n\r\nconst icon: SxStyleProp = {\r\n width: '18px',\r\n height: '18px',\r\n color: '#4A596B',\r\n path: {\r\n stroke: '#4A596B',\r\n },\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n fontSize: ['13px', '16px'],\r\n lineHeight: ['18px', '22px'],\r\n color: 'muted.0',\r\n mt: '6px',\r\n mb: ['6px', '8px'],\r\n minWidth: 0,\r\n overflowWrap: 'break-word',\r\n wordBreak: 'break-word',\r\n overflow: 'hidden',\r\n display: '-webkit-box',\r\n WebkitLineClamp: [3, 4],\r\n WebkitBoxOrient: 'vertical',\r\n}\r\n\r\nconst descriptionToggle: SxStyleProp = {\r\n height: 'auto',\r\n minWidth: 'auto',\r\n cursor: 'pointer',\r\n}\r\n\r\nconst descriptionExpandedItem: SxStyleProp = {\r\n mt: '24px',\r\n}\r\n\r\nconst breadcrumbsContainer: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n overflow: 'hidden',\r\n}\r\n\r\nconst alignCenter: SxStyleProp = {\r\n alignItems: 'center',\r\n minWidth: 0,\r\n flexShrink: 1,\r\n}\r\n\r\nconst documentation: SxStyleProp = {\r\n ...alignCenter,\r\n minWidth: 0,\r\n maxWidth: ['46%', 'none'],\r\n flexShrink: 0,\r\n}\r\n\r\nconst breadcrumb: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: ['12px', '14px'],\r\n lineHeight: ['16px', '18px'],\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n}\r\n\r\nconst lastBreadcrumb: SxStyleProp = {\r\n ...breadcrumb,\r\n margin: 'auto 0',\r\n display: 'block',\r\n overflow: 'hidden',\r\n maxWidth: 'max-content',\r\n whiteSpace: 'nowrap',\r\n}\r\n\r\nconst breadcrumbsIn: SxStyleProp = {\r\n ...breadcrumb,\r\n mr: '4px',\r\n minWidth: 'fit-content',\r\n}\r\n\r\nconst breadcrumbsArrow: SxStyleProp = {\r\n width: '16px',\r\n height: '16px',\r\n color: 'muted.2',\r\n flexShrink: 0,\r\n}\r\n\r\nconst actionContainer: SxStyleProp = {\r\n alignItems: 'center',\r\n mt: '8px',\r\n}\r\n\r\nconst actionIcon: SxStyleProp = {\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n width: '16px',\r\n height: '16px',\r\n mr: '8px',\r\n}\r\n\r\nconst cardToolbar: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: ['flex-end', 'flex-start'],\r\n gap: '8px',\r\n width: ['100%', 'auto'],\r\n mt: ['8px', 0],\r\n ml: [0, '8px'],\r\n flexShrink: 0,\r\n}\r\n\r\nconst cardActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '4px',\r\n}\r\n\r\nconst actionButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: ['28px', '32px'],\r\n height: ['28px', '32px'],\r\n padding: 0,\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '6px',\r\n background: '#FFFFFF',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n ':hover': {\r\n background: '#FFFFFF',\r\n borderColor: '#C7CDD6',\r\n color: '#142032',\r\n },\r\n}\r\n\r\nconst actionButtonCopied: SxStyleProp = {\r\n ...actionButton,\r\n borderColor: '#8CD2A8',\r\n color: '#36875A',\r\n background: '#F0FAF4',\r\n}\r\n\r\nexport default {\r\n containerActive,\r\n cardBody,\r\n cardText,\r\n iconWrap,\r\n title,\r\n titleText,\r\n httpMethod,\r\n icon,\r\n description,\r\n descriptionToggle,\r\n descriptionExpandedItem,\r\n breadcrumbsContainer,\r\n alignCenter,\r\n documentation,\r\n breadcrumb,\r\n lastBreadcrumb,\r\n breadcrumbsIn,\r\n breadcrumbsArrow,\r\n actionContainer,\r\n actionIcon,\r\n cardToolbar,\r\n cardActions,\r\n actionButton,\r\n actionButtonCopied,\r\n}\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\ninterface ExpandedResultsProps extends IconProps {\r\n active: boolean\r\n}\r\n\r\nconst ExpandedResultsIcon = ({ active }: ExpandedResultsProps) =>\r\n active ? (\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\nexport default ExpandedResultsIcon\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst resultContainer: SxStyleProp = {\r\n width: ['100%', '100%', '544px', '544px', '720px', '720px', '1400px'],\r\n maxWidth: '100%',\r\n boxSizing: 'border-box',\r\n px: ['16px', '24px', 0, 0, 0, 0, 0],\r\n paddingTop: ['12px', '16px', '24px', '32px'],\r\n paddingBottom: ['24px', '24px', '24px', '32px'],\r\n overflowX: 'hidden',\r\n hr: {\r\n marginTop: '16px',\r\n borderTop: 'none',\r\n borderColor: '#DDDDDD',\r\n display: ['none', 'none', 'none', 'block'],\r\n },\r\n}\r\n\r\nconst resultText: SxStyleProp = {\r\n mb: ['12px', '12px', '16px'],\r\n fontSize: ['13px', '14px', '16px'],\r\n lineHeight: ['18px', '20px', '22px'],\r\n color: 'muted.0',\r\n display: 'block',\r\n}\r\n\r\nconst resultCount: SxStyleProp = {\r\n fontWeight: '600',\r\n color: '#142032',\r\n}\r\n\r\nconst resultKeyword: SxStyleProp = {\r\n fontWeight: '600',\r\n color: '#142032',\r\n background: '#F8E3EC',\r\n borderRadius: '4px',\r\n px: '6px',\r\n py: '1px',\r\n wordBreak: 'break-word',\r\n}\r\n\r\nconst paginationContainer: SxStyleProp = {\r\n mt: ['48px', '115px'],\r\n mb: '34px',\r\n justifyContent: 'center',\r\n}\r\n\r\nconst paginationLink: SxStyleProp = {\r\n fontSize: '16px',\r\n lineHeight: '20px',\r\n color: '#EE2565',\r\n cursor: 'pointer',\r\n}\r\n\r\nconst paginationLinkDisabled: SxStyleProp = {\r\n ...paginationLink,\r\n color: 'muted.1',\r\n}\r\n\r\nconst paginationNumber: SxStyleProp = {\r\n display: 'flex',\r\n fontSize: ['14px', '16px'],\r\n lineHeight: '20px',\r\n color: '#4A596B',\r\n mx: ['18px', '27px'],\r\n}\r\n\r\nconst paginationActualNumber: SxStyleProp = {\r\n fontWeight: '700',\r\n mx: '4px',\r\n}\r\n\r\nconst noResults: SxStyleProp = {\r\n justifyContent: 'center',\r\n alignContent: 'center',\r\n padding: ['24px 8px', '12px'],\r\n textAlign: 'center',\r\n}\r\n\r\nconst hitListItem: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n}\r\n\r\nexport default {\r\n resultContainer,\r\n resultText,\r\n resultCount,\r\n resultKeyword,\r\n paginationContainer,\r\n paginationLink,\r\n paginationLinkDisabled,\r\n paginationNumber,\r\n paginationActualNumber,\r\n noResults,\r\n hitListItem,\r\n}\r\n","import { useContext, useEffect } from 'react'\r\nimport { Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport styles from './styles'\r\nimport { SearchContext } from 'utils/context/search'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport { formatSearchTabCount } from 'utils/search-utils'\r\nimport { getSectionLabel } from 'utils/sidebar-utils'\r\nimport { IconComponent } from 'utils/typings/types'\r\n\r\nconst hasFilterResults = (\r\n ocurrenceCount: Record,\r\n filter: string\r\n) => {\r\n const count = ocurrenceCount[filter]\r\n return typeof count === 'number' && count > 0\r\n}\r\n\r\nconst SearchFilterTab = ({\r\n filter,\r\n label,\r\n Icon,\r\n}: {\r\n filter: string\r\n label?: string\r\n Icon?: IconComponent\r\n}) => {\r\n const { filterSelectedSection, changeFilterSelectedSection, ocurrenceCount } =\r\n useContext(SearchContext)\r\n const { locale } = useContext(LibraryContext)\r\n\r\n const count = ocurrenceCount[filter]\r\n const formattedCount = formatSearchTabCount(count)\r\n const isActive = filterSelectedSection === filter\r\n\r\n return (\r\n changeFilterSelectedSection(filter)}\r\n data-testid=\"doctype-filter-tab\"\r\n data-filter={filter}\r\n data-active={String(isActive)}\r\n >\r\n {Icon ? : null}\r\n \r\n {filter === ''\r\n ? messages[locale]['search_results.all'] || 'All results'\r\n : label || filter}\r\n \r\n {formattedCount !== undefined && (\r\n \r\n {formattedCount}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nconst SearchFilterTabBar = () => {\r\n const { sidebarSections, sidebarDataMaster, locale } =\r\n useContext(LibraryContext)\r\n const { ocurrenceCount, filterSelectedSection, changeFilterSelectedSection } =\r\n useContext(SearchContext)\r\n const countsLoaded = Object.keys(ocurrenceCount).length > 0\r\n const visibleSections = sidebarSections\r\n .flat()\r\n .filter((section) => !section.isExternalLink && !section.excludeFromSearch)\r\n .filter(\r\n (section) => !countsLoaded || hasFilterResults(ocurrenceCount, section.id)\r\n )\r\n\r\n useEffect(() => {\r\n if (!countsLoaded || !filterSelectedSection) return\r\n if (!hasFilterResults(ocurrenceCount, filterSelectedSection)) {\r\n changeFilterSelectedSection('')\r\n }\r\n }, [\r\n countsLoaded,\r\n filterSelectedSection,\r\n ocurrenceCount,\r\n changeFilterSelectedSection,\r\n ])\r\n\r\n return (\r\n \r\n \r\n {visibleSections.map((section) => (\r\n \r\n ))}\r\n \r\n )\r\n}\r\n\r\nexport default SearchFilterTabBar\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n display: ['flex', 'flex', 'flex', 'none'],\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '8px',\r\n px: ['16px', '24px'],\r\n pt: ['12px', '16px'],\r\n pb: ['4px', '8px'],\r\n}\r\n\r\nconst tab: (active: boolean) => SxStyleProp = (active) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: '6px',\r\n height: '32px',\r\n minHeight: '32px',\r\n px: '12px',\r\n py: 0,\r\n borderRadius: '16px',\r\n border: `1px solid ${active ? '#F8E3EC' : '#E7E9EE'}`,\r\n backgroundColor: active ? '#F8E3EC' : '#FFFFFF',\r\n cursor: 'pointer',\r\n minWidth: 'max-content',\r\n ':hover': {\r\n borderColor: active ? '#F8E3EC' : '#D8D8E3',\r\n backgroundColor: active ? '#F8E3EC' : '#F8F7FC',\r\n },\r\n})\r\n\r\nconst tabIcon: (active: boolean) => SxStyleProp = (active) => ({\r\n width: '14px',\r\n height: '14px',\r\n minWidth: '14px',\r\n minHeight: '14px',\r\n color: active ? '#D71D55' : '#4A596B',\r\n flexShrink: 0,\r\n})\r\n\r\nconst tabTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '13px',\r\n fontWeight: active ? '600' : '500',\r\n lineHeight: '16px',\r\n whiteSpace: 'nowrap',\r\n color: active ? '#D71D55' : '#4A596B',\r\n})\r\n\r\nconst tabCount: (active: boolean) => SxStyleProp = (active) => ({\r\n px: '6px',\r\n fontSize: '11px',\r\n fontWeight: '500',\r\n lineHeight: '16px',\r\n borderRadius: '24px',\r\n backgroundColor: active ? '#FFFFFF' : '#EDEAF6',\r\n color: active ? '#D71D55' : '#4A596B',\r\n})\r\n\r\nexport default { container, tab, tabIcon, tabTitle, tabCount }\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst body: SxStyleProp = {\r\n background: '#FFFFFF',\r\n justifyContent: 'center',\r\n px: [0, 0, 0, '16px'],\r\n}\r\n\r\nexport default {\r\n body,\r\n}\r\n","import { ReactNode, useContext } from 'react'\r\nimport { CookieConsent } from 'react-cookie-consent'\r\nimport styles from './styles'\r\nimport { Flex, SxStyleProp, Text } from '@vtex/brand-ui'\r\nimport { messages } from 'utils/get-message'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport aa from 'search-insights'\r\n\r\ninterface Props {\r\n onAccept: () => void\r\n}\r\n\r\ninterface ButtonProps {\r\n children: ReactNode[]\r\n style: SxStyleProp\r\n}\r\n\r\nconst Button = ({ children, style, ...props }: ButtonProps) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nconst CookieBar = ({ onAccept }: Props) => {\r\n const { locale } = useContext(LibraryContext)\r\n\r\n return (\r\n {\r\n aa('init', {\r\n partial: true,\r\n useCookie: true,\r\n })\r\n onAccept()\r\n }}\r\n declineButtonText={messages[locale]['cookie_bar.decline']}\r\n buttonText={messages[locale]['cookie_bar.accept']}\r\n ButtonComponent={Button}\r\n customButtonWrapperAttributes={{ style: styles.buttonContainer }}\r\n customContentAttributes={{ style: styles.barContent }}\r\n >\r\n {messages[locale]['cookie_bar.title']}\r\n {messages[locale]['cookie_bar.description']}\r\n \r\n )\r\n}\r\n\r\nexport default CookieBar\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst bar: SxStyleProp = {\r\n backgroundColor: '#FFF',\r\n borderRadius: '8px',\r\n color: '#5E6E84',\r\n padding: '20px',\r\n width: '80%',\r\n left: '50%',\r\n transform: 'translateX(-50%)',\r\n maxWidth: '1280px',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n boxShadow: '0 0 10px rgba(0, 0, 0, 0.1)',\r\n}\r\n\r\nconst barContent: SxStyleProp = {\r\n display: 'flex',\r\n flex: '1 0 300px',\r\n flexDirection: 'column',\r\n maxWidth: '100%',\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n color: '#5E6E84',\r\n marginBottom: '10px',\r\n lineHeight: '28px',\r\n fontSize: '25px',\r\n fontWeight: '400',\r\n}\r\n\r\nconst buttonContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n gap: '10px',\r\n justifyContent: 'center',\r\n margin: '15px',\r\n}\r\n\r\nconst acceptButton: SxStyleProp = {\r\n background: '#F71963',\r\n color: '#FFF',\r\n padding: '7px 16px',\r\n borderRadius: '2px',\r\n margin: '0',\r\n height: '32px',\r\n fontWeight: '400',\r\n\r\n ':hover': {\r\n opacity: '0.7',\r\n },\r\n}\r\n\r\nconst declineButton: SxStyleProp = {\r\n border: '1px solid #F71963',\r\n background: '#FFF',\r\n color: '#F71963',\r\n borderRadius: '2px',\r\n fontWeight: '400',\r\n margin: '0',\r\n height: '32px',\r\n\r\n ':hover': {\r\n opacity: '0.7',\r\n },\r\n}\r\n\r\nexport default {\r\n bar,\r\n barContent,\r\n title,\r\n acceptButton,\r\n declineButton,\r\n buttonContainer,\r\n}\r\n","import { Button } from '@vtex/brand-ui'\r\nimport Tooltip from 'components/tooltip'\r\nimport CopyIcon from '../icons/copy-icon'\r\nimport { useState } from 'react'\r\nimport styles from './styles'\r\n\r\nconst CopyLinkButton = () => {\r\n const [tooltipText, setTooltipText] = useState('Copy')\r\n\r\n const handleCopy = () => {\r\n navigator.clipboard.writeText(window.location.href)\r\n setTooltipText('Copy')\r\n\r\n setTimeout(() => {\r\n setTooltipText('Copied!')\r\n }, 2000)\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CopyLinkButton\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst copyIcon: SxStyleProp = {\r\n marginRight: '4px',\r\n}\r\n\r\nconst copyLinkButton: SxStyleProp = {\r\n textTransform: 'none',\r\n color: '#3F3F3F',\r\n fontWeight: '100',\r\n fontSize: '12px',\r\n lineHeight: '18px',\r\n height: 'none',\r\n padding: '8px 5px 8px 8px',\r\n border: '1px solid #A1AAB7',\r\n backgroundColor: 'white',\r\n ':hover': {\r\n backgroundColor: '#EFEFEF',\r\n },\r\n}\r\n\r\nexport default {\r\n copyIcon,\r\n copyLinkButton,\r\n}\r\n","import { useCallback, useState, useRef, useEffect } from 'react'\r\nimport copy from 'copy-text-to-clipboard'\r\nimport { Box, Button, Icon } from '@vtex/brand-ui'\r\nimport type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nimport styles from './styles'\r\n\r\nexport type CopyButtonProps = {\r\n code: string\r\n sx?: SxStyleProp\r\n}\r\n\r\nconst CopyButton = ({ code, sx }: CopyButtonProps): JSX.Element => {\r\n const [isCopied, setIsCopied] = useState(false)\r\n const copyTimeout = useRef(undefined)\r\n const handleCopyCode = useCallback(() => {\r\n copy(code)\r\n setIsCopied(true)\r\n copyTimeout.current = window.setTimeout(() => {\r\n setIsCopied(false)\r\n }, 1000)\r\n }, [code])\r\n\r\n useEffect(() => () => window.clearTimeout(copyTimeout.current), [])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default CopyButton\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst basicButton: SxStyleProp = {\r\n float: 'right',\r\n ':focus': {\r\n outline: 'none !important',\r\n boxShadow: 'none !important',\r\n },\r\n width: '28px',\r\n height: '28px',\r\n padding: '6px',\r\n marginX: '18px',\r\n}\r\n\r\nconst copyButton: SxStyleProp = {\r\n ...basicButton,\r\n backgroundColor: '#E7E9EE',\r\n}\r\nconst copyButtonCopied: SxStyleProp = {\r\n ...basicButton,\r\n backgroundColor: '#E6F2E6',\r\n}\r\n\r\nconst copyButtonIcons: SxStyleProp = {\r\n position: 'relative',\r\n width: '16px',\r\n height: '16px',\r\n}\r\n\r\nconst copyButtonIcon: SxStyleProp = {\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n fill: '#142032',\r\n opacity: 'inherit',\r\n width: 'inherit',\r\n height: 'inherit',\r\n transition: 'all 0.15s ease',\r\n}\r\n\r\nconst copyButtonSuccessIcon: SxStyleProp = {\r\n ...copyButtonIcon,\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n fill: '#79A479',\r\n}\r\n\r\nconst copyButtonIconCopied: SxStyleProp = {\r\n transform: 'scale(0.33)',\r\n opacity: '0',\r\n}\r\n\r\nconst copyButtonSuccessIconCopied: SxStyleProp = {\r\n transform: 'translate(-50%, -50%)',\r\n opacity: '1',\r\n transitionDelay: '0.075s',\r\n}\r\n\r\nexport default {\r\n copyButton,\r\n copyButtonCopied,\r\n copyButtonIcons,\r\n copyButtonIcon,\r\n copyButtonSuccessIcon,\r\n copyButtonSuccessIconCopied,\r\n copyButtonIconCopied,\r\n}\r\n","import { useContext, useEffect, useRef, useState } from 'react'\r\nimport copy from 'copy-text-to-clipboard'\r\nimport { Box, Text, IconCaret } from '@vtex/brand-ui'\r\n\r\nimport ChatGPTIcon from 'components/icons/chatgpt-icon'\r\nimport CopilotIcon from 'components/icons/copilot-icon'\r\nimport ClaudeIcon from 'components/icons/claude-icon'\r\nimport GeminiIcon from 'components/icons/gemini-icon'\r\nimport LongArrowIcon from 'components/icons/long-arrow-icon'\r\nimport MarkdownIcon from 'components/icons/markdown-icon'\r\nimport CheckIcon from 'components/icons/check-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type AskAIProvider = {\r\n id: string\r\n name: string\r\n href?: string\r\n onClick?: () => void\r\n}\r\n\r\nexport type AskAIMenuProps = {\r\n /** Markdown file path sent to `contentEndpoint` and appended to `rawContentBaseUrl`. */\r\n filePath: string\r\n /** Public page URL included in AI prompts. */\r\n pageUrl: string\r\n /** Base URL for viewing raw markdown. `filePath` is appended. */\r\n rawContentBaseUrl: string\r\n providers?: AskAIProvider[]\r\n onOpenProvider?: (provider: AskAIProvider) => void\r\n /** Endpoint that returns markdown for `filePath`. */\r\n contentEndpoint?: string\r\n /** Override the default fetch used by Copy page. */\r\n onCopyPage?: () => Promise\r\n}\r\n\r\nconst DEFAULT_PROVIDERS: AskAIProvider[] = [\r\n { id: 'chatgpt', name: 'ChatGPT', href: 'https://chat.openai.com/' },\r\n { id: 'copilot', name: 'Copilot', href: 'https://copilot.microsoft.com/' },\r\n { id: 'claude', name: 'Claude', href: 'https://claude.ai/' },\r\n { id: 'gemini', name: 'Gemini', href: 'https://gemini.google.com/app' },\r\n]\r\n\r\nconst DEFAULT_CONTENT_ENDPOINT = '/api/llm-content'\r\n\r\nconst joinUrl = (base: string, path: string) =>\r\n `${base.replace(/\\/?$/, '/')}${path.replace(/^\\//, '')}`\r\n\r\nconst getMarkdownFromResponse = (data: {\r\n content?: string | { result?: string }\r\n}) => {\r\n if (typeof data.content === 'string') return data.content\r\n return data.content?.result\r\n}\r\n\r\nconst fetchMarkdown = async (filePath: string, contentEndpoint: string) => {\r\n const params = new URLSearchParams({ path: filePath })\r\n const res = await fetch(`${contentEndpoint}?${params.toString()}`)\r\n if (!res.ok) {\r\n const errorText = await res.text()\r\n throw new Error(`Failed to fetch content: ${res.status} ${errorText}`)\r\n }\r\n const data = await res.json()\r\n return getMarkdownFromResponse(data)\r\n}\r\n\r\nconst ProviderIcon = ({ id, size = 14 }: { id: string; size?: number }) => {\r\n switch (id) {\r\n case 'chatgpt':\r\n return \r\n case 'copilot':\r\n return \r\n case 'claude':\r\n return \r\n case 'gemini':\r\n return \r\n default:\r\n return null\r\n }\r\n}\r\n\r\nconst AskAIMenu = ({\r\n filePath,\r\n pageUrl,\r\n rawContentBaseUrl,\r\n providers = DEFAULT_PROVIDERS,\r\n onOpenProvider,\r\n contentEndpoint = DEFAULT_CONTENT_ENDPOINT,\r\n onCopyPage,\r\n}: AskAIMenuProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const localizedMessages = messages[locale] ?? messages.en\r\n const copyLabel = localizedMessages['ask_ai.copy'] || 'Copy markdown'\r\n const viewLabel = localizedMessages['ask_ai.view'] || 'View markdown'\r\n const copiedLabel = localizedMessages['ask_ai.copied'] || 'Copied'\r\n const [open, setOpen] = useState(false)\r\n const [isCopied, setIsCopied] = useState(false)\r\n const [isLoading, setIsLoading] = useState(false)\r\n const menuRef = useRef(null)\r\n\r\n const handleProvider = (provider: AskAIProvider) => {\r\n onOpenProvider?.(provider)\r\n\r\n if (provider.onClick) {\r\n provider.onClick()\r\n } else if (provider.href) {\r\n let url = provider.href\r\n const prompt = `You are a helpful assistant specialized in VTEX documentation. Answer questions based on the following documentation: ${pageUrl}`\r\n\r\n if (provider.id === 'chatgpt') {\r\n url = `https://chat.openai.com/?q=${encodeURIComponent(prompt)}`\r\n } else if (provider.id === 'copilot') {\r\n url = `https://copilot.microsoft.com/?q=${encodeURIComponent(prompt)}`\r\n }\r\n window.open(url, '_blank', 'noopener,noreferrer')\r\n }\r\n\r\n setOpen(false)\r\n }\r\n\r\n const handleCopy = async () => {\r\n if (isLoading) return\r\n if (isCopied) {\r\n setIsCopied(false)\r\n return\r\n }\r\n setIsLoading(true)\r\n try {\r\n const markdown = onCopyPage\r\n ? await onCopyPage()\r\n : await fetchMarkdown(filePath, contentEndpoint)\r\n\r\n if (!markdown) {\r\n throw new Error('No content received from API')\r\n }\r\n\r\n const success = copy(markdown)\r\n if (success) {\r\n setIsCopied(true)\r\n setTimeout(() => setIsCopied(false), 2000)\r\n } else {\r\n throw new Error('Failed to copy to clipboard')\r\n }\r\n } catch {\r\n setIsCopied(false)\r\n } finally {\r\n setIsLoading(false)\r\n }\r\n }\r\n\r\n const handleView = () => {\r\n if (filePath && rawContentBaseUrl) {\r\n window.open(\r\n joinUrl(rawContentBaseUrl, filePath),\r\n '_blank',\r\n 'noopener,noreferrer'\r\n )\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (event: MouseEvent) => {\r\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\r\n setOpen(false)\r\n }\r\n }\r\n\r\n if (open) {\r\n document.addEventListener('mousedown', handleClickOutside)\r\n }\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside)\r\n }\r\n }, [open])\r\n\r\n return (\r\n \r\n \r\n \r\n {isCopied ? : }\r\n {isCopied ? copiedLabel : copyLabel}\r\n \r\n\r\n setOpen((isOpen) => !isOpen)}\r\n aria-haspopup=\"menu\"\r\n aria-expanded={open}\r\n aria-controls=\"askai-menu\"\r\n >\r\n \r\n \r\n \r\n\r\n {open && (\r\n \r\n \r\n {providers.map((provider) => (\r\n handleProvider(provider)}\r\n role=\"menuitem\"\r\n aria-label={`Open ${provider.name}`}\r\n >\r\n \r\n \r\n {provider.name} \r\n \r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n \r\n {viewLabel}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default AskAIMenu\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ChatGPTIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default ChatGPTIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CopilotIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default CopilotIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ClaudeIcon = (props: IconProps) => (\r\n \r\n Claude\r\n \r\n \r\n)\r\n\r\nexport default ClaudeIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst GeminiIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default GeminiIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LongArrowIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default LongArrowIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst MarkdownIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default MarkdownIcon\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst baseBtn: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: 3,\r\n px: 3,\r\n minHeight: 36,\r\n fontSize: 12,\r\n color: 'muted.0',\r\n backgroundColor: '#fff',\r\n border: '1px solid #E7E9EE',\r\n cursor: 'pointer',\r\n '&:hover': { backgroundColor: '#F8F7FC', color: '#000711' },\r\n}\r\n\r\nconst container: SxStyleProp = {\r\n position: 'relative',\r\n}\r\n\r\nconst group: SxStyleProp = {\r\n position: 'relative',\r\n display: 'inline-flex',\r\n borderRadius: '4px',\r\n overflow: 'hidden',\r\n width: '100%',\r\n}\r\n\r\nconst primaryBtn: SxStyleProp = {\r\n ...baseBtn,\r\n borderRight: '0',\r\n borderTopLeftRadius: '4px',\r\n borderBottomLeftRadius: '4px',\r\n width: '100%',\r\n}\r\n\r\nconst caretBtn: SxStyleProp = {\r\n ...baseBtn,\r\n px: 2,\r\n width: 36,\r\n justifyContent: 'center',\r\n borderTopRightRadius: '4px',\r\n borderBottomRightRadius: '4px',\r\n}\r\n\r\nconst askaiMenu: SxStyleProp = {\r\n position: 'absolute',\r\n width: 160,\r\n zIndex: 50,\r\n bg: 'white',\r\n color: 'muted.0',\r\n boxShadow:\r\n '0 8px 24px rgba(18, 21, 26, 0.12), 0 2px 6px rgba(18, 21, 26, 0.08)',\r\n border: '1px solid',\r\n borderColor: '#E7E9EE',\r\n borderRadius: '4px',\r\n overflow: 'hidden',\r\n backdropFilter: 'saturate(120%) blur(6px)',\r\n}\r\n\r\nconst askaiSection: SxStyleProp = {\r\n '& + &': {\r\n borderTop: '1px solid',\r\n borderColor: '#E7E9EE',\r\n },\r\n}\r\n\r\nconst askaiItem: SxStyleProp = {\r\n width: '100%',\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: 2,\r\n textAlign: 'left',\r\n px: 3,\r\n py: 2,\r\n minHeight: 40,\r\n background: 'transparent',\r\n border: '0',\r\n cursor: 'pointer',\r\n fontSize: 12,\r\n color: 'muted.0',\r\n transition:\r\n 'background-color 120ms ease, color 120ms ease, transform 80ms ease',\r\n '&:hover': {\r\n backgroundColor: '#F8F7FC',\r\n color: '#000711',\r\n },\r\n '&:active': {\r\n transform: 'translateY(1px)',\r\n },\r\n}\r\n\r\nexport default {\r\n container,\r\n group,\r\n primaryBtn,\r\n caretBtn,\r\n askaiMenu,\r\n askaiSection,\r\n askaiItem,\r\n}\r\n","import {\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useId,\r\n useLayoutEffect,\r\n useMemo,\r\n useRef,\r\n useState,\r\n type KeyboardEvent,\r\n} from 'react'\r\nimport { createPortal } from 'react-dom'\r\nimport copy from 'copy-text-to-clipboard'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport BookIcon from 'components/icons/book-icon'\r\nimport CheckIcon from 'components/icons/check-icon'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport CollapseIcon from 'components/icons/collapse-icon'\r\nimport CopyIcon from 'components/icons/copy-icon'\r\nimport ExpandIcon from 'components/icons/expand-icon'\r\nimport HistoryIcon from 'components/icons/history-icon'\r\nimport LikeIcon from 'components/icons/like-icon'\r\nimport LikeSelectedIcon from 'components/icons/like-selected-icon'\r\nimport RefreshIcon from 'components/icons/refresh-icon'\r\nimport SearchIcon from 'components/icons/search-icon'\r\nimport SendIcon from 'components/icons/send-icon'\r\nimport SparkleIcon from 'components/icons/sparkle-icon'\r\nimport NewChatIcon from 'components/icons/new-chat-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\nimport { DEFAULT_ASK_ASSISTANT_EXAMPLES } from './default-examples'\r\nimport {\r\n conversationTitle,\r\n readHistory,\r\n upsertHistory,\r\n writeHistory,\r\n} from './history'\r\nimport MarkdownMessage, { stripAnswerMetadata } from './markdown'\r\nimport { createDefaultStream, isInternalEvent } from './stream'\r\nimport styles, { SPLIT_VIEW_MQ, splitViewCss } from './styles'\r\nimport type {\r\n AskAssistantProps,\r\n AssistantStreamEvent,\r\n ChatMessage,\r\n HistoryConversation,\r\n ProcessStep,\r\n} from './types'\r\n\r\nconst SPLIT_VIEW_STYLE_ID = 'ask-assistant-split-view'\r\n\r\nconst ensureSplitViewStyles = () => {\r\n if (typeof document === 'undefined') return\r\n let style = document.getElementById(SPLIT_VIEW_STYLE_ID) as HTMLStyleElement | null\r\n if (!style) {\r\n style = document.createElement('style')\r\n style.id = SPLIT_VIEW_STYLE_ID\r\n document.head.appendChild(style)\r\n }\r\n style.textContent = splitViewCss\r\n}\r\n\r\nconst createId = () => `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`\r\n\r\nconst isMacShortcut = () =>\r\n typeof navigator !== 'undefined' &&\r\n /Mac|iPhone|iPad|iPod/.test(navigator.platform)\r\n\r\nconst toolStepLabel = (name: string, labels: Record) => {\r\n if (name === 'search_documentation') return labels.stepSearchDocs\r\n if (name === 'search_endpoints') return labels.stepSearchEndpoints\r\n if (name === 'get_endpoint_details') return labels.stepReadEndpoints\r\n if (name === 'fetch_document') return labels.stepReadDocument\r\n if (name === 'final_answer') return labels.stepCreateResponse\r\n return labels.stepSearch\r\n}\r\n\r\nconst processHeaderText = (\r\n count: number,\r\n complete: boolean,\r\n labels: Record\r\n) => {\r\n if (!complete) return labels.processRunning\r\n if (count === 1) return labels.processCompletedOne\r\n return labels.processCompleted.replace('{count}', String(count))\r\n}\r\n\r\nconst ToolStepIcon = ({ name }: { name: string }) =>\r\n name === 'final_answer' || name === 'fetch_document' ? (\r\n \r\n ) : (\r\n \r\n )\r\n\r\nconst completeSteps = (steps: ProcessStep[] = []): ProcessStep[] =>\r\n steps.map((step) =>\r\n step.status === 'complete' ? step : { ...step, status: 'complete' }\r\n )\r\n\r\nconst ensureFinalStep = (steps: ProcessStep[] = []): ProcessStep[] => {\r\n const next = completeSteps(steps)\r\n if (next.some((step) => step.name === 'final_answer')) return next\r\n return [...next, { id: createId(), name: 'final_answer', status: 'complete' }]\r\n}\r\n\r\nconst AskAssistant = ({\r\n streamUrl,\r\n stream,\r\n open,\r\n defaultOpen = false,\r\n onOpenChange,\r\n hideTrigger = false,\r\n floatingOnMobile = true,\r\n enableShortcut = true,\r\n initialMessages = [],\r\n examples = DEFAULT_ASK_ASSISTANT_EXAMPLES,\r\n initialHistory = [],\r\n onAsk,\r\n onFeedback,\r\n}: AskAssistantProps) => {\r\n const { locale, setSidebarSectionHidden } = useContext(LibraryContext)\r\n const sidebarHiddenBeforeOpen = useRef(null)\r\n const localized = messages[locale] ?? messages.en\r\n const titleId = useId()\r\n const textareaRef = useRef(null)\r\n const listRef = useRef(null)\r\n const historyRef = useRef(null)\r\n const abortRef = useRef(null)\r\n const pendingToolsRef = useRef<{ name: string; stepId: string }[]>([])\r\n const conversationIdRef = useRef(null)\r\n const chatRef = useRef(initialMessages)\r\n\r\n const [mounted, setMounted] = useState(false)\r\n const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen)\r\n const [expanded, setExpanded] = useState(false)\r\n const [isSplitView, setIsSplitView] = useState(false)\r\n const [draft, setDraft] = useState('')\r\n const [chat, setChat] = useState(initialMessages)\r\n const [feedback, setFeedback] = useState>({})\r\n const [copiedId, setCopiedId] = useState(null)\r\n const [activeExampleId, setActiveExampleId] = useState(examples[0]?.id ?? '')\r\n const [history, setHistory] = useState(initialHistory)\r\n const [historyOpen, setHistoryOpen] = useState(false)\r\n\r\n const isOpen = open ?? uncontrolledOpen\r\n const isStreaming = chat.some((message) => message.status === 'streaming')\r\n const canSend = Boolean(draft.trim()) && !isStreaming\r\n const showFloatingTrigger =\r\n floatingOnMobile && !hideTrigger && mounted && !isOpen\r\n\r\n const labels = useMemo(\r\n () => ({\r\n button: localized['ask_assistant.button'] || 'Ask Assistant',\r\n title: localized['ask_assistant.title'] || 'Assistant',\r\n heroTitle: localized['ask_assistant.hero_title'] || 'How can I help you?',\r\n heroSubtitle:\r\n localized['ask_assistant.hero_subtitle'] ||\r\n 'Get answers from VTEX documentation.',\r\n placeholder:\r\n localized['ask_assistant.placeholder'] || 'Ask a question...',\r\n send: localized['ask_assistant.send'] || 'Send',\r\n close: localized['ask_assistant.close'] || 'Close',\r\n clear: localized['ask_assistant.clear'] || 'New chat',\r\n history: localized['ask_assistant.history'] || 'History',\r\n historyClear: localized['ask_assistant.history_clear'] || 'clear',\r\n expand: localized['ask_assistant.expand'] || 'Expand',\r\n collapse: localized['ask_assistant.collapse'] || 'Collapse',\r\n copy: localized['ask_assistant.copy'] || 'Copy',\r\n copied: localized['ask_assistant.copied'] || 'Copied',\r\n regenerate: localized['ask_assistant.regenerate'] || 'Regenerate',\r\n helpful: localized['ask_assistant.helpful'] || 'Helpful',\r\n notHelpful: localized['ask_assistant.not_helpful'] || 'Not helpful',\r\n error:\r\n localized['ask_assistant.error'] ||\r\n 'Could not reach the assistant. Please try again.',\r\n searching: localized['ask_assistant.searching'] || 'Searching...',\r\n searchingDocs:\r\n localized['ask_assistant.searching_docs'] || 'Searching documentation',\r\n searchingEndpoints:\r\n localized['ask_assistant.searching_endpoints'] || 'Searching endpoints',\r\n readingEndpoints:\r\n localized['ask_assistant.reading_endpoints'] ||\r\n 'Reading endpoint details',\r\n readingDocument:\r\n localized['ask_assistant.reading_document'] || 'Reading document',\r\n readFile: localized['ask_assistant.read_file'] || 'Read 1 file',\r\n readFiles: localized['ask_assistant.read_files'] || 'Read {count} files',\r\n foundEndpoint:\r\n localized['ask_assistant.found_endpoint'] || 'Found 1 endpoint',\r\n foundEndpoints:\r\n localized['ask_assistant.found_endpoints'] || 'Found {count} endpoints',\r\n examples: localized['ask_assistant.examples'] || 'Examples:',\r\n tool: localized['ask_assistant.tool'] || 'Tool',\r\n processRunning:\r\n localized['ask_assistant.process_running'] || 'Processing...',\r\n processCompleted:\r\n localized['ask_assistant.process_completed'] ||\r\n 'Process completed ({count} steps)',\r\n processCompletedOne:\r\n localized['ask_assistant.process_completed_one'] ||\r\n 'Process completed (1 step)',\r\n stepSearchDocs:\r\n localized['ask_assistant.step_search_docs'] || 'Search documentation',\r\n stepSearchEndpoints:\r\n localized['ask_assistant.step_search_endpoints'] || 'Search endpoints',\r\n stepReadEndpoints:\r\n localized['ask_assistant.step_read_endpoints'] ||\r\n 'Read endpoint details',\r\n stepReadDocument:\r\n localized['ask_assistant.step_read_document'] || 'Read document',\r\n stepCreateResponse:\r\n localized['ask_assistant.step_create_response'] || 'Create response',\r\n stepSearch: localized['ask_assistant.step_search'] || 'Search',\r\n }),\r\n [localized]\r\n )\r\n\r\n const categories = useMemo(\r\n () =>\r\n examples.filter((category) =>\r\n category.questions.some((question) => question.trim())\r\n ),\r\n [examples]\r\n )\r\n\r\n const setOpen = useCallback(\r\n (next: boolean) => {\r\n if (open === undefined) setUncontrolledOpen(next)\r\n onOpenChange?.(next)\r\n },\r\n [open, onOpenChange]\r\n )\r\n\r\n const persistConversation = useCallback(\r\n (id: string, messages: ChatMessage[]) => {\r\n const title = conversationTitle(messages)\r\n if (!title) return\r\n\r\n setHistory((current) => {\r\n const next = upsertHistory(current, { id, title, messages })\r\n writeHistory(next)\r\n return next\r\n })\r\n },\r\n []\r\n )\r\n\r\n const patchAssistant = useCallback(\r\n (\r\n id: string,\r\n patch: Partial | ((message: ChatMessage) => ChatMessage)\r\n ) => {\r\n setChat((current) =>\r\n current.map((message) => {\r\n if (message.id !== id) return message\r\n return typeof patch === 'function'\r\n ? patch(message)\r\n : { ...message, ...patch }\r\n })\r\n )\r\n },\r\n []\r\n )\r\n\r\n const runStream = useCallback(\r\n async (query: string, assistantId: string) => {\r\n abortRef.current?.abort()\r\n const controller = new AbortController()\r\n abortRef.current = controller\r\n pendingToolsRef.current = []\r\n let content = ''\r\n\r\n const applyContent = (next: string, status?: ChatMessage['status']) => {\r\n const visible = stripAnswerMetadata(next)\r\n if (!visible) return\r\n content = visible\r\n patchAssistant(assistantId, {\r\n content: visible,\r\n ...(status ? { status } : {}),\r\n })\r\n }\r\n\r\n const handleEvent = (event: AssistantStreamEvent) => {\r\n if (isInternalEvent(event.type)) return\r\n\r\n if (event.type === 'ToolCall' && event.name) {\r\n const stepId = createId()\r\n pendingToolsRef.current.push({ name: event.name, stepId })\r\n patchAssistant(assistantId, (message) => ({\r\n ...message,\r\n steps: [\r\n ...(message.steps ?? []),\r\n { id: stepId, name: event.name as string, status: 'running' },\r\n ],\r\n }))\r\n const answer =\r\n event.name === 'final_answer' &&\r\n typeof event.arguments?.answer === 'string'\r\n ? event.arguments.answer\r\n : ''\r\n if (answer) applyContent(answer)\r\n return\r\n }\r\n\r\n if (event.type === 'ToolOutput') {\r\n const pending = pendingToolsRef.current.shift()\r\n if (pending) {\r\n patchAssistant(assistantId, (message) => ({\r\n ...message,\r\n steps: (message.steps ?? []).map((step) =>\r\n step.id === pending.stepId\r\n ? { ...step, status: 'complete' }\r\n : step\r\n ),\r\n }))\r\n }\r\n if (\r\n event.output &&\r\n (event.is_final_answer || pending?.name === 'final_answer')\r\n ) {\r\n applyContent(event.output)\r\n }\r\n return\r\n }\r\n\r\n if (event.type === 'FinalAnswerStep' && event.output) {\r\n const visible = stripAnswerMetadata(event.output)\r\n content = visible\r\n patchAssistant(assistantId, (message) => ({\r\n ...message,\r\n content: visible,\r\n status: 'complete',\r\n steps: ensureFinalStep(message.steps),\r\n }))\r\n }\r\n }\r\n\r\n try {\r\n const run =\r\n stream ??\r\n (streamUrl ? createDefaultStream(streamUrl, locale) : undefined)\r\n if (!run) {\r\n throw new Error('AskAssistant requires stream or streamUrl')\r\n }\r\n await run(query, controller.signal, handleEvent)\r\n patchAssistant(assistantId, (message) => ({\r\n ...message,\r\n status: content ? 'complete' : 'error',\r\n content: content || labels.error,\r\n steps: content\r\n ? ensureFinalStep(message.steps)\r\n : completeSteps(message.steps),\r\n }))\r\n } catch (error) {\r\n if ((error as Error).name === 'AbortError') return\r\n patchAssistant(assistantId, (message) => ({\r\n ...message,\r\n status: 'error',\r\n content: labels.error,\r\n steps: completeSteps(message.steps),\r\n }))\r\n }\r\n },\r\n [labels, locale, stream, streamUrl, patchAssistant]\r\n )\r\n\r\n const submit = useCallback(\r\n async (text: string) => {\r\n const trimmed = text.trim()\r\n if (!trimmed || isStreaming) return\r\n\r\n const userMessage: ChatMessage = {\r\n id: createId(),\r\n role: 'user',\r\n content: trimmed,\r\n status: 'complete',\r\n }\r\n const assistantMessage: ChatMessage = {\r\n id: createId(),\r\n role: 'assistant',\r\n content: '',\r\n steps: [],\r\n status: 'streaming',\r\n }\r\n\r\n setDraft('')\r\n if (!conversationIdRef.current) conversationIdRef.current = createId()\r\n setChat((current) => {\r\n const next = [...current, userMessage, assistantMessage]\r\n chatRef.current = next\r\n return next\r\n })\r\n onAsk?.(trimmed)\r\n await runStream(trimmed, assistantMessage.id)\r\n },\r\n [isStreaming, onAsk, runStream]\r\n )\r\n\r\n const clearChat = () => {\r\n abortRef.current?.abort()\r\n if (conversationIdRef.current && chatRef.current.length > 0) {\r\n persistConversation(conversationIdRef.current, chatRef.current)\r\n }\r\n conversationIdRef.current = null\r\n setChat([])\r\n chatRef.current = []\r\n setFeedback({})\r\n setHistoryOpen(false)\r\n }\r\n\r\n const clearHistory = () => {\r\n setHistory([])\r\n writeHistory([])\r\n setHistoryOpen(false)\r\n }\r\n\r\n const openHistoryItem = (item: HistoryConversation) => {\r\n setHistoryOpen(false)\r\n if (item.id === conversationIdRef.current) return\r\n\r\n abortRef.current?.abort()\r\n if (conversationIdRef.current && chatRef.current.length > 0) {\r\n persistConversation(conversationIdRef.current, chatRef.current)\r\n }\r\n\r\n conversationIdRef.current = item.id\r\n chatRef.current = item.messages\r\n setChat(item.messages)\r\n setFeedback({})\r\n setDraft('')\r\n }\r\n\r\n const regenerate = (assistantId: string) => {\r\n const index = chat.findIndex((message) => message.id === assistantId)\r\n if (index < 1) return\r\n const userMessage = [...chat.slice(0, index)]\r\n .reverse()\r\n .find((message) => message.role === 'user')\r\n if (!userMessage) return\r\n\r\n const nextAssistant: ChatMessage = {\r\n id: createId(),\r\n role: 'assistant',\r\n content: '',\r\n steps: [],\r\n status: 'streaming',\r\n }\r\n\r\n setChat((current) => [\r\n ...current.slice(0, index),\r\n nextAssistant,\r\n ...current.slice(index + 1),\r\n ])\r\n setFeedback((current) => {\r\n const next = { ...current }\r\n delete next[assistantId]\r\n return next\r\n })\r\n void runStream(userMessage.content, nextAssistant.id)\r\n }\r\n\r\n const copyAnswer = (message: ChatMessage) => {\r\n const visible = stripAnswerMetadata(message.content)\r\n if (!visible) return\r\n copy(visible)\r\n setCopiedId(message.id)\r\n window.setTimeout(() => setCopiedId(null), 1600)\r\n }\r\n\r\n const vote = (message: ChatMessage, liked: boolean) => {\r\n setFeedback((current) => ({ ...current, [message.id]: liked }))\r\n const messageIndex = chat.findIndex((item) => item.id === message.id)\r\n const query =\r\n chat\r\n .slice(0, messageIndex)\r\n .reverse()\r\n .find((item) => item.role === 'user')?.content ?? ''\r\n onFeedback?.({ query, answer: stripAnswerMetadata(message.content), liked })\r\n }\r\n\r\n useEffect(() => {\r\n ensureSplitViewStyles()\r\n setMounted(true)\r\n const stored = readHistory()\r\n if (stored.length) setHistory(stored)\r\n\r\n const mq = window.matchMedia(SPLIT_VIEW_MQ)\r\n const updateSplitView = () => setIsSplitView(mq.matches)\r\n updateSplitView()\r\n mq.addEventListener('change', updateSplitView)\r\n\r\n return () => {\r\n abortRef.current?.abort()\r\n mq.removeEventListener('change', updateSplitView)\r\n }\r\n }, [])\r\n\r\n useLayoutEffect(() => {\r\n const root = document.documentElement\r\n if (!isOpen || !isSplitView) {\r\n root.style.removeProperty('--ask-assistant-top')\r\n return\r\n }\r\n\r\n const header = document.querySelector('[data-docs-header]')\r\n const sync = () => {\r\n const top = header\r\n ? Math.max(0, Math.round(header.getBoundingClientRect().bottom))\r\n : 0\r\n root.style.setProperty('--ask-assistant-top', `${top}px`)\r\n }\r\n\r\n sync()\r\n if (!header) return\r\n\r\n const observer = new ResizeObserver(sync)\r\n observer.observe(header)\r\n window.addEventListener('resize', sync)\r\n window.addEventListener('scroll', sync, { passive: true })\r\n\r\n return () => {\r\n observer.disconnect()\r\n window.removeEventListener('resize', sync)\r\n window.removeEventListener('scroll', sync)\r\n root.style.removeProperty('--ask-assistant-top')\r\n }\r\n }, [isOpen, isSplitView])\r\n\r\n useEffect(() => {\r\n if (!isSplitView) setExpanded(false)\r\n }, [isSplitView])\r\n\r\n useEffect(() => {\r\n if (!isOpen || !isSplitView) return\r\n\r\n setSidebarSectionHidden((hidden) => {\r\n sidebarHiddenBeforeOpen.current = hidden\r\n return true\r\n })\r\n\r\n return () => {\r\n const previous = sidebarHiddenBeforeOpen.current\r\n sidebarHiddenBeforeOpen.current = null\r\n if (previous !== null) setSidebarSectionHidden(previous)\r\n }\r\n }, [isOpen, isSplitView, setSidebarSectionHidden])\r\n\r\n useEffect(() => {\r\n if (!enableShortcut) return\r\n\r\n const onKeyDown = (event: globalThis.KeyboardEvent) => {\r\n if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 'i') {\r\n event.preventDefault()\r\n setOpen(!isOpen)\r\n }\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [enableShortcut, isOpen, setOpen])\r\n\r\n useEffect(() => {\r\n if (!isOpen) {\r\n setHistoryOpen(false)\r\n return\r\n }\r\n\r\n const timer = window.setTimeout(() => textareaRef.current?.focus(), 50)\r\n return () => window.clearTimeout(timer)\r\n }, [isOpen])\r\n\r\n useEffect(() => {\r\n if (!isOpen) return\r\n\r\n const onKeyDown = (event: globalThis.KeyboardEvent) => {\r\n if (event.key !== 'Escape') return\r\n if (historyOpen) {\r\n setHistoryOpen(false)\r\n return\r\n }\r\n setOpen(false)\r\n }\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [historyOpen, isOpen, setOpen])\r\n\r\n useEffect(() => {\r\n if (!historyOpen) return\r\n\r\n const onPointerDown = (event: PointerEvent) => {\r\n if (\r\n historyRef.current &&\r\n !historyRef.current.contains(event.target as Node)\r\n ) {\r\n setHistoryOpen(false)\r\n }\r\n }\r\n\r\n window.addEventListener('pointerdown', onPointerDown)\r\n return () => window.removeEventListener('pointerdown', onPointerDown)\r\n }, [historyOpen])\r\n\r\n useEffect(() => {\r\n chatRef.current = chat\r\n if (isStreaming) return\r\n const id = conversationIdRef.current\r\n if (!id || chat.length === 0) return\r\n persistConversation(id, chat)\r\n }, [chat, isStreaming, persistConversation])\r\n\r\n useEffect(() => {\r\n const node = listRef.current\r\n if (node) node.scrollTop = node.scrollHeight\r\n }, [chat])\r\n\r\n useEffect(() => {\r\n if (!categories.some((category) => category.id === activeExampleId)) {\r\n setActiveExampleId(categories[0]?.id ?? '')\r\n }\r\n }, [activeExampleId, categories])\r\n\r\n const onDraftKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Enter' && !event.shiftKey) {\r\n event.preventDefault()\r\n void submit(draft)\r\n }\r\n }\r\n\r\n const isEmpty = chat.length === 0\r\n const activeCategory =\r\n categories.find((category) => category.id === activeExampleId) ??\r\n categories[0]\r\n\r\n const composer = (\r\n \r\n \r\n \r\n setDraft(event.currentTarget.value)\r\n }\r\n onKeyDown={onDraftKeyDown}\r\n />\r\n \r\n void submit(draft)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n const panel = isOpen && mounted && (\r\n <>\r\n {isSplitView ? null : (\r\n setOpen(false)} />\r\n )}\r\n \r\n \r\n \r\n \r\n {labels.title}\r\n \r\n \r\n {isSplitView ? (\r\n setExpanded((value) => !value)}\r\n >\r\n {expanded ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ) : null}\r\n \r\n \r\n \r\n \r\n setHistoryOpen((value) => !value)}\r\n >\r\n \r\n \r\n {historyOpen && history.length > 0 ? (\r\n \r\n \r\n {labels.history}\r\n \r\n {labels.historyClear}\r\n \r\n \r\n \r\n {history.map((item) => (\r\n openHistoryItem(item)}\r\n >\r\n \r\n {item.title}\r\n \r\n ))}\r\n \r\n \r\n ) : null}\r\n \r\n setOpen(false)}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n {isEmpty ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {labels.heroTitle}\r\n \r\n \r\n {labels.heroSubtitle}\r\n \r\n \r\n \r\n {composer}\r\n {activeCategory ? (\r\n \r\n {labels.examples}\r\n \r\n {categories.map((category) => {\r\n const Icon = category.Icon\r\n const isActive = category.id === activeCategory.id\r\n return (\r\n setActiveExampleId(category.id)}\r\n >\r\n {Icon ? (\r\n \r\n ) : null}\r\n {category.title}\r\n \r\n )\r\n })}\r\n \r\n \r\n {activeCategory.questions\r\n .filter((question) => question.trim())\r\n .map((question) => (\r\n void submit(question)}\r\n >\r\n {question}\r\n \r\n ))}\r\n \r\n \r\n ) : null}\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n {chat.map((message) =>\r\n message.role === 'user' ? (\r\n \r\n {message.content}\r\n \r\n ) : (\r\n \r\n {message.status === 'streaming' ||\r\n (message.steps && message.steps.length > 0) ? (\r\n \r\n {message.status === 'error' ? null : (\r\n \r\n {message.status === 'complete' ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {processHeaderText(\r\n message.steps?.length ?? 0,\r\n message.status === 'complete',\r\n labels\r\n )}\r\n \r\n \r\n )}\r\n {message.steps && message.steps.length > 0 ? (\r\n \r\n {message.steps.map((step) => (\r\n \r\n \r\n {labels.tool}\r\n \r\n \r\n \r\n {toolStepLabel(step.name, labels)}\r\n \r\n \r\n ))}\r\n \r\n ) : null}\r\n \r\n ) : null}\r\n {message.status === 'error' ? (\r\n {message.content}\r\n ) : message.content ? (\r\n \r\n ) : null}\r\n {message.status === 'complete' && message.content ? (\r\n \r\n vote(message, true)}\r\n >\r\n {feedback[message.id] === true ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n vote(message, false)}\r\n >\r\n \r\n \r\n copyAnswer(message)}\r\n >\r\n \r\n \r\n regenerate(message.id)}\r\n >\r\n \r\n \r\n \r\n ) : null}\r\n \r\n )\r\n )}\r\n \r\n {composer}\r\n \r\n )}\r\n \r\n \r\n )\r\n\r\n return (\r\n <>\r\n {hideTrigger ? null : (\r\n setOpen(!isOpen)}\r\n >\r\n \r\n {labels.button}\r\n \r\n \r\n {isMacShortcut() ? '⌘' : 'Ctrl'}\r\n \r\n \r\n I\r\n \r\n \r\n \r\n )}\r\n {showFloatingTrigger\r\n ? createPortal(\r\n setOpen(true)}\r\n >\r\n \r\n ,\r\n document.body\r\n )\r\n : null}\r\n {mounted ? createPortal(panel, document.body) : null}\r\n \r\n )\r\n}\r\n\r\nexport default AskAssistant\r\nexport { DEFAULT_ASK_ASSISTANT_EXAMPLES } from './default-examples'\r\nexport type {\r\n AskAssistantProps,\r\n AskAssistantFeedback,\r\n AskAssistantExampleCategory,\r\n AssistantStreamEvent,\r\n AssistantStreamHandler,\r\n ChatMessage,\r\n HistoryConversation,\r\n ProcessStep,\r\n} from './types'\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst BookIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default BookIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CollapseIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default CollapseIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ExpandIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default ExpandIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst HistoryIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default HistoryIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst RefreshIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default RefreshIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst SendIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default SendIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst SparkleIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default SparkleIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst NewChatIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default NewChatIcon\r\n","import APIGuidesIcon from 'components/icons/api-guides-icon'\r\nimport APIReferenceIcon from 'components/icons/api-reference-icon'\r\nimport AppDevelopmentIcon from 'components/icons/app-development-icon'\r\nimport StorefrontDevelopmentIcon from 'components/icons/storefront-development-icon'\r\n\r\nimport type { AskAssistantExampleCategory } from './types'\r\n\r\nexport const DEFAULT_ASK_ASSISTANT_EXAMPLES: AskAssistantExampleCategory[] = [\r\n {\r\n id: 'guides',\r\n title: 'Guides',\r\n Icon: APIGuidesIcon,\r\n questions: [\r\n 'How do I authenticate with the VTEX APIs?',\r\n 'How do I get started with FastStore?',\r\n 'How do I configure a development workspace?',\r\n ],\r\n },\r\n {\r\n id: 'api-reference',\r\n title: 'API Reference',\r\n Icon: APIReferenceIcon,\r\n questions: [\r\n 'How do I get an order by ID?',\r\n 'How do I update a product SKU?',\r\n 'What is the Catalog API used for?',\r\n ],\r\n },\r\n {\r\n id: 'storefront',\r\n title: 'Storefront',\r\n Icon: StorefrontDevelopmentIcon,\r\n questions: [\r\n 'How do I customize a FastStore component?',\r\n 'How do I create a store theme?',\r\n 'How do I add a custom page to my storefront?',\r\n ],\r\n },\r\n {\r\n id: 'apps',\r\n title: 'Apps',\r\n Icon: AppDevelopmentIcon,\r\n questions: [\r\n 'How do I create a VTEX IO app?',\r\n 'How do I publish an app to the VTEX App Store?',\r\n 'How do I use React in a VTEX IO app?',\r\n ],\r\n },\r\n]\r\n","import type { ChatMessage, HistoryConversation } from './types'\r\n\r\nexport const HISTORY_STORAGE_KEY = 'vtex-ask-assistant-history'\r\nexport const MAX_HISTORY_ITEMS = 20\r\n\r\nconst isChatMessage = (value: unknown): value is ChatMessage => {\r\n if (!value || typeof value !== 'object') return false\r\n const message = value as ChatMessage\r\n return (\r\n typeof message.id === 'string' &&\r\n (message.role === 'user' || message.role === 'assistant') &&\r\n typeof message.content === 'string' &&\r\n (message.status === 'streaming' ||\r\n message.status === 'complete' ||\r\n message.status === 'error')\r\n )\r\n}\r\n\r\nconst parseConversation = (value: unknown): HistoryConversation | null => {\r\n if (!value || typeof value !== 'object') return null\r\n const item = value as HistoryConversation\r\n if (typeof item.id !== 'string' || !Array.isArray(item.messages)) return null\r\n const messages = item.messages.filter(isChatMessage)\r\n const title =\r\n typeof item.title === 'string' && item.title.trim()\r\n ? item.title.trim()\r\n : messages.find((message) => message.role === 'user')?.content.trim()\r\n if (!title || messages.length === 0) return null\r\n return { id: item.id, title, messages }\r\n}\r\n\r\nexport const conversationTitle = (messages: ChatMessage[]) =>\r\n messages.find((message) => message.role === 'user')?.content.trim() ?? ''\r\n\r\nexport const freezeMessages = (messages: ChatMessage[]): ChatMessage[] =>\r\n messages.map((message) =>\r\n message.status === 'streaming'\r\n ? {\r\n ...message,\r\n status: message.content ? 'complete' : 'error',\r\n steps: message.steps?.map((step) => ({\r\n ...step,\r\n status: 'complete' as const,\r\n })),\r\n }\r\n : message\r\n )\r\n\r\nexport const readHistory = (\r\n key = HISTORY_STORAGE_KEY\r\n): HistoryConversation[] => {\r\n if (typeof window === 'undefined') return []\r\n\r\n try {\r\n const raw = window.localStorage.getItem(key)\r\n if (!raw) return []\r\n const parsed = JSON.parse(raw)\r\n if (!Array.isArray(parsed)) return []\r\n return parsed\r\n .map(parseConversation)\r\n .filter((item): item is HistoryConversation => Boolean(item))\r\n } catch {\r\n return []\r\n }\r\n}\r\n\r\nexport const writeHistory = (\r\n items: HistoryConversation[],\r\n key = HISTORY_STORAGE_KEY\r\n): void => {\r\n if (typeof window === 'undefined') return\r\n\r\n try {\r\n window.localStorage.setItem(key, JSON.stringify(items))\r\n } catch {\r\n // Ignore quota / private-mode failures.\r\n }\r\n}\r\n\r\nexport const upsertHistory = (\r\n current: HistoryConversation[],\r\n conversation: HistoryConversation\r\n): HistoryConversation[] => {\r\n const title = conversation.title.trim()\r\n const messages = freezeMessages(conversation.messages)\r\n if (!title || messages.length === 0) return current\r\n\r\n return [\r\n { ...conversation, title, messages },\r\n ...current.filter((item) => item.id !== conversation.id),\r\n ].slice(0, MAX_HISTORY_ITEMS)\r\n}\r\n","import type { ReactNode } from 'react'\r\nimport { Box } from '@vtex/brand-ui'\r\n\r\nimport AnswerSources, { splitAnswerSources } from './sources'\r\nimport styles from './styles'\r\n\r\nconst ANSWER_METADATA_RE =\r\n /(?:\\r?\\n[ \\t]*){0,3}(?:[*_]{1,2}[ \\t]*)?Language:[ \\t]*[^\\n|]+[ \\t]*\\|[ \\t]*Confidence:[ \\t]*[^\\n*_]+(?:[ \\t]*[*_]{1,2})?[ \\t]*$/i\r\n\r\nexport const stripAnswerMetadata = (content: string) =>\r\n content.replace(ANSWER_METADATA_RE, '').trimEnd()\r\n\r\nconst INLINE_TOKEN =\r\n /(\\[[^\\]]+\\]\\([^)\\s]+(?:\\s+\"[^\"]*\")?\\)|\\*\\*[^*]+\\*\\*|`[^`]+`)/g\r\n\r\nconst renderInline = (text: string, keyPrefix: string): ReactNode[] => {\r\n const parts = text.split(INLINE_TOKEN)\r\n\r\n return parts.map((part, index) => {\r\n const key = `${keyPrefix}-${index}`\r\n if (!part) return null\r\n\r\n const link = part.match(/^\\[([^\\]]+)\\]\\(([^)\\s]+)(?:\\s+\"[^\"]*\")?\\)$/)\r\n if (link) {\r\n return (\r\n \r\n {renderInline(link[1], key)}\r\n \r\n )\r\n }\r\n\r\n if (part.startsWith('**') && part.endsWith('**')) {\r\n return {renderInline(part.slice(2, -2), key)}\r\n }\r\n\r\n if (part.startsWith('`') && part.endsWith('`')) {\r\n return (\r\n \r\n {part.slice(1, -1)}\r\n \r\n )\r\n }\r\n\r\n return part\r\n })\r\n}\r\n\r\nconst headingTag = (level: number) => {\r\n if (level <= 1) return 'h1'\r\n if (level === 2) return 'h2'\r\n if (level === 3) return 'h3'\r\n return 'h4'\r\n}\r\n\r\nconst LIST_ITEM_RE = /^(\\s*)([-*]|\\d+\\.)\\s+(.*)$/\r\n\r\ntype ListMarker = {\r\n indent: number\r\n ordered: boolean\r\n text: string\r\n}\r\n\r\nconst parseListMarker = (line: string): ListMarker | null => {\r\n const match = line.match(LIST_ITEM_RE)\r\n if (!match) return null\r\n\r\n return {\r\n indent: match[1].length,\r\n ordered: /^\\d+\\.$/.test(match[2]),\r\n text: match[3],\r\n }\r\n}\r\n\r\nconst nextNonBlank = (lines: string[], from: number) => {\r\n let index = from\r\n while (index < lines.length && !lines[index].trim()) index += 1\r\n return index\r\n}\r\n\r\nconst renderList = (\r\n lines: string[],\r\n start: number,\r\n minIndent: number\r\n): { items: ReactNode[]; ordered: boolean; end: number } => {\r\n const first = parseListMarker(lines[start])\r\n if (!first) return { items: [], ordered: false, end: start }\r\n\r\n const baseIndent = first.indent\r\n const ordered = first.ordered\r\n const items: ReactNode[] = []\r\n let index = start\r\n\r\n while (index < lines.length) {\r\n const itemIndex = nextNonBlank(lines, index)\r\n if (itemIndex >= lines.length) break\r\n\r\n const marker = parseListMarker(lines[itemIndex])\r\n if (\r\n !marker ||\r\n marker.indent < minIndent ||\r\n marker.indent !== baseIndent ||\r\n marker.ordered !== ordered\r\n ) {\r\n break\r\n }\r\n\r\n index = itemIndex + 1\r\n const children: ReactNode[] = [\r\n ...renderInline(marker.text, `li-${itemIndex}`),\r\n ]\r\n\r\n const nestedIndex = nextNonBlank(lines, index)\r\n const nestedMarker =\r\n nestedIndex < lines.length ? parseListMarker(lines[nestedIndex]) : null\r\n\r\n if (nestedMarker && nestedMarker.indent > baseIndent) {\r\n const nested = renderList(lines, nestedIndex, baseIndent + 1)\r\n children.push(\r\n \r\n {nested.items}\r\n \r\n )\r\n index = nested.end\r\n }\r\n\r\n items.push(\r\n \r\n {children}\r\n \r\n )\r\n }\r\n\r\n return { items, ordered, end: index }\r\n}\r\n\r\nconst MarkdownMessage = ({ content }: { content: string }) => {\r\n const { body, sources } = splitAnswerSources(stripAnswerMetadata(content))\r\n const lines = body.replace(/\\r\\n/g, '\\n').split('\\n')\r\n const nodes: ReactNode[] = []\r\n let index = 0\r\n\r\n while (index < lines.length) {\r\n const line = lines[index]\r\n\r\n if (!line.trim()) {\r\n index += 1\r\n continue\r\n }\r\n\r\n const heading = line.match(/^(#{1,6})\\s+(.*)$/)\r\n if (heading) {\r\n const Tag = headingTag(heading[1].length)\r\n nodes.push(\r\n \r\n {renderInline(heading[2], `h-${index}`)}\r\n \r\n )\r\n index += 1\r\n continue\r\n }\r\n\r\n if (/^---+$/.test(line.trim())) {\r\n nodes.push()\r\n index += 1\r\n continue\r\n }\r\n\r\n if (parseListMarker(line)) {\r\n const list = renderList(lines, index, 0)\r\n nodes.push(\r\n \r\n {list.items}\r\n \r\n )\r\n index = list.end\r\n continue\r\n }\r\n\r\n const paragraph: string[] = []\r\n const paragraphIndex = index\r\n while (\r\n index < lines.length &&\r\n lines[index].trim() &&\r\n !lines[index].match(/^#{1,6}\\s+/) &&\r\n !parseListMarker(lines[index]) &&\r\n !/^---+$/.test(lines[index].trim())\r\n ) {\r\n paragraph.push(lines[index])\r\n index += 1\r\n }\r\n\r\n nodes.push(\r\n \r\n {renderInline(paragraph.join(' '), `p-${paragraphIndex}`)}\r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n {nodes}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default MarkdownMessage\r\n","import { useContext } from 'react'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport ExternalLinkIcon from 'components/icons/external-link-icon'\r\nimport PaperIcon from 'components/icons/paper-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\n\r\nimport styles from './styles'\r\n\r\nexport type AnswerSource = {\r\n title: string\r\n href: string\r\n}\r\n\r\nconst SOURCES_HEADING_RE =\r\n /^(?:#{1,6}\\s+)?\\*{0,2}(?:references?|sources?|fontes?|refer[eê]ncias?|fuentes?)\\*{0,2}:?\\*{0,2}\\s*$/i\r\n\r\nconst LINK_RE = /\\[([^\\]]+)\\]\\(([^)\\s]+)(?:\\s+\"[^\"]*\")?\\)/\r\n\r\nexport const splitAnswerSources = (content: string) => {\r\n const lines = content.replace(/\\r\\n/g, '\\n').split('\\n')\r\n let headingIndex = -1\r\n\r\n for (let i = lines.length - 1; i >= 0; i -= 1) {\r\n if (SOURCES_HEADING_RE.test(lines[i].trim())) {\r\n headingIndex = i\r\n break\r\n }\r\n }\r\n\r\n if (headingIndex === -1) {\r\n return { body: content, sources: [] as AnswerSource[] }\r\n }\r\n\r\n const seen = new Set()\r\n const sources: AnswerSource[] = []\r\n\r\n for (let i = headingIndex + 1; i < lines.length; i += 1) {\r\n const line = lines[i].trim()\r\n if (!line || /^---+$/.test(line)) continue\r\n const match = line.match(LINK_RE)\r\n if (!match) continue\r\n const href = match[2]\r\n if (seen.has(href)) continue\r\n seen.add(href)\r\n sources.push({\r\n title: match[1].replace(/\\*\\*/g, '').trim() || href,\r\n href,\r\n })\r\n }\r\n\r\n if (!sources.length) {\r\n return { body: content, sources: [] as AnswerSource[] }\r\n }\r\n\r\n let end = headingIndex\r\n while (\r\n end > 0 &&\r\n (!lines[end - 1].trim() || /^---+$/.test(lines[end - 1].trim()))\r\n ) {\r\n end -= 1\r\n }\r\n\r\n return {\r\n body: lines.slice(0, end).join('\\n').trimEnd(),\r\n sources,\r\n }\r\n}\r\n\r\nconst originLabel = (href: string) => {\r\n try {\r\n const host = new URL(href).hostname.replace(/^www\\./, '')\r\n if (host === 'help.vtex.com') return 'Help Center'\r\n if (host === 'developers.vtex.com') return 'Developers'\r\n return host\r\n } catch {\r\n return ''\r\n }\r\n}\r\n\r\nconst AnswerSources = ({ sources }: { sources: AnswerSource[] }) => {\r\n const { locale } = useContext(LibraryContext)\r\n const localized = messages[locale] ?? messages.en\r\n const title = localized['ask_assistant.sources'] || 'Sources'\r\n\r\n if (!sources.length) return null\r\n\r\n return (\r\n \r\n {title}\r\n \r\n {sources.map((source) => {\r\n const origin = originLabel(source.href)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {source.title}\r\n \r\n {origin ? {origin} : null}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default AnswerSources\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst focusRing: SxStyleProp = {\r\n ':focus-visible': {\r\n outline: '2px solid #E31C58',\r\n outlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst trigger: SxStyleProp = {\r\n display: ['none', 'none', 'none', 'inline-flex'],\r\n alignItems: 'center',\r\n gap: '8px',\r\n height: '36px',\r\n px: '12px',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '6px',\r\n backgroundColor: '#FFFFFF',\r\n color: 'muted.0',\r\n fontSize: '13px',\r\n fontWeight: '500',\r\n lineHeight: '16px',\r\n cursor: 'pointer',\r\n whiteSpace: 'nowrap',\r\n transition:\r\n 'background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: '#F8F7FC',\r\n borderColor: '#D8D8E3',\r\n color: '#000711',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst floatingTrigger: SxStyleProp = {\r\n display: ['inline-flex', 'inline-flex', 'inline-flex', 'none'],\r\n position: 'fixed',\r\n right: '16px',\r\n bottom: 'calc(16px + env(safe-area-inset-bottom, 0px))',\r\n zIndex: 40,\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '56px',\r\n height: '56px',\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: '50%',\r\n backgroundColor: '#142032',\r\n color: '#FFFFFF',\r\n cursor: 'pointer',\r\n boxShadow: '0 8px 24px rgba(20, 32, 50, 0.28)',\r\n transition: 'background-color 0.15s ease, transform 0.15s ease',\r\n ':hover': {\r\n backgroundColor: '#000711',\r\n },\r\n ':active': {\r\n transform: 'scale(0.96)',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst triggerIcon: SxStyleProp = {\r\n flexShrink: 0,\r\n}\r\n\r\nconst triggerShortcut: SxStyleProp = {\r\n display: ['none', 'none', 'none', 'none', 'inline-flex'],\r\n alignItems: 'center',\r\n gap: '4px',\r\n ml: '2px',\r\n}\r\n\r\nconst triggerKbd: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n minWidth: '20px',\r\n height: '20px',\r\n px: '5px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n background: '#FAFAFB',\r\n boxShadow: '0 1px 0 #E7E9EE',\r\n fontSize: '11px',\r\n fontWeight: '400',\r\n fontFamily: 'inherit',\r\n color: '#4A596B',\r\n lineHeight: '20px',\r\n letterSpacing: 0,\r\n}\r\n\r\n/** First Brand UI / Theme UI breakpoint — panel is a side column, not a sheet. */\r\nexport const SPLIT_VIEW_MQ = '(min-width: 40em)'\r\nexport const PANEL_WIDTH = 'min(400px, 100vw)'\r\nexport const PANEL_EXPANDED_WIDTH = 'min(720px, 80vw)'\r\n\r\nexport const splitViewCss = `\r\n@media screen and ${SPLIT_VIEW_MQ} {\r\n html:has([data-ask-assistant-panel]) {\r\n --ask-assistant-width: ${PANEL_WIDTH};\r\n --ask-assistant-top: 0px;\r\n }\r\n html:has([data-ask-assistant-panel][data-expanded=\"true\"]) {\r\n --ask-assistant-width: ${PANEL_EXPANDED_WIDTH};\r\n }\r\n html:has([data-ask-assistant-panel]) [data-docs-header] {\r\n max-width: none;\r\n }\r\n html:has([data-ask-assistant-panel]) [data-docs-header] ~ * {\r\n box-sizing: border-box;\r\n padding-right: var(--ask-assistant-width) !important;\r\n }\r\n html:has([data-ask-assistant-panel]) [data-article-aside] {\r\n display: none !important;\r\n }\r\n html:has([data-ask-assistant-panel]):not(:has([data-docs-header])) body {\r\n box-sizing: border-box;\r\n padding-right: var(--ask-assistant-width);\r\n }\r\n}\r\n`\r\n\r\nconst overlay: SxStyleProp = {\r\n display: ['block', 'none'],\r\n position: 'fixed',\r\n inset: 0,\r\n backgroundColor: 'rgba(20, 32, 50, 0.32)',\r\n backdropFilter: 'blur(2px)',\r\n WebkitBackdropFilter: 'blur(2px)',\r\n zIndex: 10000,\r\n}\r\n\r\nconst EMPTY_STATE_BACKGROUND = [\r\n 'radial-gradient(120% 80% at 0% 0%, #F8DDEC 0%, rgba(248, 221, 236, 0) 54%)',\r\n 'radial-gradient(110% 85% at 100% 100%, #D2EEF8 0%, rgba(210, 238, 248, 0) 56%)',\r\n 'linear-gradient(135deg, #FDF6FB 0%, #F6F8FD 46%, #EEF7FC 100%)',\r\n].join(', ')\r\n\r\nconst panel = (expanded: boolean): SxStyleProp => ({\r\n position: 'fixed',\r\n top: [0, 'var(--ask-assistant-top, 0px)'],\r\n right: 0,\r\n bottom: 0,\r\n zIndex: [10001, 40],\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: expanded ? ['100vw', PANEL_EXPANDED_WIDTH] : ['100vw', PANEL_WIDTH],\r\n maxWidth: '100vw',\r\n backgroundColor: '#FFFFFF',\r\n borderLeft: '1px solid #E7E9EE',\r\n boxShadow: ['-8px 0 32px rgba(20, 32, 50, 0.12)', 'none'],\r\n overscrollBehavior: 'contain',\r\n transition: 'width 0.2s ease',\r\n})\r\n\r\nconst header: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n flexShrink: 0,\r\n px: '16px',\r\n py: '12px',\r\n borderBottom: '1px solid #E7E9EE',\r\n backgroundColor: '#FFFFFF',\r\n}\r\n\r\nconst headerTitle: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n color: '#142032',\r\n fontSize: '14px',\r\n fontWeight: '600',\r\n lineHeight: '20px',\r\n letterSpacing: '-0.01em',\r\n}\r\n\r\nconst headerActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '2px',\r\n}\r\n\r\nconst iconButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '32px',\r\n height: '32px',\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: '6px',\r\n background: 'transparent',\r\n color: '#4A596B',\r\n cursor: 'pointer',\r\n transition: 'background-color 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: '#F8F7FC',\r\n color: '#142032',\r\n },\r\n ':disabled': {\r\n color: '#C7CDD6',\r\n cursor: 'default',\r\n backgroundColor: 'transparent',\r\n },\r\n ':disabled:hover': {\r\n color: '#C7CDD6',\r\n backgroundColor: 'transparent',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst iconButtonActive: SxStyleProp = {\r\n ...iconButton,\r\n backgroundColor: '#F8F7FC',\r\n color: '#142032',\r\n}\r\n\r\nconst historyWrap: SxStyleProp = {\r\n position: 'relative',\r\n}\r\n\r\nconst historyMenu: SxStyleProp = {\r\n position: 'absolute',\r\n top: 'calc(100% + 6px)',\r\n right: 0,\r\n zIndex: 2,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n width: '260px',\r\n maxWidth: 'min(260px, calc(100vw - 24px))',\r\n py: '8px',\r\n backgroundColor: '#FFFFFF',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n boxShadow:\r\n '0 8px 24px rgba(18, 21, 26, 0.12), 0 2px 6px rgba(18, 21, 26, 0.08)',\r\n overflow: 'hidden',\r\n}\r\n\r\nconst historyHeader: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n gap: '12px',\r\n px: '12px',\r\n pb: '8px',\r\n}\r\n\r\nconst historyTitle: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: '12px',\r\n fontWeight: '600',\r\n lineHeight: '16px',\r\n textTransform: 'uppercase',\r\n letterSpacing: '0.04em',\r\n}\r\n\r\nconst historyClear: SxStyleProp = {\r\n padding: 0,\r\n border: 'none',\r\n background: 'transparent',\r\n color: '#D71D55',\r\n fontSize: '13px',\r\n fontWeight: '600',\r\n lineHeight: '16px',\r\n cursor: 'pointer',\r\n ':hover': {\r\n color: '#C81E51',\r\n textDecoration: 'underline',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst historyList: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n maxHeight: '280px',\r\n overflowY: 'auto',\r\n px: '4px',\r\n}\r\n\r\nconst historyItem: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n width: '100%',\r\n px: '8px',\r\n py: '8px',\r\n border: 'none',\r\n borderRadius: '6px',\r\n background: 'transparent',\r\n color: '#142032',\r\n fontSize: '13px',\r\n fontWeight: '400',\r\n lineHeight: '18px',\r\n textAlign: 'left',\r\n cursor: 'pointer',\r\n ':hover': {\r\n backgroundColor: '#F8F7FC',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst historyItemIcon: SxStyleProp = {\r\n flexShrink: 0,\r\n color: '#4A596B',\r\n}\r\n\r\nconst historyItemText: SxStyleProp = {\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n}\r\n\r\nconst messages: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flex: 1,\r\n minHeight: 0,\r\n gap: '16px',\r\n px: '16px',\r\n py: '16px',\r\n overflowY: 'auto',\r\n}\r\n\r\nconst userBubble: SxStyleProp = {\r\n alignSelf: 'flex-end',\r\n maxWidth: '85%',\r\n px: '12px',\r\n py: '8px',\r\n borderRadius: '8px',\r\n backgroundColor: '#F8F7FC',\r\n border: '1px solid #EDEAF6',\r\n color: '#142032',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n wordBreak: 'break-word',\r\n}\r\n\r\nconst assistantBlock: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n gap: '12px',\r\n width: '100%',\r\n}\r\n\r\nconst process: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '10px',\r\n width: '100%',\r\n}\r\n\r\nconst processHeader: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n color: '#5B6E84',\r\n fontSize: '13px',\r\n fontWeight: '400',\r\n lineHeight: '20px',\r\n}\r\n\r\nconst processCheck: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '16px',\r\n height: '16px',\r\n borderRadius: '50%',\r\n backgroundColor: '#38853C',\r\n color: '#FFFFFF',\r\n flexShrink: 0,\r\n}\r\n\r\nconst processSpinner: SxStyleProp = {\r\n width: '14px',\r\n height: '14px',\r\n borderRadius: '50%',\r\n border: '2px solid #E7E9EE',\r\n borderTopColor: '#5B6E84',\r\n flexShrink: 0,\r\n animation: 'askAssistantSpin 0.8s linear infinite',\r\n '@keyframes askAssistantSpin': {\r\n from: { transform: 'rotate(0deg)' },\r\n to: { transform: 'rotate(360deg)' },\r\n },\r\n}\r\n\r\nconst processSteps: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '8px',\r\n}\r\n\r\nconst processStep: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '8px',\r\n color: '#142032',\r\n fontSize: '13px',\r\n fontWeight: '400',\r\n lineHeight: '18px',\r\n}\r\n\r\nconst processBadge: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n height: '20px',\r\n px: '8px',\r\n borderRadius: '4px',\r\n backgroundColor: '#F4F5F7',\r\n color: '#4A596B',\r\n fontSize: '12px',\r\n fontWeight: '500',\r\n lineHeight: '16px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst processStepIcon: SxStyleProp = {\r\n flexShrink: 0,\r\n color: '#4A596B',\r\n}\r\n\r\nconst processBookIcon: SxStyleProp = {\r\n flexShrink: 0,\r\n color: '#E31C58',\r\n}\r\n\r\nconst processStepLabel: SxStyleProp = {\r\n color: '#142032',\r\n fontSize: '13px',\r\n lineHeight: '18px',\r\n}\r\n\r\nconst messageActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '4px',\r\n mt: '4px',\r\n}\r\n\r\nconst actionButton: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '28px',\r\n height: '28px',\r\n padding: 0,\r\n border: '1px solid transparent',\r\n borderRadius: '6px',\r\n background: 'transparent',\r\n color: '#A1A8B3',\r\n cursor: 'pointer',\r\n transition:\r\n 'background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: '#FFFFFF',\r\n borderColor: '#E7E9EE',\r\n color: '#4A596B',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst actionButtonActive: SxStyleProp = {\r\n ...actionButton,\r\n color: '#142032',\r\n backgroundColor: '#F8F7FC',\r\n borderColor: '#EDEAF6',\r\n}\r\n\r\nconst dislikeIcon: SxStyleProp = {\r\n transform: 'rotate(180deg)',\r\n}\r\n\r\nconst inputWrap: SxStyleProp = {\r\n flexShrink: 0,\r\n px: '16px',\r\n pb: '16px',\r\n pt: '12px',\r\n borderTop: '1px solid #E7E9EE',\r\n backgroundColor: '#FFFFFF',\r\n}\r\n\r\nconst inputWrapCentered: SxStyleProp = {\r\n flexShrink: 0,\r\n width: '100%',\r\n px: '16px',\r\n pb: '8px',\r\n}\r\n\r\nconst emptyState: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n flex: 1,\r\n minHeight: 0,\r\n overflowY: 'auto',\r\n backgroundColor: '#F7F8FC',\r\n backgroundImage: EMPTY_STATE_BACKGROUND,\r\n}\r\n\r\nconst emptyMain: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'stretch',\r\n justifyContent: 'center',\r\n flex: 1,\r\n minHeight: '200px',\r\n}\r\n\r\nconst emptyHero: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexShrink: 0,\r\n px: '24px',\r\n mb: '20px',\r\n}\r\n\r\nconst emptyHeroIcon: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n mb: '8px',\r\n color: '#5B6E84',\r\n svg: {\r\n overflow: 'visible',\r\n },\r\n path: {\r\n strokeWidth: '1',\r\n strokeLinecap: 'round',\r\n },\r\n}\r\n\r\nconst emptyHeroCopy: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n gap: '6px',\r\n mt: '4px',\r\n textAlign: 'center',\r\n}\r\n\r\nconst emptyHeroTitle: SxStyleProp = {\r\n m: 0,\r\n color: '#142032',\r\n fontSize: '22px',\r\n fontWeight: '600',\r\n lineHeight: '28px',\r\n letterSpacing: '-0.02em',\r\n}\r\n\r\nconst emptyHeroSubtitle: SxStyleProp = {\r\n m: 0,\r\n color: '#4A596B',\r\n fontSize: '14px',\r\n fontWeight: '400',\r\n lineHeight: '20px',\r\n}\r\n\r\nconst examples: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '12px',\r\n width: '100%',\r\n px: '16px',\r\n pt: '12px',\r\n pb: '16px',\r\n}\r\n\r\nconst examplesLabel: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: '12px',\r\n fontWeight: '600',\r\n lineHeight: '16px',\r\n textTransform: 'uppercase',\r\n letterSpacing: '0.04em',\r\n}\r\n\r\nconst examplePills: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'nowrap',\r\n gap: '8px',\r\n overflowX: 'auto',\r\n scrollbarWidth: 'none',\r\n msOverflowStyle: 'none',\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n}\r\n\r\nconst examplePill = (active: boolean): SxStyleProp => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: '6px',\r\n height: '32px',\r\n px: '12px',\r\n border: `1px solid ${active ? 'rgba(216, 216, 227, 0.9)' : 'rgba(231, 233, 238, 0.8)'}`,\r\n borderRadius: '16px',\r\n backgroundColor: active\r\n ? 'rgba(248, 247, 252, 0.92)'\r\n : 'rgba(255, 255, 255, 0.72)',\r\n color: '#4A596B',\r\n fontSize: '13px',\r\n fontWeight: active ? '600' : '500',\r\n lineHeight: '16px',\r\n cursor: 'pointer',\r\n whiteSpace: 'nowrap',\r\n flexShrink: 0,\r\n backdropFilter: 'blur(10px)',\r\n WebkitBackdropFilter: 'blur(10px)',\r\n transition: 'background-color 0.15s ease, border-color 0.15s ease',\r\n ':hover': {\r\n borderColor: '#3A4F66',\r\n color: '#4A596B',\r\n },\r\n ...focusRing,\r\n})\r\n\r\nconst examplePillIcon: SxStyleProp = {\r\n width: '14px',\r\n height: '14px',\r\n minWidth: '14px',\r\n minHeight: '14px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst exampleQuestions: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '8px',\r\n}\r\n\r\nconst exampleQuestion: SxStyleProp = {\r\n display: 'block',\r\n width: '100%',\r\n px: '12px',\r\n py: '10px',\r\n border: '1px solid rgba(231, 233, 238, 0.8)',\r\n borderRadius: '8px',\r\n background: 'rgba(255, 255, 255, 0.72)',\r\n color: '#4A596B',\r\n fontSize: '13px',\r\n lineHeight: '20px',\r\n textAlign: 'left',\r\n cursor: 'pointer',\r\n backdropFilter: 'blur(10px)',\r\n WebkitBackdropFilter: 'blur(10px)',\r\n transition:\r\n 'background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: 'rgba(248, 247, 252, 0.92)',\r\n borderColor: '#D8D8E3',\r\n color: '#142032',\r\n },\r\n ...focusRing,\r\n}\r\n\r\nconst inputBox: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '8px',\r\n px: '12px',\r\n pt: '10px',\r\n pb: '10px',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n backgroundColor: '#FFFFFF',\r\n transition: 'border-color 0.15s ease, box-shadow 0.15s ease',\r\n ':hover': {\r\n borderColor: '#C7CDD6',\r\n },\r\n ':focus-within': {\r\n borderColor: '#E31C58',\r\n boxShadow: '0 0 0 3px rgba(227, 28, 88, 0.16)',\r\n },\r\n}\r\n\r\nconst inputBoxEmpty: SxStyleProp = {\r\n ...inputBox,\r\n backgroundColor: 'rgba(255, 255, 255, 0.86)',\r\n borderColor: 'rgba(231, 233, 238, 0.85)',\r\n boxShadow: '0 10px 32px rgba(20, 32, 50, 0.06)',\r\n backdropFilter: 'blur(16px)',\r\n WebkitBackdropFilter: 'blur(16px)',\r\n ':focus-within': {\r\n borderColor: '#E31C58',\r\n boxShadow:\r\n '0 0 0 3px rgba(227, 28, 88, 0.16), 0 10px 32px rgba(20, 32, 50, 0.06)',\r\n },\r\n}\r\n\r\nconst textarea: SxStyleProp = {\r\n width: '100%',\r\n minHeight: '44px',\r\n maxHeight: '120px',\r\n border: 'none',\r\n outline: 'none',\r\n resize: 'none',\r\n background: 'transparent',\r\n color: '#142032',\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n fontFamily: 'inherit',\r\n '::placeholder': {\r\n color: '#A1A8B3',\r\n },\r\n ':disabled': {\r\n color: '#4A596B',\r\n },\r\n}\r\n\r\nconst inputFooter: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n}\r\n\r\nconst sendButton = (enabled: boolean): SxStyleProp => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '32px',\r\n height: '32px',\r\n padding: 0,\r\n border: 'none',\r\n borderRadius: '6px',\r\n backgroundColor: '#142032',\r\n color: '#FFFFFF',\r\n opacity: enabled ? 1 : 0.55,\r\n cursor: enabled ? 'pointer' : 'not-allowed',\r\n transition: 'background-color 0.15s ease, opacity 0.15s ease',\r\n ':hover': {\r\n backgroundColor: enabled ? '#000711' : '#142032',\r\n },\r\n ...focusRing,\r\n})\r\n\r\nconst markdown: SxStyleProp = {\r\n width: '100%',\r\n color: '#142032',\r\n fontSize: '14px',\r\n lineHeight: '22px',\r\n}\r\n\r\nconst markdownParagraph: SxStyleProp = {\r\n margin: 0,\r\n '& + &': {\r\n mt: '10px',\r\n },\r\n}\r\n\r\nconst markdownHeading: SxStyleProp = {\r\n margin: '0 0 8px',\r\n fontSize: '15px',\r\n fontWeight: '600',\r\n lineHeight: '22px',\r\n letterSpacing: '-0.01em',\r\n color: '#142032',\r\n}\r\n\r\nconst markdownList: SxStyleProp = {\r\n margin: '8px 0',\r\n paddingLeft: '20px',\r\n listStylePosition: 'outside',\r\n 'li + li': {\r\n mt: '6px',\r\n },\r\n 'ol, ul': {\r\n mt: '6px',\r\n mb: 0,\r\n },\r\n}\r\n\r\nconst markdownOrderedList: SxStyleProp = {\r\n ...markdownList,\r\n listStyleType: 'decimal',\r\n}\r\n\r\nconst markdownUnorderedList: SxStyleProp = {\r\n ...markdownList,\r\n listStyleType: 'disc',\r\n}\r\n\r\nconst markdownListItem: SxStyleProp = {\r\n display: 'list-item',\r\n}\r\n\r\nconst markdownLink: SxStyleProp = {\r\n color: '#D71D55',\r\n fontWeight: '600',\r\n textDecoration: 'none',\r\n ':hover': {\r\n color: '#C81E51',\r\n textDecoration: 'underline',\r\n textUnderlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst markdownRule: SxStyleProp = {\r\n border: 'none',\r\n borderTop: '1px solid #E7E9EE',\r\n my: '12px',\r\n}\r\n\r\nconst inlineCode: SxStyleProp = {\r\n px: '4px',\r\n py: '1px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n backgroundColor: '#F8F7FC',\r\n fontSize: '13px',\r\n fontFamily: 'monospace',\r\n}\r\n\r\nconst sources: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '8px',\r\n width: '100%',\r\n mt: '16px',\r\n pt: '14px',\r\n borderTop: '1px solid #E7E9EE',\r\n}\r\n\r\nconst sourcesLabel: SxStyleProp = {\r\n color: 'muted.1',\r\n fontSize: '12px',\r\n fontWeight: '600',\r\n lineHeight: '16px',\r\n textTransform: 'uppercase',\r\n letterSpacing: '0.04em',\r\n}\r\n\r\nconst sourcesList: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '6px',\r\n}\r\n\r\nconst sourceCard: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n gap: '10px',\r\n width: '100%',\r\n px: '10px',\r\n py: '8px',\r\n border: '1px solid #E7E9EE',\r\n borderRadius: '8px',\r\n backgroundColor: '#FFFFFF',\r\n color: 'inherit',\r\n textDecoration: 'none',\r\n cursor: 'pointer',\r\n transition:\r\n 'background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: '#F8F7FC',\r\n borderColor: '#D8D8E3',\r\n '.source-title': {\r\n color: '#000711',\r\n },\r\n '.source-arrow': {\r\n color: '#4A596B',\r\n },\r\n },\r\n ':focus-visible': {\r\n outline: '2px solid #E31C58',\r\n outlineOffset: '2px',\r\n },\r\n}\r\n\r\nconst sourceIcon: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n width: '28px',\r\n height: '28px',\r\n borderRadius: '6px',\r\n backgroundColor: '#F8F7FC',\r\n color: '#4A596B',\r\n flexShrink: 0,\r\n}\r\n\r\nconst sourceCopy: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '2px',\r\n minWidth: 0,\r\n flex: 1,\r\n}\r\n\r\nconst sourceTitle: SxStyleProp = {\r\n color: '#142032',\r\n fontSize: '13px',\r\n fontWeight: '500',\r\n lineHeight: '18px',\r\n overflow: 'hidden',\r\n display: '-webkit-box',\r\n WebkitLineClamp: 2,\r\n WebkitBoxOrient: 'vertical',\r\n}\r\n\r\nconst sourceMeta: SxStyleProp = {\r\n color: '#5B6E84',\r\n fontSize: '12px',\r\n fontWeight: '400',\r\n lineHeight: '16px',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n}\r\n\r\nconst sourceArrow: SxStyleProp = {\r\n display: 'inline-flex',\r\n flexShrink: 0,\r\n color: '#C7CDD6',\r\n transition: 'color 0.15s ease',\r\n}\r\n\r\nconst errorText: SxStyleProp = {\r\n width: '100%',\r\n padding: '12px 14px',\r\n background: '#FFF6F4',\r\n border: '1px solid #F8D0C8',\r\n borderRadius: '8px',\r\n color: '#8A1F11',\r\n fontSize: '13px',\r\n lineHeight: '18px',\r\n}\r\n\r\nexport default {\r\n trigger,\r\n triggerIcon,\r\n triggerShortcut,\r\n triggerKbd,\r\n floatingTrigger,\r\n overlay,\r\n panel,\r\n header,\r\n headerTitle,\r\n headerActions,\r\n iconButton,\r\n iconButtonActive,\r\n historyWrap,\r\n historyMenu,\r\n historyHeader,\r\n historyTitle,\r\n historyClear,\r\n historyList,\r\n historyItem,\r\n historyItemIcon,\r\n historyItemText,\r\n messages,\r\n userBubble,\r\n assistantBlock,\r\n process,\r\n processHeader,\r\n processCheck,\r\n processSpinner,\r\n processSteps,\r\n processStep,\r\n processBadge,\r\n processStepIcon,\r\n processBookIcon,\r\n processStepLabel,\r\n messageActions,\r\n actionButton,\r\n actionButtonActive,\r\n dislikeIcon,\r\n inputWrap,\r\n inputWrapCentered,\r\n emptyState,\r\n emptyMain,\r\n emptyHero,\r\n emptyHeroIcon,\r\n emptyHeroCopy,\r\n emptyHeroTitle,\r\n emptyHeroSubtitle,\r\n examples,\r\n examplesLabel,\r\n examplePills,\r\n examplePill,\r\n examplePillIcon,\r\n exampleQuestions,\r\n exampleQuestion,\r\n inputBox,\r\n inputBoxEmpty,\r\n textarea,\r\n inputFooter,\r\n sendButton,\r\n markdown,\r\n markdownParagraph,\r\n markdownHeading,\r\n markdownList,\r\n markdownOrderedList,\r\n markdownUnorderedList,\r\n markdownListItem,\r\n markdownLink,\r\n markdownRule,\r\n inlineCode,\r\n sources,\r\n sourcesLabel,\r\n sourcesList,\r\n sourceCard,\r\n sourceIcon,\r\n sourceCopy,\r\n sourceTitle,\r\n sourceMeta,\r\n sourceArrow,\r\n errorText,\r\n}\r\n","import type { AssistantStreamEvent, AssistantStreamHandler } from './types'\r\n\r\nconst parseSseBlock = (block: string): AssistantStreamEvent | null => {\r\n let eventName = 'message'\r\n const dataLines: string[] = []\r\n\r\n for (const rawLine of block.split('\\n')) {\r\n const line = rawLine.replace(/\\r$/, '')\r\n if (!line || line.startsWith(':')) continue\r\n if (line.startsWith('event:')) {\r\n eventName = line.slice(6).trim()\r\n continue\r\n }\r\n if (line.startsWith('data:')) {\r\n dataLines.push(line.slice(5).trimStart())\r\n }\r\n }\r\n\r\n if (eventName === 'done') return { type: 'done' }\r\n\r\n const data = dataLines.join('\\n')\r\n if (!data) return null\r\n\r\n try {\r\n return JSON.parse(data) as AssistantStreamEvent\r\n } catch {\r\n return null\r\n }\r\n}\r\n\r\nexport const countSearchResults = (markdown = '') =>\r\n (markdown.match(/^## \\d+\\./gm) ?? []).length\r\n\r\nexport const isInternalEvent = (type: string) =>\r\n type === 'ActionStep' || type === 'ActionOutput'\r\n\r\nconst splitSseEvents = (buffer: string) => buffer.split(/\\r\\n\\r\\n|\\n\\n/)\r\n\r\nexport const streamAssistant = async (\r\n url: string,\r\n signal: AbortSignal,\r\n onEvent: (event: AssistantStreamEvent) => void\r\n) => {\r\n const response = await fetch(url, {\r\n signal,\r\n headers: { Accept: 'text/event-stream' },\r\n })\r\n\r\n if (!response.ok || !response.body) {\r\n throw new Error(`Assistant request failed (${response.status})`)\r\n }\r\n\r\n const reader = response.body.getReader()\r\n const decoder = new TextDecoder()\r\n let buffer = ''\r\n\r\n while (true) {\r\n const { done, value } = await reader.read()\r\n if (done) break\r\n\r\n buffer += decoder.decode(value, { stream: true })\r\n const parts = splitSseEvents(buffer)\r\n buffer = parts.pop() ?? ''\r\n\r\n for (const part of parts) {\r\n const event = parseSseBlock(part)\r\n if (event) onEvent(event)\r\n }\r\n }\r\n\r\n const trailing = parseSseBlock(buffer)\r\n if (trailing) onEvent(trailing)\r\n}\r\n\r\nexport const createDefaultStream =\r\n (streamUrl: string, locale?: string): AssistantStreamHandler =>\r\n async (query, signal, onEvent) => {\r\n const base =\r\n typeof window !== 'undefined' ? window.location.origin : undefined\r\n const url = new URL(streamUrl, base)\r\n url.searchParams.set('q', query)\r\n if (locale) url.searchParams.set('locale', locale)\r\n await streamAssistant(url.toString(), signal, onEvent)\r\n }\r\n","import { Flex } from '@vtex/brand-ui'\r\nimport Link from 'next/link.js'\r\n\r\nimport styles from './styles'\r\n\r\nexport type BreadcrumbItem = {\r\n slug: string\r\n name: string\r\n type: string\r\n}\r\n\r\nexport type BreadcrumbProps = {\r\n breadcrumbList?: BreadcrumbItem[]\r\n /** @deprecated Use `breadcrumbList`. Kept for callers that still pass the old typo. */\r\n breadcumbList?: BreadcrumbItem[]\r\n}\r\n\r\nconst Breadcrumb = ({\r\n breadcrumbList,\r\n breadcumbList,\r\n}: BreadcrumbProps) => {\r\n const items = (breadcrumbList ?? breadcumbList ?? []).slice(0, -1)\r\n\r\n return (\r\n \r\n {items.map((item, idx) => {\r\n const label = item.name || 'Untitled'\r\n\r\n return (\r\n \r\n {item.type === 'markdown' ? (\r\n {label}\r\n ) : (\r\n {label}\r\n )}\r\n \r\n )\r\n })}\r\n \r\n )\r\n}\r\n\r\nexport default Breadcrumb\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst muted = '#5E6E84'\r\nconst ink = '#142032'\r\nconst pink = '#E31C58'\r\n\r\nconst breadcrumb: SxStyleProp = {\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n rowGap: '4px',\r\n minWidth: 0,\r\n color: muted,\r\n fontSize: '14px',\r\n lineHeight: '20px',\r\n fontWeight: '400',\r\n '&& a, && [data-breadcrumb-label]': {\r\n color: muted,\r\n fontWeight: '400',\r\n textDecoration: 'none',\r\n whiteSpace: 'nowrap',\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n maxWidth: ['180px', '280px', 'none'],\r\n },\r\n '&& a': {\r\n cursor: 'pointer',\r\n transition: 'color 0.15s ease',\r\n ':hover': {\r\n color: ink,\r\n },\r\n ':focus-visible': {\r\n outline: `2px solid ${pink}`,\r\n outlineOffset: '2px',\r\n borderRadius: '2px',\r\n },\r\n },\r\n}\r\n\r\nconst crumb: SxStyleProp = {\r\n alignItems: 'center',\r\n minWidth: 0,\r\n '&:not(:last-child)::after': {\r\n content: '\"\"',\r\n display: 'inline-block',\r\n width: '5px',\r\n height: '5px',\r\n mx: '8px',\r\n borderRight: '1.5px solid currentColor',\r\n borderTop: '1.5px solid currentColor',\r\n transform: 'rotate(45deg)',\r\n opacity: 0.55,\r\n flexShrink: 0,\r\n pointerEvents: 'none',\r\n },\r\n}\r\n\r\nexport default { breadcrumb, crumb }\r\n","import { useState, useEffect } from 'react'\r\nimport styles from './styles'\r\nimport { Flex } from '@vtex/brand-ui'\r\nimport { IconComponent } from 'utils/typings/types'\r\n\r\ninterface InputProps {\r\n value: string\r\n Icon?: IconComponent\r\n placeholder?: string\r\n onChange: (value: string) => void\r\n}\r\n\r\nconst Input = ({ value, onChange, placeholder = '', Icon }: InputProps) => {\r\n const [inputValue, setInputValue] = useState(value ?? '')\r\n\r\n useEffect(() => {\r\n if (inputValue !== value) setInputValue(value)\r\n }, [value])\r\n\r\n return (\r\n \r\n {Icon && }\r\n {\r\n setInputValue(e.currentTarget.value)\r\n onChange(e.currentTarget.value)\r\n }}\r\n />\r\n \r\n )\r\n}\r\n\r\nexport default Input\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst input: SxStyleProp = {\r\n background: 'none',\r\n border: '#F4F4F4',\r\n color: '#545454',\r\n fontSize: ['14px'],\r\n width: '100%',\r\n transition: 'flex 0.3s',\r\n outline: 'none',\r\n}\r\n\r\nconst icon: SxStyleProp = {\r\n minWidth: '16px',\r\n minHeight: '16px',\r\n width: '16px',\r\n mr: '8px',\r\n flex: 0,\r\n maxWidth: 'fit-content',\r\n}\r\n\r\nconst container: SxStyleProp = {\r\n paddingLeft: '12px',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n background: '#F4F4F4',\r\n width: '100%',\r\n height: '40px',\r\n borderRadius: '4px',\r\n transition: 'all 0.3s ease-out',\r\n cursor: 'pointer',\r\n border: '1px solid #F4F4F4',\r\n\r\n ':hover': {\r\n transition: 'all 0.3s ease-out',\r\n border: '1px solid #3B3B3B',\r\n },\r\n}\r\n\r\nexport default { container, input, icon }\r\n","import React, { useContext, useState } from 'react'\r\nimport { Box, Button, Text, Flex, Link } from '@vtex/brand-ui'\r\nimport { messages } from 'utils/get-message'\r\nimport { getPrivacyNoticeURL, getNewsletterURL } from 'utils/get-url'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport styles from './styles'\r\n\r\ntype EmailValidationResult = 'valid' | 'invalid' | 'error'\r\n\r\nconst SubscriptionList: React.FC = () => {\r\n const { locale } = useContext(LibraryContext)\r\n const localizedMessages = messages[locale] ?? messages.en\r\n const [email, setEmail] = useState('')\r\n const [message, setMessage] = useState('')\r\n const [messageType, setMessageType] = useState<'success' | 'error' | ''>('')\r\n\r\n const clearMessageAfterTimeout = () => {\r\n setTimeout(() => {\r\n setMessage('')\r\n setMessageType('')\r\n }, 3000)\r\n }\r\n\r\n const showMessage = (type: 'success' | 'error', text: string) => {\r\n setMessageType(type)\r\n setMessage(text)\r\n clearMessageAfterTimeout()\r\n if (type === 'success') setEmail('')\r\n }\r\n\r\n const checkEmail = async (email: string): Promise => {\r\n const apiKey = process.env.NEXT_PUBLIC_NEWSLETTER_API_KEY\r\n if (!apiKey) {\r\n console.error(localizedMessages['subscription_list.api_key_error'])\r\n return 'error'\r\n }\r\n\r\n const url = `https://mailcheck.p.rapidapi.com/?email=${encodeURIComponent(\r\n email\r\n )}`\r\n\r\n try {\r\n const response = await fetch(url, {\r\n method: 'GET',\r\n headers: {\r\n 'x-rapidapi-host': 'mailcheck.p.rapidapi.com',\r\n 'x-rapidapi-key': apiKey,\r\n },\r\n })\r\n\r\n if (!response.ok) {\r\n console.error(\r\n 'Email validation failed:',\r\n response.status,\r\n response.statusText\r\n )\r\n return 'error'\r\n }\r\n\r\n const data = await response.json()\r\n if (typeof data.block !== 'boolean') {\r\n console.error('Email validation returned an unusable response:', data)\r\n return 'error'\r\n }\r\n\r\n return data.block ? 'invalid' : 'valid'\r\n } catch (error) {\r\n console.error(error)\r\n return 'error'\r\n }\r\n }\r\n\r\n const handleSubscribe = async () => {\r\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(email)) {\r\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\r\n return\r\n }\r\n\r\n const validationResult = await checkEmail(email)\r\n if (validationResult === 'invalid') {\r\n showMessage('error', localizedMessages['subscription_list.invalid_email'])\r\n return\r\n }\r\n if (validationResult === 'error') {\r\n showMessage('error', localizedMessages['subscription_list.error'])\r\n return\r\n }\r\n\r\n const baseURL =\r\n 'https://hooks.zapier.com/hooks/catch/11585741/2pahup2/?email='\r\n\r\n const browserLocale = navigator.language || 'en-US'\r\n const currentDate = new Date()\r\n const formattedDate = currentDate.toLocaleString(browserLocale, {\r\n month: 'short',\r\n day: '2-digit',\r\n year: 'numeric',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n second: '2-digit',\r\n hour12: false,\r\n })\r\n\r\n const urlEnd = `&locale=${browserLocale}&date=${encodeURIComponent(\r\n formattedDate\r\n )}`\r\n const emailEncoded = encodeURIComponent(email)\r\n const url = baseURL + emailEncoded + urlEnd\r\n\r\n try {\r\n const response = await fetch(url, { method: 'POST' })\r\n\r\n if (!response.ok) {\r\n console.error(\r\n 'Subscription failed:',\r\n response.status,\r\n response.statusText\r\n )\r\n showMessage('error', localizedMessages['subscription_list.error'])\r\n return\r\n }\r\n\r\n showMessage('success', localizedMessages['subscription_list.success'])\r\n } catch (error) {\r\n console.error('Error:', error)\r\n showMessage('error', localizedMessages['subscription_list.error'])\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {localizedMessages['landing_page_subscription.title']}\r\n \r\n \r\n
\r\n \r\n {\r\n localizedMessages['landing_page_subscription.description'].split(\r\n 'newsletter'\r\n )[0]\r\n }\r\n \r\n newsletter\r\n \r\n {\r\n localizedMessages['landing_page_subscription.description'].split(\r\n 'newsletter'\r\n )[1]\r\n }\r\n \r\n \r\n ) =>\r\n setEmail(e.target.value)\r\n }\r\n sx={styles.emailInputField}\r\n />\r\n \r\n {localizedMessages['landing_page_newsletter.Button']}\r\n \r\n \r\n \r\n {localizedMessages['subscription_list.privacy_notice']}{' '}\r\n \r\n {localizedMessages['subscription_list.privacy_policy_link']}\r\n \r\n \r\n {message && (\r\n \r\n {message}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default SubscriptionList\r\n","export const getFeedbackURL = (currentUrl?: string) => {\r\n const encodedUrl = currentUrl ? encodeURIComponent(currentUrl) : ''\r\n return `https://docs.google.com/forms/d/e/1FAIpQLSfmnotPvPjw-SjiE7lt2Nt3RQgNUe10ixXZmuO2v9enOJReoQ/viewform?entry.1972292648=developers.vtex.com&entry.1799503232=${encodedUrl}`\r\n}\r\n\r\nexport const getGithubURL = () => {\r\n return `https://github.com/vtex-apps`\r\n}\r\n\r\nexport const getDeveloperPortalURL = () => {\r\n return `https://developers.vtex.com/`\r\n}\r\n\r\nexport const getHelpCenterURL = () => {\r\n return `https://help.vtex.com/`\r\n}\r\n\r\nexport const getCommunityURL = () => {\r\n return `https://community.vtex.com/?_ga=2.198523433.743584735.1647618303-1974737580.1645714642`\r\n}\r\n\r\nexport const getLearningCenterURL = () => {\r\n return 'https://learn.vtex.com/'\r\n}\r\n\r\nexport const getSupportURL = () => {\r\n return 'https://help.vtex.com/en/support'\r\n}\r\n\r\nexport const getNewsletterURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\r\n return `https://vtexhelp.myvtex.com/educationnewsletter/${locale}`\r\n}\r\n\r\nexport const getPrivacyNoticeURL = (locale: 'en' | 'pt' | 'es' = 'en') => {\r\n const localeMap = { en: 'us-en', pt: 'pt-br', es: 'es-mx' }\r\n return `https://vtex.com/${localeMap[locale]}/trust/general-external-privacy-notice/`\r\n}\r\n\r\nexport const getLinkedinURL = () => {\r\n return 'https://linkedin.com/company/vtex'\r\n}\r\n\r\nexport const getFacebookURL = () => {\r\n return 'https://www.facebook.com/vtexcommerce/'\r\n}\r\n\r\nexport const getInstagramURL = () => {\r\n return 'https://www.instagram.com/vtexbrasil/'\r\n}\r\n\r\nexport const getYoutubeURL = () => {\r\n return 'https://www.youtube.com/c/VTEX-Commerce/featured'\r\n}\r\n\r\nexport const getTwitterURL = () => {\r\n return 'https://twitter.com/vtexonline'\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst controlHeight = '48px'\r\n\r\nconst sectionContainer: SxStyleProp = {\r\n borderTop: '1px solid #e7e9ef',\r\n px: ['16px', '24px', '32px'],\r\n py: ['42px', '44px', '64px'],\r\n backgroundColor: 'muted.4',\r\n textAlign: 'center',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n}\r\n\r\nconst cardContainer: SxStyleProp = {\r\n mt: ['16px', '24px', '32px'],\r\n px: ['16px', '24px', '50px'],\r\n py: ['16px', '24px', '40px'],\r\n width: ['100%', '90%', '80%'],\r\n maxWidth: '1035px',\r\n backgroundColor: 'white',\r\n borderRadius: '8px',\r\n border: '1px solid #E7E9EE',\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n fontSize: ['22px', '26px', '28px', '32px'],\r\n lineHeight: ['28px', '34px', '36px', '40px'],\r\n fontWeight: '400',\r\n color: '#132032',\r\n textAlign: 'center',\r\n letterSpacing: '-0.02em',\r\n width: '100%',\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n fontSize: ['14px', '16px'],\r\n lineHeight: ['20px', '24px'],\r\n textAlign: 'center',\r\n marginBottom: '16px',\r\n color: '#4A596B',\r\n}\r\n\r\nconst inputContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: ['column', 'row'],\r\n gap: '8px',\r\n justifyContent: 'center',\r\n alignItems: ['stretch', 'flex-end'],\r\n width: '100%',\r\n}\r\n\r\nconst emailInputField: SxStyleProp = {\r\n flex: 1,\r\n minWidth: 0,\r\n width: '100%',\r\n border: '1px solid #a1a8b3',\r\n borderRadius: '4px',\r\n color: '#4A4A4A',\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n px: '16px',\r\n py: 0,\r\n height: controlHeight,\r\n minHeight: controlHeight,\r\n boxSizing: 'border-box',\r\n '&::placeholder': {\r\n color: '#4A4A4A',\r\n },\r\n '&:focus': {\r\n outline: 'none',\r\n borderColor: '#A1A8B3',\r\n },\r\n}\r\n\r\nconst button: SxStyleProp = {\r\n transition: 'all 0.3s ease-out',\r\n minHeight: controlHeight,\r\n height: controlHeight,\r\n alignSelf: 'stretch',\r\n minWidth: '140px',\r\n whiteSpace: 'nowrap',\r\n px: '16px',\r\n}\r\n\r\nconst privacyText: SxStyleProp = {\r\n fontSize: '14px',\r\n color: '#A1A8B3',\r\n lineHeight: '20px',\r\n fontWeight: '400',\r\n margin: '16px 0 0',\r\n textAlign: 'center',\r\n}\r\n\r\nconst popupCard: SxStyleProp = {\r\n backgroundColor: 'white',\r\n boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)',\r\n width: '100%',\r\n maxWidth: '400px',\r\n padding: ['8px', '12px'],\r\n boxSizing: 'border-box',\r\n margin: '0 auto',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n borderRadius: '6px',\r\n marginTop: '16px',\r\n alignSelf: 'center',\r\n}\r\n\r\nexport default {\r\n sectionContainer,\r\n cardContainer,\r\n title,\r\n description,\r\n inputContainer,\r\n emailInputField,\r\n button,\r\n privacyText,\r\n popupCard,\r\n}\r\n","import { useContext, type ReactNode } from 'react'\r\nimport { Box, Flex, Link } from '@vtex/brand-ui'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport {\r\n getCommunityURL,\r\n getDeveloperPortalURL,\r\n getFacebookURL,\r\n getFeedbackURL,\r\n getGithubURL,\r\n getHelpCenterURL,\r\n getInstagramURL,\r\n getLinkedinURL,\r\n getTwitterURL,\r\n getYoutubeURL,\r\n} from 'utils/get-url'\r\nimport VTEXLogoFooter from 'components/icons/vtex-logo-footer'\r\nimport InstagramIcon from 'components/icons/instagram-icon'\r\nimport YoutubeIcon from 'components/icons/youtube-icon'\r\nimport FacebookCircleIcon from 'components/icons/facebook-circle-icon'\r\nimport LinkedinCircleIcon from 'components/icons/linkedin-circle-icon'\r\nimport styles from './styles'\r\n\r\nexport type FooterLink = {\r\n label: string\r\n href: string\r\n}\r\n\r\nexport type FooterVariant = 'helpcenter' | 'devportal'\r\n\r\nexport type FooterProps = {\r\n /**\r\n * Which site is rendering the Footer. Help Center shows a Developer Portal\r\n * link; Developer Portal shows a Help Center link.\r\n */\r\n variant?: FooterVariant\r\n /** Overrides the default GitHub, cross-site, Community, and Feedback links. */\r\n links?: FooterLink[]\r\n githubUrl?: string\r\n developerPortalUrl?: string\r\n helpCenterUrl?: string\r\n communityUrl?: string\r\n feedbackUrl?: string\r\n /** App-specific locale switcher rendered at the end of the link row. */\r\n localeSwitcher?: ReactNode\r\n}\r\n\r\nconst Footer = ({\r\n variant = 'helpcenter',\r\n links,\r\n githubUrl,\r\n developerPortalUrl,\r\n helpCenterUrl,\r\n communityUrl,\r\n feedbackUrl,\r\n localeSwitcher,\r\n}: FooterProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const localizedMessages = messages[locale] ?? messages.en\r\n\r\n const crossSiteLink: FooterLink =\r\n variant === 'devportal'\r\n ? {\r\n label: localizedMessages['footer.help_center'],\r\n href: helpCenterUrl ?? getHelpCenterURL(),\r\n }\r\n : {\r\n label: localizedMessages['footer.developer_portal'],\r\n href: developerPortalUrl ?? getDeveloperPortalURL(),\r\n }\r\n\r\n const defaultLinks: FooterLink[] = [\r\n {\r\n label: localizedMessages['footer.github'],\r\n href: githubUrl ?? getGithubURL(),\r\n },\r\n crossSiteLink,\r\n {\r\n label: localizedMessages['footer.community'],\r\n href: communityUrl ?? getCommunityURL(),\r\n },\r\n {\r\n label: localizedMessages['footer.feedback'],\r\n href: feedbackUrl ?? getFeedbackURL(),\r\n },\r\n ]\r\n\r\n const resolvedLinks = links ?? defaultLinks\r\n\r\n const socialIcons = [\r\n {\r\n href: getLinkedinURL(),\r\n component: ,\r\n },\r\n {\r\n href: getInstagramURL(),\r\n component: ,\r\n },\r\n {\r\n href: getYoutubeURL(),\r\n component: ,\r\n },\r\n {\r\n href: getFacebookURL(),\r\n component: ,\r\n },\r\n ]\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {socialIcons.map((icon) => (\r\n \r\n {icon.component}\r\n \r\n ))}\r\n \r\n \r\n \r\n {resolvedLinks.map((link) => (\r\n \r\n {link.label}\r\n \r\n ))}\r\n {localeSwitcher ? (\r\n {localeSwitcher}\r\n ) : null}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Footer\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst VTEXLogoFooter = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default VTEXLogoFooter\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst IgIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default IgIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst YoutubeIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default YoutubeIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst FacebookCircleIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default FacebookCircleIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst LinkedinCircleIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default LinkedinCircleIcon\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst DESKTOP_FROM = '1024px'\r\n\r\nconst outerBox: SxStyleProp = {\r\n bg: '#142032',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n px: ['24px', '32px', '48px', '64px'],\r\n py: ['32px', '40px', '48px'],\r\n alignItems: 'flex-start',\r\n justifyContent: 'space-between',\r\n flexWrap: 'wrap',\r\n gap: ['24px', '32px'],\r\n width: '100%',\r\n boxSizing: 'border-box',\r\n [`@media screen and (min-width: ${DESKTOP_FROM})`]: {\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n}\r\n\r\nconst brandAndSocial: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: ['column', 'row'],\r\n alignItems: ['flex-start', 'center'],\r\n gap: ['16px', '24px', '32px'],\r\n flexShrink: 0,\r\n width: '100%',\r\n [`@media screen and (min-width: ${DESKTOP_FROM})`]: {\r\n width: 'auto',\r\n },\r\n}\r\n\r\nconst logo: SxStyleProp = {\r\n width: '61px',\r\n height: '22px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst socialMediaIcons: SxStyleProp = {\r\n gap: ['12px', '16px'],\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n a: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n lineHeight: 0,\r\n },\r\n}\r\n\r\nconst textLinkItems: SxStyleProp = {\r\n fontSize: ['14px', '16px'],\r\n gap: ['12px 20px', '16px 24px', '24px 32px', '45px'],\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n width: '100%',\r\n a: {\r\n color: '#CCCED8',\r\n whiteSpace: 'nowrap',\r\n },\r\n [`@media screen and (min-width: ${DESKTOP_FROM})`]: {\r\n width: 'auto',\r\n flex: 1,\r\n justifyContent: 'flex-end',\r\n },\r\n}\r\n\r\nconst localeSwitch: SxStyleProp = {\r\n flexShrink: 0,\r\n}\r\n\r\nconst icon: SxStyleProp = {\r\n size: [28, 32],\r\n color: '#CCCED7',\r\n transition: 'all 0.3s ease-out',\r\n borderRadius: '50%',\r\n ':hover': {\r\n color: 'white',\r\n backgroundColor: 'rgba(204, 206, 215, 0.3)',\r\n },\r\n}\r\n\r\nexport default {\r\n outerBox,\r\n brandAndSocial,\r\n logo,\r\n socialMediaIcons,\r\n textLinkItems,\r\n localeSwitch,\r\n icon,\r\n}\r\n","import * as BrandUI from '@vtex/brand-ui'\r\nimport { Link as VtexLink, Flex, Text, Box } from '@vtex/brand-ui'\r\nimport { useContext, useEffect, useRef, useState, type ReactNode } from 'react'\r\nimport { useRouter } from 'next/router.js'\r\nimport HamburgerMenu from 'lib/hamburger-menu'\r\nimport AskAssistant, {\r\n type AskAssistantProps,\r\n} from 'components/ask-assistant'\r\nimport SearchInput from 'components/search-input'\r\nimport VTEXDevPortalIcon from 'components/icons/vtex-devportal-icon'\r\nimport VTEXHelpCenterIcon from 'components/icons/vtex-helpcenter-icon'\r\nimport GridIcon from 'components/icons/grid-icon'\r\nimport LongArrowIcon from 'components/icons/long-arrow-icon'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport type { Section } from 'utils/typings/types'\r\nimport DropdownMenu from './dropdown-menu'\r\nimport styles from './styles'\r\n\r\nconst HeaderBrand = BrandUI.Header\r\n\r\nexport type HeaderVariant = 'helpcenter' | 'devportal'\r\n\r\nexport type HeaderProps = {\r\n /**\r\n * Which site is rendering the Header. Controls the default logo.\r\n * Help Center is the default; Developer Portal should pass `devportal`.\r\n */\r\n variant?: HeaderVariant\r\n /** When true, the docs dropdown shows `editorSections` instead of docs sections. */\r\n isEditor?: boolean\r\n /**\r\n * Sections shown in the docs dropdown. Defaults to the hamburger sections\r\n * from LibraryContext.\r\n */\r\n dropdownSections?: Section[][]\r\n /** Sections shown in the dropdown when `isEditor` is true. */\r\n editorSections?: Section[]\r\n /** Slot rendered above the header bar (e.g. AnnouncementBar). */\r\n announcement?: ReactNode\r\n homeHref?: string\r\n /** When set, shows the feedback link in the header. Hidden otherwise. */\r\n feedbackUrl?: string\r\n /** Overrides the default logo for the selected variant. */\r\n logo?: ReactNode\r\n /**\r\n * App-specific items rendered after the docs dropdown (e.g. Help Center\r\n * announcements). Hidden on small viewports together with RightLinks.\r\n */\r\n extraRightLinks?: ReactNode\r\n /** App-specific locale switcher rendered next to the hamburger menu. */\r\n localeSwitcher?: ReactNode\r\n /** Parent slugs of the current article, used to expand the mobile sidebar. */\r\n parentsArray?: string[]\r\n /**\r\n * When true, renders AskAssistant next to the search input on desktop.\r\n * Search stays hidden on small viewports (use the search icon). On mobile\r\n * the assistant is a floating action button in the bottom-right corner.\r\n */\r\n showAssistant?: boolean\r\n /** Props forwarded to AskAssistant when `showAssistant` is true. */\r\n assistant?: AskAssistantProps\r\n}\r\n\r\nconst Header = ({\r\n variant = 'helpcenter',\r\n isEditor = false,\r\n dropdownSections,\r\n editorSections = [],\r\n announcement,\r\n homeHref = '/',\r\n feedbackUrl,\r\n logo,\r\n extraRightLinks,\r\n localeSwitcher,\r\n parentsArray,\r\n showAssistant = false,\r\n assistant,\r\n}: HeaderProps) => {\r\n const router = useRouter()\r\n const { locale, hamburguerSections } = useContext(LibraryContext)\r\n const localizedMessages = messages[locale] ?? messages.en\r\n\r\n const modalOpen = useRef(false)\r\n const [showDropdown, setShowDropdown] = useState(false)\r\n const headerElement = useRef(null)\r\n\r\n const docsSections = dropdownSections ?? hamburguerSections\r\n const menuSections =\r\n isEditor && editorSections.length > 0 ? [editorSections] : docsSections\r\n\r\n const defaultLogo =\r\n variant === 'devportal' ? (\r\n \r\n ) : (\r\n \r\n )\r\n\r\n useEffect(() => {\r\n const body = document.body\r\n\r\n const observer = new MutationObserver(() => {\r\n modalOpen.current = !modalOpen.current\r\n if (headerElement.current) {\r\n if (modalOpen.current) {\r\n const headerHeight = headerElement.current.offsetHeight\r\n headerElement.current.style.top = `-${headerHeight}px`\r\n } else {\r\n headerElement.current.style.top = '0'\r\n }\r\n }\r\n })\r\n observer.observe(body, {\r\n attributeFilter: ['style'],\r\n })\r\n\r\n return () => observer.disconnect()\r\n }, [])\r\n\r\n useEffect(() => {\r\n const onScroll = () => {\r\n setShowDropdown(false)\r\n }\r\n\r\n window.addEventListener('scroll', onScroll, { passive: true })\r\n return () => window.removeEventListener('scroll', onScroll)\r\n }, [])\r\n\r\n useEffect(() => {\r\n const hideDropdown = () => {\r\n setShowDropdown(false)\r\n }\r\n\r\n router.events?.on('routeChangeStart', hideDropdown)\r\n return () => {\r\n router.events?.off('routeChangeStart', hideDropdown)\r\n }\r\n }, [router.events])\r\n\r\n return (\r\n \r\n {announcement ??
}\r\n \r\n \r\n {logo ?? defaultLogo}\r\n \r\n\r\n \r\n \r\n \r\n \r\n {showAssistant ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n\r\n \r\n setShowDropdown(true)}\r\n onMouseLeave={() => setShowDropdown(false)}\r\n >\r\n \r\n \r\n \r\n {isEditor\r\n ? localizedMessages['header.admin_tools']\r\n : localizedMessages['header.docs']}\r\n \r\n \r\n\r\n {showDropdown && }\r\n \r\n\r\n {extraRightLinks ? (\r\n {extraRightLinks}\r\n ) : null}\r\n\r\n {feedbackUrl ? (\r\n \r\n \r\n \r\n {localizedMessages['header.feedback']}\r\n \r\n \r\n ) : null}\r\n \r\n {localeSwitcher ? (\r\n \r\n \r\n \r\n \r\n {localeSwitcher}\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Header\r\nexport { default as DropdownMenu } from './dropdown-menu'\r\nexport type { DropdownMenuProps } from './dropdown-menu'\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst VTEXDevPortalIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default VTEXDevPortalIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst VTEXHelpCenterIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default VTEXHelpCenterIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst GridIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default GridIcon\r\n","import { useContext } from 'react'\r\nimport { Box } from '@vtex/brand-ui'\r\nimport DocumentationCard from 'components/documentation-card'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { getSectionLabel } from 'utils/sidebar-utils'\r\nimport type { Section } from 'utils/typings/types'\r\nimport styles from './dropdown-menu.styles'\r\n\r\nexport type DropdownMenuProps = {\r\n sections: Section[][]\r\n}\r\n\r\nconst DropdownMenu = ({ sections }: DropdownMenuProps) => {\r\n const { locale, sidebarDataMaster } = useContext(LibraryContext)\r\n\r\n return (\r\n \r\n \r\n {sections.map((section, id) => (\r\n 0 ? styles.sectionDivider : {}),\r\n }}\r\n key={id}\r\n data-cy={\r\n id > 0\r\n ? 'dropdown-menu-second-section'\r\n : 'dropdown-menu-first-section'\r\n }\r\n >\r\n {section.map((card) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default DropdownMenu\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst outerContainer: SxStyleProp = {\r\n cursor: 'initial',\r\n top: '5rem',\r\n right: 0,\r\n position: 'absolute',\r\n filter: 'drop-shadow(0px 0px 16px rgba(0, 0, 0, 0.1))',\r\n clipPath: 'inset(0 -32px -32px -32px)',\r\n borderRadius: '0px 0px 8px 8px',\r\n border: '1px solid #E7E9EE',\r\n borderTop: '0px',\r\n background: 'white',\r\n padding: '8px',\r\n width: '680px',\r\n maxWidth: 'calc(100vw - 32px)',\r\n maxHeight: 'calc(100vh - 5rem)',\r\n zIndex: 10,\r\n}\r\n\r\nconst innerContainer: SxStyleProp = {\r\n overflowY: 'auto',\r\n overscrollBehavior: 'contain',\r\n maxHeight: 'calc(100vh - 5rem - 16px)',\r\n scrollbarWidth: 'thin',\r\n scrollbarColor: 'white white',\r\n\r\n '::-webkit-scrollbar': {\r\n width: '5px',\r\n },\r\n\r\n '::-webkit-scrollbar-thumb': {\r\n borderRadius: '100px',\r\n background: 'white',\r\n },\r\n\r\n ':hover': {\r\n scrollbarColor: '#CCCED8 white',\r\n\r\n '::-webkit-scrollbar-thumb': {\r\n background: '#CCCED8',\r\n },\r\n },\r\n}\r\n\r\nconst documentationContainer: SxStyleProp = {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(2, minmax(0, 1fr))',\r\n columnGap: '4px',\r\n rowGap: '4px',\r\n\r\n '& > :last-child:nth-child(odd)': {\r\n gridColumn: '1 / -1',\r\n },\r\n}\r\n\r\nconst sectionDivider: SxStyleProp = {\r\n mt: '4px',\r\n pt: '4px',\r\n borderRadius: '0px 0px 8px 8px',\r\n borderTop: '1px solid #E7E9EE',\r\n}\r\n\r\nexport default {\r\n documentationContainer,\r\n innerContainer,\r\n outerContainer,\r\n sectionDivider,\r\n}\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst navItem: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '36px',\r\n px: '10px',\r\n borderRadius: '6px',\r\n color: '#4A596B',\r\n transition: 'background-color 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n color: '#C81E51',\r\n backgroundColor: '#FFF3F6',\r\n },\r\n}\r\n\r\nconst headerContainer: SxStyleProp = {\r\n position: 'sticky',\r\n top: 0,\r\n zIndex: 9999,\r\n width: '100%',\r\n backgroundColor: '#FFFFFF',\r\n transition: 'top 0.3s',\r\n 'body:has(.modal[data-open=\"true\"]) &': {\r\n zIndex: 0,\r\n },\r\n maxWidth: '2024px',\r\n mx: 'auto',\r\n}\r\n\r\nconst headerBrand: SxStyleProp = {\r\n gridTemplateColumns: 'auto minmax(0, 1fr) auto auto',\r\n width: '100%',\r\n position: 'relative',\r\n transition: 'top 0.3s',\r\n 'button[role=\"presentation\"]': {\r\n borderLeft: 'none',\r\n svg: {\r\n rect: {\r\n fill: '#4A596B',\r\n },\r\n },\r\n },\r\n}\r\n\r\nconst hamburgerMenuToggle: SxStyleProp = {\r\n display: ['contents', 'contents', 'none', 'none'],\r\n}\r\n\r\nconst extraRightLinks: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '100%',\r\n position: 'relative',\r\n}\r\n\r\nconst headerEndActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '100%',\r\n gridArea: 'actionbutton',\r\n justifyContent: 'flex-end',\r\n borderLeft: ['none', 'none', '1px solid #E7E9EE', '1px solid #E7E9EE'],\r\n}\r\n\r\nconst localeSwitcherSlot: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n height: '100%',\r\n width: ['56px', '56px', 'auto', 'auto'],\r\n minWidth: ['56px', '56px', 0, 0],\r\n paddingLeft: [0, 0, '12px', '12px'],\r\n paddingRight: [0, 0, '12px', '12px'],\r\n zIndex: 1,\r\n '& button': {\r\n borderLeft: 'none !important',\r\n padding: [\r\n '0 !important',\r\n '0 !important',\r\n '0 10px !important',\r\n '0 10px !important',\r\n ],\r\n width: ['100%', '100%', 'auto', 'auto'],\r\n height: ['100%', '100%', '36px !important', '36px !important'],\r\n justifyContent: 'center',\r\n lineHeight: 0,\r\n borderRadius: '6px',\r\n transition: 'background-color 0.15s ease, color 0.15s ease',\r\n ':hover': {\r\n backgroundColor: ['transparent', 'transparent', '#FFF3F6', '#FFF3F6'],\r\n color: '#C81E51',\r\n },\r\n },\r\n}\r\n\r\nconst headerBrandLink: SxStyleProp = {\r\n width: 'fit-content',\r\n justifyContent: 'center',\r\n gridArea: 'brand',\r\n marginLeft: [4, 6, 6],\r\n marginBottom: 1,\r\n '> svg': {\r\n width: 'auto',\r\n },\r\n}\r\n\r\nconst logoSize: SxStyleProp = {\r\n width: ['172px', '172px', '204px'],\r\n height: ['24px', '24px', '32px'],\r\n}\r\n\r\nconst rightLinks: SxStyleProp = {\r\n display: ['none', 'none', 'flex !important', 'flex !important'],\r\n width: 'auto',\r\n height: '100%',\r\n alignItems: 'center',\r\n gap: '8px',\r\n pr: ['16px', '16px', '16px', '16px'],\r\n '> a': {\r\n marginX: '0 !important',\r\n },\r\n}\r\n\r\nconst rightLinksItem: SxStyleProp = {\r\n ...navItem,\r\n display: ['none', 'none', 'none', 'flex'],\r\n justifyContent: 'center',\r\n width: '36px',\r\n px: '0 !important',\r\n svg: {\r\n mr: '0',\r\n },\r\n ':hover': {\r\n color: '#C81E51',\r\n backgroundColor: '#FFF3F6',\r\n 'svg > path': {\r\n stroke: '#C81E51',\r\n },\r\n },\r\n}\r\n\r\nconst dropdownContainer: SxStyleProp = {\r\n textTransform: 'none',\r\n justifyContent: 'flex-end',\r\n alignItems: 'center',\r\n height: 'calc(100% + 1px)',\r\n cursor: 'pointer',\r\n position: 'relative',\r\n}\r\n\r\nconst dropdownButton: (active: boolean) => SxStyleProp = (active: boolean) => ({\r\n ...navItem,\r\n color: active ? '#D71D55' : '#4A596B',\r\n backgroundColor: active ? '#FFF3F6' : 'transparent',\r\n svg: {\r\n mr: '8px',\r\n path: {\r\n fill: active ? '#D71D55' : '#4A596B',\r\n },\r\n },\r\n ':hover': {\r\n color: '#C81E51',\r\n backgroundColor: '#FFF3F6',\r\n 'svg > path': {\r\n fill: '#C81E51',\r\n },\r\n },\r\n})\r\n\r\nconst rightButtonsText: SxStyleProp = {\r\n fontWeight: 'normal',\r\n fontSize: '13px',\r\n lineHeight: '22px',\r\n fontFamily: 'VTEX Trust Medium !important',\r\n textTransform: 'none',\r\n}\r\n\r\nconst searchRow: SxStyleProp = {\r\n display: ['none', 'none', 'flex', 'flex'],\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n flexWrap: 'nowrap',\r\n gap: '8px',\r\n paddingBlock: '18px',\r\n height: 'auto',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n}\r\n\r\nconst searchContainer: SxStyleProp = {\r\n flex: 'none',\r\n minWidth: 0,\r\n}\r\n\r\nconst assistantSlot: SxStyleProp = {\r\n display: ['none', 'none', 'none', 'flex'],\r\n flex: 'none',\r\n flexShrink: 0,\r\n alignSelf: 'center',\r\n}\r\n\r\nexport default {\r\n logoSize,\r\n headerContainer,\r\n headerBrand,\r\n headerBrandLink,\r\n searchRow,\r\n searchContainer,\r\n assistantSlot,\r\n rightLinks,\r\n rightLinksItem,\r\n rightButtonsText,\r\n dropdownButton,\r\n dropdownContainer,\r\n hamburgerMenuToggle,\r\n extraRightLinks,\r\n headerEndActions,\r\n localeSwitcherSlot,\r\n}\r\n","import { useEffect, useState, type ReactNode } from 'react'\r\nimport { Box, Button, Text, Link, Icon } from '@vtex/brand-ui'\r\nimport type { IconProps } from '@vtex/brand-ui'\r\nimport styles from './styles'\r\n\r\nexport type AnnouncementBarType = 'warning' | 'new'\r\n\r\nexport type AnnouncementBarAction = {\r\n href: string\r\n tag?: string\r\n button?: string\r\n target?: string\r\n}\r\n\r\nexport type AnnouncementBarProps = {\r\n type: AnnouncementBarType\r\n label?: string\r\n closable: boolean\r\n action: AnnouncementBarAction\r\n children?: ReactNode\r\n}\r\n\r\nconst CloseIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nconst AnnouncementBar = ({\r\n closable,\r\n type,\r\n action: { tag, button, href, target = '_blank' },\r\n label,\r\n children,\r\n}: AnnouncementBarProps) => {\r\n const [visible, setVisible] = useState(true)\r\n\r\n useEffect(() => {\r\n if (!closable || !visible) return\r\n\r\n const onKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === 'Escape') setVisible(false)\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [closable, visible])\r\n\r\n if (!visible) return null\r\n\r\n return (\r\n \r\n \r\n {tag && {tag}}\r\n {children ? {children} : null}\r\n {label ? {label} : null}\r\n {button && (\r\n \r\n {button}\r\n \r\n )}\r\n \r\n {closable && (\r\n \r\n {\r\n event.stopPropagation()\r\n setVisible(false)\r\n }}\r\n icon={() => }\r\n />\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default AnnouncementBar\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container = (type: string): SxStyleProp => {\r\n const background = {\r\n color: type == 'warning' ? '#fff2d4' : '#fff9fa',\r\n }\r\n return {\r\n backgroundColor: `${background.color}`,\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n cursor: 'default',\r\n width: '100%',\r\n padding: ['15px 15px', '15px 25px', '15px 50px'],\r\n ':focus': {\r\n outline: 'none',\r\n },\r\n }\r\n}\r\n\r\nconst box: SxStyleProp = {\r\n width: '100%',\r\n textAlign: 'center',\r\n}\r\n\r\nconst label = (type: string): SxStyleProp => {\r\n const labelColor = {\r\n bgColor: type == 'warning' ? '#ffe1a7' : '#feeaef',\r\n textColor: type == 'warning' ? '#142032' : '#D4084C',\r\n }\r\n\r\n return {\r\n color: `${labelColor.textColor}`,\r\n backgroundColor: `${labelColor.bgColor}`,\r\n borderRadius: '4px',\r\n padding: '5px 8px',\r\n marginRight: '10px',\r\n display: 'inline',\r\n fontWeight: '600',\r\n letterSpacing: '1px',\r\n fontSize: '13px',\r\n }\r\n}\r\n\r\nconst button = (type: string): SxStyleProp => {\r\n const labelColor = {\r\n bgColor: type == 'warning' ? '#ffe1a7' : '#feeaef',\r\n }\r\n\r\n return {\r\n color: '#D4084C',\r\n backgroundColor: `${labelColor.bgColor}`,\r\n borderRadius: '4px',\r\n padding: '5px 8px',\r\n marginLeft: '10px',\r\n display: 'inline',\r\n fontWeight: '600',\r\n }\r\n}\r\n\r\nconst text: SxStyleProp = {\r\n color: '#142032',\r\n display: 'inline',\r\n}\r\n\r\nconst closeIcon: SxStyleProp = {\r\n display: 'block',\r\n float: 'right',\r\n}\r\n\r\nexport default {\r\n button,\r\n container,\r\n closeIcon,\r\n box,\r\n label,\r\n text,\r\n}\r\n","import { SxStyleProp, Text } from '@vtex/brand-ui'\r\n\r\nimport styles from './styles'\r\n\r\nexport type TagColor =\r\n | 'Default'\r\n | 'Selected'\r\n | 'New'\r\n | 'Gray'\r\n | 'Blue'\r\n | 'Green'\r\n | 'Deprecation'\r\n | 'Backlog'\r\n | 'Fixed'\r\n | 'Closed'\r\n | 'Scheduled'\r\n | 'No_Fix'\r\n\r\nexport type TagProps = {\r\n sx?: SxStyleProp\r\n children: React.ReactNode\r\n color?: TagColor\r\n onClick?: () => void\r\n}\r\n\r\nconst Tag = ({ sx = {}, children, color = 'Default', onClick }: TagProps) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport default Tag\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nimport type { TagColor } from './index'\r\n\r\nconst tag: SxStyleProp = {\r\n borderRadius: '11.5px',\r\n height: '20px',\r\n fontSize: '12px',\r\n lineHeight: '20px',\r\n px: '7px',\r\n textAlign: 'center',\r\n textWrap: 'nowrap',\r\n minWidth: 'max-content',\r\n}\r\n\r\nconst statusColors: Record = {\r\n Backlog: {\r\n border: '1px solid #D3D3D3',\r\n color: '#4A596B',\r\n background: '#E9E9E9',\r\n },\r\n Fixed: {\r\n border: '1px solid #9FCDB4',\r\n color: '#3A6E32',\r\n background: '#DFF5DB',\r\n },\r\n Closed: {\r\n border: '1px solid #A5C0FF',\r\n color: '#2953B2',\r\n background: '#DEE8FE',\r\n },\r\n Scheduled: {\r\n border: '1px solid #FFD581',\r\n color: '#D77809',\r\n background: '#FFF3DA',\r\n },\r\n No_Fix: {\r\n border: '1px solid #FAA397',\r\n color: '#CB2610',\r\n background: '#FFDFDB',\r\n },\r\n Default: {\r\n border: '1px solid #A1AAB7',\r\n color: '#A1AAB7',\r\n background: '#ffff',\r\n\r\n ':hover': {\r\n color: '#4A596B',\r\n border: '1px solid #4A596B',\r\n },\r\n },\r\n Selected: {\r\n border: '1px solid #A1AAB7',\r\n color: '#ffff',\r\n background: '#A1AAB7',\r\n\r\n ':hover': {\r\n color: '#142032',\r\n },\r\n },\r\n New: {\r\n border: '1px solid #F71963',\r\n color: '#F71963',\r\n background: '#FFE0EF',\r\n },\r\n Gray: {\r\n color: '#4A596B',\r\n background: '#E7E9EE',\r\n },\r\n Deprecation: {\r\n border: '1px solid #E8A5BE',\r\n color: '#A23D6E',\r\n background: '#FCEAF2',\r\n },\r\n Blue: {\r\n border: '1px solid #A5C0FF',\r\n color: '#2953B2',\r\n background: '#DEE8FE',\r\n },\r\n Green: {\r\n border: '1px solid #9FCDB4',\r\n color: '#3A6E32',\r\n background: '#DFF5DB',\r\n },\r\n}\r\n\r\nexport default {\r\n statusColors,\r\n tag,\r\n}\r\n","import { Box, Button, Checkbox, Flex, SxStyleProp, Text } from '@vtex/brand-ui'\r\nimport CloseIcon from 'components/icons/close-icon'\r\nimport FilterIcon from 'components/icons/filter-icon'\r\nimport TrashcanIcon from 'components/icons/trashcan-icon'\r\nimport Tag from 'components/tag'\r\nimport { useState } from 'react'\r\n\r\nimport { toFilterGroup, toFilterGroups } from './normalize'\r\nimport styles from './styles'\r\nimport type {\r\n FilterGroup,\r\n ListingFilterLabels,\r\n ListingFilterSelection,\r\n} from './types'\r\n\r\nexport type { FilterGroup, FilterOption, ListingFilterLabels, ListingFilterSelection } from './types'\r\n\r\nexport type ListingFilterProps = {\r\n tagFilter?: FilterGroup | string[]\r\n tagFilterName?: string\r\n checkBoxFilter?: FilterGroup | string[]\r\n checkBoxFilters?: FilterGroup[]\r\n filterName?: string\r\n selectedCheckboxes?: string[]\r\n selectedTags?: string[]\r\n onApply: (filters: ListingFilterSelection) => void\r\n labels?: ListingFilterLabels\r\n buttonSx?: SxStyleProp\r\n centeredTagOptions?: boolean\r\n}\r\n\r\ntype SelectedFilters = ListingFilterSelection\r\n\r\nconst defaultLabels: Required = {\r\n button: 'Filters',\r\n modalTitle: 'Filters',\r\n remove: 'Remove filters',\r\n apply: 'Apply filters',\r\n}\r\n\r\nconst ListingFilter = ({\r\n tagFilter,\r\n tagFilterName,\r\n checkBoxFilter,\r\n checkBoxFilters,\r\n filterName = '',\r\n onApply,\r\n selectedCheckboxes,\r\n selectedTags,\r\n labels,\r\n buttonSx,\r\n centeredTagOptions = false,\r\n}: ListingFilterProps) => {\r\n const resolvedLabels = { ...defaultLabels, ...labels }\r\n const normalizedTagFilter = toFilterGroup(tagFilter, tagFilterName)\r\n const checkboxGroups = toFilterGroups(\r\n checkBoxFilter,\r\n checkBoxFilters,\r\n filterName\r\n )\r\n\r\n const [isModalOpen, setIsModalOpen] = useState(false)\r\n const [tempFilters, setTempFilters] = useState({\r\n tag: [],\r\n checklist: [],\r\n })\r\n\r\n const numberOfFilters =\r\n getSelectedFiltersLength(selectedTags) +\r\n getSelectedFiltersLength(selectedCheckboxes)\r\n\r\n function getSelectedFiltersLength(filters: string[] | undefined) {\r\n return filters?.length ?? 0\r\n }\r\n\r\n function handleFilterClick(option: string, type: 'tag' | 'checklist') {\r\n setTempFilters((prev) => {\r\n const current = prev[type]\r\n const updatedFilters = current.includes(option)\r\n ? current.filter((filter) => filter !== option)\r\n : [...current, option]\r\n\r\n return { ...prev, [type]: updatedFilters }\r\n })\r\n }\r\n\r\n function isFilterSelected(option: string, type: 'tag' | 'checklist') {\r\n if (isModalOpen) {\r\n return tempFilters[type].includes(option)\r\n }\r\n\r\n if (type === 'tag') {\r\n return selectedTags?.includes(option) ?? false\r\n }\r\n\r\n return selectedCheckboxes?.includes(option) ?? false\r\n }\r\n\r\n const FilterButton = () => (\r\n {\r\n setTempFilters({\r\n checklist: selectedCheckboxes ?? [],\r\n tag: selectedTags ?? [],\r\n })\r\n setIsModalOpen(true)\r\n }}\r\n >\r\n \r\n {resolvedLabels.button}\r\n {numberOfFilters > 0 && (\r\n {numberOfFilters}\r\n )}\r\n \r\n )\r\n\r\n const TagFilter = () => {\r\n if (!normalizedTagFilter) return null\r\n\r\n return (\r\n \r\n {normalizedTagFilter.name}\r\n \r\n {normalizedTagFilter.options.map((option) => (\r\n handleFilterClick(option.id, 'tag')}\r\n >\r\n {option.name}\r\n \r\n ))}\r\n \r\n \r\n )\r\n }\r\n\r\n const CheckboxFilters = () => {\r\n if (checkboxGroups.length === 0) return null\r\n\r\n return (\r\n <>\r\n {checkboxGroups.map((group, groupIndex) => (\r\n \r\n {groupIndex > 0 && }\r\n \r\n {group.name}\r\n \r\n {group.options.map((option) => (\r\n handleFilterClick(option.id, 'checklist')}\r\n />\r\n ))}\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n }\r\n\r\n const Divider = () => (\r\n \r\n
\r\n
\r\n )\r\n\r\n const FilterModal = () => (\r\n <>\r\n setIsModalOpen(false)} />\r\n \r\n \r\n {resolvedLabels.modalTitle}\r\n setIsModalOpen(false)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n {normalizedTagFilter && checkboxGroups.length > 0 && }\r\n \r\n \r\n \r\n }\r\n onClick={() => setTempFilters({ tag: [], checklist: [] })}\r\n >\r\n {resolvedLabels.remove}\r\n \r\n {\r\n setIsModalOpen(false)\r\n onApply(tempFilters)\r\n }}\r\n >\r\n {resolvedLabels.apply}\r\n \r\n \r\n \r\n \r\n )\r\n\r\n return (\r\n <>\r\n \r\n {isModalOpen && }\r\n \r\n )\r\n}\r\n\r\nexport default ListingFilter\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst FilterIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default FilterIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst TrashcanIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default TrashcanIcon\r\n","import type { FilterGroup } from './types'\r\n\r\nexport function isFilterGroup(value: unknown): value is FilterGroup {\r\n return (\r\n typeof value === 'object' &&\r\n value !== null &&\r\n 'name' in value &&\r\n 'options' in value &&\r\n Array.isArray((value as FilterGroup).options)\r\n )\r\n}\r\n\r\nexport function toFilterGroup(\r\n input: FilterGroup | string[] | undefined,\r\n name = ''\r\n): FilterGroup | undefined {\r\n if (!input) return undefined\r\n\r\n if (isFilterGroup(input)) {\r\n return input\r\n }\r\n\r\n return {\r\n name,\r\n options: input.map((option) => ({ id: option, name: option })),\r\n }\r\n}\r\n\r\nexport function toFilterGroups(\r\n checkBoxFilter: FilterGroup | string[] | undefined,\r\n checkBoxFilters: FilterGroup[] | undefined,\r\n filterName = ''\r\n): FilterGroup[] {\r\n if (checkBoxFilters?.length) {\r\n return checkBoxFilters\r\n }\r\n\r\n const normalized = toFilterGroup(checkBoxFilter, filterName)\r\n return normalized ? [normalized] : []\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst filterButton: SxStyleProp = {\r\n cursor: 'pointer',\r\n alignItems: 'center',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n fontSize: '14px',\r\n gap: '8px',\r\n px: '8px',\r\n transition: '0.3s',\r\n height: '30px',\r\n ':hover': {\r\n color: '#F71963',\r\n },\r\n width: 'min-content',\r\n}\r\n\r\nconst filterButtonText: SxStyleProp = {\r\n display: ['none', 'block', 'block'],\r\n}\r\n\r\nconst numberOfFilters: SxStyleProp = {\r\n backgroundColor: '#FFE0EF',\r\n color: '#F71963',\r\n borderRadius: '4px',\r\n px: '4px',\r\n}\r\n\r\nconst blanket: SxStyleProp = {\r\n margin: '0',\r\n width: '100%',\r\n height: '100%',\r\n background: 'rgba(20, 32, 50, 0.70)',\r\n position: 'fixed',\r\n top: '0',\r\n left: '0',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n zIndex: '9999',\r\n}\r\n\r\nconst container: SxStyleProp = {\r\n position: 'fixed',\r\n top: '50%',\r\n left: '50%',\r\n transform: 'translate(-50%, -50%)',\r\n width: ['100%', '612px'],\r\n maxWidth: '100%',\r\n borderRadius: ['0', '5px'],\r\n backgroundColor: '#ffff',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n zIndex: '10000',\r\n overflow: 'auto',\r\n height: ['100dvh', 'auto'],\r\n maxHeight: ['100dvh', 'calc(100dvh - 32px)'],\r\n}\r\n\r\nconst innerContainer: SxStyleProp = {\r\n p: '24px',\r\n maxHeight: ['calc(100dvh - 145px)', 'calc(100dvh - 6rem - 112px)'],\r\n overflow: 'auto',\r\n}\r\n\r\nconst topContainer: SxStyleProp = {\r\n display: 'grid',\r\n width: '100%',\r\n borderBottom: '1px solid #E7E9EE',\r\n gridTemplateColumns: '1fr 64px',\r\n alignItems: 'center',\r\n gap: '24px',\r\n height: '64px',\r\n}\r\n\r\nconst modalTitle: SxStyleProp = {\r\n fontSize: '16px',\r\n textAlign: 'center',\r\n}\r\n\r\nconst closeButtonContainer: SxStyleProp = {\r\n cursor: 'pointer',\r\n borderLeft: '1px solid #E7E9EE',\r\n height: '100%',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n transition: '0.3s',\r\n ':hover': {\r\n color: '#E31C58',\r\n },\r\n}\r\n\r\nconst filterContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: '24px',\r\n}\r\n\r\nconst tagContainer: SxStyleProp = {\r\n gap: '16px',\r\n flexWrap: 'wrap',\r\n}\r\n\r\nconst tagContainerCentered: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n gap: '12px',\r\n justifyContent: 'center',\r\n overflow: 'visible',\r\n maxWidth: '100%',\r\n}\r\n\r\nconst tag: SxStyleProp = {\r\n cursor: 'pointer',\r\n transition: '0.3s',\r\n flex: '0 0 auto',\r\n ':active': {\r\n position: 'relative',\r\n top: '1px',\r\n },\r\n}\r\n\r\nconst checkBoxContainer: SxStyleProp = {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(auto-fill, minmax(150px, 1fr))',\r\n gap: '24px',\r\n alignItems: 'top',\r\n fontSize: '12px',\r\n color: '#4A596B',\r\n}\r\n\r\nconst buttonsContainer: SxStyleProp = {\r\n py: '16px',\r\n px: '32px',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n borderTop: '1px solid #E7E9EE',\r\n}\r\n\r\nconst sectionDivider: SxStyleProp = {\r\n hr: {\r\n border: '1px solid #E7E9EE',\r\n mb: '24px',\r\n mt: '24px',\r\n },\r\n}\r\n\r\nconst filterTitle: SxStyleProp = {\r\n fontSize: '20px',\r\n}\r\n\r\nconst removeButton: SxStyleProp = {\r\n backgroundColor: 'transparent',\r\n color: '#4A596B',\r\n textTransform: 'none',\r\n transition: '0.3s',\r\n p: '0',\r\n\r\n ':hover': {\r\n backgroundColor: 'transparent',\r\n color: '#E31C58',\r\n },\r\n}\r\n\r\nexport default {\r\n filterButton,\r\n filterButtonText,\r\n numberOfFilters,\r\n blanket,\r\n container,\r\n innerContainer,\r\n topContainer,\r\n modalTitle,\r\n closeButtonContainer,\r\n filterContainer,\r\n tagContainer,\r\n tagContainerCentered,\r\n tag,\r\n checkBoxContainer,\r\n buttonsContainer,\r\n sectionDivider,\r\n filterTitle,\r\n removeButton,\r\n}\r\n","import { Box, Flex, Button, Text } from '@vtex/brand-ui'\r\nimport { useEffect, useRef, useState } from 'react'\r\n\r\nimport type { IconComponent } from 'utils/typings/types'\r\nimport styles from './styles'\r\n\r\nexport type ChipFilterCategory = {\r\n type: string\r\n title: string\r\n Icon?: IconComponent\r\n}\r\n\r\nexport type ChipFilterProps = {\r\n filters: string[]\r\n categories: ChipFilterCategory[]\r\n applyCategory: (option: string) => void\r\n resetFilters: () => void\r\n removeCategory: (option: string) => void\r\n getCategoryAmount: (category: string) => number\r\n allResultsLabel?: string\r\n}\r\n\r\nconst ChipFilter = ({\r\n filters,\r\n categories,\r\n applyCategory,\r\n resetFilters,\r\n removeCategory,\r\n getCategoryAmount,\r\n allResultsLabel = 'All results',\r\n}: ChipFilterProps) => {\r\n const containerRef = useRef(null)\r\n\r\n const [shouldDisplayArrows, setShouldDisplayArrows] = useState<{\r\n left: boolean\r\n right: boolean\r\n }>({ left: false, right: false })\r\n\r\n const totalCount = categories.reduce(\r\n (sum, category) => sum + getCategoryAmount(category.type),\r\n 0\r\n )\r\n\r\n function handleLeftArrowClick() {\r\n if (containerRef.current) {\r\n containerRef.current.scrollLeft -= 180\r\n }\r\n }\r\n\r\n function handleRightArrowClick() {\r\n if (containerRef.current) {\r\n containerRef.current.scrollLeft += 180\r\n }\r\n }\r\n\r\n function isCategoryActive(category: string) {\r\n return filters.includes(category)\r\n }\r\n\r\n function handleContainerScroll() {\r\n if (!containerRef.current) return\r\n\r\n const offsetWidth = 20\r\n const { scrollLeft, clientWidth, scrollWidth } = containerRef.current\r\n const isLeftmostScroll = scrollLeft <= 0\r\n const isRightmostScroll =\r\n scrollLeft + clientWidth + offsetWidth >= scrollWidth\r\n const hasOverflow = scrollWidth > clientWidth + offsetWidth\r\n\r\n setShouldDisplayArrows({\r\n left: hasOverflow && !isLeftmostScroll,\r\n right: hasOverflow && !isRightmostScroll,\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n handleContainerScroll()\r\n window.addEventListener('resize', handleContainerScroll)\r\n return () => window.removeEventListener('resize', handleContainerScroll)\r\n }, [categories, filters])\r\n\r\n return (\r\n \r\n {shouldDisplayArrows.left && (\r\n \r\n \r\n {`‹`}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n resetFilters()}\r\n />\r\n {categories.map((category) => (\r\n \r\n isCategoryActive(category.type)\r\n ? removeCategory(category.type)\r\n : applyCategory(category.type)\r\n }\r\n isActive={isCategoryActive(category.type)}\r\n Icon={category.Icon}\r\n />\r\n ))}\r\n \r\n \r\n {shouldDisplayArrows.right && (\r\n \r\n \r\n {`›`}\r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\ninterface FilterChipProps {\r\n value: string\r\n isActive: boolean\r\n count: number\r\n applyCategory: () => void\r\n Icon?: IconComponent\r\n}\r\n\r\nfunction FilterChip({\r\n value,\r\n isActive,\r\n count,\r\n applyCategory,\r\n Icon,\r\n}: FilterChipProps) {\r\n return (\r\n \r\n {Icon ? : null}\r\n \r\n {value}\r\n \r\n {count}\r\n \r\n )\r\n}\r\n\r\nexport default ChipFilter\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst chipButtonWrapper: SxStyleProp = {\r\n display: 'flex',\r\n position: 'relative',\r\n userSelect: 'none',\r\n width: '100%',\r\n minWidth: 0,\r\n alignItems: 'center',\r\n}\r\n\r\nconst chipsContainer: SxStyleProp = {\r\n scrollbarWidth: 'none',\r\n msOverflowStyle: 'none',\r\n overflowX: 'auto',\r\n overflowY: 'hidden',\r\n scrollBehavior: 'smooth',\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%',\r\n minWidth: 0,\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n}\r\n\r\nconst optionsContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'nowrap',\r\n gap: '8px',\r\n}\r\n\r\nconst chip: (active: boolean) => SxStyleProp = (active) => ({\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n gap: '6px',\r\n height: '32px',\r\n minHeight: '32px',\r\n px: '12px',\r\n py: 0,\r\n borderRadius: '16px',\r\n border: `1px solid ${active ? '#D8D8E3' : '#E7E9EE'}`,\r\n backgroundColor: active ? '#F8F7FC' : '#FFFFFF',\r\n cursor: 'pointer',\r\n minWidth: 'max-content',\r\n ':hover': {\r\n borderColor: '#3A4F66',\r\n '.filter-chip-title': {\r\n color: '#4A596B',\r\n },\r\n },\r\n})\r\n\r\nconst chipIcon: SxStyleProp = {\r\n width: '14px',\r\n height: '14px',\r\n minWidth: '14px',\r\n minHeight: '14px',\r\n flexShrink: 0,\r\n}\r\n\r\nconst chipTitle: (active: boolean) => SxStyleProp = (active) => ({\r\n fontSize: '13px',\r\n fontWeight: active ? '600' : '500',\r\n lineHeight: '16px',\r\n whiteSpace: 'nowrap',\r\n color: '#4A596B',\r\n transition: 'color 0.15s ease-out',\r\n})\r\n\r\nconst chipCount: SxStyleProp = {\r\n display: 'inline-flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n px: '6px',\r\n minWidth: '20px',\r\n height: '18px',\r\n fontSize: '11px',\r\n fontWeight: '500',\r\n lineHeight: '16px',\r\n borderRadius: '24px',\r\n backgroundColor: '#EDEAF6',\r\n color: '#4A596B',\r\n}\r\n\r\nconst arrowButton: SxStyleProp = {\r\n backgroundColor: 'transparent',\r\n border: 'none',\r\n borderRadius: '50%',\r\n fontWeight: '600',\r\n fontSize: '16px',\r\n padding: '0 8px',\r\n textDecoration: 'none',\r\n ':hover': {\r\n textDecoration: 'none',\r\n backgroundColor: 'transparent',\r\n },\r\n}\r\n\r\nconst rightArrowBlur: SxStyleProp = {\r\n maxWidth: '40px',\r\n minWidth: '20px',\r\n width: '5vw',\r\n background:\r\n 'linear-gradient(to left, rgba(255,255,255,80%) 30%, rgba(255, 255, 255, 1%))',\r\n}\r\n\r\nconst leftArrowBlur: SxStyleProp = {\r\n maxWidth: '40px',\r\n minWidth: '20px',\r\n width: '5vw',\r\n background:\r\n 'linear-gradient(to right, rgba(255,255,255,80%) 30%, rgba(255, 255, 255, 1%))',\r\n}\r\n\r\nconst leftArrowContainer: SxStyleProp = {\r\n position: 'absolute',\r\n display: 'flex',\r\n alignItems: 'center',\r\n left: 0,\r\n top: 0,\r\n bottom: 0,\r\n zIndex: 2,\r\n pointerEvents: 'none',\r\n button: {\r\n pointerEvents: 'auto',\r\n },\r\n}\r\n\r\nconst rightArrowContainer: SxStyleProp = {\r\n position: 'absolute',\r\n display: 'flex',\r\n flexDirection: 'row-reverse',\r\n alignItems: 'center',\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n zIndex: 2,\r\n pointerEvents: 'none',\r\n button: {\r\n pointerEvents: 'auto',\r\n },\r\n}\r\n\r\nexport default {\r\n leftArrowBlur,\r\n rightArrowBlur,\r\n arrowButton,\r\n chipsContainer,\r\n optionsContainer,\r\n chipButtonWrapper,\r\n leftArrowContainer,\r\n rightArrowContainer,\r\n chip,\r\n chipIcon,\r\n chipTitle,\r\n chipCount,\r\n}\r\n","import { Box, Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport type { ContributorsType } from 'lib/contributors'\r\nimport styles from './styles'\r\n\r\nexport type AuthorProps = {\r\n contributor: ContributorsType\r\n}\r\n\r\nconst Author = ({ contributor }: AuthorProps) => {\r\n return (\r\n \r\n \r\n {/* eslint-disable-next-line @next/next/no-img-element */}\r\n \r\n \r\n {contributor?.name}\r\n \r\n )\r\n}\r\n\r\nexport default Author\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst container: SxStyleProp = {\r\n alignItems: 'center',\r\n columnGap: ['8px', '10px', '16px'],\r\n pt: ['8px', '12px', '14px'],\r\n}\r\n\r\nconst photo: SxStyleProp = {\r\n flexShrink: 0,\r\n width: ['24px', '28px', '32px'],\r\n height: ['24px', '28px', '32px'],\r\n img: {\r\n width: '100%',\r\n height: '100%',\r\n borderRadius: '100%',\r\n },\r\n}\r\n\r\nconst name: SxStyleProp = {\r\n color: '#4A596B',\r\n fontSize: ['14px', '14px', '16px'],\r\n lineHeight: ['20px', '20px', '22px'],\r\n fontWeight: '400',\r\n overflowWrap: 'anywhere',\r\n}\r\n\r\nexport default {\r\n container,\r\n photo,\r\n name,\r\n}\r\n","import { useContext } from 'react'\r\nimport { Text } from '@vtex/brand-ui'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type TimeToReadProps = {\r\n minutes: string\r\n}\r\n\r\nconst TimeToRead = ({ minutes }: TimeToReadProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const template =\r\n messages[locale]['documentation_reading_time.text'] || '{minutes} min read'\r\n\r\n return (\r\n \r\n {template.replace('{minutes}', minutes)}\r\n \r\n )\r\n}\r\n\r\nexport default TimeToRead\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst readingTime: SxStyleProp = {\r\n color: '#A1AAB7',\r\n fontSize: ['14px', '16px'],\r\n lineHeight: '22px',\r\n}\r\n\r\nexport default {\r\n readingTime,\r\n}\r\n","import { useContext } from 'react'\r\nimport { Flex, Text } from '@vtex/brand-ui'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type DateTextProps = {\r\n createdAt: Date\r\n updatedAt: Date\r\n}\r\n\r\nconst formatDate = (date: Date, locale: string) => {\r\n if (Number.isNaN(date.getTime())) return undefined\r\n return new Intl.DateTimeFormat(locale).format(date)\r\n}\r\n\r\nconst DateText = ({ createdAt, updatedAt }: DateTextProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const createdLabel = messages[locale]['date_text.created'] || 'Published on'\r\n const updatedLabel =\r\n messages[locale]['date_text.updated'] || 'Last updated on'\r\n const created = formatDate(createdAt, locale)\r\n const updated = formatDate(updatedAt, locale)\r\n\r\n if (!created && !updated) return null\r\n\r\n return (\r\n \r\n {created && (\r\n \r\n \r\n {createdLabel}\r\n \r\n {created}\r\n \r\n )}\r\n {created && updated && }\r\n {updated && (\r\n \r\n \r\n {updatedLabel}\r\n \r\n {updated}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default DateText\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst dateContainer: SxStyleProp = {\r\n alignItems: 'center',\r\n color: '#5E6E84',\r\n fontSize: '13px',\r\n lineHeight: '20px',\r\n fontWeight: '400',\r\n columnGap: '6px',\r\n rowGap: '2px',\r\n flexWrap: 'wrap',\r\n width: '100%',\r\n}\r\n\r\nconst dateItem: SxStyleProp = {\r\n color: 'inherit',\r\n fontSize: 'inherit',\r\n lineHeight: 'inherit',\r\n}\r\n\r\nconst dateLabel: SxStyleProp = {\r\n fontWeight: '500',\r\n paddingRight: '4px',\r\n}\r\n\r\nconst dateSeparator: SxStyleProp = {\r\n color: '#8A94A3',\r\n flexShrink: 0,\r\n}\r\n\r\nexport default { dateContainer, dateItem, dateLabel, dateSeparator }\r\n","import { useContext, type ReactNode } from 'react'\r\nimport Link from 'next/link.js'\r\nimport { Flex, Text, Box } from '@vtex/brand-ui'\r\n\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { formatArticleDateValue } from 'utils/format-article-date'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type ArticlePaginationDoc = {\r\n slug: string | null\r\n name: string | null\r\n createdAt?: string | null\r\n children?: ReactNode\r\n}\r\n\r\nexport type ArticlePaginationData = {\r\n previousDoc: ArticlePaginationDoc\r\n nextDoc: ArticlePaginationDoc\r\n}\r\n\r\nexport type ArticlePaginationProps = {\r\n pagination: ArticlePaginationData\r\n hidePaginationPrevious?: boolean\r\n hidePaginationNext?: boolean\r\n previousChildren?: ReactNode\r\n nextChildren?: ReactNode\r\n}\r\n\r\nconst ArticlePagination = ({\r\n pagination,\r\n hidePaginationNext = false,\r\n hidePaginationPrevious = false,\r\n previousChildren,\r\n nextChildren,\r\n}: ArticlePaginationProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const previousLabel =\r\n messages[locale]['article_pagination.previous'] || 'Previous'\r\n const nextLabel = messages[locale]['article_pagination.next'] || 'Next'\r\n\r\n const showPrevious =\r\n !hidePaginationPrevious &&\r\n Boolean(pagination?.previousDoc?.slug) &&\r\n Boolean(pagination?.previousDoc?.name)\r\n const showNext =\r\n !hidePaginationNext &&\r\n Boolean(pagination?.nextDoc?.slug) &&\r\n Boolean(pagination?.nextDoc?.name)\r\n\r\n const previousExtra =\r\n previousChildren ??\r\n pagination?.previousDoc?.children ??\r\n formatArticleDateValue(\r\n pagination?.previousDoc?.createdAt,\r\n locale,\r\n 'medium'\r\n )\r\n const nextExtra =\r\n nextChildren ??\r\n pagination?.nextDoc?.children ??\r\n formatArticleDateValue(pagination?.nextDoc?.createdAt, locale, 'medium')\r\n\r\n return (\r\n \r\n \r\n {showPrevious && (\r\n \r\n \r\n \r\n {`« ${previousLabel}`}\r\n \r\n {pagination.previousDoc.name}\r\n \r\n {previousExtra != null && previousExtra !== false && (\r\n {previousExtra}\r\n )}\r\n \r\n \r\n \r\n )}\r\n\r\n {showNext && (\r\n \r\n \r\n \r\n {`${nextLabel} »`}\r\n \r\n {pagination.nextDoc.name}\r\n \r\n {nextExtra != null && nextExtra !== false && (\r\n {nextExtra}\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ArticlePagination\r\n","export const DATE_LOCALES: Record<'en' | 'pt' | 'es', string> = {\r\n en: 'en-US',\r\n pt: 'pt-BR',\r\n es: 'es-MX',\r\n}\r\n\r\nexport type ArticleDateStyle = 'long' | 'medium' | 'short'\r\n\r\nexport function parseArticleDate(value: unknown) {\r\n if (value == null || value === '') return undefined\r\n const date = new Date(String(value))\r\n return Number.isNaN(date.getTime()) ? undefined : date\r\n}\r\n\r\nexport function formatArticleDate(\r\n date: Date,\r\n locale: 'en' | 'pt' | 'es',\r\n style: ArticleDateStyle\r\n) {\r\n return new Intl.DateTimeFormat(DATE_LOCALES[locale], {\r\n ...(style === 'long'\r\n ? { month: 'long' as const, day: 'numeric' as const }\r\n : style === 'medium'\r\n ? { month: 'short' as const, day: 'numeric' as const }\r\n : { month: '2-digit' as const, day: '2-digit' as const }),\r\n year: 'numeric',\r\n timeZone: 'UTC',\r\n }).format(date)\r\n}\r\n\r\nexport function formatArticleDateValue(\r\n value: unknown,\r\n locale: 'en' | 'pt' | 'es',\r\n style: ArticleDateStyle\r\n) {\r\n const date = parseArticleDate(value)\r\n return date ? formatArticleDate(date, locale, style) : undefined\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\nimport { CSSProperties } from 'react'\r\n\r\nconst mainContainer: SxStyleProp = {\r\n width: '100%',\r\n mt: ['20px', '32px'],\r\n mb: ['24px', '52px'],\r\n maxWidth: '100%',\r\n minWidth: 0,\r\n borderTop: '1px solid #E7E9EE',\r\n pt: ['20px', '32px'],\r\n}\r\n\r\nconst flexContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n alignItems: 'stretch',\r\n gap: ['16px', '16px'],\r\n width: '100%',\r\n minWidth: 0,\r\n}\r\n\r\nconst paginationBox: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n padding: ['0', '16px'],\r\n borderRadius: ['0', '4px'],\r\n border: ['none', '1px solid #E7E9EE'],\r\n color: '#4A596B',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'center',\r\n gap: '4px',\r\n boxSizing: 'border-box',\r\n ':hover': {\r\n border: ['none', '1px solid #CCCED8'],\r\n boxShadow: ['none', '0px 0px 16px rgba(0, 0, 0, 0.1)'],\r\n color: '#000711',\r\n },\r\n}\r\n\r\nconst paginationBoxNext: SxStyleProp = {\r\n ...paginationBox,\r\n alignItems: 'flex-end',\r\n textAlign: 'right',\r\n}\r\n\r\nconst paginationText: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n display: '-webkit-box',\r\n '-webkit-line-clamp': '2',\r\n '-webkit-box-orient': 'vertical',\r\n overflowWrap: 'anywhere',\r\n whiteSpace: 'normal',\r\n fontSize: ['15px', '16px'],\r\n lineHeight: ['20px', '22px'],\r\n color: '#4A596B',\r\n}\r\n\r\nconst paginationChildren: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n color: '#5E6E84',\r\n fontSize: ['12px', '13px'],\r\n lineHeight: ['16px', '18px'],\r\n fontWeight: '400',\r\n}\r\n\r\nconst subTitle: SxStyleProp = {\r\n color: '#A1A8B3',\r\n fontSize: ['12px', '0.85em'],\r\n lineHeight: '16px',\r\n fontWeight: '500',\r\n flexShrink: 0,\r\n}\r\n\r\nconst linkReset: CSSProperties = {\r\n width: '100%',\r\n minWidth: 0,\r\n display: 'block',\r\n textDecoration: 'none',\r\n color: 'inherit',\r\n}\r\n\r\nconst paginationLinkPrevious: SxStyleProp = {\r\n width: ['auto', '230px'],\r\n maxWidth: ['none', '230px'],\r\n minWidth: 0,\r\n flex: ['1 1 0', '0 0 auto'],\r\n}\r\n\r\nconst paginationLinkNext: SxStyleProp = {\r\n width: ['auto', '230px'],\r\n maxWidth: ['none', '230px'],\r\n minWidth: 0,\r\n ml: 'auto',\r\n flex: ['1 1 0', '0 0 auto'],\r\n}\r\n\r\nexport default {\r\n mainContainer,\r\n flexContainer,\r\n linkReset,\r\n paginationLinkNext,\r\n paginationLinkPrevious,\r\n paginationBox,\r\n paginationBoxNext,\r\n paginationText,\r\n paginationChildren,\r\n subTitle,\r\n}\r\n","import { useContext, type ReactNode } from 'react'\r\nimport Head from 'next/head.js'\r\nimport { Box, Flex, Text } from '@vtex/brand-ui'\r\nimport type { MDXRemoteSerializeResult } from 'next-mdx-remote'\r\n\r\nimport AskAIMenu from 'components/ask-ai'\r\nimport ArticlePagination from 'components/article-pagination'\r\nimport type { ArticlePaginationData } from 'components/article-pagination'\r\nimport SeeAlsoSection from 'components/see-also-section'\r\nimport type { SeeAlsoDoc } from 'components/see-also-section'\r\nimport Author from 'components/author'\r\nimport Breadcrumb from 'components/breadcrumb'\r\nimport type { BreadcrumbItem } from 'components/breadcrumb'\r\nimport CopyHeadingLink from 'components/copy-heading-link'\r\nimport FeedbackModal from 'components/feedback-modal'\r\nimport FeedbackSection from 'components/feedback-section'\r\nimport SuggestEdits from 'components/suggest-edits'\r\nimport TimeToRead from 'components/time-to-read'\r\nimport MarkdownRenderer from 'lib/markdown-renderer'\r\nimport type { MarkdownRendererProps } from 'lib/markdown-renderer/MarkdownRenderer.types'\r\nimport Contributors from 'lib/contributors'\r\nimport type { ContributorsType } from 'lib/contributors'\r\nimport OnThisPage from 'lib/on-this-page'\r\nimport TableOfContents from 'lib/table-of-contents'\r\nimport type { Item } from 'lib/table-of-contents'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport {\r\n formatArticleDate,\r\n parseArticleDate,\r\n} from 'utils/format-article-date'\r\nimport { messages } from 'utils/get-message'\r\nimport styles from './styles'\r\n\r\nexport type ArticleRenderProps = {\r\n serialized: MDXRemoteSerializeResult\r\n breadcrumbList: BreadcrumbItem[]\r\n slug: string\r\n path: string\r\n type: string\r\n pageUrl: string\r\n urlToEdit: string\r\n rawContentBaseUrl: string\r\n contributors?: ContributorsType[]\r\n headings?: Item[]\r\n headingList?: Item[]\r\n pagination?: ArticlePaginationData\r\n paginationPreviousChildren?: ReactNode\r\n paginationNextChildren?: ReactNode\r\n children?: ReactNode\r\n seeAlso?: SeeAlsoDoc[] | ReactNode\r\n customComponents?: MarkdownRendererProps['customComponents']\r\n scope?: MarkdownRendererProps['scope']\r\n /** Wrap the markdown output without remounting it on parent re-renders. */\r\n renderMarkdown?: (markdown: ReactNode) => ReactNode\r\n showReadingTime?: boolean\r\n showAskAIMenu?: boolean\r\n showAuthor?: boolean\r\n showContributors?: boolean\r\n showFeedbackSection?: boolean\r\n showSuggestEdits?: boolean\r\n showArticlePagination?: boolean\r\n showSeeAlso?: boolean\r\n showTableOfContents?: boolean\r\n showCreatedAt?: boolean\r\n createdAtFormat?: 'long' | 'published'\r\n showUpdatedAt?: boolean\r\n}\r\n\r\nconst readingTimeLabel = (readingTime: unknown) => {\r\n if (readingTime == null || readingTime === '') return undefined\r\n if (\r\n typeof readingTime === 'object' &&\r\n readingTime !== null &&\r\n 'text' in readingTime\r\n ) {\r\n const text = (readingTime as { text?: unknown }).text\r\n return text != null ? String(text) : undefined\r\n }\r\n return String(readingTime)\r\n}\r\n\r\nconst isSameUtcDay = (a: Date, b: Date) =>\r\n a.getUTCFullYear() === b.getUTCFullYear() &&\r\n a.getUTCMonth() === b.getUTCMonth() &&\r\n a.getUTCDate() === b.getUTCDate()\r\n\r\nconst ArticleRender = ({\r\n serialized,\r\n headings = [],\r\n headingList,\r\n breadcrumbList,\r\n contributors = [],\r\n path,\r\n pagination,\r\n paginationPreviousChildren,\r\n paginationNextChildren,\r\n slug,\r\n type,\r\n pageUrl,\r\n urlToEdit,\r\n rawContentBaseUrl,\r\n children,\r\n seeAlso,\r\n customComponents,\r\n scope = {},\r\n renderMarkdown,\r\n showReadingTime = true,\r\n showAskAIMenu = true,\r\n showAuthor = false,\r\n showContributors = true,\r\n showFeedbackSection = true,\r\n showSuggestEdits = true,\r\n showArticlePagination = true,\r\n showSeeAlso = true,\r\n showTableOfContents = true,\r\n showCreatedAt = false,\r\n createdAtFormat = 'long',\r\n showUpdatedAt = false,\r\n}: ArticleRenderProps) => {\r\n const { locale } = useContext(LibraryContext)\r\n const localeMessages = messages[locale] ?? messages.en\r\n const tocHeadings = headingList?.length ? headingList : headings\r\n const readingTime = readingTimeLabel(serialized?.frontmatter?.readingTime)\r\n const createdAt = parseArticleDate(serialized?.frontmatter?.createdAt)\r\n const updatedAt = parseArticleDate(serialized?.frontmatter?.updatedAt)\r\n const createdAtDate = createdAt\r\n ? formatArticleDate(\r\n createdAt,\r\n locale,\r\n createdAtFormat === 'published' ? 'short' : 'long'\r\n )\r\n : undefined\r\n const publishedLabel =\r\n localeMessages['date_text.created'] || 'Published on'\r\n const createdAtLabel = createdAtDate\r\n ? createdAtFormat === 'published'\r\n ? `${publishedLabel}: ${createdAtDate}`\r\n : createdAtDate\r\n : undefined\r\n const hasDistinctUpdatedAt = Boolean(\r\n updatedAt && (!createdAt || !isSameUtcDay(createdAt, updatedAt))\r\n )\r\n const updatedAtLabel =\r\n hasDistinctUpdatedAt && updatedAt\r\n ? formatArticleDate(updatedAt, locale, 'short')\r\n : undefined\r\n const lastUpdateLabel =\r\n localeMessages['date_text.last_update'] || 'Last update:'\r\n const showBottomSection = showContributors || showFeedbackSection\r\n const showSidebar = showContributors || showTableOfContents\r\n const markdown = (\r\n \r\n )\r\n\r\n return (\r\n <>\r\n \r\n <>\r\n \r\n {serialized?.frontmatter?.title && (\r\n {serialized?.frontmatter?.title as string}\r\n )}\r\n {serialized?.frontmatter?.title && (\r\n \r\n )}\r\n {serialized.frontmatter?.hidden && (\r\n \r\n )}\r\n {serialized.frontmatter?.excerpt && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n <>\r\n \r\n \r\n {serialized.frontmatter?.title as ReactNode}\r\n \r\n \r\n {children && (\r\n {children}\r\n )}\r\n {showAuthor && contributors[0]?.avatar && (\r\n \r\n )}\r\n {serialized.frontmatter?.excerpt && (\r\n \r\n {serialized.frontmatter?.excerpt}\r\n \r\n )}\r\n \r\n
\r\n\r\n \r\n {((showCreatedAt && createdAtLabel) ||\r\n (showReadingTime && readingTime)) && (\r\n \r\n {showCreatedAt && createdAtLabel && (\r\n {createdAtLabel}\r\n )}\r\n {showReadingTime && readingTime && (\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n {showAskAIMenu && (\r\n \r\n )}\r\n \r\n \r\n {renderMarkdown ? renderMarkdown(markdown) : markdown}\r\n
\r\n {showSeeAlso &&\r\n (Array.isArray(seeAlso)\r\n ? seeAlso.length > 0 && \r\n : seeAlso)}\r\n {showUpdatedAt && updatedAtLabel && (\r\n \r\n {lastUpdateLabel} {updatedAtLabel}\r\n \r\n )}\r\n
\r\n
\r\n\r\n {showBottomSection && (\r\n \r\n {showContributors && (\r\n \r\n \r\n \r\n )}\r\n {showFeedbackSection && (\r\n \r\n )}\r\n \r\n )}\r\n\r\n {showArticlePagination && pagination && (\r\n \r\n )}\r\n
\r\n {showSidebar && (\r\n \r\n {showContributors && }\r\n {showTableOfContents && (\r\n \r\n {(showFeedbackSection || showSuggestEdits) && (\r\n \r\n {showFeedbackSection && (\r\n \r\n )}\r\n {showSuggestEdits && (\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n {showTableOfContents && tocHeadings.length > 0 && (\r\n \r\n )}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ArticleRender\r\n","import { useContext } from 'react'\r\nimport { Box, Text } from '@vtex/brand-ui'\r\n\r\nimport DocumentationCard from 'components/documentation-card'\r\nimport { LibraryContext } from 'utils/context/libraryContext'\r\nimport { messages } from 'utils/get-message'\r\nimport { createDocFromUrl } from './functions'\r\nimport type { SeeAlsoDoc } from './functions'\r\n\r\nimport styles from './styles'\r\n\r\nexport type { SeeAlsoDoc }\r\n\r\nexport type SeeAlsoSectionProps = {\r\n docs: SeeAlsoDoc[]\r\n}\r\n\r\nconst isExternalLink = (url: string) => /^https?:\\/\\//.test(url)\r\n\r\nconst SeeAlsoSection = ({ docs }: SeeAlsoSectionProps) => {\r\n const { locale, sidebarSections, sidebarDataMaster } =\r\n useContext(LibraryContext)\r\n const title = messages[locale]['see_also_section.title'] || 'See also'\r\n const cards =\r\n docs?.map((doc) =>\r\n createDocFromUrl(doc, sidebarSections, {\r\n locale,\r\n navigation: sidebarDataMaster,\r\n })\r\n ) ?? []\r\n\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n {cards.map((card) => (\r\n \r\n ))}\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default SeeAlsoSection\r\n","import { capitalizeFirstLetter, slugify } from 'utils/string-utils'\r\nimport { getSectionLabel } from 'utils/sidebar-utils'\r\nimport PaperIcon from 'components/icons/paper-icon'\r\nimport type { DocumentProps } from 'components/documentation-card'\r\nimport type { Section } from 'utils/typings/types'\r\n\r\nexport type SeeAlsoDoc = {\r\n url: string\r\n title?: string\r\n category?: string\r\n}\r\n\r\ntype CreateDocOptions = {\r\n locale?: 'en' | 'pt' | 'es'\r\n navigation?: unknown\r\n}\r\n\r\nconst ACRONYMS: Record = {\r\n api: 'API',\r\n cms: 'CMS',\r\n faq: 'FAQ',\r\n io: 'IO',\r\n sku: 'SKU',\r\n vtex: 'VTEX',\r\n}\r\n\r\n/** Alternate category names mapped onto current section ids. */\r\nconst CATEGORY_ALIASES: Record = {\r\n 'api-guide': 'guides',\r\n 'api-guides': 'guides',\r\n}\r\n\r\nconst KEBAB_SLUG = /^[a-z0-9]+(?:-[a-z0-9]+)+$/\r\n\r\nconst normalizeKey = (value: string) => slugify(value.replace(/[_/]+/g, '-'))\r\n\r\nconst isKebabSlug = (value: string) => KEBAB_SLUG.test(value)\r\n\r\nconst humanizeSlug = (slug: string) =>\r\n slug\r\n .split('-')\r\n .filter(Boolean)\r\n .map((word) => ACRONYMS[word.toLowerCase()] ?? capitalizeFirstLetter(word))\r\n .join(' ')\r\n\r\n/** Keep real titles; only humanize kebab-case slugs. */\r\nexport const displayLabel = (value: string) => {\r\n const cleaned = value.split('#')[0].split('?')[0].trim()\r\n if (!cleaned) return ''\r\n if (isKebabSlug(cleaned)) return humanizeSlug(cleaned)\r\n return cleaned\r\n}\r\n\r\nconst pathnameFromUrl = (url: string) => {\r\n if (!url) return ''\r\n try {\r\n if (/^https?:\\/\\//i.test(url)) {\r\n return new URL(url).pathname\r\n }\r\n } catch {\r\n return url.split('#')[0].split('?')[0]\r\n }\r\n return url.split('#')[0].split('?')[0]\r\n}\r\n\r\nconst lastPathSegment = (url: string) => {\r\n const path = pathnameFromUrl(url).replace(/\\/+$/, '')\r\n const segment = path.split('/').filter(Boolean).pop() ?? ''\r\n try {\r\n return decodeURIComponent(segment)\r\n } catch {\r\n return segment\r\n }\r\n}\r\n\r\nconst parentPath = (url: string) =>\r\n pathnameFromUrl(url).replace(/\\/+$/, '').replace(/\\/[^/]+$/, '')\r\n\r\nexport const findSection = (\r\n sections: Section[][],\r\n { category, url }: Pick\r\n): Section | undefined => {\r\n const all = sections.flat()\r\n if (!all.length) return undefined\r\n\r\n const categoryKey = category ? normalizeKey(category) : ''\r\n const aliased = categoryKey\r\n ? CATEGORY_ALIASES[categoryKey] ?? categoryKey\r\n : ''\r\n\r\n if (aliased) {\r\n const byCategory = all.find((section) => {\r\n const id = normalizeKey(section.id)\r\n const title = normalizeKey(section.title)\r\n return (\r\n id === aliased ||\r\n title === aliased ||\r\n id === categoryKey ||\r\n title === categoryKey\r\n )\r\n })\r\n if (byCategory) return byCategory\r\n }\r\n\r\n const path = pathnameFromUrl(url).replace(/\\/+$/, '')\r\n const isBareExternalOrigin =\r\n /^https?:\\/\\//i.test(url) && (!path || path === '/')\r\n if (!path || isBareExternalOrigin) return undefined\r\n\r\n let best: Section | undefined\r\n let bestLength = -1\r\n for (const section of all) {\r\n if (!section.link || section.isExternalLink) continue\r\n const link = section.link.replace(/\\/+$/, '')\r\n if (!link || link === '/') continue\r\n if (path === link || path.startsWith(`${link}/`)) {\r\n if (link.length > bestLength) {\r\n best = section\r\n bestLength = link.length\r\n }\r\n }\r\n }\r\n return best\r\n}\r\n\r\nexport const createDocFromUrl = (\r\n doc: SeeAlsoDoc,\r\n sections: Section[][] = [],\r\n options: CreateDocOptions = {}\r\n): DocumentProps => {\r\n const section = findSection(sections, {\r\n category: doc.category,\r\n url: doc.url,\r\n })\r\n\r\n const title = displayLabel(doc.title || lastPathSegment(doc.url))\r\n const description = section\r\n ? getSectionLabel(section, options.navigation, options.locale ?? 'en')\r\n : displayLabel(doc.category || lastPathSegment(parentPath(doc.url)))\r\n\r\n return {\r\n title,\r\n description,\r\n link: doc.url,\r\n Icon: section?.Icon ?? PaperIcon,\r\n }\r\n}\r\n","import { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst seeAlsoContainer: SxStyleProp = {\r\n width: '100%',\r\n maxWidth: '100%',\r\n minWidth: 0,\r\n mt: ['8px', '16px'],\r\n pt: ['20px', '24px'],\r\n borderTop: '1px solid #E7E9EE',\r\n a: {\r\n color: 'inherit',\r\n fontWeight: 'inherit',\r\n },\r\n h2: {\r\n mt: '0 !important',\r\n mb: ['12px', '16px'],\r\n fontSize: ['16px', '18px'],\r\n lineHeight: ['24px', '26px'],\r\n fontWeight: '600',\r\n color: '#142032',\r\n },\r\n}\r\n\r\nconst sectionTitle: SxStyleProp = {\r\n display: 'block',\r\n fontSize: ['16px', '18px'],\r\n lineHeight: ['24px', '26px'],\r\n marginBottom: ['12px', '16px'],\r\n fontWeight: '600',\r\n color: '#142032',\r\n}\r\n\r\nconst cards: SxStyleProp = {\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 260px), 1fr))',\r\n gap: '12px',\r\n width: '100%',\r\n minWidth: 0,\r\n}\r\n\r\nexport default {\r\n seeAlsoContainer,\r\n sectionTitle,\r\n cards,\r\n}\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst MUTED = '#5E6E84'\r\n\r\nconst innerContainer: SxStyleProp = {\r\n justifyContent: 'center',\r\n width: '100%',\r\n minWidth: 0,\r\n boxSizing: 'border-box',\r\n pt: ['24px', '32px', '3em'],\r\n mx: 'auto',\r\n px: ['18px', '24px', '32px', '40px', '48px', '64px', '20em'],\r\n pb: ['48px', '64px', '72px'],\r\n}\r\n\r\nconst articleBox: SxStyleProp = {\r\n fontSize: '1em',\r\n lineHeight: '1.75em',\r\n flex: '1 1 auto',\r\n width: '100%',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n color: 'rgb(51, 65, 85)',\r\n overflowWrap: 'anywhere',\r\n img: {\r\n maxWidth: '100%',\r\n height: 'auto',\r\n },\r\n pre: {\r\n maxWidth: '100%',\r\n overflowX: 'auto',\r\n },\r\n iframe: {\r\n maxWidth: '100%',\r\n },\r\n a: {\r\n color: '#E31C58',\r\n textDecoration: 'none',\r\n fontWeight: '500',\r\n },\r\n ul: {\r\n pl: '1.5em',\r\n mt: '1.25em',\r\n mb: '1.25em',\r\n li: {\r\n mt: '0.5em',\r\n mb: '0.5em',\r\n },\r\n listStyleType: 'disc',\r\n 'ul, ol': {\r\n mt: '0.5em',\r\n mb: '0.5em',\r\n },\r\n },\r\n ol: {\r\n pl: '1.5em',\r\n mt: '1.25em',\r\n mb: '1.25em',\r\n li: {\r\n mt: '0.5em',\r\n mb: '0.5em',\r\n },\r\n 'ul, ol': {\r\n mt: '0.5em',\r\n mb: '0.5em',\r\n },\r\n },\r\n header: {\r\n marginTop: ['8px', '16px'],\r\n borderBottom: '1px solid #E7E9EE',\r\n marginBottom: ['8px', '12px'],\r\n pb: ['12px', '16px'],\r\n },\r\n h2: {\r\n fontSize: '1.375em',\r\n lineHeight: '1.3em',\r\n fontWeight: '700',\r\n mt: ['1.5em', '2em'],\r\n mb: ['0.75em', '1em'],\r\n overflowWrap: 'anywhere',\r\n color: 'rgb(15, 23, 42)',\r\n },\r\n h3: {\r\n fontSize: '1.125em',\r\n fontWeight: '600',\r\n lineHeight: '1.6em',\r\n mt: '1.6em',\r\n mb: '0.6em',\r\n overflowWrap: 'anywhere',\r\n },\r\n h4: {\r\n fontSize: '1em',\r\n fontWeight: '600',\r\n lineHeight: '1.5em',\r\n mt: '1.5em',\r\n mb: '0.5em',\r\n color: 'rgb(15, 23, 42)',\r\n overflowWrap: 'anywhere',\r\n },\r\n h5: {\r\n fontSize: '0.9375em',\r\n fontWeight: '600',\r\n lineHeight: '1.5em',\r\n mt: '1.25em',\r\n mb: '0.5em',\r\n color: 'rgb(71, 85, 105)',\r\n overflowWrap: 'anywhere',\r\n },\r\n h6: {\r\n fontSize: '0.9375em',\r\n fontWeight: '600',\r\n lineHeight: '1.5em',\r\n mt: '1.25em',\r\n mb: '0.5em',\r\n color: 'rgb(100, 116, 139)',\r\n overflowWrap: 'anywhere',\r\n },\r\n strong: {\r\n fontWeight: '600',\r\n overflowWrap: 'break-word',\r\n },\r\n hr: {\r\n border: '0.5px solid #E7E9EE',\r\n my: ['2em', '3em'],\r\n },\r\n}\r\n\r\nconst contentContainer: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n}\r\n\r\nconst documentationTitle: SxStyleProp = {\r\n display: 'block',\r\n marginTop: ['16px', '16px', '24px'],\r\n marginBottom: 0,\r\n fontSize: ['28px', '28px', '30px'],\r\n lineHeight: ['36px', '36px', '38px'],\r\n fontWeight: '400',\r\n color: '#142032',\r\n overflowWrap: 'anywhere',\r\n}\r\n\r\nconst documentationExcerpt: SxStyleProp = {\r\n display: 'block',\r\n color: '#4A596B',\r\n fontSize: '16px',\r\n lineHeight: '24px',\r\n fontWeight: '400',\r\n mt: '12px',\r\n mb: 0,\r\n overflowWrap: 'anywhere',\r\n}\r\n\r\nconst breadcrumbRow: SxStyleProp = {\r\n justifyContent: 'space-between',\r\n alignItems: 'flex-start',\r\n flexWrap: 'wrap',\r\n gap: '8px',\r\n width: '100%',\r\n minWidth: 0,\r\n}\r\n\r\nconst articleHeaderExtra: SxStyleProp = {\r\n mt: ['8px', '10px'],\r\n width: '100%',\r\n minWidth: 0,\r\n}\r\n\r\nconst articleMeta: SxStyleProp = {\r\n flexDirection: 'column-reverse',\r\n justifyContent: 'flex-start',\r\n alignItems: 'stretch',\r\n gap: '10px',\r\n marginBottom: ['16px', '20px'],\r\n marginTop: '0',\r\n width: '100%',\r\n minWidth: 0,\r\n '@media screen and (min-width: 40em)': {\r\n flexDirection: 'row',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n flexWrap: 'wrap',\r\n gap: '8px 16px',\r\n },\r\n}\r\n\r\nconst articleMetaInfo: SxStyleProp = {\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n justifyContent: 'flex-start',\r\n gap: '2px',\r\n minWidth: 0,\r\n width: '100%',\r\n flex: '0 0 auto',\r\n '@media screen and (min-width: 40em)': {\r\n width: 'auto',\r\n flex: '1 1 auto',\r\n },\r\n}\r\n\r\nconst articleCreatedAt: SxStyleProp = {\r\n color: MUTED,\r\n fontSize: '13px',\r\n lineHeight: ['18px', '20px'],\r\n fontWeight: '400',\r\n}\r\n\r\nconst articleReadingTime: SxStyleProp = {\r\n color: MUTED,\r\n fontSize: '13px',\r\n lineHeight: ['18px', '20px'],\r\n '& > *': {\r\n color: 'inherit !important',\r\n fontSize: 'inherit !important',\r\n lineHeight: 'inherit !important',\r\n },\r\n}\r\n\r\nconst articleLastUpdate: SxStyleProp = {\r\n display: 'block',\r\n color: MUTED,\r\n fontSize: '13px',\r\n lineHeight: ['18px', '20px'],\r\n fontWeight: '400',\r\n mt: ['16px', '24px'],\r\n}\r\n\r\nconst articleActions: SxStyleProp = {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-start',\r\n gap: '8px',\r\n flexShrink: 0,\r\n ml: 0,\r\n width: '100%',\r\n minWidth: 0,\r\n '& > div': {\r\n width: 'max-content',\r\n flexShrink: 0,\r\n },\r\n '& [role=\"menu\"]': {\r\n right: 0,\r\n },\r\n '@media screen and (min-width: 40em)': {\r\n justifyContent: 'flex-end',\r\n ml: 'auto',\r\n width: 'auto',\r\n },\r\n}\r\n\r\nconst bottomContributorsContainer: SxStyleProp = {\r\n display: ['flex', 'flex', 'flex', 'flex', 'none'],\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n width: '100%',\r\n minWidth: 0,\r\n pt: ['20px', '24px'],\r\n gap: ['24px', '24px'],\r\n '[data-cy=\"feedback-section\"]': {\r\n marginTop: '0',\r\n marginBottom: '0',\r\n gap: '12px',\r\n '& > div:first-of-type': {\r\n borderBottom: 'none',\r\n paddingBottom: 0,\r\n marginBottom: 0,\r\n marginTop: 0,\r\n },\r\n },\r\n}\r\n\r\nconst bottomContributors: SxStyleProp = {\r\n width: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n '& > div': {\r\n alignItems: 'center !important',\r\n width: 'auto !important',\r\n mb: '0 !important',\r\n },\r\n '[data-cy=\"contributors-container\"]': {\r\n display: 'flex !important',\r\n flexWrap: 'wrap',\r\n justifyContent: 'center',\r\n width: 'auto !important',\r\n maxWidth: '232px',\r\n },\r\n}\r\n\r\nconst rightContainer: SxStyleProp = {\r\n ml: [0, 0, 0, 0, '48px', '68px', '200px'],\r\n display: [\r\n 'none !important',\r\n 'none !important',\r\n 'none !important',\r\n 'none !important',\r\n 'initial !important',\r\n ],\r\n flexShrink: 0,\r\n width: [0, 0, 0, 0, '240px', '240px', '284px'],\r\n}\r\n\r\nconst divider: SxStyleProp = {\r\n borderTop: '1px solid #E7E9EE',\r\n pt: 4,\r\n mt: 4,\r\n}\r\n\r\nconst textContainer: SxStyleProp = {\r\n width: '100%',\r\n minWidth: 0,\r\n maxWidth: '100%',\r\n gap: '8px',\r\n pb: ['16px', '24px', '32px'],\r\n mb: ['8px', '24px', '48px'],\r\n}\r\n\r\nconst editContainer: SxStyleProp = {\r\n my: 3,\r\n gap: 2,\r\n}\r\n\r\nexport default {\r\n innerContainer,\r\n articleBox,\r\n contentContainer,\r\n documentationTitle,\r\n documentationExcerpt,\r\n breadcrumbRow,\r\n articleHeaderExtra,\r\n articleMeta,\r\n articleMetaInfo,\r\n articleCreatedAt,\r\n articleReadingTime,\r\n articleActions,\r\n articleLastUpdate,\r\n bottomContributorsContainer,\r\n bottomContributors,\r\n rightContainer,\r\n divider,\r\n textContainer,\r\n editContainer,\r\n}\r\n","import { Box, Link, Text } from '@vtex/brand-ui'\r\nimport Tag from 'components/tag'\r\n\r\nimport type { TroubleshootingItem } from '../../utils/troubleshooting/types'\r\nimport styles from './styles'\r\n\r\nexport type TroubleshootingCardVariant = 'devportal' | 'helpcenter'\r\n\r\nexport type TroubleshootingCardProps = TroubleshootingItem & {\r\n href?: string\r\n basePath?: string\r\n variant?: TroubleshootingCardVariant\r\n}\r\n\r\nfunction buildHref({\r\n slug,\r\n href,\r\n basePath = '/docs/troubleshooting',\r\n}: Pick) {\r\n if (href) return href\r\n\r\n const normalizedBasePath = basePath.replace(/\\/$/, '')\r\n return `${normalizedBasePath}/${slug}`\r\n}\r\n\r\nconst TroubleshootingCard = ({\r\n title,\r\n description,\r\n slug,\r\n tags,\r\n domainFilters,\r\n symptomFilters,\r\n href,\r\n basePath,\r\n variant = 'devportal',\r\n}: TroubleshootingCardProps) => {\r\n const cardHref = buildHref({ slug, href, basePath })\r\n const resolvedSymptomFilters = symptomFilters?.filter(Boolean) ?? []\r\n const resolvedDomainFilters = domainFilters?.filter(Boolean) ?? []\r\n const fallbackTags = tags?.filter(Boolean) ?? []\r\n const hasStructuredTags =\r\n resolvedSymptomFilters.length > 0 || resolvedDomainFilters.length > 0\r\n\r\n if (variant === 'helpcenter') {\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n {hasStructuredTags ? (\r\n \r\n {resolvedSymptomFilters.length > 0 && (\r\n \r\n \r\n {resolvedSymptomFilters.map((filter) => (\r\n \r\n {filter}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n {resolvedDomainFilters.length > 0 && (\r\n \r\n \r\n {resolvedDomainFilters.map((filter) => (\r\n \r\n {filter}\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n ) : null}\r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n {description ? (\r\n \r\n {description}\r\n \r\n ) : null}\r\n \r\n {resolvedSymptomFilters.length > 0 && (\r\n \r\n {resolvedSymptomFilters.map((filter) => (\r\n \r\n {filter}\r\n \r\n ))}\r\n \r\n )}\r\n {resolvedDomainFilters.length > 0 && (\r\n \r\n {resolvedDomainFilters.map((filter) => (\r\n \r\n {filter}\r\n \r\n ))}\r\n \r\n )}\r\n {!hasStructuredTags &&\r\n fallbackTags.map((moduleTag) => (\r\n \r\n {moduleTag}\r\n \r\n ))}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default TroubleshootingCard\r\n","import type { SxStyleProp } from '@vtex/brand-ui'\r\n\r\nconst devportalContainer: SxStyleProp = {\r\n mt: '16px',\r\n padding: '25px',\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n width: '100%',\r\n transition: 'all 0.3s ease-out',\r\n ':hover': {\r\n cursor: 'pointer',\r\n },\r\n ':active, :hover': {\r\n borderColor: 'muted.2',\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n transition: 'all 0.3 ease-out',\r\n\r\n '.title, .description': {\r\n transition: 'all 0.3s ease-out',\r\n color: '#000711',\r\n },\r\n },\r\n}\r\n\r\nconst helpcenterContainer: SxStyleProp = {\r\n px: ['20px', '32px', '36px', '48px'],\r\n py: ['20px', '24px'],\r\n display: 'flex',\r\n flexDirection: 'column',\r\n gap: ['12px', '16px'],\r\n borderRadius: '4px',\r\n border: '1px solid #E7E9EE',\r\n width: '100%',\r\n maxWidth: '100%',\r\n minWidth: 0,\r\n boxSizing: 'border-box',\r\n transition: 'all 0.3s ease-out',\r\n ':hover': {\r\n cursor: 'pointer',\r\n },\r\n ':active, :hover': {\r\n boxShadow: '0px 0px 16px rgba(0, 0, 0, 0.1)',\r\n transition: 'all 0.3 ease-out',\r\n\r\n '.title': {\r\n transition: 'all 0.3s ease-out',\r\n color: '#000711',\r\n },\r\n },\r\n}\r\n\r\nconst title: SxStyleProp = {\r\n mb: '8px',\r\n fontSize: ['16px', '18px', '20px'],\r\n fontWeight: '400',\r\n lineHeight: ['24px', '28px', '30px'],\r\n color: 'muted.0',\r\n overflowWrap: 'anywhere',\r\n}\r\n\r\nconst description: SxStyleProp = {\r\n fontSize: '16px',\r\n lineHeight: '22px',\r\n fontWeight: '400',\r\n color: 'muted.1',\r\n overflow: 'hidden',\r\n width: '100%',\r\n height: '50%',\r\n display: ['none', 'none', 'block', 'block', 'block', 'block', 'block'],\r\n}\r\n\r\nconst tag: SxStyleProp = {\r\n width: 'max-content',\r\n maxWidth: '100%',\r\n px: '8px',\r\n margin: '4px',\r\n overflowWrap: 'anywhere',\r\n}\r\n\r\nconst tagsContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n mt: '12px',\r\n gap: '16px',\r\n}\r\n\r\nconst tagGroup: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n gap: '8px',\r\n}\r\n\r\nconst groupsContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '12px 20px',\r\n}\r\n\r\nconst groupContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n gap: '8px',\r\n flex: '0 1 auto',\r\n maxWidth: '100%',\r\n}\r\n\r\nconst helpcenterTagsContainer: SxStyleProp = {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n alignItems: 'center',\r\n}\r\n\r\nexport default {\r\n devportalContainer,\r\n helpcenterContainer,\r\n title,\r\n description,\r\n tag,\r\n tagsContainer,\r\n tagGroup,\r\n groupsContainer,\r\n groupContainer,\r\n helpcenterTagsContainer,\r\n}\r\n","import type { TroubleshootingFilterState, TroubleshootingItem } from './types'\r\n\r\nexport function filterTroubleshootingItems(\r\n items: T[],\r\n { search, domainFilters, symptomFilters }: TroubleshootingFilterState\r\n): T[] {\r\n const selectedDomainFilters = new Set(\r\n domainFilters.map((filter) => filter.toLowerCase())\r\n )\r\n const selectedSymptomFilters = new Set(\r\n symptomFilters.map((filter) => filter.toLowerCase())\r\n )\r\n const hasDomainFilters = selectedDomainFilters.size > 0\r\n const hasSymptomFilters = selectedSymptomFilters.size > 0\r\n const normalizedSearch = search.toLowerCase()\r\n\r\n return items.filter((item) => {\r\n const matchesSearch =\r\n !normalizedSearch ||\r\n item.title.toLowerCase().includes(normalizedSearch)\r\n\r\n const itemDomainFiltersLower = (item.domainFilters ?? []).map((filter) =>\r\n filter.toLowerCase()\r\n )\r\n const itemSymptomFiltersLower = (item.symptomFilters ?? []).map((filter) =>\r\n filter.toLowerCase()\r\n )\r\n const matchesDomainFilters =\r\n !hasDomainFilters ||\r\n itemDomainFiltersLower.some((filter) =>\r\n selectedDomainFilters.has(filter)\r\n )\r\n const matchesSymptomFilters =\r\n !hasSymptomFilters ||\r\n itemSymptomFiltersLower.some((filter) =>\r\n selectedSymptomFilters.has(filter)\r\n )\r\n\r\n return matchesSearch && matchesDomainFilters && matchesSymptomFilters\r\n })\r\n}\r\n","import type { TroubleshootingItem } from './types'\r\n\r\nexport function collectTroubleshootingFilterOptions<\r\n T extends Pick\r\n>(items: T[]) {\r\n const domainFilters = new Set()\r\n const symptomFilters = new Set()\r\n\r\n items.forEach((item) => {\r\n item.domainFilters?.forEach((filter) => domainFilters.add(filter))\r\n item.symptomFilters?.forEach((filter) => symptomFilters.add(filter))\r\n })\r\n\r\n return {\r\n domainFilters: Array.from(domainFilters).sort(),\r\n symptomFilters: Array.from(symptomFilters).sort(),\r\n }\r\n}\r\n","export const getDaysElapsed = (date: Date) => {\r\n const msInDay = 1000 * 60 * 60 * 24\r\n const msElapsed = new Date().getTime() - date.getTime()\r\n return Math.floor(msElapsed / msInDay)\r\n}\r\n","import { Icon } from '@vtex/brand-ui'\r\nimport type { IconProps } from '@vtex/brand-ui'\r\n\r\nconst GearTroubleshootingIcon = (props: IconProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default GearTroubleshootingIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst DocumentationUpdatesIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default DocumentationUpdatesIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst HelpCenterIcon = (props: IconProps) => (\r\n \r\n {' '}\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default HelpCenterIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst DeveloperPortalIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default DeveloperPortalIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst FAQIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default FAQIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst KnownIssueIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default KnownIssueIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst MegaphoneIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default MegaphoneIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst GraphIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default GraphIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst StartHereIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default StartHereIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst TutorialsIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default TutorialsIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst AnnouncementIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n
\r\n \r\n)\r\n\r\nexport default AnnouncementIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst InfoIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default InfoIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst NewIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default NewIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst GithubIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default GithubIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst CommunityIcon = (props: IconProps) => (\r\n \r\n {' '}\r\n \r\n \r\n \r\n)\r\n\r\nexport default CommunityIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst TwitterCircleIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n \r\n)\r\n\r\nexport default TwitterCircleIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\ninterface CheckboxProps extends IconProps {\r\n checked: boolean\r\n}\r\n\r\nconst CheckboxIcon = (props: CheckboxProps) => (\r\n \r\n {!props.checked ? (\r\n <>\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n)\r\n\r\nexport default CheckboxIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ResizeIcon = (props: IconProps) => (\r\n \r\n \r\n \r\n)\r\n\r\nexport default ResizeIcon\r\n","import type { IconProps } from '@vtex/brand-ui'\r\nimport { Icon } from '@vtex/brand-ui'\r\n\r\nconst ArrowRightIcon = (props: IconProps) => (\r\n \r\n {' '}\r\n \r\n \r\n \r\n)\r\n\r\nexport default ArrowRightIcon\r\n"],"mappings":"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","names":["Fragment","text","text","i","checker","version","encode","header","AuthMode","addMethods","createAuth","encode","init_client_common_esm","createAuth","AuthMode","addMethods","init_client_common_esm","init_client_common_esm","createAuth","AuthMode","addMethods","createAuth","AuthMode","createRetryablePromise","createWaitablePromise","shuffle","addMethods","encode","init_client_common_esm","init_client_common_esm","createAuth","AuthMode","shuffle","version","addMethods","createRetryablePromise","createWaitablePromise","encode","searchIndex","body","client_common_esm_exports","AuthMode","addMethods","createAuth","createRetryablePromise","createWaitablePromise","destroy","encode","shuffle","version","init_client_common_esm","parse","version","requester_node_http_esm_exports","createNodeHttpRequester","http","Agent","https","Agent$1","parse","defaultHttpAgent","defaultHttpsAgent","agentOptions","init_requester_node_http_esm","algoliasearch","algoliasearch","Box","useContext","useEffect","useRef","useState","Box","Flex","mermaid","jsx","jsxs","name","icon","link","Icon","jsx","PropTypes","Box","styles_default","jsx","Box","styles_default","useEffect","Box","Flex","Icon","jsx","jsxs","body","styles_default","jsx","jsxs","useEffect","Flex","styles_default","Box","Box","Flex","Link","container","styles_default","jsx","jsxs","title","description","Link","styles_default","Box","Flex","useState","Box","Text","useEffect","useRef","useState","Box","Flex","styles_default","Icon","jsx","jsx","jsxs","label","box","useRef","useState","useEffect","Box","Flex","styles_default","useEffect","useState","jsx","title","item","heading","messages","container","styles_default","jsx","jsxs","useState","Box","styles_default","Text","useCallback","useContext","useEffect","useRef","useState","Box","Icon","jsx","jsxs","button","styles_default","jsx","jsxs","Box","styles_default","text","search","useContext","useState","useRef","label","useCallback","useEffect","control","styles_default","img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","Fragment","jsx","jsxs","useState","styles_default","icon","useRef","useEffect","mermaid","Box","useContext","Flex","item","jsx","Box","useContext","useEffect","Link","Box","Text","styles_default","jsx","jsxs","headings","item","useContext","useEffect","title","Link","Text","styles_default","Box","useContext","useState","Box","Flex","Text","AnimateHeight","Icon","jsx","jsxs","container","title","styles_default","jsx","jsxs","useContext","useState","title","Flex","styles_default","AnimateHeight","Box","Text","useContext","useEffect","useRef","useState","Box","Flex","IconCaret","Text","container","title","styles_default","jsx","jsxs","useContext","useState","photosContainer","useRef","useEffect","Flex","styles_default","Text","Box","IconCaret","Fragment","useEffect","useMemo","useRef","useState","useContext","Flex","Text","Box","Link","linkContainer","styles_default","iconTooltip","useRouter","useEffect","getIcon","icon","item","Flex","Box","Text","Button","memo","useContext","useMemo","useRef","useState","styles_default","Box","Flex","Text","Flex","Text","container","styles_default","categoryStyle","styles_default","Icon","jsx","jsxs","jsx","jsxs","Flex","Text","styles_default","useContext","useState","container","text","styles_default","jsx","jsxs","useState","useContext","Box","styles_default","Text","Flex","useRouter","Fragment","useContext","Box","Flex","Link","Button","IconCaret","sectionDivider","styles_default","item","styles_default","textStyle","jsx","jsxs","useContext","useRouter","slugPrefix","name","localizedName","Box","styles_default","Flex","Button","IconCaret","Link","item","Fragment","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","name","container","useRef","useContext","Flex","styles_default","documentation","useState","useMemo","getIcon","Box","Button","Text","sidebarSectionHidden","memo","jsx","jsxs","iconTooltip","useState","useRef","useEffect","Box","styles_default","Link","Flex","Text","useContext","useMemo","Fragment","title","Box","IconCaret","Button","arrowIcon","arrowIconActive","styles_default","useContext","useEffect","useRef","useState","useRouter","Link","Box","Flex","Text","cardContainer","titleContainer","title","description","styles_default","cardContainer","styles_default","titleContainer","cardTitle","jsx","jsxs","title","description","link","Icon","isExternalLink","Link","Box","cardContainer","Flex","titleContainer","styles_default","Text","Box","Flex","useContext","useEffect","useState","useRouter","useRef","useContext","useEffect","useState","useRouter","Flex","Box","searchInput","searchIcon","clearButton","styles_default","jsx","jsxs","styles_default","useRouter","useRef","useContext","useState","useEffect","input","Flex","Box","useRouter","Link","useContext","useEffect","useState","Box","Flex","IconCaret","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","count","item","sectionTitle","title","Flex","Text","Fragment","jsx","text","styles_default","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","useContext","title","Box","styles_default","Link","Flex","Text","IconCaret","useRouter","useState","useEffect","Box","Flex","useContext","useRef","useState","aa","aa","algoliasearch","params","hitsPerPage","allHits","count","jsx","jsxs","useContext","useState","resultsBox","useRef","searchBox","Flex","styles_default","Box","styles_default","Fragment","jsx","jsxs","useRouter","useContext","useState","useEffect","Box","styles_default","Flex","jsx","jsxs","useRouter","useRef","useContext","useState","useEffect","styles_default","Box","card","Button","IconCaret","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","useContext","useEffect","useState","container","button","styles_default","Box","Button","Flex","Text","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","useRef","useState","container","button","styles_default","Icon","jsx","jsx","jsxs","useState","useRef","Flex","styles_default","Button","Text","Box","useContext","Link","Text","Icon","jsx","jsxs","container","icon","styles_default","jsx","jsxs","useContext","label","Link","styles_default","Text","jsx","jsxs","shareButton","useState","useContext","useEffect","Flex","styles_default","Text","useContext","useEffect","useState","Box","Flex","Text","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","useEffect","useState","Box","Flex","Text","innerContainer","label","input","actions","styles_default","jsx","jsxs","title","description","useState","useEffect","Box","styles_default","Flex","Text","jsx","jsxs","DEFAULT_FEEDBACK_ENDPOINT","postFeedback","useContext","useState","useEffect","form","Box","styles_default","Text","Flex","Flex","Box","Box","Flex","Text","useContext","useEffect","disabled","styles_default","useRouter","createContext","useState","jsx","jsx","jsxs","useRouter","useContext","useEffect","Flex","styles_default","Text","Box","count","container","styles_default","useContext","jsx","jsxs","useContext","item","Box","styles_default","useRouter","useContext","useEffect","useState","Box","Text","Configure","InstantSearch","useContext","useEffect","useMemo","useRef","connectStateResults","Box","Flex","Text","IconCaret","Tooltip","useContext","useEffect","useState","useRouter","Link","container","title","httpMethod","icon","description","alignCenter","styles_default","Icon","jsx","jsxs","jsx","jsxs","Icon","title","useState","useContext","useRouter","crumb","useEffect","Flex","styles_default","Link","Box","Text","breadcrumb","Tooltip","IconCaret","Box","Flex","Text","noResults","styles_default","jsx","jsxs","useContext","connectStateResults","useEffect","useRef","useMemo","Box","Flex","styles_default","Text","jsx","jsxs","useRouter","useContext","useState","useEffect","Box","styles_default","Text","InstantSearch","Configure","useContext","useEffect","Flex","Text","container","styles_default","jsx","jsxs","count","label","Icon","useContext","Flex","styles_default","Text","useEffect","body","styles_default","jsx","jsxs","Flex","styles_default","search_default","useContext","title","buttonContainer","styles_default","Flex","Text","aa","jsx","jsxs","Button","Flex","useContext","styles_default","Text","Button","useState","styles_default","jsx","useState","Button","styles_default","useCallback","useState","useRef","useEffect","copy","Box","Button","Icon","styles_default","jsx","jsxs","useState","useRef","useCallback","copy","useEffect","Button","styles_default","Box","Icon","useContext","useEffect","useRef","useState","copy","Box","Text","IconCaret","Icon","jsx","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","container","styles_default","jsx","jsxs","errorText","useContext","useState","useRef","markdown","copy","useEffect","Box","styles_default","Text","IconCaret","useCallback","useContext","useEffect","useLayoutEffect","useMemo","useRef","useState","createPortal","copy","Box","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","item","messages","title","Box","useContext","Box","Flex","Text","trigger","overlay","header","headerActions","messages","process","actionButton","dislikeIcon","textarea","errorText","styles_default","jsx","jsxs","sources","useContext","title","Box","styles_default","Text","Flex","jsx","jsxs","text","link","Box","styles_default","body","sources","Tag","Fragment","jsx","jsxs","name","count","styles_default","steps","examples","useContext","useRef","useState","useMemo","question","useCallback","messages","title","text","item","copy","useEffect","useLayoutEffect","header","Box","Flex","panel","Text","Icon","createPortal","Flex","Link","muted","pink","breadcrumb","styles_default","jsx","Flex","styles_default","item","label","Link","useState","useEffect","input","icon","container","styles_default","Flex","jsx","jsxs","Icon","useState","useEffect","styles_default","useContext","useState","Box","Button","Text","Flex","Link","sectionContainer","cardContainer","title","description","button","styles_default","jsx","jsxs","useContext","useState","text","email","Box","styles_default","Text","Flex","Button","Link","useContext","Box","Flex","Link","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","icon","styles_default","jsx","jsxs","useContext","styles_default","Box","Flex","icon","Link","link","Flex","Text","Box","useContext","useEffect","useRef","useState","useRouter","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","useContext","Box","innerContainer","documentationContainer","sectionDivider","jsx","useContext","Box","card","searchContainer","styles_default","jsx","jsxs","Header","logo","extraRightLinks","useRouter","useContext","useRef","useState","styles_default","useEffect","body","Box","Flex","Text","useEffect","useState","Box","Button","Text","Link","Icon","container","label","button","text","closeIcon","styles_default","jsx","jsxs","CloseIcon","Icon","tag","button","label","useState","useEffect","Box","styles_default","Text","Link","Button","Text","styles_default","jsx","Text","styles_default","Box","Button","Flex","Text","Icon","jsx","jsxs","Icon","jsx","jsxs","useState","input","name","container","innerContainer","modalTitle","tag","sectionDivider","styles_default","Fragment","jsx","jsxs","useState","numberOfFilters","Flex","styles_default","Text","Box","group","Button","Box","Flex","Button","Text","useEffect","useRef","useState","arrowButton","styles_default","jsx","jsxs","useRef","useState","useEffect","Flex","styles_default","Box","Button","count","Icon","Text","Box","Flex","Text","container","photo","styles_default","jsx","jsxs","Flex","styles_default","Box","Text","useContext","Text","styles_default","jsx","useContext","Text","styles_default","useContext","Flex","Text","styles_default","jsx","jsxs","useContext","Flex","styles_default","Text","useContext","Link","Flex","Text","Box","linkReset","styles_default","jsx","jsxs","useContext","Box","styles_default","Flex","Link","Text","useContext","Box","Flex","Text","useContext","Box","Text","title","link","description","sectionTitle","styles_default","jsx","jsxs","useContext","title","cards","Box","styles_default","Text","card","innerContainer","contentContainer","divider","styles_default","Fragment","jsx","jsxs","readingTime","text","headings","useContext","markdown","Flex","styles_default","Box","Text","Box","Link","Text","title","description","tag","styles_default","jsx","jsxs","title","description","Link","Box","styles_default","Text","search","item","item","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Icon","Fragment","jsx","jsxs","Icon","jsx","Icon","jsx","jsxs"]} \ No newline at end of file diff --git a/dist/remark.mjs.map b/dist/remark.mjs.map index c977eed..aae9d1b 100644 --- a/dist/remark.mjs.map +++ b/dist/remark.mjs.map @@ -1 +1 @@ -{"version":3,"sources":["../src/remark/mermaid.ts","../src/remark/blockquote.ts","../src/remark/reading-time.ts"],"sourcesContent":["import { u } from 'unist-builder'\nimport { visit, SKIP } from 'unist-util-visit'\nimport type { Node, Parent } from 'unist'\n\ninterface MermaidCodeNode extends Node {\n type: string\n lang?: string | null\n}\n\nexport default function remarkMermaid() {\n return (ast: Node) => {\n visit(\n ast,\n { type: 'code', lang: 'mermaid' },\n (node: MermaidCodeNode, index, parent: Parent | undefined) => {\n if (typeof index !== 'number' || !parent) return\n\n node.type = 'text'\n\n const props = {\n data: {\n hProperties: {\n className: ['mermaid'],\n },\n hName: 'pre',\n },\n }\n\n parent.children.splice(index, 1, u('pre', props, [node]))\n\n return [SKIP, index]\n }\n )\n }\n}\n","import { u } from 'unist-builder'\nimport { visit, SKIP } from 'unist-util-visit'\nimport type { Node, Parent } from 'unist'\n\nconst extendedNames: Record = {\n info: /^ℹ️/,\n warning: /^\\u26A0/,\n danger: /^\\u2757/,\n success: /^\\u2705/,\n}\n\ninterface TextNode extends Node {\n type: 'text'\n value: string\n}\n\ninterface ParentNode extends Node {\n children: Node[]\n}\n\n/**\n * Plugin to add extended blockquote formatting.\n */\nexport default function remarkBlockquote() {\n return (tree: Node) => {\n visit(tree, (node: Node, index, parent: Parent | undefined) => {\n if (node.type !== 'blockquote') return\n if (typeof index !== 'number' || !parent) return\n\n const { children = [] } = node as ParentNode\n const firstChild = children[0] as ParentNode | undefined\n const textNode = firstChild?.children?.[0] as TextNode | undefined\n if (\n !textNode ||\n textNode.type !== 'text' ||\n typeof textNode.value !== 'string'\n ) {\n return\n }\n\n const result = Object.entries(extendedNames).find(([, regex]) =>\n regex.test(textNode.value)\n )\n if (!result) return\n\n textNode.value = textNode.value.substring(2)\n\n const newChild = {\n type: 'paragraph',\n children,\n }\n\n const props = {\n data: {\n hProperties: {\n icon: result[0],\n },\n },\n }\n\n parent.children.splice(\n index,\n 1,\n u('blockquote', props, [u('paragraph', [newChild])])\n )\n return [SKIP, index]\n })\n }\n}\n","import getReadingTime from 'reading-time'\nimport { toString } from 'mdast-util-to-string'\nimport type { Plugin } from 'unified'\nimport type { Node } from 'unist'\nimport type { VFile } from 'vfile'\n\nexport const remarkReadingTime: Plugin = () => {\n return (tree: Node, file: VFile) => {\n const textOnPage = toString(tree)\n const readingTime = getReadingTime(textOnPage)\n const data = file.data as { matter?: Record }\n data.matter ??= {}\n data.matter.readingTime = Math.ceil(readingTime.minutes)\n }\n}\n"],"mappings":";AAAA,SAAS,SAAS;AAClB,SAAS,OAAO,YAAY;AAQb,SAAR,gBAAiC;AACtC,SAAO,CAAC,QAAc;AACpB;AAAA,MACE;AAAA,MACA,EAAE,MAAM,QAAQ,MAAM,UAAU;AAAA,MAChC,CAAC,MAAuB,OAAO,WAA+B;AAC5D,YAAI,OAAO,UAAU,YAAY,CAAC;AAAQ;AAE1C,aAAK,OAAO;AAEZ,cAAM,QAAQ;AAAA,UACZ,MAAM;AAAA,YACJ,aAAa;AAAA,cACX,WAAW,CAAC,SAAS;AAAA,YACvB;AAAA,YACA,OAAO;AAAA,UACT;AAAA,QACF;AAEA,eAAO,SAAS,OAAO,OAAO,GAAG,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AAExD,eAAO,CAAC,MAAM,KAAK;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACF;;;AClCA,SAAS,KAAAA,UAAS;AAClB,SAAS,SAAAC,QAAO,QAAAC,aAAY;AAG5B,IAAM,gBAAwC;AAAA,EAC5C,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AACX;AAce,SAAR,mBAAoC;AACzC,SAAO,CAAC,SAAe;AACrB,IAAAD,OAAM,MAAM,CAAC,MAAY,OAAO,WAA+B;AAC7D,UAAI,KAAK,SAAS;AAAc;AAChC,UAAI,OAAO,UAAU,YAAY,CAAC;AAAQ;AAE1C,YAAM,EAAE,WAAW,CAAC,EAAE,IAAI;AAC1B,YAAM,aAAa,SAAS,CAAC;AAC7B,YAAM,WAAW,YAAY,WAAW,CAAC;AACzC,UACE,CAAC,YACD,SAAS,SAAS,UAClB,OAAO,SAAS,UAAU,UAC1B;AACA;AAAA,MACF;AAEA,YAAM,SAAS,OAAO,QAAQ,aAAa,EAAE;AAAA,QAAK,CAAC,CAAC,EAAE,KAAK,MACzD,MAAM,KAAK,SAAS,KAAK;AAAA,MAC3B;AACA,UAAI,CAAC;AAAQ;AAEb,eAAS,QAAQ,SAAS,MAAM,UAAU,CAAC;AAE3C,YAAM,WAAW;AAAA,QACf,MAAM;AAAA,QACN;AAAA,MACF;AAEA,YAAM,QAAQ;AAAA,QACZ,MAAM;AAAA,UACJ,aAAa;AAAA,YACX,MAAM,OAAO,CAAC;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAEA,aAAO,SAAS;AAAA,QACd;AAAA,QACA;AAAA,QACAD,GAAE,cAAc,OAAO,CAACA,GAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AAAA,MACrD;AACA,aAAO,CAACE,OAAM,KAAK;AAAA,IACrB,CAAC;AAAA,EACH;AACF;;;ACpEA,OAAO,oBAAoB;AAC3B,SAAS,gBAAgB;AAKlB,IAAM,oBAA4B,MAAM;AAC7C,SAAO,CAAC,MAAY,SAAgB;AAClC,UAAM,aAAa,SAAS,IAAI;AAChC,UAAM,cAAc,eAAe,UAAU;AAC7C,UAAM,OAAO,KAAK;AAClB,SAAK,WAAW,CAAC;AACjB,SAAK,OAAO,cAAc,KAAK,KAAK,YAAY,OAAO;AAAA,EACzD;AACF;","names":["u","visit","SKIP"]} \ No newline at end of file +{"version":3,"sources":["../src/remark/mermaid.ts","../src/remark/blockquote.ts","../src/remark/reading-time.ts"],"sourcesContent":["import { u } from 'unist-builder'\r\nimport { visit, SKIP } from 'unist-util-visit'\r\nimport type { Node, Parent } from 'unist'\r\n\r\ninterface MermaidCodeNode extends Node {\r\n type: string\r\n lang?: string | null\r\n}\r\n\r\nexport default function remarkMermaid() {\r\n return (ast: Node) => {\r\n visit(\r\n ast,\r\n { type: 'code', lang: 'mermaid' },\r\n (node: MermaidCodeNode, index, parent: Parent | undefined) => {\r\n if (typeof index !== 'number' || !parent) return\r\n\r\n node.type = 'text'\r\n\r\n const props = {\r\n data: {\r\n hProperties: {\r\n className: ['mermaid'],\r\n },\r\n hName: 'pre',\r\n },\r\n }\r\n\r\n parent.children.splice(index, 1, u('pre', props, [node]))\r\n\r\n return [SKIP, index]\r\n }\r\n )\r\n }\r\n}\r\n","import { u } from 'unist-builder'\r\nimport { visit, SKIP } from 'unist-util-visit'\r\nimport type { Node, Parent } from 'unist'\r\n\r\nconst extendedNames: Record = {\r\n info: /^ℹ️/,\r\n warning: /^\\u26A0/,\r\n danger: /^\\u2757/,\r\n success: /^\\u2705/,\r\n}\r\n\r\ninterface TextNode extends Node {\r\n type: 'text'\r\n value: string\r\n}\r\n\r\ninterface ParentNode extends Node {\r\n children: Node[]\r\n}\r\n\r\n/**\r\n * Plugin to add extended blockquote formatting.\r\n */\r\nexport default function remarkBlockquote() {\r\n return (tree: Node) => {\r\n visit(tree, (node: Node, index, parent: Parent | undefined) => {\r\n if (node.type !== 'blockquote') return\r\n if (typeof index !== 'number' || !parent) return\r\n\r\n const { children = [] } = node as ParentNode\r\n const firstChild = children[0] as ParentNode | undefined\r\n const textNode = firstChild?.children?.[0] as TextNode | undefined\r\n if (\r\n !textNode ||\r\n textNode.type !== 'text' ||\r\n typeof textNode.value !== 'string'\r\n ) {\r\n return\r\n }\r\n\r\n const result = Object.entries(extendedNames).find(([, regex]) =>\r\n regex.test(textNode.value)\r\n )\r\n if (!result) return\r\n\r\n textNode.value = textNode.value.substring(2)\r\n\r\n const newChild = {\r\n type: 'paragraph',\r\n children,\r\n }\r\n\r\n const props = {\r\n data: {\r\n hProperties: {\r\n icon: result[0],\r\n },\r\n },\r\n }\r\n\r\n parent.children.splice(\r\n index,\r\n 1,\r\n u('blockquote', props, [u('paragraph', [newChild])])\r\n )\r\n return [SKIP, index]\r\n })\r\n }\r\n}\r\n","import getReadingTime from 'reading-time'\r\nimport { toString } from 'mdast-util-to-string'\r\nimport type { Plugin } from 'unified'\r\nimport type { Node } from 'unist'\r\nimport type { VFile } from 'vfile'\r\n\r\nexport const remarkReadingTime: Plugin = () => {\r\n return (tree: Node, file: VFile) => {\r\n const textOnPage = toString(tree)\r\n const readingTime = getReadingTime(textOnPage)\r\n const data = file.data as { matter?: Record }\r\n data.matter ??= {}\r\n data.matter.readingTime = Math.ceil(readingTime.minutes)\r\n }\r\n}\r\n"],"mappings":";AAAA,SAAS,SAAS;AAClB,SAAS,OAAO,YAAY;AAQb,SAAR,gBAAiC;AACtC,SAAO,CAAC,QAAc;AACpB;AAAA,MACE;AAAA,MACA,EAAE,MAAM,QAAQ,MAAM,UAAU;AAAA,MAChC,CAAC,MAAuB,OAAO,WAA+B;AAC5D,YAAI,OAAO,UAAU,YAAY,CAAC;AAAQ;AAE1C,aAAK,OAAO;AAEZ,cAAM,QAAQ;AAAA,UACZ,MAAM;AAAA,YACJ,aAAa;AAAA,cACX,WAAW,CAAC,SAAS;AAAA,YACvB;AAAA,YACA,OAAO;AAAA,UACT;AAAA,QACF;AAEA,eAAO,SAAS,OAAO,OAAO,GAAG,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AAExD,eAAO,CAAC,MAAM,KAAK;AAAA,MACrB;AAAA,IACF;AAAA,EACF;AACF;;;AClCA,SAAS,KAAAA,UAAS;AAClB,SAAS,SAAAC,QAAO,QAAAC,aAAY;AAG5B,IAAM,gBAAwC;AAAA,EAC5C,MAAM;AAAA,EACN,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AACX;AAce,SAAR,mBAAoC;AACzC,SAAO,CAAC,SAAe;AACrB,IAAAD,OAAM,MAAM,CAAC,MAAY,OAAO,WAA+B;AAC7D,UAAI,KAAK,SAAS;AAAc;AAChC,UAAI,OAAO,UAAU,YAAY,CAAC;AAAQ;AAE1C,YAAM,EAAE,WAAW,CAAC,EAAE,IAAI;AAC1B,YAAM,aAAa,SAAS,CAAC;AAC7B,YAAM,WAAW,YAAY,WAAW,CAAC;AACzC,UACE,CAAC,YACD,SAAS,SAAS,UAClB,OAAO,SAAS,UAAU,UAC1B;AACA;AAAA,MACF;AAEA,YAAM,SAAS,OAAO,QAAQ,aAAa,EAAE;AAAA,QAAK,CAAC,CAAC,EAAE,KAAK,MACzD,MAAM,KAAK,SAAS,KAAK;AAAA,MAC3B;AACA,UAAI,CAAC;AAAQ;AAEb,eAAS,QAAQ,SAAS,MAAM,UAAU,CAAC;AAE3C,YAAM,WAAW;AAAA,QACf,MAAM;AAAA,QACN;AAAA,MACF;AAEA,YAAM,QAAQ;AAAA,QACZ,MAAM;AAAA,UACJ,aAAa;AAAA,YACX,MAAM,OAAO,CAAC;AAAA,UAChB;AAAA,QACF;AAAA,MACF;AAEA,aAAO,SAAS;AAAA,QACd;AAAA,QACA;AAAA,QACAD,GAAE,cAAc,OAAO,CAACA,GAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AAAA,MACrD;AACA,aAAO,CAACE,OAAM,KAAK;AAAA,IACrB,CAAC;AAAA,EACH;AACF;;;ACpEA,OAAO,oBAAoB;AAC3B,SAAS,gBAAgB;AAKlB,IAAM,oBAA4B,MAAM;AAC7C,SAAO,CAAC,MAAY,SAAgB;AAClC,UAAM,aAAa,SAAS,IAAI;AAChC,UAAM,cAAc,eAAe,UAAU;AAC7C,UAAM,OAAO,KAAK;AAClB,SAAK,WAAW,CAAC;AACjB,SAAK,OAAO,cAAc,KAAK,KAAK,YAAY,OAAO;AAAA,EACzD;AACF;","names":["u","visit","SKIP"]} \ No newline at end of file diff --git a/src/components/search-filter-tab-bar/index.tsx b/src/components/search-filter-tab-bar/index.tsx index 6f404e8..1b5fa98 100644 --- a/src/components/search-filter-tab-bar/index.tsx +++ b/src/components/search-filter-tab-bar/index.tsx @@ -71,7 +71,7 @@ const SearchFilterTabBar = () => { const countsLoaded = Object.keys(ocurrenceCount).length > 0 const visibleSections = sidebarSections .flat() - .filter((section) => !section.isExternalLink) + .filter((section) => !section.isExternalLink && !section.excludeFromSearch) .filter( (section) => !countsLoaded || hasFilterResults(ocurrenceCount, section.id) ) diff --git a/src/components/search-results/index.tsx b/src/components/search-results/index.tsx index f940bee..5191c16 100644 --- a/src/components/search-results/index.tsx +++ b/src/components/search-results/index.tsx @@ -21,10 +21,16 @@ import { formatSearchTabCount } from 'utils/search-utils' const SearchResults = () => { const router = useRouter() const { filterSelectedSection, ocurrenceCount } = useContext(SearchContext) - const { locale } = useContext(LibraryContext) + const { locale, sidebarSections } = useContext(LibraryContext) + const excludedDoctypesFilter = sidebarSections + .flat() + .filter((section) => section.excludeFromSearch) + .map((section) => `NOT doctype:"${section.id}"`) + .join(' AND ') const filters = [ `language:${locale}`, filterSelectedSection ? `doctype:"${filterSelectedSection}"` : '', + excludedDoctypesFilter, ] .filter(Boolean) .join(' AND ') diff --git a/src/components/search-sections/index.tsx b/src/components/search-sections/index.tsx index a0b0e6a..5da41e0 100644 --- a/src/components/search-sections/index.tsx +++ b/src/components/search-sections/index.tsx @@ -9,7 +9,7 @@ const SearchSections = () => { const { sidebarSections } = useContext(LibraryContext) const internalOnlySections = sidebarSections.map((section) => - section.filter((item) => !item.isExternalLink) + section.filter((item) => !item.isExternalLink && !item.excludeFromSearch) ) return ( diff --git a/src/utils/config/search-config.ts b/src/utils/config/search-config.ts index 8b6178a..7c678a0 100644 --- a/src/utils/config/search-config.ts +++ b/src/utils/config/search-config.ts @@ -299,11 +299,14 @@ const createHybridClient = (config: HybridSearchConfig) => { const hitsPerPage = params.hitsPerPage || pageSize const page = params.page || 0 - const { locale, doctypes } = extractHybridFilters(params) + const { locale, doctypes, excludedDoctypes } = + extractHybridFilters(params) // The upstream Hybrid Search API does not support pagination, so we // fetch a large slice once per (query, locale) pair and paginate / - // doctype-filter client-side for the result list. + // doctype-filter client-side for the result list. Excluded doctypes + // (e.g. `NOT doctype:"..."` from `excludeFromSearch`) are dropped + // client-side as well. const cacheKey = JSON.stringify({ q: query, locale: useLanguageFilter ? locale || '' : '', @@ -359,7 +362,7 @@ const createHybridClient = (config: HybridSearchConfig) => { return counts })() - const [allHits, doctypeCounts] = await Promise.all([ + const [fetchedHits, doctypeCounts] = await Promise.all([ hitsPromise, countsPromise, ]) @@ -368,6 +371,7 @@ const createHybridClient = (config: HybridSearchConfig) => { cachedCounts = doctypeCounts } + const allHits = excludeHitsByDoctype(fetchedHits, excludedDoctypes) const initialFilteredHits = filterHitsByDoctype(allHits, doctypes) let listHits = doctypes.length ? initialFilteredHits : allHits @@ -451,9 +455,13 @@ const createHybridClient = (config: HybridSearchConfig) => { }) } + const excludedDoctypeSet = new Set( + excludedDoctypes.map((d) => d.toLowerCase()) + ) const doctypeFacetData: Record = {} if (cachedCounts) { HYBRID_DOCTYPE_IDS.forEach((id) => { + if (excludedDoctypeSet.has(id.toLowerCase())) return const count = cachedCounts[id] if (typeof count === 'number') { doctypeFacetData[id] = count @@ -523,31 +531,55 @@ function clampUpstreamLimit(raw: number): number { * * Two filter shapes need to be supported: * 1. `Configure.filters` (a single string like - * `language:en AND doctype:"tutorials"`), used by the full Search page. + * `language:en AND doctype:"tutorials" AND NOT doctype:"known-issues"`), + * used by the full Search page. * 2. `Configure.facetFilters` (an array like `['language:en']`), used by * the SearchInput dropdown in the header. + * + * `NOT doctype:"..."` clauses are parsed as exclusions (e.g. sections flagged + * `excludeFromSearch` in the consuming app). Positive `doctype:"..."` clauses + * narrow results to a selected tab. */ function extractHybridFilters( // eslint-disable-next-line @typescript-eslint/no-explicit-any params: any -): { locale: string; doctypes: string[] } { +): { locale: string; doctypes: string[]; excludedDoctypes: string[] } { let locale = '' const doctypes: string[] = [] + const excludedDoctypes: string[] = [] const pushDoctype = (raw: string) => { const value = raw.replace(/^"|"$/g, '').trim() if (value && !doctypes.includes(value)) doctypes.push(value) } + const pushExcludedDoctype = (raw: string) => { + const value = raw.replace(/^"|"$/g, '').trim() + if (value && !excludedDoctypes.includes(value)) { + excludedDoctypes.push(value) + } + } + // 1) Configure.filters as a string expression const filtersStr = typeof params?.filters === 'string' ? params.filters : '' if (filtersStr) { const langMatch = filtersStr.match(/language\s*:\s*([\w-]+)/i) if (langMatch) locale = langMatch[1] + const excludedRegex = /NOT\s+doctype\s*:\s*(?:"([^"]+)"|([^\s)]+))/gi + let excludedMatch: RegExpExecArray | null + while ((excludedMatch = excludedRegex.exec(filtersStr)) !== null) { + pushExcludedDoctype(excludedMatch[1] || excludedMatch[2] || '') + } + + // Strip exclusion clauses before parsing positive doctype selections. + const positiveFiltersStr = filtersStr.replace( + /NOT\s+doctype\s*:\s*(?:"[^"]+"|[^\s)]+)/gi, + '' + ) const doctypeRegex = /doctype\s*:\s*(?:"([^"]+)"|([^\s)]+))/gi let m: RegExpExecArray | null - while ((m = doctypeRegex.exec(filtersStr)) !== null) { + while ((m = doctypeRegex.exec(positiveFiltersStr)) !== null) { pushDoctype(m[1] || m[2] || '') } } @@ -567,7 +599,18 @@ function extractHybridFilters( } visit(facetFilters) - return { locale, doctypes } + return { locale, doctypes, excludedDoctypes } +} + +function excludeHitsByDoctype( + hits: T[], + excludedDoctypes: string[] +): T[] { + if (!excludedDoctypes.length) return hits + const excluded = new Set(excludedDoctypes.map((d) => d.toLowerCase())) + return hits.filter( + (h) => !excluded.has(String(h.doctype || '').toLowerCase()) + ) } function filterHitsByDoctype( diff --git a/src/utils/typings/types.ts b/src/utils/typings/types.ts index e7698d2..19c6ff7 100644 --- a/src/utils/typings/types.ts +++ b/src/utils/typings/types.ts @@ -7,6 +7,7 @@ export type Section = { description: string Icon: (props: IconProps) => JSX.Element isExternalLink?: boolean + excludeFromSearch?: boolean } export type MethodType = 'POST' | 'GET' | 'PUT' | 'DELETE' | 'PATCH'