diff --git a/.storybook/main.ts b/.storybook/main.ts index e2ba99e..5d3ea53 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -1,9 +1,45 @@ import type { StorybookConfig } from '@storybook/react-vite' +import fs from 'fs' import path from 'path' -import { mergeConfig } from 'vite' +import { mergeConfig, type Plugin } from 'vite' const srcPath = path.resolve(__dirname, '../src') const mocksPath = path.resolve(__dirname, 'mocks') +const mdxExamplePath = path.resolve(__dirname, 'mdx-example.md') + +const VIRTUAL_MDX_ID = 'virtual:storybook-mdx' +const RESOLVED_VIRTUAL_MDX_ID = `\0${VIRTUAL_MDX_ID}` + +// `next-mdx-remote` picks the JSX runtime from NODE_ENV when it evaluates the +// compiled source: `jsx-dev-runtime` only exposes `jsxDEV`, while +// `jsx-runtime` exposes `jsx`/`jsxs`. Compiling for the other mode makes the +// generated code destructure a function that isn't there. +const nodeEnv = process.env.NODE_ENV || 'development' + +// `next-mdx-remote/serialize` runs the whole MDX compiler and only works in +// Node, so the example content is serialized here and shipped to the browser +// as plain data. +const serializedMdxPlugin = (): Plugin => ({ + name: 'storybook-serialized-mdx', + resolveId: (id) => (id === VIRTUAL_MDX_ID ? RESOLVED_VIRTUAL_MDX_ID : null), + load: async (id) => { + if (id !== RESOLVED_VIRTUAL_MDX_ID) return null + + const { serialize } = await import('next-mdx-remote/serialize') + const serialized = await serialize(fs.readFileSync(mdxExamplePath, 'utf8'), { + mdxOptions: { development: nodeEnv === 'development' }, + }) + + return `export default ${JSON.stringify(serialized)}` + }, + handleHotUpdate: ({ file, server }) => { + if (file !== mdxExamplePath) return + + const mod = server.moduleGraph.getModuleById(RESOLVED_VIRTUAL_MDX_ID) + + if (mod) server.moduleGraph.invalidateModule(mod) + }, +}) const config: StorybookConfig = { stories: ['../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'], @@ -31,9 +67,10 @@ const config: StorybookConfig = { }), viteFinal: async (config) => mergeConfig(config, { + plugins: [serializedMdxPlugin()], define: { 'process.env': JSON.stringify({ - NODE_ENV: process.env.NODE_ENV || 'development', + NODE_ENV: nodeEnv, NEXT_PUBLIC_ALGOLIA_APP_ID: process.env.NEXT_PUBLIC_ALGOLIA_APP_ID || '', NEXT_PUBLIC_ALGOLIA_SEARCH_KEY: @@ -51,9 +88,11 @@ const config: StorybookConfig = { 'next/image.js': path.join(mocksPath, 'next-image.tsx'), 'next/link.js': path.join(mocksPath, 'next-link.tsx'), 'next/router.js': path.join(mocksPath, 'next-router.ts'), + 'next/head.js': path.join(mocksPath, 'next-head.tsx'), 'next/image': path.join(mocksPath, 'next-image.tsx'), 'next/link': path.join(mocksPath, 'next-link.tsx'), 'next/router': path.join(mocksPath, 'next-router.ts'), + 'next/head': path.join(mocksPath, 'next-head.tsx'), }, }, }), diff --git a/.storybook/mdx-example.md b/.storybook/mdx-example.md new file mode 100644 index 0000000..63b1fed --- /dev/null +++ b/.storybook/mdx-example.md @@ -0,0 +1,20 @@ +# Clients + +Systems are meant to solve real problems by communicating to the needed services. A delivery app, for example, solves the issue of the desire to eat by communicating with a local restaurant service. + +On VTEX IO architecture, the communication made by a system to request a service is so crucial that a whole concept was built for it: **Clients**. + +In other words, Clients are configurations to be set up in a given system to **abstract its communications to the needed services**. + +When building software, you can tackle complexities by setting up clients and then optimizing your code. Some standard clients are already into the VTEX IO. Check them [here](https://github.com/vtex/node-vtex-api/blob/ccf4d8f8d3208007c4bfd558baf979df8d825af8/src/clients/IOClients.ts). + +These are some of the features built-in our clients infrastructure: + +- Cache; +- Native metrics support; +- Retry and timeout options; +- Billing tracking. + +![Clients on IO Services](https://imgur.com/i45O8MN.png) + +Learn how to create Clients of your own by accessing [Managing Clients](https://developers.vtex.com/vtex-developer-docs/docs/vtex-io-documentation-how-to-create-and-use-clients) documentation. diff --git a/.storybook/mocks/next-head.tsx b/.storybook/mocks/next-head.tsx new file mode 100644 index 0000000..7faa59b --- /dev/null +++ b/.storybook/mocks/next-head.tsx @@ -0,0 +1,5 @@ +import type { ReactNode } from 'react' + +const Head = (_props: { children?: ReactNode }) => null + +export default Head diff --git a/dist/index.d.mts b/dist/index.d.mts index 147f1ee..bbcb950 100644 --- a/dist/index.d.mts +++ b/dist/index.d.mts @@ -105,8 +105,6 @@ type FeedbackModalPayload = { url: string; }; interface FeedbackModalProps { - isOpen: boolean; - onClose: () => void; /** * Canonical page URL prefilled in the Article field. * Defaults to `window.location.href` so Help Center and Developer Portal @@ -121,8 +119,10 @@ interface FeedbackModalProps { feedbackEndpoint?: string; /** Override the default POST. */ sendFeedback?: (payload: FeedbackModalPayload) => Promise; + /** Open the modal on first render. Useful for Storybook. */ + defaultOpen?: boolean; } -declare const FeedbackModal: ({ isOpen, onClose, pageUrl, initialMessage, feedbackEndpoint, sendFeedback, }: FeedbackModalProps) => react_jsx_runtime.JSX.Element; +declare const FeedbackModal: ({ pageUrl, initialMessage, feedbackEndpoint, sendFeedback, defaultOpen, }: FeedbackModalProps) => react_jsx_runtime.JSX.Element; declare const Search: () => react_jsx_runtime.JSX.Element; @@ -470,6 +470,72 @@ type TimeToReadProps = { }; declare const TimeToRead: ({ minutes }: TimeToReadProps) => react_jsx_runtime.JSX.Element; +type DateTextProps = { + createdAt: Date; + updatedAt: Date; +}; +declare const DateText: ({ createdAt, updatedAt }: DateTextProps) => react_jsx_runtime.JSX.Element; + +type ArticlePaginationDoc = { + slug: string | null; + name: string | null; +}; +type ArticlePaginationData = { + previousDoc: ArticlePaginationDoc; + nextDoc: ArticlePaginationDoc; +}; +type ArticlePaginationProps = { + pagination: ArticlePaginationData; + hidePaginationPrevious?: boolean; + hidePaginationNext?: boolean; +}; +declare const ArticlePagination: ({ pagination, hidePaginationNext, hidePaginationPrevious, }: ArticlePaginationProps) => react_jsx_runtime.JSX.Element; + +type InsertAccountNameProps = { + id: string; +}; +declare const InsertAccountName: ({ id }: InsertAccountNameProps) => react_jsx_runtime.JSX.Element; + +type SuggestEditsProps = { + /** GitHub edit URL for the current documentation file. */ + urlToEdit: string; + /** Compact size used next to the table of contents. */ + small?: boolean; + sx?: SxStyleProp; +}; +declare const SuggestEdits: ({ urlToEdit, small, sx, }: SuggestEditsProps) => react_jsx_runtime.JSX.Element; + +type ArticleRenderProps = { + serialized: MDXRemoteSerializeResult; + breadcrumbList: BreadcrumbItem[]; + slug: string; + path: string; + type: string; + pageUrl: string; + urlToEdit: string; + rawContentBaseUrl: string; + contributors?: ContributorsType[]; + headings?: Item[]; + headingList?: Item[]; + pagination?: ArticlePaginationData; + children?: ReactNode; + seeAlso?: ReactNode; + customComponents?: MarkdownRendererProps['customComponents']; + scope?: MarkdownRendererProps['scope']; + /** Wrap the markdown output without remounting it on parent re-renders. */ + renderMarkdown?: (markdown: ReactNode) => ReactNode; + showReadingTime?: boolean; + showAskAIMenu?: boolean; + showAuthor?: boolean; + showContributors?: boolean; + showFeedbackSection?: boolean; + showSuggestEdits?: boolean; + showArticlePagination?: boolean; + showTableOfContents?: boolean; + showDateText?: boolean; +}; +declare const ArticleRender: ({ serialized, headings, headingList, breadcrumbList, contributors, path, pagination, slug, type, pageUrl, urlToEdit, rawContentBaseUrl, children, seeAlso, customComponents, scope, renderMarkdown, showReadingTime, showAskAIMenu, showAuthor, showContributors, showFeedbackSection, showSuggestEdits, showArticlePagination, showTableOfContents, showDateText, }: ArticleRenderProps) => react_jsx_runtime.JSX.Element; + type TroubleshootingItem = { slug: string; title: string; @@ -742,4 +808,4 @@ declare const LikeIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; declare const LikeSelectedIcon: (props: IconProps) => react_jsx_runtime.JSX.Element; -export { APIGuidesIcon, APIReferenceIcon, AddedIcon, type AlgoliaConfig, AnnouncementBar, type AnnouncementBarAction, type AnnouncementBarProps, type AnnouncementBarType, AnnouncementIcon, AppDevelopmentIcon, ArrowLeftIcon, ArrowRightIcon, AskAIMenu, type AskAIMenuProps, type AskAIProvider, AskAssistant, type AskAssistantExampleCategory, type AskAssistantFeedback, type AskAssistantProps, type AssistantStreamEvent, type AssistantStreamHandler, Author, type AuthorProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, CaretIcon, ChatGPTIcon, type ChatMessage, CheckboxIcon, ChipFilter, type ChipFilterCategory, type ChipFilterProps, ClaudeIcon, CloseFilterIcon, CloseIcon, CollapseIcon, CommunityIcon, Contributors, type ContributorsProps, type ContributorsType, CookieBar, CopilotIcon, CopyButton, type CopyButtonProps, CopyHeadingLink, type CopyHeadingLinkProps, CopyIcon, CopyLinkButton, DEFAULT_ASK_ASSISTANT_EXAMPLES, DeprecatedIcon, DeveloperPortalIcon, type DocPath, DocumentationUpdatesIcon, DropdownMenu, type DropdownMenuProps, EditIcon, EmailIcon, ExpandIcon, ExpandedResultsIcon, FAQIcon, FacebookCircleIcon, FacebookIcon, FeedbackModal, type FeedbackModalPayload, type FeedbackModalProps, FeedbackSection, type FeedbackSectionProps, ListingFilter as Filter, type FilterGroup, FilterIcon, type FilterOption, FixedIcon, Footer, type FooterLink, type FooterProps, type FooterVariant, GearTroubleshootingIcon, GeminiIcon, GithubIcon, GraphIcon, GridIcon, HamburgerMenu, Header, type HeaderProps, type HeaderVariant, HelpCenterIcon, type HistoryConversation, type HybridSearchConfig, ImprovedIcon, InfoIcon, Input, IgIcon as InstagramIcon, type Item, KnownIssueIcon as KnownIssuesIcon, LibraryContext, LibraryContextProvider, LikeIcon, LikeSelectedIcon, LinkIcon, LinkedinCircleIcon, LinkedinIcon, ListingFilter, type ListingFilterLabels, type ListingFilterProps, type ListingFilterSelection, LongArrowIcon, MarkdownRenderer, MegaphoneIcon, MenuIcon, MobileSearch, type MobileSearchProps, NewChatIcon, NewIcon, OnThisPage, type OnThisPageProps, PaperIcon, type ProcessStep, RefreshIcon, ReleaseNotesIcon, RemovedIcon, ResizeIcon, Search, type SearchBackendConfig, SearchConfig, SearchIcon, SearchInput, type SearchInputProps, type Section, SendIcon, ShareButton, ShareIcon, SideBarToggleIcon, Sidebar, SparkleIcon, StartHereIcon, StorefrontDevelopmentIcon, SubscriptionList, TableOfContents, Tag, type TagColor, type TagProps, TimeToRead, type TimeToReadProps, Tooltip, TrashcanIcon, TroubleshootingCard, type TroubleshootingCardProps, type TroubleshootingCardVariant, type TroubleshootingFilterState, TroubleshootingIcon, type TroubleshootingItem, TutorialsIcon, TwitterCircleIcon, TwitterIcon, VTEXDevPortalIcon, VTEXHelpCenterIcon, VTEXIOAppsIcon, VTEXLogoFooter, WarningIcon, WhatsNextCard, type WhatsNextDataElement, YoutubeIcon, collectTroubleshootingFilterOptions, filterTroubleshootingItems, getDaysElapsed }; +export { APIGuidesIcon, APIReferenceIcon, AddedIcon, type AlgoliaConfig, AnnouncementBar, type AnnouncementBarAction, type AnnouncementBarProps, type AnnouncementBarType, AnnouncementIcon, AppDevelopmentIcon, ArrowLeftIcon, ArrowRightIcon, ArticlePagination, type ArticlePaginationData, type ArticlePaginationDoc, type ArticlePaginationProps, ArticleRender, type ArticleRenderProps, AskAIMenu, type AskAIMenuProps, type AskAIProvider, AskAssistant, type AskAssistantExampleCategory, type AskAssistantFeedback, type AskAssistantProps, type AssistantStreamEvent, type AssistantStreamHandler, Author, type AuthorProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, CaretIcon, ChatGPTIcon, type ChatMessage, CheckboxIcon, ChipFilter, type ChipFilterCategory, type ChipFilterProps, ClaudeIcon, CloseFilterIcon, CloseIcon, CollapseIcon, CommunityIcon, Contributors, type ContributorsProps, type ContributorsType, CookieBar, CopilotIcon, CopyButton, type CopyButtonProps, CopyHeadingLink, type CopyHeadingLinkProps, CopyIcon, CopyLinkButton, DEFAULT_ASK_ASSISTANT_EXAMPLES, DateText, type DateTextProps, DeprecatedIcon, DeveloperPortalIcon, type DocPath, DocumentationUpdatesIcon, DropdownMenu, type DropdownMenuProps, EditIcon, EmailIcon, ExpandIcon, ExpandedResultsIcon, FAQIcon, FacebookCircleIcon, FacebookIcon, FeedbackModal, type FeedbackModalPayload, type FeedbackModalProps, FeedbackSection, type FeedbackSectionProps, ListingFilter as Filter, type FilterGroup, FilterIcon, type FilterOption, FixedIcon, Footer, type FooterLink, type FooterProps, type FooterVariant, GearTroubleshootingIcon, GeminiIcon, GithubIcon, GraphIcon, GridIcon, HamburgerMenu, Header, type HeaderProps, type HeaderVariant, HelpCenterIcon, type HistoryConversation, type HybridSearchConfig, ImprovedIcon, InfoIcon, Input, InsertAccountName, type InsertAccountNameProps, IgIcon as InstagramIcon, type Item, KnownIssueIcon as KnownIssuesIcon, LibraryContext, LibraryContextProvider, LikeIcon, LikeSelectedIcon, LinkIcon, LinkedinCircleIcon, LinkedinIcon, ListingFilter, type ListingFilterLabels, type ListingFilterProps, type ListingFilterSelection, LongArrowIcon, MarkdownRenderer, MegaphoneIcon, MenuIcon, MobileSearch, type MobileSearchProps, NewChatIcon, NewIcon, OnThisPage, type OnThisPageProps, PaperIcon, type ProcessStep, RefreshIcon, ReleaseNotesIcon, RemovedIcon, ResizeIcon, Search, type SearchBackendConfig, SearchConfig, SearchIcon, SearchInput, type SearchInputProps, type Section, SendIcon, ShareButton, ShareIcon, SideBarToggleIcon, Sidebar, SparkleIcon, StartHereIcon, StorefrontDevelopmentIcon, SubscriptionList, SuggestEdits, type SuggestEditsProps, TableOfContents, Tag, type TagColor, type TagProps, TimeToRead, type TimeToReadProps, Tooltip, TrashcanIcon, TroubleshootingCard, type TroubleshootingCardProps, type TroubleshootingCardVariant, type TroubleshootingFilterState, TroubleshootingIcon, type TroubleshootingItem, TutorialsIcon, TwitterCircleIcon, TwitterIcon, VTEXDevPortalIcon, VTEXHelpCenterIcon, VTEXIOAppsIcon, VTEXLogoFooter, WarningIcon, WhatsNextCard, type WhatsNextDataElement, YoutubeIcon, collectTroubleshootingFilterOptions, filterTroubleshootingItems, getDaysElapsed }; diff --git a/dist/index.mjs b/dist/index.mjs index 1df7a91..ff0dd17 100644 --- a/dist/index.mjs +++ b/dist/index.mjs @@ -214,7 +214,7 @@ var require_react_is_development = __commonJS({ var ContextProvider = REACT_PROVIDER_TYPE; var Element = REACT_ELEMENT_TYPE; var ForwardRef = REACT_FORWARD_REF_TYPE; - var Fragment12 = REACT_FRAGMENT_TYPE; + var Fragment13 = REACT_FRAGMENT_TYPE; var Lazy = REACT_LAZY_TYPE; var Memo = REACT_MEMO_TYPE; var Portal = REACT_PORTAL_TYPE; @@ -273,7 +273,7 @@ var require_react_is_development = __commonJS({ exports.ContextProvider = ContextProvider; exports.Element = Element; exports.ForwardRef = ForwardRef; - exports.Fragment = Fragment12; + exports.Fragment = Fragment13; exports.Lazy = Lazy; exports.Memo = Memo; exports.Portal = Portal; @@ -3769,12 +3769,12 @@ var require_lite = __commonJS({ }); // src/lib/markdown-renderer/MarkdownRenderer.tsx -import { Box as Box8 } from "@vtex/brand-ui"; +import { Box as Box9 } from "@vtex/brand-ui"; import { MDXRemote } from "next-mdx-remote"; // src/lib/markdown-renderer/components.tsx -import { useContext as useContext2, useEffect as useEffect6, useRef as useRef4, useState as useState5 } from "react"; -import { Box as Box7, Flex as Flex5 } from "@vtex/brand-ui"; +import { useContext as useContext3, useEffect as useEffect6, useRef as useRef4, useState as useState6 } from "react"; +import { Box as Box8, Flex as Flex5 } from "@vtex/brand-ui"; import { UncontrolledReactSVGPanZoom } from "react-svg-pan-zoom"; @@ -5903,12 +5903,12 @@ var IconsMap = [ } ]; var getIcon = (name) => { - return IconsMap.find((icon5) => icon5.name === name)?.Icon; + return IconsMap.find((icon6) => icon6.name === name)?.Icon; }; -var OverviewCard = ({ icon: icon5, link: link2, children }) => { - const Icon81 = getIcon(icon5); +var OverviewCard = ({ icon: icon6, link: link2, children }) => { + const Icon82 = getIcon(icon6); return /* @__PURE__ */ jsx2(Link, { href: link2, children: /* @__PURE__ */ jsxs2(Flex, { sx: styles_default.overviewCard, children: [ - Icon81 && /* @__PURE__ */ jsx2(Icon81, { sx: styles_default.overviewIcon }), + Icon82 && /* @__PURE__ */ jsx2(Icon82, { sx: styles_default.overviewIcon }), /* @__PURE__ */ jsx2(Box, { children }) ] }) }); }; @@ -6260,323 +6260,12 @@ var WhatsNextCard = ({ }; var whats_next_card_default = WhatsNextCard; -// src/utils/context/libraryContext.tsx -import { createContext, useCallback, useEffect as useEffect3, useMemo, useState as useState2 } from "react"; -import { SWRConfig } from "swr"; -import { jsx as jsx8 } from "react/jsx-runtime"; -var LibraryContext = createContext({ - headingItems: [], - setHeadingItems: () => void 0, - activeItem: { - item: "", - subItem: "" - }, - setActiveItem: () => void 0, - goToPreviousItem: () => void 0, - goToPreviousSubItem: () => void 0, - isEditorPreview: false, - sidebarSectionHidden: false, - activeSectionName: "", - activeSidebarElement: "", - sidebarDataMaster: {}, - setIsEditorPreview: () => void 0, - sidebarElementStatus: /* @__PURE__ */ new Map(), - // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any - setSidebarDataMaster: (_) => void 0, - setSidebarSectionHidden: () => void 0, - setActiveSectionName: () => void 0, - // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any - setActiveSidebarElement: (_) => void 0, - toggleSidebarElementStatus: () => void 0, - openSidebarElement: () => void 0, - closeSidebarElements: () => void 0, - setOpenSidebarElements: () => void 0, - sidebarSections: [], - setSidebarSections: () => void 0, - hamburguerSections: [], - setHamburguerSections: () => void 0, - locale: "en" -}); -var LibraryContextProvider = ({ children, ...props }) => { - const [headingItems, setHeadingItems] = useState2([]); - const [activeItem, setActiveItem] = useState2({ - item: "", - subItem: "" - }); - const [activeSectionName, setActiveSectionName] = useState2( - props.sectionSelected - ); - const [sidebarSectionHidden, setSidebarSectionHidden] = useState2(false); - const [activeSidebarElement, setActiveSidebarElement] = useState2(""); - const [sidebarElementStatus, setSidebarElementStatus] = useState2(/* @__PURE__ */ new Map()); - const [sidebarDataMaster, setSidebarDataMaster] = useState2(props.fallback); - const [isEditorPreview, setIsEditorPreview] = useState2(props.isPreview); - const [sidebarSections, setSidebarSections] = useState2(props.sections); - const [hamburguerSections, setHamburguerSections] = useState2( - props.hamburguerMenuSections - ); - const locale = props.locale ?? "en"; - const fallback = props.fallback; - useEffect3(() => { - setSidebarDataMaster(props.fallback); - }, [props.fallback]); - useEffect3(() => { - if (props.sectionSelected === "") - setSidebarSectionHidden(true); - else if (props.sectionSelected !== activeSectionName) - setActiveSectionName(props.sectionSelected); - }, [props.sectionSelected]); - const toggleSidebarElementStatus = useCallback( - (title9, currentlyOpen) => { - setSidebarElementStatus((prev) => { - const open = prev.has(title9) ? !prev.get(title9) : !currentlyOpen; - const next = new Map(prev); - next.set(title9, open); - return next; - }); - }, - [] - ); - const closeSidebarElements = useCallback((parentsArray) => { - const parentSet = new Set(parentsArray); - setSidebarElementStatus((prev) => { - let changed = false; - const next = new Map(prev); - next.forEach((value, key) => { - if (!parentSet.has(key) && value) { - next.set(key, false); - changed = true; - } - }); - return changed ? next : prev; - }); - }, []); - const openSidebarElement = useCallback((title9) => { - setSidebarElementStatus((prev) => { - if (prev.get(title9) === true) - return prev; - const next = new Map(prev); - next.set(title9, true); - return next; - }); - }, []); - const setOpenSidebarElements = useCallback((parentsArray) => { - if (parentsArray.length === 0) { - setSidebarElementStatus((prev) => prev.size === 0 ? prev : /* @__PURE__ */ new Map()); - return; - } - const parentSet = new Set(parentsArray); - setSidebarElementStatus((prev) => { - const next = new Map(prev); - let changed = false; - next.forEach((value, key) => { - if (!parentSet.has(key) && value) { - next.set(key, false); - changed = true; - } - }); - parentsArray.forEach((slug) => { - if (next.get(slug) !== true) { - next.set(slug, true); - changed = true; - } - }); - return changed ? next : prev; - }); - }, []); - const goToPreviousItem = useCallback(() => { - setActiveItem(({ item: item2, subItem }) => { - const index = headingItems.findIndex((heading) => heading.slug === item2); - if (index === -1) - return { item: item2, subItem }; - const previousItem = !index ? "" : headingItems[index - 1].slug; - const previousChildren = !index ? [] : headingItems[index - 1].children; - const previousSubItem = !previousChildren.length ? "" : previousChildren.slice(-1)[0].slug; - return { - item: previousItem, - subItem: previousSubItem - }; - }); - }, [headingItems]); - const goToPreviousSubItem = useCallback(() => { - setActiveItem(({ item: item2, subItem }) => { - const heading = headingItems.find((heading2) => heading2.slug === item2); - const index = heading?.children.findIndex( - (child) => child.slug === subItem - ); - if (!heading || index === -1) - return { item: item2, subItem }; - return { - item: item2, - subItem: !index ? "" : heading.children[index - 1].slug - }; - }); - }, [headingItems]); - const contextValue = useMemo( - () => ({ - headingItems, - activeItem, - setHeadingItems, - setActiveItem, - goToPreviousItem, - goToPreviousSubItem, - isEditorPreview, - setIsEditorPreview, - sidebarSectionHidden, - activeSectionName, - activeSidebarElement, - sidebarElementStatus, - setActiveSectionName, - setSidebarSectionHidden, - setActiveSidebarElement, - toggleSidebarElementStatus, - openSidebarElement, - closeSidebarElements, - setOpenSidebarElements, - sidebarDataMaster, - setSidebarDataMaster, - sidebarSections, - setSidebarSections, - hamburguerSections, - setHamburguerSections, - locale - }), - [ - headingItems, - activeItem, - goToPreviousItem, - goToPreviousSubItem, - isEditorPreview, - sidebarSectionHidden, - activeSectionName, - activeSidebarElement, - sidebarElementStatus, - toggleSidebarElementStatus, - openSidebarElement, - closeSidebarElements, - setOpenSidebarElements, - sidebarDataMaster, - sidebarSections, - hamburguerSections, - locale - ] - ); - return /* @__PURE__ */ jsx8(LibraryContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx8( - SWRConfig, - { - value: { - fallback: { - "/api/navigation": fallback ? fallback : [] - } - }, - children - } - ) }); -}; -var libraryContext_default = LibraryContextProvider; - -// src/utils/string-utils.ts -var removeHTML = (str) => str.replace(/<\/?[^>]+>/g, ""); -var SYMBOL_RUN_THRESHOLD = 3; -var stripMarkdownForSnippet = (str) => { - if (!str) - return ""; - let cleaned = str.replace(/```[\s\S]*?```/g, "").replace(/```[^\n]*(?:\n[\s\S]*)?$/g, "").replace(/!\[[^\]]*\]\([^)]*\)/g, "").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/!?\[[^\]]*\]\([^)]*$/g, "").replace(/!?\[[^\]]*$/g, "").replace(/^#{1,6}\s+/gm, "").replace(/\s#{1,6}\s+/g, " ").replace(/\*\*(.+?)\*\*/g, "$1").replace(/__(.+?)__/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/_(.+?)_/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/^(\*{3,}|-{3,}|_{3,})$/gm, "").replace(/^>\s+/gm, "").replace(/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)*\|?\s*$/gm, "").replace(/\s*\|\s*/g, " ").replace(new RegExp(`-{${SYMBOL_RUN_THRESHOLD},}`, "g"), " ").replace(new RegExp(`={${SYMBOL_RUN_THRESHOLD},}`, "g"), " ").replace(new RegExp(`\\|{${SYMBOL_RUN_THRESHOLD},}`, "g"), " ").replace(/\s+/g, " ").trim(); - if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) { - const firstSpaceIndex = cleaned.indexOf(" "); - if (firstSpaceIndex > 0 && firstSpaceIndex < 50) { - cleaned = cleaned.substring(firstSpaceIndex + 1).trim(); - } - } - return cleaned; -}; -var slugify = (str) => { - return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").trim(); -}; -var childrenToString = (children) => { - if (!children) - return ""; - else if (Array.isArray(children)) - return children.map((child) => { - if (typeof child === "string") - return child; - return childrenToString(child.props.children); - }).join(""); - else { - if (typeof children === "string") - return children; - return childrenToString(children["props"]["children"]); - } -}; - -// src/utils/mermaidInit.ts -import mermaid from "mermaid"; -var mermaidInit = () => { - mermaid.initialize({ - theme: "base", - themeVariables: { - primaryColor: "#FFFFFF", - primaryTextColor: "#142032", - primaryBorderColor: "#A1AAB7", - labelBoxBorderColor: "#E31C58", - labelTextColor: "#E31C58", - labelBoxBkgColor: "#FFF3F6", - lineColor: "#A1AAB7", - mainBkg: "#F8F7FC" - } - }); -}; -var mermaidInit_default = mermaidInit; - -// src/components/copy-heading-link/index.tsx -import { - useCallback as useCallback2, - useContext, - useEffect as useEffect5, - useRef as useRef3, - useState as useState4 -} from "react"; -import { Box as Box6 } from "@vtex/brand-ui"; -import copy from "copy-text-to-clipboard"; - -// src/components/icons/link-icon.tsx -import { Icon as Icon3 } from "@vtex/brand-ui"; -import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime"; -var LinkIcon = (props) => /* @__PURE__ */ jsxs6( - Icon3, - { - ...props, - viewBox: "0 0 16 16", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx9( - "path", - { - d: "M6.6665 8.66672C6.95281 9.04948 7.31808 9.36618 7.73754 9.59535C8.157 9.82452 8.62084 9.9608 9.0976 9.99495C9.57437 10.0291 10.0529 9.9603 10.5007 9.79325C10.9486 9.62619 11.3552 9.36477 11.6932 9.02672L13.6932 7.02672C14.3004 6.39805 14.6363 5.55604 14.6288 4.68205C14.6212 3.80806 14.2706 2.97202 13.6526 2.354C13.0345 1.73597 12.1985 1.38541 11.3245 1.37781C10.4505 1.37022 9.60851 1.7062 8.97984 2.31339L7.83317 3.45339", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx9( - "path", - { - d: "M9.33347 7.33332C9.04716 6.95057 8.68189 6.63387 8.26243 6.40469C7.84297 6.17552 7.37913 6.03924 6.90237 6.0051C6.4256 5.97095 5.94707 6.03974 5.49924 6.2068C5.0514 6.37386 4.64472 6.63527 4.3068 6.97332L2.3068 8.97332C1.69961 9.60199 1.36363 10.444 1.37122 11.318C1.37881 12.192 1.72938 13.028 2.3474 13.646C2.96543 14.2641 3.80147 14.6146 4.67546 14.6222C5.54945 14.6298 6.39146 14.2938 7.02013 13.6867L8.16013 12.5467", - stroke: "currentcolor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ) - ] - } -); -var link_icon_default = LinkIcon; +// src/components/insert-account-name/index.tsx +import { useContext, useState as useState4 } from "react"; +import { Box as Box6, Text as Text2 } from "@vtex/brand-ui"; // src/components/tooltip/index.tsx -import { useEffect as useEffect4, useRef as useRef2, useState as useState3 } from "react"; +import { useEffect as useEffect3, useRef as useRef2, useState as useState2 } from "react"; import { Box as Box5, Flex as Flex4 } from "@vtex/brand-ui"; // src/components/tooltip/styles.ts @@ -6677,10 +6366,10 @@ var labelStyle = (documentationSection) => { var styles_default5 = { tooltipContainer, caret, labelStyle }; // src/components/icons/caret.tsx -import { Icon as Icon4 } from "@vtex/brand-ui"; -import { jsx as jsx10 } from "react/jsx-runtime"; -var CaretIcon = (props) => /* @__PURE__ */ jsx10( - Icon4, +import { Icon as Icon3 } from "@vtex/brand-ui"; +import { jsx as jsx8 } from "react/jsx-runtime"; +var CaretIcon = (props) => /* @__PURE__ */ jsx8( + Icon3, { ...props, width: "9", @@ -6688,7 +6377,7 @@ var CaretIcon = (props) => /* @__PURE__ */ jsx10( viewBox: "0 0 9 4", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx10( + children: /* @__PURE__ */ jsx8( "path", { d: "M5.20686 0.707106L8.49976 4L0.499756 4L3.79265 0.707107C4.18317 0.316583 4.81634 0.316582 5.20686 0.707106Z", @@ -6700,7 +6389,7 @@ var CaretIcon = (props) => /* @__PURE__ */ jsx10( var caret_default = CaretIcon; // src/components/tooltip/index.tsx -import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime"; +import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime"; var Tooltip = ({ children, label: label4, @@ -6710,58 +6399,273 @@ var Tooltip = ({ open, wrapperSx }) => { - const box3 = useRef2(); - const [boxWidth, setBoxWidth] = useState3(0); - const [boxHeight, setBoxHeight] = useState3(0); - const [boxOffsetLeft, setBoxOffsetLeft] = useState3(0); - const [boxOffsetTop, setBoxOffsetTop] = useState3(0); - const [hovered, setHovered] = useState3(false); + const box2 = useRef2(); + const [boxWidth, setBoxWidth] = useState2(0); + const [boxHeight, setBoxHeight] = useState2(0); + const [boxOffsetLeft, setBoxOffsetLeft] = useState2(0); + const [boxOffsetTop, setBoxOffsetTop] = useState2(0); + const [hovered, setHovered] = useState2(false); const visible = Boolean(open) || hovered; + useEffect3(() => { + if (box2.current) { + setBoxWidth(box2.current.clientWidth); + setBoxHeight(box2.current.clientHeight); + setBoxOffsetLeft(box2.current.offsetLeft); + setBoxOffsetTop(box2.current.offsetTop); + } + }, [ + open, + box2.current, + box2.current?.clientWidth, + box2.current?.clientHeight, + box2.current?.offsetLeft, + box2.current?.offsetTop + ]); + return /* @__PURE__ */ jsxs6(Box5, { sx: wrapperSx, children: [ + /* @__PURE__ */ jsx9( + Box5, + { + ref: box2, + onMouseEnter: () => setHovered(true), + onMouseLeave: () => setHovered(false), + children + } + ), + visible && (isCard ?? true) && /* @__PURE__ */ jsxs6( + Flex4, + { + sx: styles_default5.tooltipContainer( + sx, + placement || "top", + boxWidth, + boxHeight, + boxOffsetLeft, + boxOffsetTop + ), + children: [ + /* @__PURE__ */ jsx9(caret_default, { sx: styles_default5.caret(placement || "top") }), + /* @__PURE__ */ jsx9(Box5, { sx: styles_default5.labelStyle(isCard ?? false), children: label4 }) + ] + } + ) + ] }); +}; +var tooltip_default = Tooltip; + +// src/utils/context/libraryContext.tsx +import { createContext, useCallback, useEffect as useEffect4, useMemo, useState as useState3 } from "react"; +import { SWRConfig } from "swr"; +import { jsx as jsx10 } from "react/jsx-runtime"; +var LibraryContext = createContext({ + headingItems: [], + setHeadingItems: () => void 0, + activeItem: { + item: "", + subItem: "" + }, + setActiveItem: () => void 0, + goToPreviousItem: () => void 0, + goToPreviousSubItem: () => void 0, + isEditorPreview: false, + sidebarSectionHidden: false, + activeSectionName: "", + activeSidebarElement: "", + sidebarDataMaster: {}, + setIsEditorPreview: () => void 0, + sidebarElementStatus: /* @__PURE__ */ new Map(), + // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any + setSidebarDataMaster: (_) => void 0, + setSidebarSectionHidden: () => void 0, + setActiveSectionName: () => void 0, + // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any + setActiveSidebarElement: (_) => void 0, + toggleSidebarElementStatus: () => void 0, + openSidebarElement: () => void 0, + closeSidebarElements: () => void 0, + setOpenSidebarElements: () => void 0, + sidebarSections: [], + setSidebarSections: () => void 0, + hamburguerSections: [], + setHamburguerSections: () => void 0, + locale: "en" +}); +var LibraryContextProvider = ({ children, ...props }) => { + const [headingItems, setHeadingItems] = useState3([]); + const [activeItem, setActiveItem] = useState3({ + item: "", + subItem: "" + }); + const [activeSectionName, setActiveSectionName] = useState3( + props.sectionSelected + ); + const [sidebarSectionHidden, setSidebarSectionHidden] = useState3(false); + const [activeSidebarElement, setActiveSidebarElement] = useState3(""); + const [sidebarElementStatus, setSidebarElementStatus] = useState3(/* @__PURE__ */ new Map()); + const [sidebarDataMaster, setSidebarDataMaster] = useState3(props.fallback); + const [isEditorPreview, setIsEditorPreview] = useState3(props.isPreview); + const [sidebarSections, setSidebarSections] = useState3(props.sections); + const [hamburguerSections, setHamburguerSections] = useState3( + props.hamburguerMenuSections + ); + const locale = props.locale ?? "en"; + const fallback = props.fallback; + useEffect4(() => { + setSidebarDataMaster(props.fallback); + }, [props.fallback]); useEffect4(() => { - if (box3.current) { - setBoxWidth(box3.current.clientWidth); - setBoxHeight(box3.current.clientHeight); - setBoxOffsetLeft(box3.current.offsetLeft); - setBoxOffsetTop(box3.current.offsetTop); + if (props.sectionSelected === "") + setSidebarSectionHidden(true); + else if (props.sectionSelected !== activeSectionName) + setActiveSectionName(props.sectionSelected); + }, [props.sectionSelected]); + const toggleSidebarElementStatus = useCallback( + (title9, currentlyOpen) => { + setSidebarElementStatus((prev) => { + const open = prev.has(title9) ? !prev.get(title9) : !currentlyOpen; + const next = new Map(prev); + next.set(title9, open); + return next; + }); + }, + [] + ); + const closeSidebarElements = useCallback((parentsArray) => { + const parentSet = new Set(parentsArray); + setSidebarElementStatus((prev) => { + let changed = false; + const next = new Map(prev); + next.forEach((value, key) => { + if (!parentSet.has(key) && value) { + next.set(key, false); + changed = true; + } + }); + return changed ? next : prev; + }); + }, []); + const openSidebarElement = useCallback((title9) => { + setSidebarElementStatus((prev) => { + if (prev.get(title9) === true) + return prev; + const next = new Map(prev); + next.set(title9, true); + return next; + }); + }, []); + const setOpenSidebarElements = useCallback((parentsArray) => { + if (parentsArray.length === 0) { + setSidebarElementStatus((prev) => prev.size === 0 ? prev : /* @__PURE__ */ new Map()); + return; + } + const parentSet = new Set(parentsArray); + setSidebarElementStatus((prev) => { + const next = new Map(prev); + let changed = false; + next.forEach((value, key) => { + if (!parentSet.has(key) && value) { + next.set(key, false); + changed = true; + } + }); + parentsArray.forEach((slug) => { + if (next.get(slug) !== true) { + next.set(slug, true); + changed = true; + } + }); + return changed ? next : prev; + }); + }, []); + const goToPreviousItem = useCallback(() => { + setActiveItem(({ item: item2, subItem }) => { + const index = headingItems.findIndex((heading) => heading.slug === item2); + if (index === -1) + return { item: item2, subItem }; + const previousItem = !index ? "" : headingItems[index - 1].slug; + const previousChildren = !index ? [] : headingItems[index - 1].children; + const previousSubItem = !previousChildren.length ? "" : previousChildren.slice(-1)[0].slug; + return { + item: previousItem, + subItem: previousSubItem + }; + }); + }, [headingItems]); + const goToPreviousSubItem = useCallback(() => { + setActiveItem(({ item: item2, subItem }) => { + const heading = headingItems.find((heading2) => heading2.slug === item2); + const index = heading?.children.findIndex( + (child) => child.slug === subItem + ); + if (!heading || index === -1) + return { item: item2, subItem }; + return { + item: item2, + subItem: !index ? "" : heading.children[index - 1].slug + }; + }); + }, [headingItems]); + const contextValue = useMemo( + () => ({ + headingItems, + activeItem, + setHeadingItems, + setActiveItem, + goToPreviousItem, + goToPreviousSubItem, + isEditorPreview, + setIsEditorPreview, + sidebarSectionHidden, + activeSectionName, + activeSidebarElement, + sidebarElementStatus, + setActiveSectionName, + setSidebarSectionHidden, + setActiveSidebarElement, + toggleSidebarElementStatus, + openSidebarElement, + closeSidebarElements, + setOpenSidebarElements, + sidebarDataMaster, + setSidebarDataMaster, + sidebarSections, + setSidebarSections, + hamburguerSections, + setHamburguerSections, + locale + }), + [ + headingItems, + activeItem, + goToPreviousItem, + goToPreviousSubItem, + isEditorPreview, + sidebarSectionHidden, + activeSectionName, + activeSidebarElement, + sidebarElementStatus, + toggleSidebarElementStatus, + openSidebarElement, + closeSidebarElements, + setOpenSidebarElements, + sidebarDataMaster, + sidebarSections, + hamburguerSections, + locale + ] + ); + return /* @__PURE__ */ jsx10(LibraryContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx10( + SWRConfig, + { + value: { + fallback: { + "/api/navigation": fallback ? fallback : [] + } + }, + children } - }, [ - open, - box3.current, - box3.current?.clientWidth, - box3.current?.clientHeight, - box3.current?.offsetLeft, - box3.current?.offsetTop - ]); - return /* @__PURE__ */ jsxs7(Box5, { sx: wrapperSx, children: [ - /* @__PURE__ */ jsx11( - Box5, - { - ref: box3, - onMouseEnter: () => setHovered(true), - onMouseLeave: () => setHovered(false), - children - } - ), - visible && (isCard ?? true) && /* @__PURE__ */ jsxs7( - Flex4, - { - sx: styles_default5.tooltipContainer( - sx, - placement || "top", - boxWidth, - boxHeight, - boxOffsetLeft, - boxOffsetTop - ), - children: [ - /* @__PURE__ */ jsx11(caret_default, { sx: styles_default5.caret(placement || "top") }), - /* @__PURE__ */ jsx11(Box5, { sx: styles_default5.labelStyle(isCard ?? false), children: label4 }) - ] - } - ) - ] }); + ) }); }; -var tooltip_default = Tooltip; +var libraryContext_default = LibraryContextProvider; // src/messages/en.json var en_default = { @@ -6770,6 +6674,7 @@ var en_default = { "feedback_section.positive": "Yes", "feedback_section.negative": "No", "feedback_section.edit": "Suggest Edits (GitHub)", + "feedback_modal.button": "Send feedback", "feedback_modal.title": "Send feedback", "feedback_modal.description": "Share suggestions, issues found, or ideas to improve our documentation.", "feedback_modal.success": "Thank you! Your feedback has been received.", @@ -6844,6 +6749,14 @@ var en_default = { "header.admin_tools": "Admin tools", "header.home_aria": "Go back to Home", "documentation_reading_time.text": "{minutes} min read", + "date_text.created": "Published on", + "date_text.updated": "Last updated on", + "article_pagination.previous": "Previous", + "article_pagination.next": "Next", + "insert_account_name.placeholder": "Account name", + "insert_account_name.button": "Go to documentation", + "insert_account_name.tooltip": "View documentation page on VTEX Admin", + "insert_account_name.error": "Account name is required", "ask_ai.copy": "Copy markdown", "ask_ai.view": "View markdown", "ask_ai.copied": "Copied", @@ -6892,6 +6805,7 @@ var es_default = { "feedback_section.positive": "S\xED", "feedback_section.negative": "No", "feedback_section.edit": "Sugerir cambios (GitHub)", + "feedback_modal.button": "Enviar feedback", "feedback_modal.title": "Enviar feedback", "feedback_modal.description": "Comparte sugerencias, problemas encontrados o ideas para mejorar nuestra documentaci\xF3n.", "feedback_modal.success": "\xA1Gracias! Hemos recibido tu feedback.", @@ -6968,6 +6882,14 @@ var es_default = { "copy_heading_link.copy": "Copiar enlace", "copy_heading_link.copied": "Copiado", "documentation_reading_time.text": "{minutes} min de lectura", + "date_text.created": "Publicado el", + "date_text.updated": "\xDAltima actualizaci\xF3n el", + "article_pagination.previous": "Anterior", + "article_pagination.next": "Siguiente", + "insert_account_name.placeholder": "Nombre de cuenta", + "insert_account_name.button": "Ir a la documentaci\xF3n", + "insert_account_name.tooltip": "Ver p\xE1gina de documentaci\xF3n en VTEX Admin", + "insert_account_name.error": "El nombre de cuenta es obligatorio", "ask_ai.copy": "Copiar markdown", "ask_ai.view": "Ver markdown", "ask_ai.copied": "Copiado", @@ -7016,6 +6938,7 @@ var pt_default = { "feedback_section.positive": "Sim", "feedback_section.negative": "N\xE3o", "feedback_section.edit": "Sugerir edi\xE7\xF5es (GitHub)", + "feedback_modal.button": "Enviar feedback", "feedback_modal.title": "Enviar feedback", "feedback_modal.description": "Compartilhe sugest\xF5es, problemas encontrados ou ideias para melhorar nossa documenta\xE7\xE3o.", "feedback_modal.success": "Obrigado! Seu feedback foi recebido.", @@ -7092,6 +7015,14 @@ var pt_default = { "copy_heading_link.copy": "Copiar link", "copy_heading_link.copied": "Copiado", "documentation_reading_time.text": "{minutes} min de leitura", + "date_text.created": "Publicado em", + "date_text.updated": "\xDAltima atualiza\xE7\xE3o em", + "article_pagination.previous": "Anterior", + "article_pagination.next": "Pr\xF3ximo", + "insert_account_name.placeholder": "Nome da conta", + "insert_account_name.button": "Acessar documenta\xE7\xE3o", + "insert_account_name.tooltip": "Ver p\xE1gina de documenta\xE7\xE3o no Admin VTEX", + "insert_account_name.error": "O nome da conta \xE9 obrigat\xF3rio", "ask_ai.copy": "Copiar markdown", "ask_ai.view": "Ver markdown", "ask_ai.copied": "Copiado", @@ -7144,6 +7075,230 @@ var getMessages = () => { }; var messages = getMessages(); +// src/components/insert-account-name/styles.ts +var wrapper = { + display: "flex", + flexDirection: "column", + gap: "4px", + my: "16px" +}; +var container3 = { + display: "flex", + flexDirection: "row", + alignItems: "center", + gap: "8px" +}; +var input = { + width: "280px", + height: "40px", + padding: "0 12px", + border: "1px solid #ccc", + borderRadius: "4px", + fontSize: "14px", + boxSizing: "border-box", + transition: "border-color 0.3s ease-out" +}; +var inputError = { + borderColor: "#E31C58", + outline: "none" +}; +var button = { + height: "40px", + padding: "0 16px", + border: "1px solid #ccc", + borderRadius: "4px", + fontSize: "14px", + background: "transparent", + cursor: "pointer", + whiteSpace: "nowrap", + boxSizing: "border-box", + transition: "all 0.3s ease-out" +}; +var buttonHover = { + background: "#F8F7FC", + borderColor: "#5E6E84", + color: "#E31C58" +}; +var errorText = { + fontSize: "12px", + color: "#E31C58" +}; +var styles_default6 = { + wrapper, + container: container3, + input, + inputError, + button, + buttonHover, + errorText +}; + +// src/components/insert-account-name/index.tsx +import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime"; +var InsertAccountName = ({ id }) => { + const { locale } = useContext(LibraryContext); + const [accountName, setAccountName] = useState4(""); + const [showError, setShowError] = useState4(false); + const [hovered, setHovered] = useState4(false); + const handleNavigate = () => { + if (!accountName.trim()) { + setShowError(true); + return; + } + window.open( + `https://${accountName.trim()}.myvtex.com/admin/docs/${id}`, + "_blank" + ); + }; + const handleChange = (e) => { + setAccountName(e.target.value); + if (showError) + setShowError(false); + }; + return /* @__PURE__ */ jsxs7(Box6, { sx: styles_default6.wrapper, children: [ + /* @__PURE__ */ jsxs7(Box6, { sx: styles_default6.container, children: [ + /* @__PURE__ */ jsx11( + "input", + { + placeholder: messages[locale]["insert_account_name.placeholder"] || "Account name", + value: accountName, + onChange: handleChange, + onKeyDown: (e) => { + if (e.key === "Enter") + handleNavigate(); + }, + style: { + ...styles_default6.input, + ...showError ? styles_default6.inputError : {} + } + } + ), + /* @__PURE__ */ jsx11( + tooltip_default, + { + label: messages[locale]["insert_account_name.tooltip"] || "View documentation page on VTEX Admin", + placement: "top", + children: /* @__PURE__ */ jsx11( + "button", + { + onClick: handleNavigate, + onMouseEnter: () => setHovered(true), + onMouseLeave: () => setHovered(false), + style: { + ...styles_default6.button, + ...hovered ? styles_default6.buttonHover : {} + }, + children: messages[locale]["insert_account_name.button"] || "Go to documentation" + } + ) + } + ) + ] }), + showError && /* @__PURE__ */ jsx11(Text2, { sx: styles_default6.errorText, children: messages[locale]["insert_account_name.error"] || "Account name is required" }) + ] }); +}; +var insert_account_name_default = InsertAccountName; + +// src/utils/string-utils.ts +var removeHTML = (str) => str.replace(/<\/?[^>]+>/g, ""); +var SYMBOL_RUN_THRESHOLD = 3; +var stripMarkdownForSnippet = (str) => { + if (!str) + return ""; + let cleaned = str.replace(/```[\s\S]*?```/g, "").replace(/```[^\n]*(?:\n[\s\S]*)?$/g, "").replace(/!\[[^\]]*\]\([^)]*\)/g, "").replace(/\[([^\]]+)\]\([^)]+\)/g, "$1").replace(/!?\[[^\]]*\]\([^)]*$/g, "").replace(/!?\[[^\]]*$/g, "").replace(/^#{1,6}\s+/gm, "").replace(/\s#{1,6}\s+/g, " ").replace(/\*\*(.+?)\*\*/g, "$1").replace(/__(.+?)__/g, "$1").replace(/\*(.+?)\*/g, "$1").replace(/_(.+?)_/g, "$1").replace(/`([^`]+)`/g, "$1").replace(/^(\*{3,}|-{3,}|_{3,})$/gm, "").replace(/^>\s+/gm, "").replace(/^\s*\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)*\|?\s*$/gm, "").replace(/\s*\|\s*/g, " ").replace(new RegExp(`-{${SYMBOL_RUN_THRESHOLD},}`, "g"), " ").replace(new RegExp(`={${SYMBOL_RUN_THRESHOLD},}`, "g"), " ").replace(new RegExp(`\\|{${SYMBOL_RUN_THRESHOLD},}`, "g"), " ").replace(/\s+/g, " ").trim(); + if (cleaned.length > 0 && /^[a-zà-ÿ]/.test(cleaned)) { + const firstSpaceIndex = cleaned.indexOf(" "); + if (firstSpaceIndex > 0 && firstSpaceIndex < 50) { + cleaned = cleaned.substring(firstSpaceIndex + 1).trim(); + } + } + return cleaned; +}; +var slugify = (str) => { + return str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^\w\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-").trim(); +}; +var childrenToString = (children) => { + if (!children) + return ""; + else if (Array.isArray(children)) + return children.map((child) => { + if (typeof child === "string") + return child; + return childrenToString(child.props.children); + }).join(""); + else { + if (typeof children === "string") + return children; + return childrenToString(children["props"]["children"]); + } +}; + +// src/utils/mermaidInit.ts +import mermaid from "mermaid"; +var mermaidInit = () => { + mermaid.initialize({ + theme: "base", + themeVariables: { + primaryColor: "#FFFFFF", + primaryTextColor: "#142032", + primaryBorderColor: "#A1AAB7", + labelBoxBorderColor: "#E31C58", + labelTextColor: "#E31C58", + labelBoxBkgColor: "#FFF3F6", + lineColor: "#A1AAB7", + mainBkg: "#F8F7FC" + } + }); +}; +var mermaidInit_default = mermaidInit; + +// src/components/copy-heading-link/index.tsx +import { + useCallback as useCallback2, + useContext as useContext2, + useEffect as useEffect5, + useRef as useRef3, + useState as useState5 +} from "react"; +import { Box as Box7 } from "@vtex/brand-ui"; +import copy from "copy-text-to-clipboard"; + +// src/components/icons/link-icon.tsx +import { Icon as Icon4 } from "@vtex/brand-ui"; +import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime"; +var LinkIcon = (props) => /* @__PURE__ */ jsxs8( + Icon4, + { + ...props, + viewBox: "0 0 16 16", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx12( + "path", + { + d: "M6.6665 8.66672C6.95281 9.04948 7.31808 9.36618 7.73754 9.59535C8.157 9.82452 8.62084 9.9608 9.0976 9.99495C9.57437 10.0291 10.0529 9.9603 10.5007 9.79325C10.9486 9.62619 11.3552 9.36477 11.6932 9.02672L13.6932 7.02672C14.3004 6.39805 14.6363 5.55604 14.6288 4.68205C14.6212 3.80806 14.2706 2.97202 13.6526 2.354C13.0345 1.73597 12.1985 1.38541 11.3245 1.37781C10.4505 1.37022 9.60851 1.7062 8.97984 2.31339L7.83317 3.45339", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx12( + "path", + { + d: "M9.33347 7.33332C9.04716 6.95057 8.68189 6.63387 8.26243 6.40469C7.84297 6.17552 7.37913 6.03924 6.90237 6.0051C6.4256 5.97095 5.94707 6.03974 5.49924 6.2068C5.0514 6.37386 4.64472 6.63527 4.3068 6.97332L2.3068 8.97332C1.69961 9.60199 1.36363 10.444 1.37122 11.318C1.37881 12.192 1.72938 13.028 2.3474 13.646C2.96543 14.2641 3.80147 14.6146 4.67546 14.6222C5.54945 14.6298 6.39146 14.2938 7.02013 13.6867L8.16013 12.5467", + stroke: "currentcolor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] + } +); +var link_icon_default = LinkIcon; + // src/components/copy-heading-link/styles.ts var muted = "#A1AAB7"; var mutedHover = "#5E6E84"; @@ -7154,7 +7309,7 @@ var tooltipWrapper = { position: "relative", lineHeight: 0 }; -var button = { +var button2 = { display: "inline-flex", alignItems: "center", justifyContent: "center", @@ -7179,13 +7334,13 @@ var button = { } }; var buttonCopied = { - ...button, + ...button2, color: mutedHover }; -var styles_default6 = { tooltipWrapper, button, buttonCopied }; +var styles_default7 = { tooltipWrapper, button: button2, buttonCopied }; // src/components/copy-heading-link/index.tsx -import { jsx as jsx12 } from "react/jsx-runtime"; +import { jsx as jsx13 } from "react/jsx-runtime"; var getHeadingUrl = (slug = "") => { const { origin, pathname, search: search2 } = window.location; const pageUrl = `${origin}${pathname}${search2}`; @@ -7199,8 +7354,8 @@ var CopyHeadingLink = ({ size = 16, sx = {} }) => { - const { locale } = useContext(LibraryContext); - const [copied, setCopied] = useState4(false); + const { locale } = useContext2(LibraryContext); + const [copied, setCopied] = useState5(false); const copyTimeout = useRef3(void 0); const copyLabel = messages[locale]["heading_link.copy"] || "Copy link"; const copiedLabel = messages[locale]["heading_link.copied"] || "Copied"; @@ -7219,24 +7374,24 @@ var CopyHeadingLink = ({ [slug] ); useEffect5(() => () => window.clearTimeout(copyTimeout.current), []); - return /* @__PURE__ */ jsx12( + return /* @__PURE__ */ jsx13( tooltip_default, { label: label4, placement: "top", open: copied, - wrapperSx: styles_default6.tooltipWrapper, - children: /* @__PURE__ */ jsx12( - Box6, + wrapperSx: styles_default7.tooltipWrapper, + children: /* @__PURE__ */ jsx13( + Box7, { as: "button", type: "button", "data-copy-heading-link": true, - sx: { ...copied ? styles_default6.buttonCopied : styles_default6.button, ...sx }, + sx: { ...copied ? styles_default7.buttonCopied : styles_default7.button, ...sx }, "aria-label": label4, onClick: handleCopy, onMouseDown: (event) => event.preventDefault(), - children: /* @__PURE__ */ jsx12(link_icon_default, { size }) + children: /* @__PURE__ */ jsx13(link_icon_default, { size }) } ) } @@ -7245,7 +7400,7 @@ var CopyHeadingLink = ({ var copy_heading_link_default = CopyHeadingLink; // src/lib/markdown-renderer/styles.module.css -var styles_default7 = { +var styles_default8 = { img: "styles_img", heading: "styles_heading", code: "styles_code", @@ -7260,7 +7415,7 @@ var styles_default7 = { }; // src/lib/markdown-renderer/components.tsx -import { Fragment, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime"; +import { Fragment, jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime"; mermaidInit_default(); var ObservableHeading = ({ level, @@ -7268,15 +7423,15 @@ var ObservableHeading = ({ onLeaveView, ...headingProps }) => { - const [y, setY] = useState5(Infinity); + const [y, setY] = useState6(Infinity); const { children, ...restHeadingProps } = headingProps; const toSlugify = childrenToString(children); const slug = slugify(toSlugify); - const headingContent = /* @__PURE__ */ jsxs8(Fragment, { children: [ + const headingContent = /* @__PURE__ */ jsxs9(Fragment, { children: [ children, - /* @__PURE__ */ jsx13(copy_heading_link_default, { slug, size: level === 2 ? 18 : 16 }) + /* @__PURE__ */ jsx14(copy_heading_link_default, { slug, size: level === 2 ? 18 : 16 }) ] }); - return /* @__PURE__ */ jsx13( + return /* @__PURE__ */ jsx14( InView, { threshold: 0.5, @@ -7289,7 +7444,7 @@ var ObservableHeading = ({ onLeaveView(slug, entry, y); setY(entry.boundingClientRect.y); }, - children: level === 2 ? /* @__PURE__ */ jsx13("h2", { id: slug, className: styles_default7.heading, ...restHeadingProps, children: headingContent }) : /* @__PURE__ */ jsx13("h3", { id: slug, className: styles_default7.heading, ...restHeadingProps, children: headingContent }) + children: level === 2 ? /* @__PURE__ */ jsx14("h2", { id: slug, className: styles_default8.heading, ...restHeadingProps, children: headingContent }) : /* @__PURE__ */ jsx14("h3", { id: slug, className: styles_default8.heading, ...restHeadingProps, children: headingContent }) } ); }; @@ -7299,17 +7454,17 @@ var calloutColors = { warning: "#FFB100", success: "#80BE80" }; -var CalloutIcon = ({ type }) => /* @__PURE__ */ jsxs8( +var CalloutIcon = ({ type }) => /* @__PURE__ */ jsxs9( "svg", { - className: styles_default7.blockquoteIcon, + className: styles_default8.blockquoteIcon, width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx13( + /* @__PURE__ */ jsx14( "circle", { cx: "10", @@ -7318,7 +7473,7 @@ var CalloutIcon = ({ type }) => /* @__PURE__ */ jsxs8( fill: calloutColors[type] ?? calloutColors.info } ), - type === "success" ? /* @__PURE__ */ jsx13( + type === "success" ? /* @__PURE__ */ jsx14( "path", { d: "M5.5 10.3L8.3 13L14.5 6.8", @@ -7327,25 +7482,25 @@ var CalloutIcon = ({ type }) => /* @__PURE__ */ jsxs8( strokeLinecap: "round", strokeLinejoin: "round" } - ) : type === "info" ? /* @__PURE__ */ jsxs8(Fragment, { children: [ - /* @__PURE__ */ jsx13("rect", { x: "9.1", y: "5", width: "1.8", height: "1.8", rx: "0.9", fill: "white" }), - /* @__PURE__ */ jsx13("rect", { x: "9.1", y: "8.2", width: "1.8", height: "6.8", rx: "0.9", fill: "white" }) - ] }) : /* @__PURE__ */ jsxs8(Fragment, { children: [ - /* @__PURE__ */ jsx13("rect", { x: "9.1", y: "5", width: "1.8", height: "7", rx: "0.9", fill: "white" }), - /* @__PURE__ */ jsx13("rect", { x: "9.1", y: "13.5", width: "1.8", height: "1.8", rx: "0.9", fill: "white" }) + ) : type === "info" ? /* @__PURE__ */ jsxs9(Fragment, { children: [ + /* @__PURE__ */ jsx14("rect", { x: "9.1", y: "5", width: "1.8", height: "1.8", rx: "0.9", fill: "white" }), + /* @__PURE__ */ jsx14("rect", { x: "9.1", y: "8.2", width: "1.8", height: "6.8", rx: "0.9", fill: "white" }) + ] }) : /* @__PURE__ */ jsxs9(Fragment, { children: [ + /* @__PURE__ */ jsx14("rect", { x: "9.1", y: "5", width: "1.8", height: "7", rx: "0.9", fill: "white" }), + /* @__PURE__ */ jsx14("rect", { x: "9.1", y: "13.5", width: "1.8", height: "1.8", rx: "0.9", fill: "white" }) ] }) ] } ); -var Callout = ({ node, icon: icon5, ...props }) => { - const blockquoteType = icon5 ? icon5 : "info"; - return /* @__PURE__ */ jsxs8( +var Callout = ({ node, icon: icon6, ...props }) => { + const blockquoteType = icon6 ? icon6 : "info"; + return /* @__PURE__ */ jsxs9( "blockquote", { - className: `${styles_default7.blockquote} ${blockquoteType === "info" ? styles_default7.blockquoteInfo : blockquoteType === "danger" ? styles_default7.blockquoteDanger : blockquoteType === "warning" ? styles_default7.blockquoteWarning : blockquoteType === "success" ? styles_default7.blockquoteSuccess : ""}`, + className: `${styles_default8.blockquote} ${blockquoteType === "info" ? styles_default8.blockquoteInfo : blockquoteType === "danger" ? styles_default8.blockquoteDanger : blockquoteType === "warning" ? styles_default8.blockquoteWarning : blockquoteType === "success" ? styles_default8.blockquoteSuccess : ""}`, children: [ - /* @__PURE__ */ jsx13(CalloutIcon, { type: blockquoteType }), - /* @__PURE__ */ jsx13("div", { ...props }) + /* @__PURE__ */ jsx14(CalloutIcon, { type: blockquoteType }), + /* @__PURE__ */ jsx14("div", { ...props }) ] } ); @@ -7353,9 +7508,9 @@ var Callout = ({ node, icon: icon5, ...props }) => { var MermaidDiagram = ({ node, ...props }) => { const viewerRef = useRef4(null); const ref = useRef4(); - const [diagram, setDiagram] = useState5(""); - const [width, setWidth] = useState5(0); - const [height, setHeight] = useState5(0); + const [diagram, setDiagram] = useState6(""); + const [width, setWidth] = useState6(0); + const [height, setHeight] = useState6(0); useEffect6(() => { const resizeObserver = new ResizeObserver(() => { if (!ref.current) @@ -7373,7 +7528,7 @@ var MermaidDiagram = ({ node, ...props }) => { if (ref.current) resizeObserver.observe(ref.current); }, []); - return /* @__PURE__ */ jsx13(Box7, { ref, className: styles_default7.svgContainer, children: /* @__PURE__ */ jsx13( + return /* @__PURE__ */ jsx14(Box8, { ref, className: styles_default8.svgContainer, children: /* @__PURE__ */ jsx14( UncontrolledReactSVGPanZoom, { ref: viewerRef, @@ -7388,20 +7543,20 @@ var MermaidDiagram = ({ node, ...props }) => { background: "rgba(0, 0, 0, 0)", detectAutoPan: false, detectWheel: false, - children: /* @__PURE__ */ jsx13("svg", { width, height, children: parse(diagram) }) + children: /* @__PURE__ */ jsx14("svg", { width, height, children: parse(diagram) }) } ) }); }; var ImageComponent = ({ node, ...props }) => { - const [srcHasError, setSrcHasError] = useState5(false); - const { locale } = useContext2(LibraryContext); + const [srcHasError, setSrcHasError] = useState6(false); + const { locale } = useContext3(LibraryContext); const regularImg = ( // eslint-disable-next-line @next/next/no-img-element - /* @__PURE__ */ jsx13("img", { src: props.src, alt: props.alt, onError: () => setSrcHasError(true) }) + /* @__PURE__ */ jsx14("img", { src: props.src, alt: props.alt, onError: () => setSrcHasError(true) }) ); - const errorMessage = /* @__PURE__ */ jsxs8("blockquote", { className: `${styles_default7.blockquote} ${styles_default7.blockquoteWarning}`, children: [ - /* @__PURE__ */ jsx13(CalloutIcon, { type: "warning" }), - /* @__PURE__ */ jsxs8("div", { children: [ + const errorMessage = /* @__PURE__ */ jsxs9("blockquote", { className: `${styles_default8.blockquote} ${styles_default8.blockquoteWarning}`, children: [ + /* @__PURE__ */ jsx14(CalloutIcon, { type: "warning" }), + /* @__PURE__ */ jsxs9("div", { children: [ messages[locale]["image.error_loading"], " ", props.src @@ -7414,7 +7569,7 @@ var ImageComponent = ({ node, ...props }) => { console.log(`Error parsing`, error); return errorMessage; } - return !srcHasError ? /* @__PURE__ */ jsx13(LightBox, { children: regularImg }) : errorMessage; + return !srcHasError ? /* @__PURE__ */ jsx14(LightBox, { children: regularImg }) : errorMessage; }; var components_default = { CH, @@ -7422,27 +7577,28 @@ var components_default = { WhatsNextCard: whats_next_card_default, YoutubeFrame: youtube_frame_default, Steps: steps_default, - Flex: ({ node, ...props }) => /* @__PURE__ */ jsx13(Flex5, { className: styles_default7.flexWrap, ...props }), - table: ({ node, ...props }) => /* @__PURE__ */ jsx13("table", { ...props }), - td: ({ node, ...props }) => /* @__PURE__ */ jsx13("td", { ...props }), + InsertAccountName: insert_account_name_default, + Flex: ({ node, ...props }) => /* @__PURE__ */ jsx14(Flex5, { className: styles_default8.flexWrap, ...props }), + table: ({ node, ...props }) => /* @__PURE__ */ jsx14("table", { ...props }), + td: ({ node, ...props }) => /* @__PURE__ */ jsx14("td", { ...props }), img: ImageComponent, text: ({ node, ...props }) => { - return /* @__PURE__ */ jsx13(Box7, { sx: { marginBlock: "1em" }, ...props }); + return /* @__PURE__ */ jsx14(Box8, { sx: { marginBlock: "1em" }, ...props }); }, blockquote: ({ ...props }) => { - return /* @__PURE__ */ jsx13(Callout, { ...props }); + return /* @__PURE__ */ jsx14(Callout, { ...props }); }, code: ({ node, ...props }) => { - return /* @__PURE__ */ jsx13("code", { className: styles_default7.code, ...props }); + return /* @__PURE__ */ jsx14("code", { className: styles_default8.code, ...props }); }, pre: ({ ...props }) => { if (props.className && props.className === "mermaid") - return /* @__PURE__ */ jsx13(MermaidDiagram, { ...props }); - return /* @__PURE__ */ jsx13("pre", { className: styles_default7.pre, ...props }); + return /* @__PURE__ */ jsx14(MermaidDiagram, { ...props }); + return /* @__PURE__ */ jsx14("pre", { className: styles_default8.pre, ...props }); }, h2: ({ node, ...props }) => { - const { activeItem, setActiveItem, goToPreviousItem } = useContext2(LibraryContext); - return /* @__PURE__ */ jsx13( + const { activeItem, setActiveItem, goToPreviousItem } = useContext3(LibraryContext); + return /* @__PURE__ */ jsx14( ObservableHeading, { level: 2, @@ -7462,8 +7618,8 @@ var components_default = { ); }, h3: ({ node, ...props }) => { - const { activeItem, setActiveItem, goToPreviousSubItem } = useContext2(LibraryContext); - return /* @__PURE__ */ jsx13( + const { activeItem, setActiveItem, goToPreviousSubItem } = useContext3(LibraryContext); + return /* @__PURE__ */ jsx14( ObservableHeading, { level: 3, @@ -7485,7 +7641,7 @@ var components_default = { }; // src/lib/markdown-renderer/MarkdownRenderer.tsx -import { jsx as jsx14 } from "react/jsx-runtime"; +import { jsx as jsx15 } from "react/jsx-runtime"; var MDXRemote2 = MDXRemote; var MarkdownRenderer = ({ serialized, @@ -7493,7 +7649,7 @@ var MarkdownRenderer = ({ scope }) => { if (components_default && scope) { - return /* @__PURE__ */ jsx14(Box8, { "data-markdown-renderer": true, children: /* @__PURE__ */ jsx14( + return /* @__PURE__ */ jsx15(Box9, { "data-markdown-renderer": true, children: /* @__PURE__ */ jsx15( MDXRemote2, { components: { ...components_default, ...customComponents }, @@ -7503,15 +7659,15 @@ var MarkdownRenderer = ({ } ) }); } - return /* @__PURE__ */ jsx14(Box8, { "data-markdown-renderer": true, children: /* @__PURE__ */ jsx14(MDXRemote2, { components: components_default, lazy: true, ...serialized }) }); + return /* @__PURE__ */ jsx15(Box9, { "data-markdown-renderer": true, children: /* @__PURE__ */ jsx15(MDXRemote2, { components: components_default, lazy: true, ...serialized }) }); }; var MarkdownRenderer_default = MarkdownRenderer; // src/lib/table-of-contents/TableOfContents.tsx -import { useContext as useContext3, useEffect as useEffect7 } from "react"; +import { useContext as useContext4, useEffect as useEffect7 } from "react"; import Link3 from "next/link.js"; import { useRouter } from "next/router.js"; -import { Box as Box9, Text as Text2 } from "@vtex/brand-ui"; +import { Box as Box10, Text as Text3 } from "@vtex/brand-ui"; import AnimateHeight from "react-animate-height"; // src/lib/table-of-contents/styles.ts @@ -7557,10 +7713,10 @@ var subItemsContainer = { ml: "16px", borderLeft: "1px solid #E7E9EE" }; -var styles_default8 = { tocTitle, itemsContainer, item, subItemsContainer, headings }; +var styles_default9 = { tocTitle, itemsContainer, item, subItemsContainer, headings }; // src/lib/table-of-contents/TableOfContents.tsx -import { jsx as jsx15, jsxs as jsxs9 } from "react/jsx-runtime"; +import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime"; var MARKDOWN_HEADINGS_SELECTOR = [ "[data-markdown-renderer] h2", "[data-markdown-renderer] h3", @@ -7592,7 +7748,7 @@ var collectHeadingsFromDom = () => { }; var TableOfContents = ({ headingList, children }) => { const router = useRouter(); - const { headingItems, activeItem, setHeadingItems, setActiveItem, locale } = useContext3(LibraryContext); + const { headingItems, activeItem, setHeadingItems, setActiveItem, locale } = useContext4(LibraryContext); useEffect7(() => { if (headingList?.length) { setHeadingItems(headingList); @@ -7621,7 +7777,7 @@ var TableOfContents = ({ headingList, children }) => { level, active }) => { - return /* @__PURE__ */ jsx15( + return /* @__PURE__ */ jsx16( Link3, { href: `#${slug}`, @@ -7631,14 +7787,14 @@ var TableOfContents = ({ headingList, children }) => { subItem: level === 1 ? "" : slug })); }, - children: /* @__PURE__ */ jsx15(Text2, { sx: styles_default8.item(level, active), children: title9 }) + children: /* @__PURE__ */ jsx16(Text3, { sx: styles_default9.item(level, active), children: title9 }) } ); }; - return /* @__PURE__ */ jsxs9(Box9, { sx: styles_default8.itemsContainer, "data-cy": "table-of-contents", children: [ - items.length > 0 && /* @__PURE__ */ jsx15(Text2, { sx: styles_default8.tocTitle, children: messages[locale]["on_this_page.title"] }), - /* @__PURE__ */ jsx15(Box9, { sx: styles_default8.headings, children: items.map((item2) => /* @__PURE__ */ jsxs9(Box9, { children: [ - /* @__PURE__ */ jsx15( + return /* @__PURE__ */ jsxs10(Box10, { sx: styles_default9.itemsContainer, "data-cy": "table-of-contents", children: [ + items.length > 0 && /* @__PURE__ */ jsx16(Text3, { sx: styles_default9.tocTitle, children: messages[locale]["on_this_page.title"] }), + /* @__PURE__ */ jsx16(Box10, { sx: styles_default9.headings, children: items.map((item2) => /* @__PURE__ */ jsxs10(Box10, { children: [ + /* @__PURE__ */ jsx16( Item, { title: item2.title, @@ -7647,12 +7803,12 @@ var TableOfContents = ({ headingList, children }) => { active: item2.slug === activeItem.item } ), - /* @__PURE__ */ jsx15( + /* @__PURE__ */ jsx16( AnimateHeight, { duration: 300, height: item2.slug === activeItem.item ? "auto" : 0, - children: /* @__PURE__ */ jsx15(Box9, { sx: styles_default8.subItemsContainer, children: item2.children.map((subItem) => /* @__PURE__ */ jsx15( + children: /* @__PURE__ */ jsx16(Box10, { sx: styles_default9.subItemsContainer, children: item2.children.map((subItem) => /* @__PURE__ */ jsx16( Item, { title: subItem.title, @@ -7671,14 +7827,14 @@ var TableOfContents = ({ headingList, children }) => { var TableOfContents_default = TableOfContents; // src/lib/on-this-page/OnThisPage.tsx -import { useContext as useContext4, useState as useState6 } from "react"; -import { Box as Box10, Flex as Flex6, Text as Text3 } from "@vtex/brand-ui"; +import { useContext as useContext5, useState as useState7 } from "react"; +import { Box as Box11, Flex as Flex6, Text as Text4 } from "@vtex/brand-ui"; import AnimateHeight2 from "react-animate-height"; // src/components/icons/menu-icon.tsx import { Icon as Icon5 } from "@vtex/brand-ui"; -import { jsx as jsx16, jsxs as jsxs10 } from "react/jsx-runtime"; -var MenuIcon = (props) => /* @__PURE__ */ jsxs10( +import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime"; +var MenuIcon = (props) => /* @__PURE__ */ jsxs11( Icon5, { ...props, @@ -7688,7 +7844,7 @@ var MenuIcon = (props) => /* @__PURE__ */ jsxs10( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx16( + /* @__PURE__ */ jsx17( "path", { d: "M10.002 12H17.501", @@ -7698,7 +7854,7 @@ var MenuIcon = (props) => /* @__PURE__ */ jsxs10( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx16( + /* @__PURE__ */ jsx17( "path", { d: "M10.002 15.484H17.501", @@ -7708,7 +7864,7 @@ var MenuIcon = (props) => /* @__PURE__ */ jsxs10( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx16( + /* @__PURE__ */ jsx17( "path", { d: "M10.002 8.48401H17.501", @@ -7718,7 +7874,7 @@ var MenuIcon = (props) => /* @__PURE__ */ jsxs10( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx16( + /* @__PURE__ */ jsx17( "path", { d: "M7.54978 8.434C7.52178 8.434 7.49978 8.457 7.49978 8.485C7.49978 8.513 7.52278 8.535 7.55078 8.535C7.57878 8.535 7.60178 8.512 7.60178 8.485C7.60078 8.457 7.57778 8.434 7.54978 8.434", @@ -7728,7 +7884,7 @@ var MenuIcon = (props) => /* @__PURE__ */ jsxs10( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx16( + /* @__PURE__ */ jsx17( "path", { d: "M7.54978 11.949C7.52178 11.949 7.49978 11.972 7.49978 12C7.49978 12.028 7.52278 12.051 7.55078 12.051C7.57878 12.051 7.60178 12.028 7.60178 12C7.60178 11.972 7.57778 11.949 7.54978 11.949", @@ -7738,7 +7894,7 @@ var MenuIcon = (props) => /* @__PURE__ */ jsxs10( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx16( + /* @__PURE__ */ jsx17( "path", { d: "M7.54978 15.434C7.52178 15.434 7.49978 15.457 7.49978 15.485C7.49978 15.513 7.52278 15.535 7.55078 15.535C7.57878 15.535 7.60178 15.512 7.60178 15.485C7.60078 15.457 7.57778 15.434 7.54978 15.434", @@ -7748,7 +7904,7 @@ var MenuIcon = (props) => /* @__PURE__ */ jsxs10( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx16( + /* @__PURE__ */ jsx17( "path", { fillRule: "evenodd", @@ -7766,7 +7922,7 @@ var MenuIcon = (props) => /* @__PURE__ */ jsxs10( var menu_icon_default = MenuIcon; // src/lib/on-this-page/styles.ts -var container3 = { +var container4 = { right: "20px", bottom: "20px", position: "fixed", @@ -7821,8 +7977,8 @@ var title2 = (open) => ({ transition: "all 0.3s ease-in-out", transitionDelay: open ? "0s" : "0.3s" }); -var styles_default9 = { - container: container3, +var styles_default10 = { + container: container4, contentContainer, onThisPageTitle, buttonContainer, @@ -7831,29 +7987,29 @@ var styles_default9 = { }; // src/lib/on-this-page/OnThisPage.tsx -import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime"; +import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime"; var OnThisPage = ({ headingList }) => { - const { locale } = useContext4(LibraryContext); - const [isOpen, setIsOpen] = useState6(false); + const { locale } = useContext5(LibraryContext); + const [isOpen, setIsOpen] = useState7(false); const title9 = messages[locale]["on_this_page.title"]; - return /* @__PURE__ */ jsxs11(Flex6, { sx: styles_default9.container, children: [ - /* @__PURE__ */ jsx17( + return /* @__PURE__ */ jsxs12(Flex6, { sx: styles_default10.container, children: [ + /* @__PURE__ */ jsx18( AnimateHeight2, { duration: 300, delay: isOpen ? 300 : 0, height: isOpen ? "auto" : 0, - children: /* @__PURE__ */ jsx17(Box10, { sx: styles_default9.contentContainer, children: /* @__PURE__ */ jsx17(Box10, { children: /* @__PURE__ */ jsx17(TableOfContents_default, { headingList }) }) }) + children: /* @__PURE__ */ jsx18(Box11, { sx: styles_default10.contentContainer, children: /* @__PURE__ */ jsx18(Box11, { children: /* @__PURE__ */ jsx18(TableOfContents_default, { headingList }) }) }) } ), - /* @__PURE__ */ jsxs11( + /* @__PURE__ */ jsxs12( Flex6, { - sx: styles_default9.buttonContainer, + sx: styles_default10.buttonContainer, onClick: () => setIsOpen((open) => !open), children: [ - /* @__PURE__ */ jsx17(Text3, { sx: styles_default9.title(isOpen), children: title9 }), - /* @__PURE__ */ jsx17(Box10, { sx: styles_default9.iconContainer, children: !isOpen ? /* @__PURE__ */ jsx17(menu_icon_default, { size: 32 }) : /* @__PURE__ */ jsx17(close_icon_default, { size: 32 }) }) + /* @__PURE__ */ jsx18(Text4, { sx: styles_default10.title(isOpen), children: title9 }), + /* @__PURE__ */ jsx18(Box11, { sx: styles_default10.iconContainer, children: !isOpen ? /* @__PURE__ */ jsx18(menu_icon_default, { size: 32 }) : /* @__PURE__ */ jsx18(close_icon_default, { size: 32 }) }) ] } ) @@ -7862,11 +8018,11 @@ var OnThisPage = ({ headingList }) => { var OnThisPage_default = OnThisPage; // src/lib/contributors/Contributors.tsx -import { useContext as useContext5, useEffect as useEffect8, useRef as useRef5, useState as useState7 } from "react"; -import { Box as Box11, Flex as Flex7, Grid, IconCaret as IconCaret2, Text as Text4 } from "@vtex/brand-ui"; +import { useContext as useContext6, useEffect as useEffect8, useRef as useRef5, useState as useState8 } from "react"; +import { Box as Box12, Flex as Flex7, Grid, IconCaret as IconCaret2, Text as Text5 } from "@vtex/brand-ui"; // src/lib/contributors/styles.ts -var container4 = { +var container5 = { mb: "32px", flexDirection: "column", alignItems: ["initial", "center", "center", "center", "initial"] @@ -7932,8 +8088,8 @@ var collapseButton = { color: "#000711" } }; -var styles_default10 = { - container: container4, +var styles_default11 = { + container: container5, titleContainer, title: title3, count, @@ -7943,14 +8099,14 @@ var styles_default10 = { }; // src/lib/contributors/Contributors.tsx -import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime"; +import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime"; var Contributors = ({ contributors }) => { - const { locale } = useContext5(LibraryContext); - const [showAll, setShowAll] = useState7(false); - const [pageWidth, setPageWidth] = useState7(0); - const [photosPerRow, setPhotosPerRow] = useState7(0); - const [minRows, setMinRows] = useState7(0); - const [isClient, setIsClient] = useState7(false); + const { locale } = useContext6(LibraryContext); + const [showAll, setShowAll] = useState8(false); + const [pageWidth, setPageWidth] = useState8(0); + const [photosPerRow, setPhotosPerRow] = useState8(0); + const [minRows, setMinRows] = useState8(0); + const [isClient, setIsClient] = useState8(false); const photosContainer2 = useRef5(null); useEffect8(() => { setIsClient(true); @@ -7972,18 +8128,18 @@ var Contributors = ({ contributors }) => { }, [photosPerRow]); const visibleRows = photosPerRow ? showAll ? Math.ceil(contributors.length / photosPerRow) : Math.min(Math.ceil(contributors.length / photosPerRow), minRows) : minRows; const hiddenCount = contributors.length - minRows * photosPerRow; - return /* @__PURE__ */ jsxs12(Flex7, { sx: styles_default10.container, children: [ - /* @__PURE__ */ jsxs12(Flex7, { sx: styles_default10.titleContainer, children: [ - /* @__PURE__ */ jsx18(Text4, { sx: styles_default10.title, children: messages[locale]["contributors.title"] }), - /* @__PURE__ */ jsx18(Text4, { sx: styles_default10.count, children: contributors.length }) + return /* @__PURE__ */ jsxs13(Flex7, { sx: styles_default11.container, children: [ + /* @__PURE__ */ jsxs13(Flex7, { sx: styles_default11.titleContainer, children: [ + /* @__PURE__ */ jsx19(Text5, { sx: styles_default11.title, children: messages[locale]["contributors.title"] }), + /* @__PURE__ */ jsx19(Text5, { sx: styles_default11.count, children: contributors.length }) ] }), - /* @__PURE__ */ jsx18( + /* @__PURE__ */ jsx19( Grid, { - sx: styles_default10.photosContainer(visibleRows), + sx: styles_default11.photosContainer(visibleRows), ref: photosContainer2, "data-cy": "contributors-container", - children: contributors.map((contributor) => /* @__PURE__ */ jsx18(Box11, { sx: styles_default10.photo, children: /* @__PURE__ */ jsx18("a", { href: contributor.userPage, children: /* @__PURE__ */ jsx18(tooltip_default, { label: contributor.name, children: /* @__PURE__ */ jsx18( + children: contributors.map((contributor) => /* @__PURE__ */ jsx19(Box12, { sx: styles_default11.photo, children: /* @__PURE__ */ jsx19("a", { href: contributor.userPage, children: /* @__PURE__ */ jsx19(tooltip_default, { label: contributor.name, children: /* @__PURE__ */ jsx19( "img", { src: contributor.avatar, @@ -7997,19 +8153,19 @@ var Contributors = ({ contributors }) => { ) }) }) }, contributor.login)) } ), - contributors.length > minRows * photosPerRow && /* @__PURE__ */ jsxs12( + contributors.length > minRows * photosPerRow && /* @__PURE__ */ jsxs13( Flex7, { - sx: styles_default10.collapseButton, + sx: styles_default11.collapseButton, onClick: () => { setShowAll(!showAll); }, children: [ - /* @__PURE__ */ jsx18(Text4, { children: showAll ? messages[locale]["contributors.toggle_less"] : messages[locale]["contributors.toggle_more"].replace( + /* @__PURE__ */ jsx19(Text5, { children: showAll ? messages[locale]["contributors.toggle_less"] : messages[locale]["contributors.toggle_more"].replace( "{count}", String(hiddenCount) ) }), - /* @__PURE__ */ jsx18(IconCaret2, { direction: showAll ? "up" : "down", size: 24 }) + /* @__PURE__ */ jsx19(IconCaret2, { direction: showAll ? "up" : "down", size: 24 }) ] } ) @@ -8023,10 +8179,10 @@ import { useEffect as useEffect10, useMemo as useMemo3, useRef as useRef7, - useState as useState10, - useContext as useContext9 + useState as useState11, + useContext as useContext10 } from "react"; -import { Flex as Flex12, Text as Text8, Box as Box15 } from "@vtex/brand-ui"; +import { Flex as Flex12, Text as Text9, Box as Box16 } from "@vtex/brand-ui"; import Link5 from "next/link.js"; // src/lib/sidebar/styles.ts @@ -8167,7 +8323,7 @@ var iconTooltip = { "none !important" ] }; -var styles_default11 = { +var styles_default12 = { sidebar, sidebarIcons, sidebarIconsContainer, @@ -8287,7 +8443,7 @@ var getParents = (path, data, flattenedSidebar, parentsArray, parent) => { import { useRouter as useRouter2 } from "next/router.js"; import { useEffect as useEffect9 } from "react"; var getIcon2 = (doc, sections) => { - return sections.flat().find((icon5) => icon5.id === doc || icon5.title === doc)?.Icon; + return sections.flat().find((icon6) => icon6.id === doc || icon6.title === doc)?.Icon; }; function resolveLocalizedName(value, locale) { if (!value) @@ -8354,14 +8510,14 @@ var updateOpenPage = ({ }; // src/components/sidebar-section/index.tsx -import { Flex as Flex11, Box as Box14, Text as Text7, Button as Button3 } from "@vtex/brand-ui"; +import { Flex as Flex11, Box as Box15, Text as Text8, Button as Button3 } from "@vtex/brand-ui"; import { memo as memo2, - useContext as useContext8, + useContext as useContext9, useLayoutEffect, useMemo as useMemo2, useRef as useRef6, - useState as useState9 + useState as useState10 } from "react"; // src/components/sidebar-section/styles.ts @@ -8589,7 +8745,7 @@ var previewMode = { mr: "10px" } }; -var styles_default12 = { +var styles_default13 = { sidebarContainer, sidebarContainerHamburger, sidebarContainerBox, @@ -8616,13 +8772,13 @@ var styles_default12 = { }; // src/components/sidebar-section-filter/index.tsx -import { Box as Box12, Flex as Flex9, Text as Text6 } from "@vtex/brand-ui"; +import { Box as Box13, Flex as Flex9, Text as Text7 } from "@vtex/brand-ui"; // src/components/method-category/index.tsx -import { Flex as Flex8, Text as Text5 } from "@vtex/brand-ui"; +import { Flex as Flex8, Text as Text6 } from "@vtex/brand-ui"; // src/components/method-category/styles.ts -var container5 = { +var container6 = { border: "1px solid #DDDDDD", borderRadius: "6px", boxSizing: "border-box", @@ -8659,8 +8815,8 @@ var closeIcon = { width: "12px", ml: "4px" }; -var styles_default13 = { - container: container5, +var styles_default14 = { + container: container6, filled, text, closeIcon @@ -8702,9 +8858,9 @@ var categoryStyle = (method, active, origin, sx) => { }; const isFilled = active || origin !== "filter"; const categoryStyle2 = isFilled ? { - ...styles_default13.container, + ...styles_default14.container, ...categoryColors, - ...origin !== "filter" ? styles_default13.filled : {}, + ...origin !== "filter" ? styles_default14.filled : {}, ...sx, ":hover": { ".filter-close-button": { @@ -8717,7 +8873,7 @@ var categoryStyle = (method, active, origin, sx) => { } } } : { - ...styles_default13.container, + ...styles_default14.container, color: categoryColors.color, ...sx }; @@ -8727,7 +8883,7 @@ var categoryText = (method) => method.toUpperCase(); var closeCategoryStyle = (method) => { const categoryColors = methodsColors[method]; const categoryStyle2 = { - ...styles_default13.closeIcon, + ...styles_default14.closeIcon, rect: { fill: "transparent" }, @@ -8740,8 +8896,8 @@ var closeCategoryStyle = (method) => { // src/components/icons/close-filter-icon.tsx import { Icon as Icon6 } from "@vtex/brand-ui"; -import { jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime"; -var CloseFilterIcon = (props) => /* @__PURE__ */ jsxs13( +import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime"; +var CloseFilterIcon = (props) => /* @__PURE__ */ jsxs14( Icon6, { ...props, @@ -8751,8 +8907,8 @@ var CloseFilterIcon = (props) => /* @__PURE__ */ jsxs13( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx19("rect", { width: "12", height: "12", rx: "2", fill: "#2978B5" }), - /* @__PURE__ */ jsx19( + /* @__PURE__ */ jsx20("rect", { width: "12", height: "12", rx: "2", fill: "#2978B5" }), + /* @__PURE__ */ jsx20( "path", { d: "M3 3L9 9", @@ -8762,7 +8918,7 @@ var CloseFilterIcon = (props) => /* @__PURE__ */ jsxs13( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx19( + /* @__PURE__ */ jsx20( "path", { d: "M9 3L3 9", @@ -8778,21 +8934,21 @@ var CloseFilterIcon = (props) => /* @__PURE__ */ jsxs13( var close_filter_icon_default = CloseFilterIcon; // src/components/method-category/index.tsx -import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime"; +import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime"; var MethodCategory = ({ method, active, origin, sx }) => { - return /* @__PURE__ */ jsxs14( + return /* @__PURE__ */ jsxs15( Flex8, { className: "method-category", sx: categoryStyle(method, active, origin, sx), children: [ - /* @__PURE__ */ jsx20(Text5, { sx: styles_default13.text, children: categoryText(method) }), - origin === "filter" && active && /* @__PURE__ */ jsx20( + /* @__PURE__ */ jsx21(Text6, { sx: styles_default14.text, children: categoryText(method) }), + origin === "filter" && active && /* @__PURE__ */ jsx21( close_filter_icon_default, { className: "filter-close-button", @@ -8806,10 +8962,10 @@ var MethodCategory = ({ var method_category_default = MethodCategory; // src/components/sidebar-section-filter/index.tsx -import { useContext as useContext6, useState as useState8 } from "react"; +import { useContext as useContext7, useState as useState9 } from "react"; // src/components/sidebar-section-filter/styles.ts -var container6 = { +var container7 = { px: "16px", pt: "8px", pb: "16px", @@ -8870,8 +9026,8 @@ var clear = { color: "#000711" } }; -var styles_default14 = { - container: container6, +var styles_default15 = { + container: container7, containerHamburger, text: text2, textHamburger, @@ -8883,14 +9039,14 @@ var styles_default14 = { }; // src/components/sidebar-section-filter/index.tsx -import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime"; +import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime"; var SectionFilter = ({ methodFilterList, setMethodFilter, isHamburgerMenu = false }) => { - const [activeFilters, setActiveFilters] = useState8([]); - const { locale } = useContext6(LibraryContext); + const [activeFilters, setActiveFilters] = useState9([]); + const { locale } = useContext7(LibraryContext); const setFilter = (methodFilterChanged) => { if (methodFilterChanged) { const index = activeFilters.indexOf(methodFilterChanged); @@ -8915,15 +9071,15 @@ var SectionFilter = ({ } }; const MethodButton = ({ methodFilter }) => { - return /* @__PURE__ */ jsx21( - Box12, + return /* @__PURE__ */ jsx22( + Box13, { - sx: styles_default14.methodButton, + sx: styles_default15.methodButton, onClick: () => setFilter(methodFilter.name), - children: /* @__PURE__ */ jsx21( + children: /* @__PURE__ */ jsx22( method_category_default, { - sx: styles_default14.categoryHamburger, + sx: styles_default15.categoryHamburger, active: methodFilter.active, method: methodFilter.name, origin: "filter" @@ -8933,21 +9089,21 @@ var SectionFilter = ({ `filter-category-${methodFilter.name}` ); }; - return /* @__PURE__ */ jsxs15(Box12, { sx: isHamburgerMenu ? styles_default14.containerHamburger : styles_default14.container, children: [ - /* @__PURE__ */ jsx21(Text6, { sx: isHamburgerMenu ? styles_default14.textHamburger : styles_default14.text, children: messages[locale]["api_reference_sidebar_filter"] }), - /* @__PURE__ */ jsxs15( + return /* @__PURE__ */ jsxs16(Box13, { sx: isHamburgerMenu ? styles_default15.containerHamburger : styles_default15.container, children: [ + /* @__PURE__ */ jsx22(Text7, { sx: isHamburgerMenu ? styles_default15.textHamburger : styles_default15.text, children: messages[locale]["api_reference_sidebar_filter"] }), + /* @__PURE__ */ jsxs16( Flex9, { - sx: isHamburgerMenu ? styles_default14.methodsRowHamburger : styles_default14.methodsRow, + sx: isHamburgerMenu ? styles_default15.methodsRowHamburger : styles_default15.methodsRow, children: [ - methodFilterList.map((methodFilter) => /* @__PURE__ */ jsx21( + methodFilterList.map((methodFilter) => /* @__PURE__ */ jsx22( MethodButton, { methodFilter }, `filter-category-${methodFilter.name}` )), - activeFilters.length > 1 && /* @__PURE__ */ jsx21(Text6, { onClick: () => setFilter(null), sx: styles_default14.clear, children: messages[locale]["api_reference_sidebar_filter_clear"] }) + activeFilters.length > 1 && /* @__PURE__ */ jsx22(Text7, { onClick: () => setFilter(null), sx: styles_default15.clear, children: messages[locale]["api_reference_sidebar_filter_clear"] }) ] } ) @@ -8957,9 +9113,9 @@ var sidebar_section_filter_default = SectionFilter; // src/components/sidebar-elements/index.tsx import { useRouter as useRouter3 } from "next/router.js"; -import { Fragment as Fragment2, memo, useContext as useContext7 } from "react"; +import { Fragment as Fragment2, memo, useContext as useContext8 } from "react"; import { - Box as Box13, + Box as Box14, Flex as Flex10, Link as Link4, Button as Button2, @@ -9093,7 +9249,7 @@ var sectionDivider2 = { borderTop: "none" } }; -var styles_default15 = { +var styles_default16 = { elementContainer, elementContainerHamburger, elementText, @@ -9152,20 +9308,20 @@ var textStyle = (active, isHamburgerMenu = false, isExpandable = false) => { } : {}; if (active) { const textStyleActive = { - ...styles_default15.elementActive, + ...styles_default16.elementActive, ...hamburgerText }; return textStyleActive; } const textStyle2 = { - ...styles_default15.elementText, + ...styles_default16.elementText, ...hamburgerText }; return textStyle2; }; // src/components/sidebar-elements/index.tsx -import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime"; +import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime"; var SidebarElements = ({ slugPrefix, items, @@ -9180,7 +9336,7 @@ var SidebarElements = ({ toggleSidebarElementStatus, sidebarDataMaster, locale - } = useContext7(LibraryContext); + } = useContext8(LibraryContext); const router = useRouter3(); const isElementOpen = (slug, defaultOpen) => forceOpen || (sidebarElementStatus.has(slug) ? sidebarElementStatus.get(slug) : !!defaultOpen); const handleClick = (e, pathSuffix, slug) => { @@ -9222,20 +9378,20 @@ var SidebarElements = ({ sidebarDataMaster, localizedSlug ); - return /* @__PURE__ */ jsx22( - Box13, + return /* @__PURE__ */ jsx23( + Box14, { "data-sidebar-active": isActive ? "true" : void 0, - sx: isHamburgerMenu ? styles_default15.elementContainerHamburger : styles_default15.elementContainer, - children: /* @__PURE__ */ jsxs16(Flex10, { sx: styleByLevelNormal(isHamburgerMenu), children: [ - isExpandable ? /* @__PURE__ */ jsx22( + sx: isHamburgerMenu ? styles_default16.elementContainerHamburger : styles_default16.elementContainer, + children: /* @__PURE__ */ jsxs17(Flex10, { sx: styleByLevelNormal(isHamburgerMenu), children: [ + isExpandable ? /* @__PURE__ */ jsx23( Button2, { "aria-label": isOpen ? "Collapse category" : "Expand category", size: "regular", variant: "tertiary", - sx: isHamburgerMenu ? isArrowActive ? styles_default15.arrowIconActiveHamburger : styles_default15.arrowIconHamburger : isArrowActive ? styles_default15.arrowIconActive : styles_default15.arrowIcon, - icon: () => /* @__PURE__ */ jsx22( + sx: isHamburgerMenu ? isArrowActive ? styles_default16.arrowIconActiveHamburger : styles_default16.arrowIconHamburger : isArrowActive ? styles_default16.arrowIconActive : styles_default16.arrowIcon, + icon: () => /* @__PURE__ */ jsx23( IconCaret3, { direction: isOpen ? "down" : "right", @@ -9244,14 +9400,14 @@ var SidebarElements = ({ ), onClick: () => toggleSidebarElementStatus(localizedSlug, isOpen) } - ) : /* @__PURE__ */ jsx22( - Box13, + ) : /* @__PURE__ */ jsx23( + Box14, { - sx: isHamburgerMenu ? styles_default15.arrowIconSpacerHamburger : styles_default15.arrowIconSpacer, + sx: isHamburgerMenu ? styles_default16.arrowIconSpacerHamburger : styles_default16.arrowIconSpacer, "aria-hidden": "true" } ), - documentationType !== "category" && documentationType !== "link" ? /* @__PURE__ */ jsxs16( + documentationType !== "category" && documentationType !== "link" ? /* @__PURE__ */ jsxs17( Link4, { sx: textStyle(isActive, isHamburgerMenu, isExpandable), @@ -9265,10 +9421,10 @@ var SidebarElements = ({ target: isEditorPreview === true ? "_blank" : "_self", locale, children: [ - method && /* @__PURE__ */ jsx22( + method && /* @__PURE__ */ jsx23( method_category_default, { - sx: styles_default15.methodBox, + sx: styles_default16.methodBox, active: isActive, origin: "sidebar", method @@ -9277,29 +9433,29 @@ var SidebarElements = ({ localizedName2 ] } - ) : documentationType === "link" ? /* @__PURE__ */ jsxs16( + ) : documentationType === "link" ? /* @__PURE__ */ jsxs17( Link4, { href: localizedSlug, target: "_blank", sx: textStyle(false, isHamburgerMenu, false), children: [ - /* @__PURE__ */ jsx22(IconExternalLink, { size: 16, sx: { marginRight: "10px" } }), + /* @__PURE__ */ jsx23(IconExternalLink, { size: 16, sx: { marginRight: "10px" } }), localizedName2 ] } - ) : /* @__PURE__ */ jsxs16( - Box13, + ) : /* @__PURE__ */ jsxs17( + Box14, { sx: textStyle(isActive, isHamburgerMenu, isExpandable), onClick: () => { toggleSidebarElementStatus(localizedSlug, isOpen); }, children: [ - method && /* @__PURE__ */ jsx22( + method && /* @__PURE__ */ jsx23( method_category_default, { - sx: styles_default15.methodBox, + sx: styles_default16.methodBox, active: isActive, origin: "sidebar", method @@ -9316,11 +9472,11 @@ var SidebarElements = ({ const ElementChildren = ({ slug, children, defaultOpen }) => { const isExpandable = children.length > 0; const localizedSlug = typeof slug === "string" ? slug : slug[locale]; - return isExpandable && isElementOpen(localizedSlug, defaultOpen) ? /* @__PURE__ */ jsx22( - Box13, + return isExpandable && isElementOpen(localizedSlug, defaultOpen) ? /* @__PURE__ */ jsx23( + Box14, { - sx: subItemLevel === 0 ? isHamburgerMenu ? styles_default15.nestedGroupHamburgerFirst : styles_default15.nestedGroupFirst : isHamburgerMenu ? styles_default15.nestedGroupHamburger : styles_default15.nestedGroup, - children: /* @__PURE__ */ jsx22( + sx: subItemLevel === 0 ? isHamburgerMenu ? styles_default16.nestedGroupHamburgerFirst : styles_default16.nestedGroupFirst : isHamburgerMenu ? styles_default16.nestedGroupHamburger : styles_default16.nestedGroup, + children: /* @__PURE__ */ jsx23( SidebarElements, { slugPrefix, @@ -9334,13 +9490,13 @@ var SidebarElements = ({ } ) : null; }; - return /* @__PURE__ */ jsx22(Box13, { className: "sidebar-component", children: items?.map((item2, index) => { + return /* @__PURE__ */ jsx23(Box14, { className: "sidebar-component", children: items?.map((item2, index) => { const key = typeof item2.slug === "string" ? String(item2.slug) + String(index) : String(item2.slug[locale]) + String(index); const slug = typeof item2.slug === "string" ? `${item2.slug}` : `${item2.slug[locale]}`; - return /* @__PURE__ */ jsxs16(Fragment2, { children: [ - /* @__PURE__ */ jsx22(ElementRoot, { ...item2, slug }), - /* @__PURE__ */ jsx22(Box13, { children: /* @__PURE__ */ jsx22(ElementChildren, { ...item2, slug }) }), - subItemLevel == 0 && !isHamburgerMenu ? /* @__PURE__ */ jsx22(Box13, { sx: styles_default15.sectionDivider, children: /* @__PURE__ */ jsx22("hr", {}) }) : null + return /* @__PURE__ */ jsxs17(Fragment2, { children: [ + /* @__PURE__ */ jsx23(ElementRoot, { ...item2, slug }), + /* @__PURE__ */ jsx23(Box14, { children: /* @__PURE__ */ jsx23(ElementChildren, { ...item2, slug }) }), + subItemLevel == 0 && !isHamburgerMenu ? /* @__PURE__ */ jsx23(Box14, { sx: styles_default16.sectionDivider, children: /* @__PURE__ */ jsx23("hr", {}) }) : null ] }, String(key)); }) }); }; @@ -9348,15 +9504,15 @@ var sidebar_elements_default = memo(SidebarElements); // src/components/icons/search-icon.tsx import { Icon as Icon7 } from "@vtex/brand-ui"; -import { jsx as jsx23 } from "react/jsx-runtime"; -var SearchIcon = (props) => /* @__PURE__ */ jsx23( +import { jsx as jsx24 } from "react/jsx-runtime"; +var SearchIcon = (props) => /* @__PURE__ */ jsx24( Icon7, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx23( + children: /* @__PURE__ */ jsx24( "path", { fillRule: "evenodd", @@ -9371,8 +9527,8 @@ var search_icon_default = SearchIcon; // src/components/icons/sidebar-toggle-icon.tsx import { Icon as Icon8 } from "@vtex/brand-ui"; -import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime"; -var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs17( +import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime"; +var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs18( Icon8, { ...props, @@ -9380,7 +9536,7 @@ var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs17( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx24( + /* @__PURE__ */ jsx25( "path", { d: "M12 16.332L7 16.332", @@ -9390,7 +9546,7 @@ var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs17( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx24( + /* @__PURE__ */ jsx25( "path", { d: "M10 12.168L7 12.168", @@ -9400,7 +9556,7 @@ var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs17( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx24( + /* @__PURE__ */ jsx25( "path", { d: "M12 8L7 8", @@ -9410,7 +9566,7 @@ var SideBarToggleIcon = (props) => /* @__PURE__ */ jsxs17( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx24( + /* @__PURE__ */ jsx25( "path", { d: "M17 9.03906L14 12.1641L17 15.2891", @@ -9427,8 +9583,8 @@ var sidebar_toggle_icon_default = SideBarToggleIcon; // src/components/icons/arrow-left-icon.tsx import { Icon as Icon9 } from "@vtex/brand-ui"; -import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime"; -var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxs18( +import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime"; +var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxs19( Icon9, { ...props, @@ -9437,7 +9593,7 @@ var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxs18( xmlns: "http://www.w3.org/2000/svg", children: [ " ", - /* @__PURE__ */ jsx25( + /* @__PURE__ */ jsx26( "path", { d: "M19.5195 12.0195L4.52953 12.0195", @@ -9447,7 +9603,7 @@ var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxs18( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx25( + /* @__PURE__ */ jsx26( "path", { d: "M10.5176 18.0117L4.48058 11.9997L10.5176 5.98772", @@ -9463,7 +9619,7 @@ var ArrowLeftIcon = (props) => /* @__PURE__ */ jsxs18( var arrow_left_icon_default = ArrowLeftIcon; // src/components/sidebar-section/index.tsx -import { Fragment as Fragment3, jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime"; +import { Fragment as Fragment3, jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime"; function localizedName(name, locale) { return typeof name === "string" ? name : name[locale]; } @@ -9502,20 +9658,20 @@ function filterSidebarNode(node, query, methodFilterList, filterStatus, locale) } return null; } -function scrollDesktopSidebarToActiveItem(container17) { - const activeEl = container17.querySelector( +function scrollDesktopSidebarToActiveItem(container19) { + const activeEl = container19.querySelector( '[data-sidebar-active="true"]' ); if (!activeEl) return false; - const containerRect = container17.getBoundingClientRect(); + const containerRect = container19.getBoundingClientRect(); const elRect = activeEl.getBoundingClientRect(); const isFullyVisible = elRect.top >= containerRect.top && elRect.bottom <= containerRect.bottom; if (isFullyVisible) return true; - const topInsideContainer = elRect.top - containerRect.top + container17.scrollTop; - const centered = topInsideContainer - container17.clientHeight / 2 + elRect.height / 2; - container17.scrollTop = Math.max(0, centered); + const topInsideContainer = elRect.top - containerRect.top + container19.scrollTop; + const centered = topInsideContainer - container19.clientHeight / 2 + elRect.height / 2; + container19.scrollTop = Math.max(0, centered); return true; } function filterSidebarCategories(categories, searchValue, methodFilterList, filterStatus, locale) { @@ -9533,15 +9689,15 @@ var SidebarSearchBox = ({ onChange }) => { const inputRef = useRef6(null); - const { locale } = useContext8(LibraryContext); + const { locale } = useContext9(LibraryContext); const clearLabel = messages[locale]["search_input.clear"] || "Clear search"; - return /* @__PURE__ */ jsxs19(Flex11, { sx: styles_default12.searchBox, children: [ - /* @__PURE__ */ jsx26(search_icon_default, { sx: styles_default12.searchIcon }), - /* @__PURE__ */ jsx26( + return /* @__PURE__ */ jsxs20(Flex11, { sx: styles_default13.searchBox, children: [ + /* @__PURE__ */ jsx27(search_icon_default, { sx: styles_default13.searchIcon }), + /* @__PURE__ */ jsx27( "input", { ref: inputRef, - style: styles_default12.searchInput, + style: styles_default13.searchInput, className: "searchComponent", type: "text", placeholder, @@ -9549,19 +9705,19 @@ var SidebarSearchBox = ({ onChange: (e) => onChange(e.currentTarget.value) } ), - value ? /* @__PURE__ */ jsx26( + value ? /* @__PURE__ */ jsx27( Flex11, { as: "button", type: "button", - sx: styles_default12.clearButton, + sx: styles_default13.clearButton, "aria-label": clearLabel, title: clearLabel, onClick: () => { onChange(""); inputRef.current?.focus(); }, - children: /* @__PURE__ */ jsx26(close_icon_default, { sx: styles_default12.clearIcon }) + children: /* @__PURE__ */ jsx27(close_icon_default, { sx: styles_default13.clearIcon }) } ) : null ] }); @@ -9573,7 +9729,7 @@ var SidebarSection = ({ slugPrefix, isHamburgerMenu = false }) => { - const [searchValue, setSearchValue] = useState9(""); + const [searchValue, setSearchValue] = useState10(""); const sidebarBoxRef = useRef6(null); const { isEditorPreview, @@ -9582,8 +9738,8 @@ var SidebarSection = ({ sidebarSections, activeSidebarElement, locale - } = useContext8(LibraryContext); - const [methodFilterList, setMethodFilterList] = useState9([ + } = useContext9(LibraryContext); + const [methodFilterList, setMethodFilterList] = useState10([ { name: "POST", active: false }, { name: "GET", active: false }, { name: "PUT", active: false }, @@ -9606,17 +9762,17 @@ var SidebarSection = ({ useLayoutEffect(() => { if (isHamburgerMenu || !activeSidebarElement) return; - const container17 = sidebarBoxRef.current; - if (!container17) + const container19 = sidebarBoxRef.current; + if (!container19) return; - const tryScroll = () => scrollDesktopSidebarToActiveItem(container17); + const tryScroll = () => scrollDesktopSidebarToActiveItem(container19); if (tryScroll()) return; const observer = new MutationObserver(() => { if (tryScroll()) observer.disconnect(); }); - observer.observe(container17, { childList: true, subtree: true }); + observer.observe(container19, { childList: true, subtree: true }); const timeout = window.setTimeout(() => observer.disconnect(), 1500); return () => { observer.disconnect(); @@ -9626,39 +9782,39 @@ var SidebarSection = ({ const DocIcon = getIcon2(documentation2, sidebarSections); let localizedSectionTitle = ""; if (!categories || categories.length <= 0) { - return /* @__PURE__ */ jsx26(Fragment3, {}); + return /* @__PURE__ */ jsx27(Fragment3, {}); } else { localizedSectionTitle = typeof name === "string" ? name : name[locale]; } - return isHamburgerMenu ? /* @__PURE__ */ jsx26( - Box14, + return isHamburgerMenu ? /* @__PURE__ */ jsx27( + Box15, { className: sidebarSectionHidden ? "active" : "", - sx: styles_default12.sidebarContainerHamburger, - children: /* @__PURE__ */ jsxs19( - Box14, + sx: styles_default13.sidebarContainerHamburger, + children: /* @__PURE__ */ jsxs20( + Box15, { className: sidebarSectionHidden ? "sidebarHide" : "", - sx: styles_default12.sidebarContainerBoxHamburger, + sx: styles_default13.sidebarContainerBoxHamburger, children: [ - /* @__PURE__ */ jsxs19(Flex11, { sx: styles_default12.sidebarContainerTitle, children: [ - /* @__PURE__ */ jsx26( + /* @__PURE__ */ jsxs20(Flex11, { sx: styles_default13.sidebarContainerTitle, children: [ + /* @__PURE__ */ jsx27( Button3, { - sx: styles_default12.arrowButton, + sx: styles_default13.arrowButton, "aria-label": "Go back", size: "small", variant: "tertiary", - icon: () => /* @__PURE__ */ jsx26(arrow_left_icon_default, { size: 24 }), + icon: () => /* @__PURE__ */ jsx27(arrow_left_icon_default, { size: 24 }), onClick: () => { setSidebarSectionHidden(true); } } ), - DocIcon && /* @__PURE__ */ jsx26(DocIcon, { size: 24, sx: styles_default12.sidebarTitleIcon }), - /* @__PURE__ */ jsx26(Text7, { sx: styles_default12.sidebarTitleHamburger, children: localizedSectionTitle }) + DocIcon && /* @__PURE__ */ jsx27(DocIcon, { size: 24, sx: styles_default13.sidebarTitleIcon }), + /* @__PURE__ */ jsx27(Text8, { sx: styles_default13.sidebarTitleHamburger, children: localizedSectionTitle }) ] }), - documentation2 == "API Reference" && /* @__PURE__ */ jsx26(Box14, { sx: styles_default12.sidebarContainerFilterHamburger, children: /* @__PURE__ */ jsx26( + documentation2 == "API Reference" && /* @__PURE__ */ jsx27(Box15, { sx: styles_default13.sidebarContainerFilterHamburger, children: /* @__PURE__ */ jsx27( sidebar_section_filter_default, { isHamburgerMenu: true, @@ -9666,7 +9822,7 @@ var SidebarSection = ({ setMethodFilter: setMethodFilterList } ) }), - /* @__PURE__ */ jsx26(Box14, { sx: styles_default12.sidebarContainerBodyHamburger, children: /* @__PURE__ */ jsx26( + /* @__PURE__ */ jsx27(Box15, { sx: styles_default13.sidebarContainerBodyHamburger, children: /* @__PURE__ */ jsx27( sidebar_elements_default, { items: filteredResult ?? [], @@ -9680,23 +9836,23 @@ var SidebarSection = ({ } ) } - ) : /* @__PURE__ */ jsxs19( - Box14, + ) : /* @__PURE__ */ jsxs20( + Box15, { className: sidebarSectionHidden ? "active" : "", - sx: styles_default12.sidebarContainer, + sx: styles_default13.sidebarContainer, children: [ - /* @__PURE__ */ jsxs19( - Box14, + /* @__PURE__ */ jsxs20( + Box15, { ref: sidebarBoxRef, className: sidebarSectionHidden ? "sidebarHide" : "", - sx: styles_default12.sidebarContainerBox, + sx: styles_default13.sidebarContainerBox, "data-cy": "sidebar-section", children: [ - /* @__PURE__ */ jsxs19(Box14, { sx: styles_default12.sidebarContainerHeader, children: [ - isEditorPreview && /* @__PURE__ */ jsxs19(Text7, { sx: styles_default12.previewMode, children: [ - /* @__PURE__ */ jsxs19( + /* @__PURE__ */ jsxs20(Box15, { sx: styles_default13.sidebarContainerHeader, children: [ + isEditorPreview && /* @__PURE__ */ jsxs20(Text8, { sx: styles_default13.previewMode, children: [ + /* @__PURE__ */ jsxs20( "svg", { xmlns: "http://www.w3.org/2000/svg", @@ -9705,15 +9861,15 @@ var SidebarSection = ({ viewBox: "0 0 72 72", fill: "none", children: [ - /* @__PURE__ */ jsx26("circle", { cx: "36", cy: "36", r: "36", fill: "#FFB100" }), - /* @__PURE__ */ jsx26( + /* @__PURE__ */ jsx27("circle", { cx: "36", cy: "36", r: "36", fill: "#FFB100" }), + /* @__PURE__ */ jsx27( "path", { d: "M40.4202 22.6818H31.8152V42.6377H40.4202V22.6818Z", fill: "white" } ), - /* @__PURE__ */ jsx26( + /* @__PURE__ */ jsx27( "path", { d: "M36.1177 54.6113C38.4939 54.6113 40.4202 52.8244 40.4202 50.6201C40.4202 48.4158 38.4939 46.6289 36.1177 46.6289C33.7415 46.6289 31.8152 48.4158 31.8152 50.6201C31.8152 52.8244 33.7415 54.6113 36.1177 54.6113Z", @@ -9725,8 +9881,8 @@ var SidebarSection = ({ ), "PREVIEW MODE" ] }), - /* @__PURE__ */ jsx26(Text7, { sx: styles_default12.sidebarTitle, children: localizedSectionTitle }), - /* @__PURE__ */ jsx26( + /* @__PURE__ */ jsx27(Text8, { sx: styles_default13.sidebarTitle, children: localizedSectionTitle }), + /* @__PURE__ */ jsx27( SidebarSearchBox, { value: searchValue, @@ -9735,14 +9891,14 @@ var SidebarSection = ({ } ) ] }), - documentation2 == "API Reference" && /* @__PURE__ */ jsx26( + documentation2 == "API Reference" && /* @__PURE__ */ jsx27( sidebar_section_filter_default, { methodFilterList, setMethodFilter: setMethodFilterList } ), - /* @__PURE__ */ jsx26(Box14, { sx: styles_default12.sidebarContainerBody, children: /* @__PURE__ */ jsx26( + /* @__PURE__ */ jsx27(Box15, { sx: styles_default13.sidebarContainerBody, children: /* @__PURE__ */ jsx27( sidebar_elements_default, { items: filteredResult ?? [], @@ -9754,12 +9910,12 @@ var SidebarSection = ({ ] } ), - /* @__PURE__ */ jsx26( + /* @__PURE__ */ jsx27( Flex11, { className: "toggleIcon", - sx: sidebarSectionHidden ? styles_default12.toggleIconBoxActive : styles_default12.toggleIconBox, - children: /* @__PURE__ */ jsx26( + sx: sidebarSectionHidden ? styles_default13.toggleIconBoxActive : styles_default13.toggleIconBox, + children: /* @__PURE__ */ jsx27( sidebar_toggle_icon_default, { onClick: () => { @@ -9767,7 +9923,7 @@ var SidebarSection = ({ (sidebarSectionHidden2) => !sidebarSectionHidden2 ); }, - sx: sidebarSectionHidden ? styles_default12.toggleIcon : {} + sx: sidebarSectionHidden ? styles_default13.toggleIcon : {} } ) } @@ -9779,7 +9935,7 @@ var SidebarSection = ({ var sidebar_section_default = memo2(SidebarSection); // src/lib/sidebar/index.tsx -import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime"; +import { jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime"; import { createElement } from "react"; var SideBarIcon = ({ expandDelayStatus, @@ -9788,8 +9944,8 @@ var SideBarIcon = ({ setActiveSectionName, ...sectionElement }) => { - const [iconTooltip2, setIconTooltip] = useState10(false); - const [tooltipLabel, setTooltipLabel] = useState10(sectionElement.title); + const [iconTooltip2, setIconTooltip] = useState11(false); + const [tooltipLabel, setTooltipLabel] = useState11(sectionElement.title); const titleRef = useRef7(); useEffect10(() => { setTooltipLabel(sectionElement.title); @@ -9814,13 +9970,13 @@ var SideBarIcon = ({ resizeObserver.disconnect(); }; }, []); - return /* @__PURE__ */ jsx27(Box15, { sx: styles_default11.linkContainer, children: /* @__PURE__ */ jsx27( + return /* @__PURE__ */ jsx28(Box16, { sx: styles_default12.linkContainer, children: /* @__PURE__ */ jsx28( tooltip_default, { sx: iconTooltipStyle(iconTooltip2), placement: "right", label: tooltipLabel, - children: /* @__PURE__ */ jsx27( + children: /* @__PURE__ */ jsx28( Link5, { href: !isEditorPreview ? sectionElement.link : "/", @@ -9833,23 +9989,23 @@ var SideBarIcon = ({ }, passHref: true, "aria-label": sectionElement.title, - children: /* @__PURE__ */ jsxs20( + children: /* @__PURE__ */ jsxs21( Flex12, { - sx: activeSectionName === sectionElement.id ? styles_default11.iconBoxActive : styles_default11.iconBox, + sx: activeSectionName === sectionElement.id ? styles_default12.iconBoxActive : styles_default12.iconBox, children: [ - /* @__PURE__ */ jsx27( + /* @__PURE__ */ jsx28( sectionElement.Icon, { - sx: activeSectionName === sectionElement.id ? styles_default11.iconActive : styles_default11.icon + sx: activeSectionName === sectionElement.id ? styles_default12.iconActive : styles_default12.icon } ), - /* @__PURE__ */ jsx27( - Text8, + /* @__PURE__ */ jsx28( + Text9, { className: expandDelayStatus ? "iconDescriptionExpanded" : "", ref: titleRef, - sx: styles_default11.iconTitle, + sx: styles_default12.iconTitle, children: sectionElement.title } ) @@ -9862,8 +10018,8 @@ var SideBarIcon = ({ ) }); }; var Sidebar = ({ parentsArray = [] }) => { - const [expandDelayStatus, setExpandDelayStatus] = useState10(true); - const context = useContext9(LibraryContext); + const [expandDelayStatus, setExpandDelayStatus] = useState11(true); + const context = useContext10(LibraryContext); const { isEditorPreview, setActiveSectionName, @@ -9893,15 +10049,15 @@ var Sidebar = ({ parentsArray = [] }) => { timer && clearTimeout(timer); }; }, [activeSectionName, sidebarSectionContent?.categories?.length]); - return /* @__PURE__ */ jsxs20(Flex12, { sx: styles_default11.sidebar, children: [ - /* @__PURE__ */ jsx27( + return /* @__PURE__ */ jsxs21(Flex12, { sx: styles_default12.sidebar, children: [ + /* @__PURE__ */ jsx28( Flex12, { className: expandDelayStatus ? "iconContainerExpanded" : "", - sx: styles_default11.sidebarIcons, - children: sidebarSections.map((section, id) => /* @__PURE__ */ jsxs20(Fragment4, { children: [ - id > 0 && /* @__PURE__ */ jsx27(Box15, { sx: styles_default11.sectionDivider, children: /* @__PURE__ */ jsx27("hr", {}) }), - /* @__PURE__ */ jsx27(Flex12, { sx: styles_default11.sidebarIconsContainer, children: section.map((element) => { + sx: styles_default12.sidebarIcons, + children: sidebarSections.map((section, id) => /* @__PURE__ */ jsxs21(Fragment4, { children: [ + id > 0 && /* @__PURE__ */ jsx28(Box16, { sx: styles_default12.sectionDivider, children: /* @__PURE__ */ jsx28("hr", {}) }), + /* @__PURE__ */ jsx28(Flex12, { sx: styles_default12.sidebarIconsContainer, children: section.map((element) => { const title9 = getSectionLabel( element, sidebarDataMaster, @@ -9923,7 +10079,7 @@ var Sidebar = ({ parentsArray = [] }) => { ] }, id)) } ), - activeSectionName && sidebarSectionContent ? /* @__PURE__ */ jsx27(sidebar_section_default, { ...sidebarSectionContent }) : null + activeSectionName && sidebarSectionContent ? /* @__PURE__ */ jsx28(sidebar_section_default, { ...sidebarSectionContent }) : null ] }); }; var sidebar_default = Sidebar; @@ -9932,7 +10088,7 @@ var sidebar_default = Sidebar; import { Header, HamburgerMenu as VtexHamburgerMenu, - Box as Box21, + Box as Box22, IconCaret as IconCaret5, Button as Button4 } from "@vtex/brand-ui"; @@ -10107,7 +10263,7 @@ var arrowIconActive2 = { ...arrowIcon2, color: "#D71D55" }; -var styles_default16 = { +var styles_default17 = { headerActions, menuContainer, cardContainer, @@ -10124,12 +10280,12 @@ var styles_default16 = { }; // src/lib/hamburger-menu/index.tsx -import { useContext as useContext14, useEffect as useEffect14, useRef as useRef10, useState as useState15 } from "react"; +import { useContext as useContext15, useEffect as useEffect14, useRef as useRef10, useState as useState16 } from "react"; import { useRouter as useRouter7 } from "next/router.js"; // src/components/documentation-card/index.tsx import Link6 from "next/link.js"; -import { Box as Box16, Flex as Flex13, Text as Text9 } from "@vtex/brand-ui"; +import { Box as Box17, Flex as Flex13, Text as Text10 } from "@vtex/brand-ui"; // src/components/documentation-card/styles.ts var cardContainer2 = { @@ -10174,7 +10330,7 @@ var description2 = { lineHeight: "18px", color: "muted.1" }; -var styles_default17 = { +var styles_default18 = { cardContainer: cardContainer2, description: description2, title: title4, @@ -10187,7 +10343,7 @@ var cardContainer3 = (containerType) => { const containerWidth = containerType === "dropdown" ? "100%" : containerType === "mobile" ? "100%" : ["324px", "544px", "544px", "544px", "544px", "720px", "1400px"]; const textWidth = containerType === "dropdown" ? "100%" : containerType === "mobile" ? "100%" : ["276px", "496px", "496px", "496px", "496px", "672px", "1352px"]; const cardContainer5 = { - ...styles_default17.cardContainer, + ...styles_default18.cardContainer, width: containerWidth, ...containerType === "mobile" ? { my: 0, @@ -10237,7 +10393,7 @@ var cardContainer3 = (containerType) => { var titleContainer3 = (containerType) => { const marginBottom = containerType === "dropdown" || containerType === "mobile" ? 0 : "8px"; const titleContainer4 = { - ...styles_default17.titleContainer, + ...styles_default18.titleContainer, marginBottom, ...containerType === "mobile" || containerType === "dropdown" ? { alignItems: "flex-start", @@ -10272,7 +10428,7 @@ var cardTitle = (containerType) => { lineHeight: "22px" }; const cardTitle2 = { - ...styles_default17.title, + ...styles_default18.title, ...titleAttributes }; return cardTitle2; @@ -10280,7 +10436,7 @@ var cardTitle = (containerType) => { var cardDescription = (containerType) => { if (containerType === "mobile") { const mobileDescription = { - ...styles_default17.description, + ...styles_default18.description, ml: "0px", mt: "4px", fontSize: "13px", @@ -10293,7 +10449,7 @@ var cardDescription = (containerType) => { } if (containerType === "dropdown") { const dropdownDescription = { - ...styles_default17.description, + ...styles_default18.description, ml: 0, mt: "2px", fontSize: "12px", @@ -10306,21 +10462,21 @@ var cardDescription = (containerType) => { }; return dropdownDescription; } - return styles_default17.description; + return styles_default18.description; }; // src/components/documentation-card/index.tsx -import { Fragment as Fragment5, jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime"; +import { Fragment as Fragment5, jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime"; var DocumentationCard = ({ title: title9, description: description6, link: link2, containerType, - Icon: Icon81, + Icon: Icon82, onClick, isExternalLink }) => { - return /* @__PURE__ */ jsx28(Link6, { href: link2, legacyBehavior: true, children: /* @__PURE__ */ jsx28( + return /* @__PURE__ */ jsx29(Link6, { href: link2, legacyBehavior: true, children: /* @__PURE__ */ jsx29( "a", { onClick, @@ -10333,24 +10489,24 @@ var DocumentationCard = ({ overflow: "hidden", textDecoration: "none" }, - children: /* @__PURE__ */ jsx28(Box16, { sx: cardContainer3(containerType), children: containerType === "see-also" ? /* @__PURE__ */ jsxs21(Fragment5, { children: [ - /* @__PURE__ */ jsxs21(Flex13, { sx: titleContainer3(containerType), children: [ - /* @__PURE__ */ jsx28(Icon81, { sx: { color: "#4A596B", flexShrink: 0 }, size: 24 }), - /* @__PURE__ */ jsx28(Text9, { className: "title", sx: cardTitle(containerType), children: title9 }) + children: /* @__PURE__ */ jsx29(Box17, { sx: cardContainer3(containerType), children: containerType === "see-also" ? /* @__PURE__ */ jsxs22(Fragment5, { children: [ + /* @__PURE__ */ jsxs22(Flex13, { sx: titleContainer3(containerType), children: [ + /* @__PURE__ */ jsx29(Icon82, { sx: { color: "#4A596B", flexShrink: 0 }, size: 24 }), + /* @__PURE__ */ jsx29(Text10, { className: "title", sx: cardTitle(containerType), children: title9 }) ] }), - /* @__PURE__ */ jsx28(Text9, { className: "description", sx: cardDescription(containerType), children: description6 }) - ] }) : /* @__PURE__ */ jsxs21(Flex13, { sx: titleContainer3(containerType), children: [ - containerType === "dropdown" ? /* @__PURE__ */ jsx28(Flex13, { sx: styles_default17.dropdownIcon, children: /* @__PURE__ */ jsx28(Icon81, { sx: { color: "#4A596B" }, size: 20 }) }) : /* @__PURE__ */ jsx28( - Icon81, + /* @__PURE__ */ jsx29(Text10, { className: "description", sx: cardDescription(containerType), children: description6 }) + ] }) : /* @__PURE__ */ jsxs22(Flex13, { sx: titleContainer3(containerType), children: [ + containerType === "dropdown" ? /* @__PURE__ */ jsx29(Flex13, { sx: styles_default18.dropdownIcon, children: /* @__PURE__ */ jsx29(Icon82, { sx: { color: "#4A596B" }, size: 20 }) }) : /* @__PURE__ */ jsx29( + Icon82, { sx: { color: "#4A596B", flexShrink: 0, mt: "2px" }, size: 24 } ), - /* @__PURE__ */ jsxs21(Box16, { sx: { minWidth: 0, flex: 1 }, children: [ - /* @__PURE__ */ jsx28(Text9, { className: "title", sx: cardTitle(containerType), children: title9 }), - /* @__PURE__ */ jsx28( - Text9, + /* @__PURE__ */ jsxs22(Box17, { sx: { minWidth: 0, flex: 1 }, children: [ + /* @__PURE__ */ jsx29(Text10, { className: "title", sx: cardTitle(containerType), children: title9 }), + /* @__PURE__ */ jsx29( + Text10, { className: "description", sx: cardDescription(containerType), @@ -10365,8 +10521,8 @@ var DocumentationCard = ({ var documentation_card_default = DocumentationCard; // src/components/mobile-search/index.tsx -import { Box as Box20, Flex as Flex18 } from "@vtex/brand-ui"; -import { useContext as useContext13, useEffect as useEffect13, useState as useState14 } from "react"; +import { Box as Box21, Flex as Flex18 } from "@vtex/brand-ui"; +import { useContext as useContext14, useEffect as useEffect13, useState as useState15 } from "react"; import { useRouter as useRouter6 } from "next/router.js"; // src/components/search-input/index.tsx @@ -10375,12 +10531,12 @@ import { Configure, InstantSearch } from "react-instantsearch-dom"; // src/components/search-input/search-box.tsx import { useRef as useRef8, - useContext as useContext10, + useContext as useContext11, useEffect as useEffect11, - useState as useState11 + useState as useState12 } from "react"; import { useRouter as useRouter4 } from "next/router.js"; -import { Flex as Flex14, Box as Box17 } from "@vtex/brand-ui"; +import { Flex as Flex14, Box as Box18 } from "@vtex/brand-ui"; import { connectSearchBox } from "react-instantsearch-dom"; // src/components/search-input/styles.ts @@ -10920,7 +11076,7 @@ var hitContentHighlighted = { fontWeight: "600", display: "inline" }; -var styles_default18 = { +var styles_default19 = { resultsOuterContainer, resultsInnerContainer, resultsBox, @@ -10975,10 +11131,10 @@ var styles_default18 = { }; // src/components/search-input/search-box.tsx -import { jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime"; -var containerStyle = (variant) => variant === "modal" ? styles_default18.searchContainerModal : styles_default18.searchContainer; -var iconStyle = (variant) => variant === "modal" ? styles_default18.searchIconModal : styles_default18.searchIcon; -var inputStyle = (variant) => variant === "modal" ? styles_default18.searchInputModal : styles_default18.searchInput; +import { jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime"; +var containerStyle = (variant) => variant === "modal" ? styles_default19.searchContainerModal : styles_default19.searchContainer; +var iconStyle = (variant) => variant === "modal" ? styles_default19.searchIconModal : styles_default19.searchIcon; +var inputStyle = (variant) => variant === "modal" ? styles_default19.searchInputModal : styles_default19.searchInput; var SearchBoxComponent = ({ currentRefinement, refine, @@ -10988,8 +11144,8 @@ var SearchBoxComponent = ({ }) => { const router = useRouter4(); const inputRef = useRef8(null); - const { locale } = useContext10(LibraryContext); - const [isMac, setIsMac] = useState11(false); + const { locale } = useContext11(LibraryContext); + const [isMac, setIsMac] = useState12(false); useEffect11(() => { if (autoFocus) inputRef.current?.focus(); @@ -11012,11 +11168,11 @@ var SearchBoxComponent = ({ if (target && (target.tagName === "TEXTAREA" || target.isContentEditable)) { return; } - const input3 = inputRef.current; - if (!input3 || input3.offsetParent === null) + const input4 = inputRef.current; + if (!input4 || input4.offsetParent === null) return; event.preventDefault(); - input3.focus(); + input4.focus(); changeFocus(true); }; window.addEventListener("keydown", onKeyDown); @@ -11046,9 +11202,9 @@ var SearchBoxComponent = ({ refine(""); inputRef.current?.focus(); }; - return /* @__PURE__ */ jsxs22(Flex14, { sx: containerStyle(variant), onClick: handleClick, children: [ - /* @__PURE__ */ jsx29(search_icon_default, { sx: iconStyle(variant) }), - /* @__PURE__ */ jsx29( + return /* @__PURE__ */ jsxs23(Flex14, { sx: containerStyle(variant), onClick: handleClick, children: [ + /* @__PURE__ */ jsx30(search_icon_default, { sx: iconStyle(variant) }), + /* @__PURE__ */ jsx30( "input", { style: inputStyle(variant), @@ -11068,20 +11224,20 @@ var SearchBoxComponent = ({ onChange: (e) => refine(e.currentTarget.value) } ), - currentRefinement ? /* @__PURE__ */ jsx29( + currentRefinement ? /* @__PURE__ */ jsx30( Flex14, { as: "button", type: "button", - sx: styles_default18.clearButton, + sx: styles_default19.clearButton, "aria-label": messages[locale]["search_input.clear"] || "Clear search", title: messages[locale]["search_input.clear"] || "Clear search", onClick: handleClear, - children: /* @__PURE__ */ jsx29(close_icon_default, { sx: { width: "14px", height: "14px" } }) + children: /* @__PURE__ */ jsx30(close_icon_default, { sx: { width: "14px", height: "14px" } }) } - ) : variant === "default" ? /* @__PURE__ */ jsxs22(Flex14, { sx: styles_default18.shortcutHint, "aria-hidden": "true", "data-search-shortcut": true, children: [ - isMac ? /* @__PURE__ */ jsx29(Box17, { as: "kbd", sx: styles_default18.shortcutKbd, children: "\u2318" }) : /* @__PURE__ */ jsx29(Box17, { as: "kbd", sx: styles_default18.shortcutKbd, children: "Ctrl" }), - /* @__PURE__ */ jsx29(Box17, { as: "kbd", sx: styles_default18.shortcutKbd, children: "K" }) + ) : variant === "default" ? /* @__PURE__ */ jsxs23(Flex14, { sx: styles_default19.shortcutHint, "aria-hidden": "true", "data-search-shortcut": true, children: [ + isMac ? /* @__PURE__ */ jsx30(Box18, { as: "kbd", sx: styles_default19.shortcutKbd, children: "\u2318" }) : /* @__PURE__ */ jsx30(Box18, { as: "kbd", sx: styles_default19.shortcutKbd, children: "Ctrl" }), + /* @__PURE__ */ jsx30(Box18, { as: "kbd", sx: styles_default19.shortcutKbd, children: "K" }) ] }) : null ] }); }; @@ -11091,18 +11247,18 @@ var search_box_default = SearchBox; // src/components/search-input/results-box.tsx import { useRouter as useRouter5 } from "next/router.js"; import Link7 from "next/link.js"; -import { useContext as useContext11, useEffect as useEffect12, useState as useState12 } from "react"; +import { useContext as useContext12, useEffect as useEffect12, useState as useState13 } from "react"; import { connectStateResults, connectHitInsights } from "react-instantsearch-dom"; import aa from "search-insights"; -import { Box as Box18, Flex as Flex16, IconCaret as IconCaret4, Text as Text11 } from "@vtex/brand-ui"; +import { Box as Box19, Flex as Flex16, IconCaret as IconCaret4, Text as Text12 } from "@vtex/brand-ui"; // src/components/icons/api-guides-icon.tsx import { Icon as Icon10 } from "@vtex/brand-ui"; -import { jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime"; -var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs23( +import { jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime"; +var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs24( Icon10, { ...props, @@ -11110,7 +11266,7 @@ var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs23( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx30( + /* @__PURE__ */ jsx31( "path", { fillRule: "evenodd", @@ -11122,7 +11278,7 @@ var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs23( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx30( + /* @__PURE__ */ jsx31( "path", { d: "M25.3332 10.6667H19.9998C19.2638 10.6667 18.6665 10.0693 18.6665 9.33333V4", @@ -11132,7 +11288,7 @@ var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs23( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx30( + /* @__PURE__ */ jsx31( "path", { d: "M10.6665 14.6667H18.6665", @@ -11142,7 +11298,7 @@ var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs23( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx30( + /* @__PURE__ */ jsx31( "path", { d: "M10.6665 18.6667H18.6665", @@ -11152,7 +11308,7 @@ var APIGuidesIcon = (props) => /* @__PURE__ */ jsxs23( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx30( + /* @__PURE__ */ jsx31( "path", { d: "M10.6665 22.6667H16.4398", @@ -11169,8 +11325,8 @@ var api_guides_icon_default = APIGuidesIcon; // src/components/icons/api-reference-icon.tsx import { Icon as Icon11 } from "@vtex/brand-ui"; -import { jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime"; -var APIReferenceIcon = (props) => /* @__PURE__ */ jsxs24( +import { jsx as jsx32, jsxs as jsxs25 } from "react/jsx-runtime"; +var APIReferenceIcon = (props) => /* @__PURE__ */ jsxs25( Icon11, { ...props, @@ -11178,7 +11334,7 @@ var APIReferenceIcon = (props) => /* @__PURE__ */ jsxs24( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx31( + /* @__PURE__ */ jsx32( "path", { d: "M24.7612 26.6668C26.4439 26.6668 27.8092 25.3028 27.8092 23.6188V17.5242L29.3332 16.0002L27.8092 14.4762V8.3815C27.8092 6.6975 26.4452 5.3335 24.7612 5.3335", @@ -11188,7 +11344,7 @@ var APIReferenceIcon = (props) => /* @__PURE__ */ jsxs24( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx31( + /* @__PURE__ */ jsx32( "path", { d: "M12 22.6668L20 9.3335", @@ -11198,7 +11354,7 @@ var APIReferenceIcon = (props) => /* @__PURE__ */ jsxs24( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx31( + /* @__PURE__ */ jsx32( "path", { d: "M7.2385 5.3335C5.5545 5.3335 4.1905 6.6975 4.1905 8.3815V14.4762L2.6665 16.0002L4.1905 17.5242V23.6188C4.1905 25.3028 5.5545 26.6668 7.2385 26.6668", @@ -11215,8 +11371,8 @@ var api_reference_icon_default = APIReferenceIcon; // src/components/icons/app-development-icon.tsx import { Icon as Icon12 } from "@vtex/brand-ui"; -import { jsx as jsx32, jsxs as jsxs25 } from "react/jsx-runtime"; -var AppDevelopmentIcon = (props) => /* @__PURE__ */ jsxs25( +import { jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime"; +var AppDevelopmentIcon = (props) => /* @__PURE__ */ jsxs26( Icon12, { ...props, @@ -11224,7 +11380,7 @@ var AppDevelopmentIcon = (props) => /* @__PURE__ */ jsxs25( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx32( + /* @__PURE__ */ jsx33( "path", { fillRule: "evenodd", @@ -11236,7 +11392,7 @@ var AppDevelopmentIcon = (props) => /* @__PURE__ */ jsxs25( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx32( + /* @__PURE__ */ jsx33( "path", { d: "M20.5813 19.312L28 22.6347L15.9827 28L4 22.6347L11.4187 19.3213", @@ -11246,7 +11402,7 @@ var AppDevelopmentIcon = (props) => /* @__PURE__ */ jsxs25( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx32( + /* @__PURE__ */ jsx33( "path", { d: "M20.5813 12.6787L28 16L15.9827 21.3654L4 16L11.4187 12.688", @@ -11263,8 +11419,8 @@ var app_development_icon_default = AppDevelopmentIcon; // src/components/icons/release-notes-icon.tsx import { Icon as Icon13 } from "@vtex/brand-ui"; -import { jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime"; -var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs26( +import { jsx as jsx34, jsxs as jsxs27 } from "react/jsx-runtime"; +var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs27( Icon13, { ...props, @@ -11272,7 +11428,7 @@ var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs26( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx33( + /* @__PURE__ */ jsx34( "path", { d: "M10 8.5V16.5", @@ -11282,7 +11438,7 @@ var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs26( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx33( + /* @__PURE__ */ jsx34( "path", { d: "M14 8.5V16.5", @@ -11292,7 +11448,7 @@ var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs26( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx33( + /* @__PURE__ */ jsx34( "path", { d: "M8 14.5H16", @@ -11302,7 +11458,7 @@ var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs26( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx33( + /* @__PURE__ */ jsx34( "path", { d: "M8 10.5H16", @@ -11312,7 +11468,7 @@ var ReleaseNotesIcon = (props) => /* @__PURE__ */ jsxs26( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx33( + /* @__PURE__ */ jsx34( "path", { fillRule: "evenodd", @@ -11331,8 +11487,8 @@ var release_notes_icon_default = ReleaseNotesIcon; // src/components/icons/storefront-development-icon.tsx import { Icon as Icon14 } from "@vtex/brand-ui"; -import { jsx as jsx34, jsxs as jsxs27 } from "react/jsx-runtime"; -var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs27( +import { jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime"; +var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs28( Icon14, { ...props, @@ -11340,7 +11496,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs27( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx34( + /* @__PURE__ */ jsx35( "path", { fillRule: "evenodd", @@ -11352,7 +11508,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs27( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx34( + /* @__PURE__ */ jsx35( "path", { d: "M10.6667 7.98568C10.6627 7.98568 10.66 7.98835 10.66 7.99235C10.66 7.99635 10.6627 7.99902 10.6667 7.99902C10.6707 7.99902 10.6733 7.99635 10.6733 7.99235C10.6733 7.98835 10.6707 7.98568 10.6667 7.98568", @@ -11362,7 +11518,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs27( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx34( + /* @__PURE__ */ jsx35( "path", { d: "M14.673 7.99252C14.669 7.99252 14.6663 7.99519 14.6663 7.99919C14.6663 8.00319 14.669 8.00585 14.673 8.00585C14.677 8.00585 14.6797 8.00319 14.6797 7.99919C14.6797 7.99519 14.677 7.99252 14.673 7.99252", @@ -11372,7 +11528,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs27( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx34( + /* @__PURE__ */ jsx35( "path", { d: "M6.66667 7.99887C6.66267 7.99887 6.66 8.00153 6.66 8.00553C6.66 8.00953 6.66267 8.0122 6.66667 8.0122C6.67067 8.0122 6.67333 8.00953 6.67333 8.00553C6.67333 8.00153 6.67067 7.99887 6.66667 7.99887", @@ -11382,7 +11538,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs27( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx34( + /* @__PURE__ */ jsx35( "path", { d: "M12.0667 14.999H20.6L19.6667 19.6657H13L11.6667 12.999H10", @@ -11392,7 +11548,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs27( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx34( + /* @__PURE__ */ jsx35( "path", { d: "M19.0468 22.952C19.0728 22.9781 19.0728 23.0203 19.0468 23.0463C19.0208 23.0724 18.9786 23.0724 18.9525 23.0463C18.9265 23.0203 18.9265 22.9781 18.9525 22.952C18.9786 22.926 19.0208 22.926 19.0468 22.952", @@ -11402,7 +11558,7 @@ var StorefrontDevelopmentIcon = (props) => /* @__PURE__ */ jsxs27( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx34( + /* @__PURE__ */ jsx35( "path", { d: "M13.7138 22.952C13.7398 22.9781 13.7398 23.0203 13.7138 23.0463C13.6878 23.0724 13.6456 23.0724 13.6195 23.0463C13.5935 23.0203 13.5935 22.9781 13.6195 22.952C13.6456 22.926 13.6878 22.926 13.7138 22.952", @@ -11419,8 +11575,8 @@ var storefront_development_icon_default = StorefrontDevelopmentIcon; // src/components/icons/vtex-io-apps-icon.tsx import { Icon as Icon15 } from "@vtex/brand-ui"; -import { jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime"; -var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs28( +import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime"; +var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs29( Icon15, { ...props, @@ -11428,7 +11584,7 @@ var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs28( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx35( + /* @__PURE__ */ jsx36( "path", { fillRule: "evenodd", @@ -11440,7 +11596,7 @@ var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs28( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx35( + /* @__PURE__ */ jsx36( "path", { fillRule: "evenodd", @@ -11452,7 +11608,7 @@ var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs28( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx35( + /* @__PURE__ */ jsx36( "path", { fillRule: "evenodd", @@ -11464,7 +11620,7 @@ var VTEXIOAppsIcon = (props) => /* @__PURE__ */ jsxs28( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx35( + /* @__PURE__ */ jsx36( "path", { fillRule: "evenodd", @@ -11483,8 +11639,8 @@ var vtex_io_apps_icon_default = VTEXIOAppsIcon; // src/components/icons/troubleshooting-icon.tsx import { Icon as Icon16 } from "@vtex/brand-ui"; -import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime"; -var TroubleshootingIcon = (props) => /* @__PURE__ */ jsxs29( +import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime"; +var TroubleshootingIcon = (props) => /* @__PURE__ */ jsxs30( Icon16, { ...props, @@ -11492,7 +11648,7 @@ var TroubleshootingIcon = (props) => /* @__PURE__ */ jsxs29( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx36( + /* @__PURE__ */ jsx37( "path", { d: "M16,11.4,13.734,9.331A6.487,6.487,0,0,0,5.366,1.366L9,5,5,9,1.366,5.366a6.49,6.49,0,0,0,7.965,8.368L11.2,15.779", @@ -11502,7 +11658,7 @@ var TroubleshootingIcon = (props) => /* @__PURE__ */ jsxs29( strokeWidth: "2" } ), - /* @__PURE__ */ jsx36( + /* @__PURE__ */ jsx37( "path", { d: "M18.642,23.943l5.842,6.4a2,2,0,0,0,2.892.066l3.038-3.038a2,2,0,0,0-.066-2.892L23.6,18.325", @@ -11512,7 +11668,7 @@ var TroubleshootingIcon = (props) => /* @__PURE__ */ jsxs29( strokeWidth: "2" } ), - /* @__PURE__ */ jsx36( + /* @__PURE__ */ jsx37( "path", { fillRule: "evenodd", @@ -11529,8 +11685,8 @@ var troubleshooting_icon_default = TroubleshootingIcon; // src/components/icons/added-icon.tsx import { Icon as Icon17 } from "@vtex/brand-ui"; -import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime"; -var AddedIcon = (props) => /* @__PURE__ */ jsxs30( +import { jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime"; +var AddedIcon = (props) => /* @__PURE__ */ jsxs31( Icon17, { ...props, @@ -11538,9 +11694,9 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs30( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx37("circle", { cx: "8", cy: "8", r: "8", fill: "#DFF1E0" }), - /* @__PURE__ */ jsxs30("g", { clipPath: "url(#clip0_2354_76889)", children: [ - /* @__PURE__ */ jsx37( + /* @__PURE__ */ jsx38("circle", { cx: "8", cy: "8", r: "8", fill: "#DFF1E0" }), + /* @__PURE__ */ jsxs31("g", { clipPath: "url(#clip0_2354_76889)", children: [ + /* @__PURE__ */ jsx38( "path", { d: "M4.33398 8H11.6673", @@ -11550,7 +11706,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs30( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx37( + /* @__PURE__ */ jsx38( "path", { d: "M8 4.33594V11.6693", @@ -11560,7 +11716,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs30( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx37( + /* @__PURE__ */ jsx38( "path", { fillRule: "evenodd", @@ -11569,7 +11725,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs30( fill: "#38853C" } ), - /* @__PURE__ */ jsx37( + /* @__PURE__ */ jsx38( "path", { fillRule: "evenodd", @@ -11578,7 +11734,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs30( fill: "#38853C" } ), - /* @__PURE__ */ jsx37( + /* @__PURE__ */ jsx38( "path", { fillRule: "evenodd", @@ -11590,7 +11746,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs30( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx37( + /* @__PURE__ */ jsx38( "path", { fillRule: "evenodd", @@ -11603,7 +11759,7 @@ var AddedIcon = (props) => /* @__PURE__ */ jsxs30( } ) ] }), - /* @__PURE__ */ jsx37("defs", { children: /* @__PURE__ */ jsx37("clipPath", { id: "clip0_2354_76889", children: /* @__PURE__ */ jsx37( + /* @__PURE__ */ jsx38("defs", { children: /* @__PURE__ */ jsx38("clipPath", { id: "clip0_2354_76889", children: /* @__PURE__ */ jsx38( "rect", { width: "10.6667", @@ -11619,8 +11775,8 @@ var added_icon_default = AddedIcon; // src/components/icons/deprecated-icon.tsx import { Icon as Icon18 } from "@vtex/brand-ui"; -import { jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime"; -var DeprecatedIcon = (props) => /* @__PURE__ */ jsxs31( +import { jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime"; +var DeprecatedIcon = (props) => /* @__PURE__ */ jsxs32( Icon18, { ...props, @@ -11628,8 +11784,8 @@ var DeprecatedIcon = (props) => /* @__PURE__ */ jsxs31( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx38("circle", { cx: "8", cy: "8", r: "8", fill: "#E7E9EE" }), - /* @__PURE__ */ jsx38( + /* @__PURE__ */ jsx39("circle", { cx: "8", cy: "8", r: "8", fill: "#E7E9EE" }), + /* @__PURE__ */ jsx39( "path", { fillRule: "evenodd", @@ -11645,8 +11801,8 @@ var deprecated_icon_default = DeprecatedIcon; // src/components/icons/fixed-icon.tsx import { Icon as Icon19 } from "@vtex/brand-ui"; -import { jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime"; -var FixedIcon = (props) => /* @__PURE__ */ jsxs32( +import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime"; +var FixedIcon = (props) => /* @__PURE__ */ jsxs33( Icon19, { ...props, @@ -11654,8 +11810,8 @@ var FixedIcon = (props) => /* @__PURE__ */ jsxs32( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx39("circle", { cx: "8", cy: "8", r: "8", fill: "#DEECF7" }), - /* @__PURE__ */ jsx39( + /* @__PURE__ */ jsx40("circle", { cx: "8", cy: "8", r: "8", fill: "#DEECF7" }), + /* @__PURE__ */ jsx40( "path", { fillRule: "evenodd", @@ -11675,8 +11831,8 @@ var fixed_icon_default = FixedIcon; // src/components/icons/improved-icon.tsx import { Icon as Icon20 } from "@vtex/brand-ui"; -import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime"; -var ImprovedIcon = (props) => /* @__PURE__ */ jsxs33( +import { jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime"; +var ImprovedIcon = (props) => /* @__PURE__ */ jsxs34( Icon20, { ...props, @@ -11684,8 +11840,8 @@ var ImprovedIcon = (props) => /* @__PURE__ */ jsxs33( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx40("circle", { cx: "8.5", cy: "8", r: "8", fill: "#FFEBD7" }), - /* @__PURE__ */ jsx40( + /* @__PURE__ */ jsx41("circle", { cx: "8.5", cy: "8", r: "8", fill: "#FFEBD7" }), + /* @__PURE__ */ jsx41( "path", { d: "M12.5 10L8.49511 6L4.5 10", @@ -11702,8 +11858,8 @@ var improved_icon_default = ImprovedIcon; // src/components/icons/removed-icon.tsx import { Icon as Icon21 } from "@vtex/brand-ui"; -import { jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime"; -var RemovedIcon = (props) => /* @__PURE__ */ jsxs34( +import { jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime"; +var RemovedIcon = (props) => /* @__PURE__ */ jsxs35( Icon21, { ...props, @@ -11711,8 +11867,8 @@ var RemovedIcon = (props) => /* @__PURE__ */ jsxs34( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx41("circle", { cx: "8.5", cy: "8", r: "8", fill: "#F8E3E3" }), - /* @__PURE__ */ jsx41( + /* @__PURE__ */ jsx42("circle", { cx: "8.5", cy: "8", r: "8", fill: "#F8E3E3" }), + /* @__PURE__ */ jsx42( "path", { d: "M5.83203 5.33594L11.1654 10.6693", @@ -11722,7 +11878,7 @@ var RemovedIcon = (props) => /* @__PURE__ */ jsxs34( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx41( + /* @__PURE__ */ jsx42( "path", { d: "M11.1654 5.33594L5.83203 10.6693", @@ -11869,8 +12025,8 @@ function getSearchBreadcrumbs({ // src/components/search-input/customHighlight.tsx import { connectHighlight } from "react-instantsearch-dom"; -import { Flex as Flex15, Text as Text10 } from "@vtex/brand-ui"; -import { Fragment as Fragment6, jsx as jsx42 } from "react/jsx-runtime"; +import { Flex as Flex15, Text as Text11 } from "@vtex/brand-ui"; +import { Fragment as Fragment6, jsx as jsx43 } from "react/jsx-runtime"; function clipAroundHighlight(parts, maxChars) { if (!parts.length) return parts; @@ -11924,13 +12080,13 @@ var HighlightQuery = ({ query }) => { if (!query?.trim() || !text4) - return /* @__PURE__ */ jsx42(Fragment6, { children: text4 }); + return /* @__PURE__ */ jsx43(Fragment6, { children: text4 }); const escaped = query.trim().replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); const regex = new RegExp(`(${escaped})`, "ig"); const parts = text4.split(regex); const normalizedQuery = query.trim().toLowerCase(); - return /* @__PURE__ */ jsx42(Fragment6, { children: parts.map( - (part, index) => part.toLowerCase() === normalizedQuery ? /* @__PURE__ */ jsx42("mark", { style: styles_default18.hitContentHighlighted, children: part }, index) : part + return /* @__PURE__ */ jsx43(Fragment6, { children: parts.map( + (part, index) => part.toLowerCase() === normalizedQuery ? /* @__PURE__ */ jsx43("mark", { style: styles_default19.hitContentHighlighted, children: part }, index) : part ) }); }; var Highlight = ({ @@ -11948,8 +12104,8 @@ var Highlight = ({ hitHighlights, searchPage ? 700 : 160 ); - return /* @__PURE__ */ jsx42(Flex15, { className: "hit-content-title", sx: styles_default18.hitContentContainer, children: /* @__PURE__ */ jsx42(Text10, { sx: searchPage ? styles_default18.hitContent : styles_default18.hitContentSmall, children: displayParts.map( - (part, index) => part.isHighlighted ? /* @__PURE__ */ jsx42("mark", { style: styles_default18.hitContentHighlighted, children: part.value }, index) : part.value + return /* @__PURE__ */ jsx43(Flex15, { className: "hit-content-title", sx: styles_default19.hitContentContainer, children: /* @__PURE__ */ jsx43(Text11, { sx: searchPage ? styles_default19.hitContent : styles_default19.hitContentSmall, children: displayParts.map( + (part, index) => part.isHighlighted ? /* @__PURE__ */ jsx43("mark", { style: styles_default19.hitContentHighlighted, children: part.value }, index) : part.value ) }) }); }; var connectedHighlight = connectHighlight(Highlight); @@ -11957,8 +12113,8 @@ var customHighlight_default = connectedHighlight; // src/components/icons/copy-icon.tsx import { Icon as Icon22 } from "@vtex/brand-ui"; -import { jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime"; -var CopyIcon = (props) => /* @__PURE__ */ jsxs35( +import { jsx as jsx44, jsxs as jsxs36 } from "react/jsx-runtime"; +var CopyIcon = (props) => /* @__PURE__ */ jsxs36( Icon22, { ...props, @@ -11966,7 +12122,7 @@ var CopyIcon = (props) => /* @__PURE__ */ jsxs35( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx43( + /* @__PURE__ */ jsx44( "path", { d: "M12.5 5.625H6.875C6.18464 5.625 5.625 6.18464 5.625 6.875V12.5C5.625 13.1904 6.18464 13.75 6.875 13.75H12.5C13.1904 13.75 13.75 13.1904 13.75 12.5V6.875C13.75 6.18464 13.1904 5.625 12.5 5.625Z", @@ -11976,7 +12132,7 @@ var CopyIcon = (props) => /* @__PURE__ */ jsxs35( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx43( + /* @__PURE__ */ jsx44( "path", { d: "M3.125 9.375H2.5C2.16848 9.375 1.85054 9.2433 1.61612 9.00888C1.3817 8.77446 1.25 8.45652 1.25 8.125V2.5C1.25 2.16848 1.3817 1.85054 1.61612 1.61612C1.85054 1.3817 2.16848 1.25 2.5 1.25H8.125C8.45652 1.25 8.77446 1.3817 9.00888 1.61612C9.2433 1.85054 9.375 2.16848 9.375 2.5V3.125", @@ -11993,8 +12149,8 @@ var copy_icon_default = CopyIcon; // src/components/icons/external-link-icon.tsx import { Icon as Icon23 } from "@vtex/brand-ui"; -import { jsx as jsx44, jsxs as jsxs36 } from "react/jsx-runtime"; -var ExternalLinkIcon = (props) => /* @__PURE__ */ jsxs36( +import { jsx as jsx45, jsxs as jsxs37 } from "react/jsx-runtime"; +var ExternalLinkIcon = (props) => /* @__PURE__ */ jsxs37( Icon23, { ...props, @@ -12002,7 +12158,7 @@ var ExternalLinkIcon = (props) => /* @__PURE__ */ jsxs36( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx44( + /* @__PURE__ */ jsx45( "path", { d: "M12 8.66667V12.6667C12 13.0203 11.8595 13.3594 11.6095 13.6095C11.3594 13.8595 11.0203 14 10.6667 14H3.33333C2.97971 14 2.64057 13.8595 2.39052 13.6095C2.14048 13.3594 2 13.0203 2 12.6667V5.33333C2 4.97971 2.14048 4.64057 2.39052 4.39052C2.64057 4.14048 2.97971 4 3.33333 4H7.33333", @@ -12012,7 +12168,7 @@ var ExternalLinkIcon = (props) => /* @__PURE__ */ jsxs36( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx44( + /* @__PURE__ */ jsx45( "path", { d: "M10 2H14V6", @@ -12022,7 +12178,7 @@ var ExternalLinkIcon = (props) => /* @__PURE__ */ jsxs36( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx44( + /* @__PURE__ */ jsx45( "path", { d: "M6.6665 9.33333L13.9998 2", @@ -12039,8 +12195,8 @@ var external_link_icon_default = ExternalLinkIcon; // src/components/icons/paper-icon.tsx import { Icon as Icon24 } from "@vtex/brand-ui"; -import { jsx as jsx45, jsxs as jsxs37 } from "react/jsx-runtime"; -var PaperIcon = (props) => /* @__PURE__ */ jsxs37( +import { jsx as jsx46, jsxs as jsxs38 } from "react/jsx-runtime"; +var PaperIcon = (props) => /* @__PURE__ */ jsxs38( Icon24, { ...props, @@ -12048,7 +12204,7 @@ var PaperIcon = (props) => /* @__PURE__ */ jsxs37( fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx45( + /* @__PURE__ */ jsx46( "path", { d: "M10.5 1.5H4.5C4.10218 1.5 3.72064 1.65804 3.43934 1.93934C3.15804 2.22064 3 2.60218 3 3V15C3 15.3978 3.15804 15.7794 3.43934 16.0607C3.72064 16.342 4.10218 16.5 4.5 16.5H13.5C13.8978 16.5 14.2794 16.342 14.5607 16.0607C14.842 15.7794 15 15.3978 15 15V6L10.5 1.5Z", @@ -12058,7 +12214,7 @@ var PaperIcon = (props) => /* @__PURE__ */ jsxs37( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx45( + /* @__PURE__ */ jsx46( "path", { d: "M10.5 1.5V6H15", @@ -12068,7 +12224,7 @@ var PaperIcon = (props) => /* @__PURE__ */ jsxs37( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx45( + /* @__PURE__ */ jsx46( "path", { d: "M12 9.75H6", @@ -12078,7 +12234,7 @@ var PaperIcon = (props) => /* @__PURE__ */ jsxs37( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx45( + /* @__PURE__ */ jsx46( "path", { d: "M12 12.75H6", @@ -12088,7 +12244,7 @@ var PaperIcon = (props) => /* @__PURE__ */ jsxs37( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx45( + /* @__PURE__ */ jsx46( "path", { d: "M7.5 6.75H6.75H6", @@ -12104,7 +12260,7 @@ var PaperIcon = (props) => /* @__PURE__ */ jsxs37( var paper_icon_default = PaperIcon; // src/components/search-input/results-box.tsx -import { Fragment as Fragment7, jsx as jsx46, jsxs as jsxs38 } from "react/jsx-runtime"; +import { Fragment as Fragment7, jsx as jsx47, jsxs as jsxs39 } from "react/jsx-runtime"; var VISIBLE_HITS = 7; var VISIBLE_HITS_MODAL = 5; var Hit2 = ({ @@ -12118,7 +12274,7 @@ var Hit2 = ({ onOpenNewTab, onMouseEnter }) => { - const { sidebarSections, sidebarDataMaster, locale } = useContext11(LibraryContext); + const { sidebarSections, sidebarDataMaster, locale } = useContext12(LibraryContext); const DocIcon = getIconFromSection(sidebarSections, hit.doctype) || paper_icon_default; const title9 = typeof hit.doctitle === "string" ? hit.doctitle : ""; const relativeUrl = getRelativeURL(hit.url); @@ -12130,73 +12286,73 @@ var Hit2 = ({ }); const isModal = variant === "modal"; const method = getSearchHitMethod(hit); - return /* @__PURE__ */ jsxs38( - Box18, + return /* @__PURE__ */ jsxs39( + Box19, { - sx: isModal ? styles_default18.hitBoxModal : styles_default18.hitBox, + sx: isModal ? styles_default19.hitBoxModal : styles_default19.hitBox, "data-active": String(Boolean(isActive)), onMouseEnter, children: [ - /* @__PURE__ */ jsx46(Link7, { href: relativeUrl, legacyBehavior: true, children: /* @__PURE__ */ jsx46( + /* @__PURE__ */ jsx47(Link7, { href: relativeUrl, legacyBehavior: true, children: /* @__PURE__ */ jsx47( "a", { onClick: () => insights("clickedObjectIDsAfterSearch", { eventName: "Search in top bar", objectIDs: [hit.objectID] }), - children: /* @__PURE__ */ jsxs38(Flex16, { sx: isModal ? styles_default18.hitLinkModal : styles_default18.hitLink, children: [ - /* @__PURE__ */ jsx46( - Box18, + children: /* @__PURE__ */ jsxs39(Flex16, { sx: isModal ? styles_default19.hitLinkModal : styles_default19.hitLink, children: [ + /* @__PURE__ */ jsx47( + Box19, { className: "hit-icon-wrap", - sx: isModal ? styles_default18.hitIconWrapModal : styles_default18.hitIconWrap, - children: /* @__PURE__ */ jsx46( + sx: isModal ? styles_default19.hitIconWrapModal : styles_default19.hitIconWrap, + children: /* @__PURE__ */ jsx47( DocIcon, { className: "hit-icon", - sx: isModal ? styles_default18.hitIconModal : styles_default18.hitIcon + sx: isModal ? styles_default19.hitIconModal : styles_default19.hitIcon } ) } ), - /* @__PURE__ */ jsxs38(Box18, { sx: styles_default18.hitText, children: [ - title9 ? /* @__PURE__ */ jsxs38(Text11, { sx: isModal ? styles_default18.hitTitleModal : styles_default18.hitTitle, children: [ - method ? /* @__PURE__ */ jsx46( + /* @__PURE__ */ jsxs39(Box19, { sx: styles_default19.hitText, children: [ + title9 ? /* @__PURE__ */ jsxs39(Text12, { sx: isModal ? styles_default19.hitTitleModal : styles_default19.hitTitle, children: [ + method ? /* @__PURE__ */ jsx47( method_category_default, { - sx: styles_default18.httpMethod, + sx: styles_default19.httpMethod, origin: "search", method, active: false } ) : null, - /* @__PURE__ */ jsx46(Text11, { as: "span", sx: styles_default18.hitTitleText, children: /* @__PURE__ */ jsx46(HighlightQuery, { text: title9, query }) }) + /* @__PURE__ */ jsx47(Text12, { as: "span", sx: styles_default19.hitTitleText, children: /* @__PURE__ */ jsx47(HighlightQuery, { text: title9, query }) }) ] }) : null, - !isModal && hit.content ? /* @__PURE__ */ jsx46(customHighlight_default, { hit, attribute: "content" }) : null, - typeof hit.doctype === "string" && /* @__PURE__ */ jsx46(Flex16, { sx: styles_default18.hitBreadcrumbs, children: isModal ? (breadcrumbs.length ? breadcrumbs : [String(hit.doctype)]).map((filter, index) => /* @__PURE__ */ jsxs38(Flex16, { sx: styles_default18.alignCenter, children: [ - index > 0 && /* @__PURE__ */ jsx46( + !isModal && hit.content ? /* @__PURE__ */ jsx47(customHighlight_default, { hit, attribute: "content" }) : null, + typeof hit.doctype === "string" && /* @__PURE__ */ jsx47(Flex16, { sx: styles_default19.hitBreadcrumbs, children: isModal ? (breadcrumbs.length ? breadcrumbs : [String(hit.doctype)]).map((filter, index) => /* @__PURE__ */ jsxs39(Flex16, { sx: styles_default19.alignCenter, children: [ + index > 0 && /* @__PURE__ */ jsx47( IconCaret4, { direction: "right", - sx: styles_default18.hitBreadCrumbArrow + sx: styles_default19.hitBreadCrumbArrow } ), - /* @__PURE__ */ jsx46(Text11, { sx: styles_default18.hitBreadCrumb, children: filter || hit.doctype }) - ] }, `${filter}${index}`)) : /* @__PURE__ */ jsxs38(Fragment7, { children: [ - /* @__PURE__ */ jsx46(Text11, { sx: styles_default18.hitBreadCrumbIn, children: `${messages[locale]["search_card.in"] || "In"} ${breadcrumbs[0] || hit.doctype}` }), - breadcrumbs.slice(1).map((filter, index) => /* @__PURE__ */ jsxs38( + /* @__PURE__ */ jsx47(Text12, { sx: styles_default19.hitBreadCrumb, children: filter || hit.doctype }) + ] }, `${filter}${index}`)) : /* @__PURE__ */ jsxs39(Fragment7, { children: [ + /* @__PURE__ */ jsx47(Text12, { sx: styles_default19.hitBreadCrumbIn, children: `${messages[locale]["search_card.in"] || "In"} ${breadcrumbs[0] || hit.doctype}` }), + breadcrumbs.slice(1).map((filter, index) => /* @__PURE__ */ jsxs39( Flex16, { - sx: styles_default18.alignCenter, + sx: styles_default19.alignCenter, children: [ - /* @__PURE__ */ jsx46( + /* @__PURE__ */ jsx47( IconCaret4, { direction: "right", - sx: styles_default18.hitBreadCrumbArrow + sx: styles_default19.hitBreadCrumbArrow } ), - /* @__PURE__ */ jsx46(Text11, { sx: styles_default18.hitBreadCrumb, children: filter }) + /* @__PURE__ */ jsx47(Text12, { sx: styles_default19.hitBreadCrumb, children: filter }) ] }, `${filter}${index}` @@ -12206,31 +12362,31 @@ var Hit2 = ({ ] }) } ) }), - !isModal && /* @__PURE__ */ jsxs38(Flex16, { className: "hit-actions", sx: styles_default18.hitActions, children: [ - /* @__PURE__ */ jsx46( - Box18, + !isModal && /* @__PURE__ */ jsxs39(Flex16, { className: "hit-actions", sx: styles_default19.hitActions, children: [ + /* @__PURE__ */ jsx47( + Box19, { as: "button", type: "button", - sx: copied ? styles_default18.hitActionButtonCopied : styles_default18.hitActionButton, + sx: copied ? styles_default19.hitActionButtonCopied : styles_default19.hitActionButton, "aria-label": copied ? messages[locale]["search_input.copied"] || "Copied" : messages[locale]["search_input.copy_link"] || "Copy link", title: copied ? messages[locale]["search_input.copied"] || "Copied" : messages[locale]["search_input.copy_link"] || "Copy link", onClick: (event) => onCopy(event, relativeUrl, hit.objectID), onMouseDown: (event) => event.preventDefault(), - children: /* @__PURE__ */ jsx46(copy_icon_default, { size: 14 }) + children: /* @__PURE__ */ jsx47(copy_icon_default, { size: 14 }) } ), - /* @__PURE__ */ jsx46( - Box18, + /* @__PURE__ */ jsx47( + Box19, { as: "button", type: "button", - sx: styles_default18.hitActionButton, + sx: styles_default19.hitActionButton, "aria-label": messages[locale]["search_input.open_new_tab"] || "Open in new tab", title: messages[locale]["search_input.open_new_tab"] || "Open in new tab", onClick: (event) => onOpenNewTab(event, relativeUrl), onMouseDown: (event) => event.preventDefault(), - children: /* @__PURE__ */ jsx46(external_link_icon_default, { size: 14 }) + children: /* @__PURE__ */ jsx47(external_link_icon_default, { size: 14 }) } ) ] }) @@ -12242,9 +12398,9 @@ var HitWithInsights = connectHitInsights(aa)(Hit2); var HitsBox = connectStateResults( ({ searchState, searchResults, changeFocus, variant = "default" }) => { const router = useRouter5(); - const { locale } = useContext11(LibraryContext); - const [activeIndex, setActiveIndex] = useState12(-1); - const [copiedId, setCopiedId] = useState12(null); + const { locale } = useContext12(LibraryContext); + const [activeIndex, setActiveIndex] = useState13(-1); + const [copiedId, setCopiedId] = useState13(null); const isModal = variant === "modal"; const maxHits = isModal ? VISIBLE_HITS_MODAL : VISIBLE_HITS; const visibleHits = searchResults ? searchResults.hits.slice(0, maxHits) : []; @@ -12337,24 +12493,24 @@ var HitsBox = connectStateResults( ]); if (isModal && !searchState.query) return null; - return /* @__PURE__ */ jsx46(Fragment7, { children: searchResults && /* @__PURE__ */ jsx46( - Box18, + return /* @__PURE__ */ jsx47(Fragment7, { children: searchResults && /* @__PURE__ */ jsx47( + Box19, { - sx: isModal ? styles_default18.resultsOuterContainerModal : styles_default18.resultsOuterContainer, - children: /* @__PURE__ */ jsxs38( - Box18, + sx: isModal ? styles_default19.resultsOuterContainerModal : styles_default19.resultsOuterContainer, + children: /* @__PURE__ */ jsxs39( + Box19, { - sx: isModal ? styles_default18.resultsInnerContainerModal : styles_default18.resultsInnerContainer, + sx: isModal ? styles_default19.resultsInnerContainerModal : styles_default19.resultsInnerContainer, children: [ - /* @__PURE__ */ jsx46( - Box18, + /* @__PURE__ */ jsx47( + Box19, { - sx: searchResults.hits.length && (isModal ? styles_default18.resultsBoxModal : styles_default18.resultsBox), - children: visibleHits.map((searchResult, index) => /* @__PURE__ */ jsx46( - Box18, + sx: searchResults.hits.length && (isModal ? styles_default19.resultsBoxModal : styles_default19.resultsBox), + children: visibleHits.map((searchResult, index) => /* @__PURE__ */ jsx47( + Box19, { onClick: () => changeFocus(false), - children: /* @__PURE__ */ jsx46( + children: /* @__PURE__ */ jsx47( HitWithInsights, { hit: setQueryIDAndPosition(searchResult, index), @@ -12372,43 +12528,43 @@ var HitsBox = connectStateResults( )) } ), - searchResults.hits.length > 0 && /* @__PURE__ */ jsxs38( + searchResults.hits.length > 0 && /* @__PURE__ */ jsxs39( Flex16, { - sx: isModal ? styles_default18.resultsFooterModal(hasSeeAll) : styles_default18.resultsFooter(hasSeeAll), + sx: isModal ? styles_default19.resultsFooterModal(hasSeeAll) : styles_default19.resultsFooter(hasSeeAll), children: [ - !isModal && /* @__PURE__ */ jsxs38(Flex16, { sx: styles_default18.keyboardHints, children: [ - /* @__PURE__ */ jsxs38(Flex16, { sx: styles_default18.keyboardHint, children: [ - /* @__PURE__ */ jsx46(Text11, { as: "span", sx: styles_default18.kbd, children: "\u2191" }), - /* @__PURE__ */ jsx46(Text11, { as: "span", sx: styles_default18.kbd, children: "\u2193" }), - /* @__PURE__ */ jsx46(Text11, { children: messages[locale]["search_input.navigate"] || "Navigate" }) + !isModal && /* @__PURE__ */ jsxs39(Flex16, { sx: styles_default19.keyboardHints, children: [ + /* @__PURE__ */ jsxs39(Flex16, { sx: styles_default19.keyboardHint, children: [ + /* @__PURE__ */ jsx47(Text12, { as: "span", sx: styles_default19.kbd, children: "\u2191" }), + /* @__PURE__ */ jsx47(Text12, { as: "span", sx: styles_default19.kbd, children: "\u2193" }), + /* @__PURE__ */ jsx47(Text12, { children: messages[locale]["search_input.navigate"] || "Navigate" }) ] }), - /* @__PURE__ */ jsxs38(Flex16, { sx: styles_default18.keyboardHint, children: [ - /* @__PURE__ */ jsx46(Text11, { as: "span", sx: styles_default18.kbd, children: "\u21B5" }), - /* @__PURE__ */ jsx46(Text11, { children: messages[locale]["search_input.open"] || "Open" }) + /* @__PURE__ */ jsxs39(Flex16, { sx: styles_default19.keyboardHint, children: [ + /* @__PURE__ */ jsx47(Text12, { as: "span", sx: styles_default19.kbd, children: "\u21B5" }), + /* @__PURE__ */ jsx47(Text12, { children: messages[locale]["search_input.open"] || "Open" }) ] }), - /* @__PURE__ */ jsxs38(Flex16, { sx: styles_default18.keyboardHint, children: [ - /* @__PURE__ */ jsx46(Text11, { as: "span", sx: styles_default18.kbd, children: "esc" }), - /* @__PURE__ */ jsx46(Text11, { children: messages[locale]["search_input.close"] || "Close" }) + /* @__PURE__ */ jsxs39(Flex16, { sx: styles_default19.keyboardHint, children: [ + /* @__PURE__ */ jsx47(Text12, { as: "span", sx: styles_default19.kbd, children: "esc" }), + /* @__PURE__ */ jsx47(Text12, { children: messages[locale]["search_input.close"] || "Close" }) ] }) ] }), - hasSeeAll && /* @__PURE__ */ jsxs38( - Box18, + hasSeeAll && /* @__PURE__ */ jsxs39( + Box19, { - sx: styles_default18.seeAll, + sx: styles_default19.seeAll, "data-active": String(activeIndex === visibleHits.length), onMouseEnter: () => setActiveIndex(visibleHits.length), onClick: () => seeAllSubmit(searchState.query || ""), children: [ - /* @__PURE__ */ jsx46(Text11, { children: messages[locale]["search_input.see_all"] || "See all results" }), - /* @__PURE__ */ jsx46(IconCaret4, { direction: "right", sx: styles_default18.seeAllCaret }) + /* @__PURE__ */ jsx47(Text12, { children: messages[locale]["search_input.see_all"] || "See all results" }), + /* @__PURE__ */ jsx47(IconCaret4, { direction: "right", sx: styles_default19.seeAllCaret }) ] } ) ] } ), - !searchResults.hits.length && /* @__PURE__ */ jsx46(Flex16, { sx: styles_default18.noResults, children: /* @__PURE__ */ jsx46(Text11, { children: messages[locale]["search_input.empty"] || "No results found. Try different search terms." }) }) + !searchResults.hits.length && /* @__PURE__ */ jsx47(Flex16, { sx: styles_default19.noResults, children: /* @__PURE__ */ jsx47(Text12, { children: messages[locale]["search_input.empty"] || "No results found. Try different search terms." }) }) ] } ) @@ -12419,8 +12575,8 @@ var HitsBox = connectStateResults( var results_box_default = HitsBox; // src/components/search-input/index.tsx -import { Box as Box19, Flex as Flex17 } from "@vtex/brand-ui"; -import { useContext as useContext12, useRef as useRef9, useState as useState13 } from "react"; +import { Box as Box20, Flex as Flex17 } from "@vtex/brand-ui"; +import { useContext as useContext13, useRef as useRef9, useState as useState14 } from "react"; // src/utils/config/search-config.ts var import_lite = __toESM(require_lite()); @@ -12918,15 +13074,15 @@ function SearchConfig(config) { } // src/components/search-input/index.tsx -import { jsx as jsx47, jsxs as jsxs39 } from "react/jsx-runtime"; +import { jsx as jsx48, jsxs as jsxs40 } from "react/jsx-runtime"; function SearchInput({ variant = "default", autoFocus = false, onClose }) { - const { locale } = useContext12(LibraryContext); + const { locale } = useContext13(LibraryContext); const isModal = variant === "modal"; - const [focusOut, setfocusOut] = useState13({ + const [focusOut, setfocusOut] = useState14({ modaltoggle: true }); const resultsBox2 = useRef9(); @@ -12936,7 +13092,7 @@ function SearchInput({ if (!value) onClose?.(); }; - const searchBox2 = /* @__PURE__ */ jsx47( + const searchBox2 = /* @__PURE__ */ jsx48( search_box_default, { changeFocus, @@ -12944,27 +13100,27 @@ function SearchInput({ variant } ); - return /* @__PURE__ */ jsxs39(InstantSearch, { searchClient, indexName: searchIndex, children: [ - searchClient.instantSearchConfigs && /* @__PURE__ */ jsx47(Configure, { ...searchClient.instantSearchConfigs }), - searchClient.useLanguageFilter && /* @__PURE__ */ jsx47( + return /* @__PURE__ */ jsxs40(InstantSearch, { searchClient, indexName: searchIndex, children: [ + searchClient.instantSearchConfigs && /* @__PURE__ */ jsx48(Configure, { ...searchClient.instantSearchConfigs }), + searchClient.useLanguageFilter && /* @__PURE__ */ jsx48( Configure, { clickAnalytics: true, facetFilters: [`language:${locale}`] } ), - !searchClient.useLanguageFilter && /* @__PURE__ */ jsx47(Configure, { clickAnalytics: true }), - isModal ? /* @__PURE__ */ jsxs39(Flex17, { sx: styles_default18.modalRoot, children: [ - /* @__PURE__ */ jsx47(Box19, { sx: styles_default18.modalSearchBox, children: searchBox2 }), - /* @__PURE__ */ jsx47(Box19, { sx: styles_default18.modalResults, children: /* @__PURE__ */ jsx47(results_box_default, { changeFocus, variant }) }) - ] }) : /* @__PURE__ */ jsxs39( - Box19, + !searchClient.useLanguageFilter && /* @__PURE__ */ jsx48(Configure, { clickAnalytics: true }), + isModal ? /* @__PURE__ */ jsxs40(Flex17, { sx: styles_default19.modalRoot, children: [ + /* @__PURE__ */ jsx48(Box20, { sx: styles_default19.modalSearchBox, children: searchBox2 }), + /* @__PURE__ */ jsx48(Box20, { sx: styles_default19.modalResults, children: /* @__PURE__ */ jsx48(results_box_default, { changeFocus, variant }) }) + ] }) : /* @__PURE__ */ jsxs40( + Box20, { onFocus: () => setfocusOut({ modaltoggle: true }), ref: resultsBox2, children: [ searchBox2, - focusOut.modaltoggle && /* @__PURE__ */ jsx47(results_box_default, { changeFocus, variant }) + focusOut.modaltoggle && /* @__PURE__ */ jsx48(results_box_default, { changeFocus, variant }) ] } ) @@ -13023,18 +13179,18 @@ var card = { boxShadow: "0 16px 48px rgba(20, 32, 50, 0.24)", overflow: "hidden" }; -var styles_default19 = { +var styles_default20 = { trigger, overlay, card }; // src/components/mobile-search/index.tsx -import { Fragment as Fragment8, jsx as jsx48, jsxs as jsxs40 } from "react/jsx-runtime"; +import { Fragment as Fragment8, jsx as jsx49, jsxs as jsxs41 } from "react/jsx-runtime"; var MobileSearch = ({ onOpen }) => { const router = useRouter6(); - const { locale } = useContext13(LibraryContext); - const [isOpen, setIsOpen] = useState14(false); + const { locale } = useContext14(LibraryContext); + const [isOpen, setIsOpen] = useState15(false); const openLabel = messages[locale]["search_input.open_search"] || messages[locale]["search_input.placeholder"] || "Search"; const openModal = () => { onOpen?.(); @@ -13068,34 +13224,34 @@ var MobileSearch = ({ onOpen }) => { router.events?.off("hashChangeStart", handleRouteChange); }; }, [router.events]); - return /* @__PURE__ */ jsxs40(Fragment8, { children: [ - /* @__PURE__ */ jsx48( - Box20, + return /* @__PURE__ */ jsxs41(Fragment8, { children: [ + /* @__PURE__ */ jsx49( + Box21, { as: "button", type: "button", - sx: styles_default19.trigger, + sx: styles_default20.trigger, "aria-label": openLabel, "aria-expanded": isOpen, "aria-haspopup": "dialog", onClick: openModal, - children: /* @__PURE__ */ jsx48(search_icon_default, { sx: { width: "24px", height: "24px" } }) + children: /* @__PURE__ */ jsx49(search_icon_default, { sx: { width: "24px", height: "24px" } }) } ), - isOpen && /* @__PURE__ */ jsx48( + isOpen && /* @__PURE__ */ jsx49( Flex18, { - sx: styles_default19.overlay, + sx: styles_default20.overlay, role: "dialog", "aria-modal": "true", "aria-label": openLabel, onClick: closeModal, - children: /* @__PURE__ */ jsx48( + children: /* @__PURE__ */ jsx49( Flex18, { - sx: styles_default19.card, + sx: styles_default20.card, onClick: (event) => event.stopPropagation(), - children: /* @__PURE__ */ jsx48(SearchInput, { variant: "modal", autoFocus: true, onClose: closeModal }) + children: /* @__PURE__ */ jsx49(SearchInput, { variant: "modal", autoFocus: true, onClose: closeModal }) } ) } @@ -13105,7 +13261,7 @@ var MobileSearch = ({ onOpen }) => { var mobile_search_default = MobileSearch; // src/lib/hamburger-menu/index.tsx -import { jsx as jsx49, jsxs as jsxs41 } from "react/jsx-runtime"; +import { jsx as jsx50, jsxs as jsxs42 } from "react/jsx-runtime"; function getRouteSlug(slug) { if (typeof slug === "string") return slug; @@ -13116,7 +13272,7 @@ function getRouteSlug(slug) { var HamburgerMenu = ({ parentsArray = [] }) => { const router = useRouter7(); const hamburgerRef = useRef10(null); - const context = useContext14(LibraryContext); + const context = useContext15(LibraryContext); const { sidebarDataMaster, sidebarSectionHidden, @@ -13126,7 +13282,7 @@ var HamburgerMenu = ({ parentsArray = [] }) => { hamburguerSections, locale } = context; - const [userOpenedSection, setUserOpenedSection] = useState15(false); + const [userOpenedSection, setUserOpenedSection] = useState16(false); const articleSlug = getRouteSlug(router.query.slug); const isListedArticle = parentsArray.length > 0 || Boolean(articleSlug) && getDocumentationType(sidebarDataMaster, articleSlug) != null; const showNestedSidebar = Boolean(activeSectionName) && !sidebarSectionHidden && (userOpenedSection || isListedArticle || !articleSlug); @@ -13160,18 +13316,18 @@ var HamburgerMenu = ({ parentsArray = [] }) => { return isDoc; }; updateOpenPage({ parentsArray, context }); - return /* @__PURE__ */ jsxs41(Header.ActionButton, { sx: styles_default16.headerActions, children: [ - /* @__PURE__ */ jsx49(mobile_search_default, { onOpen: closeMenu }), - /* @__PURE__ */ jsx49(Box21, { ref: hamburgerRef, sx: { display: "contents" }, children: /* @__PURE__ */ jsxs41(VtexHamburgerMenu, { sx: styles_default16.hamburgerContainer, children: [ - /* @__PURE__ */ jsx49(Box21, { sx: styles_default16.backdrop, "aria-hidden": "true", onClick: closeMenu }), - /* @__PURE__ */ jsx49(VtexHamburgerMenu.Menu, { sx: styles_default16.innerHambugerContainer, children: /* @__PURE__ */ jsxs41(Box21, { sx: styles_default16.menuContainer, children: [ - /* @__PURE__ */ jsx49(Box21, { sx: styles_default16.cardContainer, children: hamburguerSections.map((section, id) => /* @__PURE__ */ jsx49( - Box21, + return /* @__PURE__ */ jsxs42(Header.ActionButton, { sx: styles_default17.headerActions, children: [ + /* @__PURE__ */ jsx50(mobile_search_default, { onOpen: closeMenu }), + /* @__PURE__ */ jsx50(Box22, { ref: hamburgerRef, sx: { display: "contents" }, children: /* @__PURE__ */ jsxs42(VtexHamburgerMenu, { sx: styles_default17.hamburgerContainer, children: [ + /* @__PURE__ */ jsx50(Box22, { sx: styles_default17.backdrop, "aria-hidden": "true", onClick: closeMenu }), + /* @__PURE__ */ jsx50(VtexHamburgerMenu.Menu, { sx: styles_default17.innerHambugerContainer, children: /* @__PURE__ */ jsxs42(Box22, { sx: styles_default17.menuContainer, children: [ + /* @__PURE__ */ jsx50(Box22, { sx: styles_default17.cardContainer, children: hamburguerSections.map((section, id) => /* @__PURE__ */ jsx50( + Box22, { - sx: id > 0 ? styles_default16.updatesContainer : styles_default16.documentationContainer, + sx: id > 0 ? styles_default17.updatesContainer : styles_default17.documentationContainer, "data-cy": "dropdown-menu-first-section", - children: section.map((card2) => /* @__PURE__ */ jsxs41(Box21, { sx: styles_default16.innerCardContainer, children: [ - /* @__PURE__ */ jsx49(Box21, { sx: styles_default16.innerCardContent, children: /* @__PURE__ */ jsx49( + children: section.map((card2) => /* @__PURE__ */ jsxs42(Box22, { sx: styles_default17.innerCardContainer, children: [ + /* @__PURE__ */ jsx50(Box22, { sx: styles_default17.innerCardContent, children: /* @__PURE__ */ jsx50( documentation_card_default, { containerType: "mobile", @@ -13190,91 +13346,51 @@ var HamburgerMenu = ({ parentsArray = [] }) => { } } ) }), - isDocument(sidebarDataMaster, card2.id) ? /* @__PURE__ */ jsx49( + isDocument(sidebarDataMaster, card2.id) ? /* @__PURE__ */ jsx50( Button4, { "aria-label": "Open sidebar", size: "regular", variant: "tertiary", - icon: () => /* @__PURE__ */ jsx49(IconCaret5, { direction: "right", size: 20 }), - sx: activeSectionName === card2.id && showNestedSidebar ? styles_default16.arrowIconActive : styles_default16.arrowIcon, + icon: () => /* @__PURE__ */ jsx50(IconCaret5, { direction: "right", size: 20 }), + sx: activeSectionName === card2.id && showNestedSidebar ? styles_default17.arrowIconActive : styles_default17.arrowIcon, onClick: () => openSection(card2.id) } ) : null ] }, card2.id)) }, id - )) }), - /* @__PURE__ */ jsx49( - Box21, - { - className: showNestedSidebar ? "menuHidden" : "", - sx: styles_default16.sideMenuContainer, - children: activeSectionName ? /* @__PURE__ */ jsx49( - sidebar_section_default, - { - isHamburgerMenu: true, - ...Array.isArray(sidebarDataMaster) ? sidebarDataMaster?.find( - (section) => section.documentation === activeSectionName - ) : null - } - ) : null - } - ) - ] }) }) - ] }) }) - ] }); -}; -var hamburger_menu_default = HamburgerMenu; - -// src/components/feedback-section/index.tsx -import { Flex as Flex20, Text as Text13, Link as Link8 } from "@vtex/brand-ui"; - -// src/components/icons/edit-icon.tsx -import { Icon as Icon25 } from "@vtex/brand-ui"; -import { jsx as jsx50, jsxs as jsxs42 } from "react/jsx-runtime"; -var EditIcon = (props) => /* @__PURE__ */ jsxs42( - Icon25, - { - ...props, - width: "25", - height: "25", - viewBox: "0 0 25 25", - fill: "none", - xmlns: "http://www.w3.org/2000/svg", - children: [ - /* @__PURE__ */ jsx50( - "path", - { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M5.793 16.6107L16.119 6.28469C16.509 5.89469 17.142 5.89469 17.532 6.28469L19.208 7.96069C19.598 8.35069 19.598 8.98369 19.208 9.37369L8.881 19.6987C8.694 19.8867 8.44 19.9917 8.175 19.9917H5.5V17.3167C5.5 17.0517 5.605 16.7977 5.793 16.6107Z", - stroke: "currentColor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ), - /* @__PURE__ */ jsx50( - "path", - { - d: "M14.25 8.15234L17.34 11.2423", - stroke: "currentColor", - strokeWidth: "1.5", - strokeLinecap: "round", - strokeLinejoin: "round" - } - ) - ] - } -); -var edit_icon_default = EditIcon; + )) }), + /* @__PURE__ */ jsx50( + Box22, + { + className: showNestedSidebar ? "menuHidden" : "", + sx: styles_default17.sideMenuContainer, + children: activeSectionName ? /* @__PURE__ */ jsx50( + sidebar_section_default, + { + isHamburgerMenu: true, + ...Array.isArray(sidebarDataMaster) ? sidebarDataMaster?.find( + (section) => section.documentation === activeSectionName + ) : null + } + ) : null + } + ) + ] }) }) + ] }) }) + ] }); +}; +var hamburger_menu_default = HamburgerMenu; + +// src/components/feedback-section/index.tsx +import { Flex as Flex20, Text as Text15 } from "@vtex/brand-ui"; // src/components/icons/like-icon.tsx -import { Icon as Icon26 } from "@vtex/brand-ui"; +import { Icon as Icon25 } from "@vtex/brand-ui"; import { jsx as jsx51, jsxs as jsxs43 } from "react/jsx-runtime"; var LikeIcon = (props) => /* @__PURE__ */ jsxs43( - Icon26, + Icon25, { ...props, width: "25", @@ -13311,10 +13427,10 @@ var LikeIcon = (props) => /* @__PURE__ */ jsxs43( var like_icon_default = LikeIcon; // src/components/icons/like-selected-icon.tsx -import { Icon as Icon27 } from "@vtex/brand-ui"; +import { Icon as Icon26 } from "@vtex/brand-ui"; import { jsx as jsx52, jsxs as jsxs44 } from "react/jsx-runtime"; var LikeSelectedIcon = (props) => /* @__PURE__ */ jsxs44( - Icon27, + Icon26, { ...props, width: "24", @@ -13348,10 +13464,10 @@ var LikeSelectedIcon = (props) => /* @__PURE__ */ jsxs44( var like_selected_icon_default = LikeSelectedIcon; // src/components/feedback-section/index.tsx -import { useContext as useContext15, useEffect as useEffect15, useState as useState17 } from "react"; +import { useContext as useContext17, useEffect as useEffect15, useState as useState18 } from "react"; // src/components/feedback-section/styles.ts -var container7 = ({ small } = {}) => ({ +var container8 = ({ small } = {}) => ({ width: "100%", flexDirection: small ? "column" : ["column", "row"], alignItems: small ? "flex-start" : "center", @@ -13388,7 +13504,7 @@ var dislikeIcon = { mr: "2px", transform: "rotateX(180deg) rotateY(180deg)" }; -var button2 = { +var button3 = { ":hover": { cursor: "pointer", color: "#000711", @@ -13407,37 +13523,18 @@ var buttonActive = { var selectedButton = { color: "muted.1" }; -var box = ({ small } = {}) => ({ - alignItems: "center", - color: "muted.0", - fontSize: small ? "12px" : "16px", - lineHeight: "22px" -}); var disabled = { display: "none !important" }; -var editContainer = ({ small } = {}) => ({ - ...box({ small }), - ...button2, - ":hover": { - color: "#000711 !important" - }, - color: "#4A596B !important", - display: "flex" -}); -var editIcon = { mr: "4px" }; var shareButton = {}; -var styles_default20 = { +var styles_default21 = { disabled, - container: container7, + container: container8, question, likeContainer, likeIcon, dislikeIcon, - editContainer, - editIcon, - box, - button: button2, + button: button3, buttonActive, selectedButton, shareButton, @@ -13445,13 +13542,13 @@ var styles_default20 = { }; // src/components/share-button/index.tsx -import { Box as Box22, Button as Button5, Flex as Flex19, Text as Text12 } from "@vtex/brand-ui"; +import { Box as Box23, Button as Button5, Flex as Flex19, Text as Text13 } from "@vtex/brand-ui"; // src/components/icons/facebook-icon.tsx -import { Icon as Icon28 } from "@vtex/brand-ui"; +import { Icon as Icon27 } from "@vtex/brand-ui"; import { jsx as jsx53 } from "react/jsx-runtime"; var FacebookIcon = (props) => /* @__PURE__ */ jsx53( - Icon28, + Icon27, { ...props, viewBox: "0 0 8 16", @@ -13469,10 +13566,10 @@ var FacebookIcon = (props) => /* @__PURE__ */ jsx53( var facebook_icon_default = FacebookIcon; // src/components/icons/linkedin-icon.tsx -import { Icon as Icon29 } from "@vtex/brand-ui"; +import { Icon as Icon28 } from "@vtex/brand-ui"; import { jsx as jsx54 } from "react/jsx-runtime"; var LinkedinIcon = (props) => /* @__PURE__ */ jsx54( - Icon29, + Icon28, { ...props, viewBox: "0 0 26 24", @@ -13492,10 +13589,10 @@ var LinkedinIcon = (props) => /* @__PURE__ */ jsx54( var linkedin_icon_default = LinkedinIcon; // src/components/icons/share-icon.tsx -import { Icon as Icon30 } from "@vtex/brand-ui"; +import { Icon as Icon29 } from "@vtex/brand-ui"; import { jsx as jsx55, jsxs as jsxs45 } from "react/jsx-runtime"; var ShareIcon = (props) => /* @__PURE__ */ jsxs45( - Icon30, + Icon29, { ...props, viewBox: "0 0 24 24", @@ -13510,10 +13607,10 @@ var ShareIcon = (props) => /* @__PURE__ */ jsxs45( var share_icon_default = ShareIcon; // src/components/icons/twitter-icon.tsx -import { Icon as Icon31 } from "@vtex/brand-ui"; +import { Icon as Icon30 } from "@vtex/brand-ui"; import { jsx as jsx56 } from "react/jsx-runtime"; var TwitterIcon = (props) => /* @__PURE__ */ jsx56( - Icon31, + Icon30, { ...props, viewBox: "0 0 16 16", @@ -13533,7 +13630,7 @@ var TwitterIcon = (props) => /* @__PURE__ */ jsx56( var twitter_icon_default = TwitterIcon; // src/components/share-button/index.tsx -import { useRef as useRef11, useState as useState16 } from "react"; +import { useRef as useRef11, useState as useState17 } from "react"; import { FacebookShareButton, LinkedinShareButton, @@ -13542,11 +13639,11 @@ import { } from "react-share"; // src/components/share-button/styles.ts -var container8 = { +var container9 = { position: "relative", height: "24px" }; -var button3 = { +var button4 = { cursor: "pointer", textTransform: "none", fontSize: "16px", @@ -13599,9 +13696,9 @@ var innerContainer = { var divider = { borderBottom: "1px solid #E7E9EE" }; -var styles_default21 = { - container: container8, - button: button3, +var styles_default22 = { + container: container9, + button: button4, shareIcon, innerButton, innerContainer, @@ -13609,10 +13706,10 @@ var styles_default21 = { }; // src/components/icons/email-icon.tsx -import { Icon as Icon32 } from "@vtex/brand-ui"; +import { Icon as Icon31 } from "@vtex/brand-ui"; import { jsx as jsx57 } from "react/jsx-runtime"; var EmailIcon = (props) => /* @__PURE__ */ jsx57( - Icon32, + Icon31, { ...props, width: "25", @@ -13634,7 +13731,7 @@ var email_icon_default = EmailIcon; // src/components/share-button/index.tsx import { jsx as jsx58, jsxs as jsxs46 } from "react/jsx-runtime"; var ShareButton = ({ url, sx = {} }) => { - const [isOpen, setIsOpen] = useState16(false); + const [isOpen, setIsOpen] = useState17(false); const containerRef = useRef11(); useClickOutside(containerRef, () => setIsOpen(false)); const handleCopyLink = async () => { @@ -13645,48 +13742,135 @@ var ShareButton = ({ url, sx = {} }) => { console.error("Error copying link to clipboard:", error); } }; - return /* @__PURE__ */ jsxs46(Flex19, { sx: { ...styles_default21.container, ...sx }, ref: containerRef, children: [ + return /* @__PURE__ */ jsxs46(Flex19, { sx: { ...styles_default22.container, ...sx }, ref: containerRef, children: [ /* @__PURE__ */ jsxs46( Button5, { - sx: styles_default21.button, + sx: styles_default22.button, variant: "tertiary", onClick: () => setIsOpen(!isOpen), children: [ - /* @__PURE__ */ jsx58(share_icon_default, { sx: styles_default21.shareIcon, size: 24 }), + /* @__PURE__ */ jsx58(share_icon_default, { sx: styles_default22.shareIcon, size: 24 }), " Share" ] } ), - isOpen && /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default21.innerContainer, children: [ - /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default21.innerButton, onClick: handleCopyLink, children: [ + isOpen && /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerContainer, children: [ + /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerButton, onClick: handleCopyLink, children: [ /* @__PURE__ */ jsx58(link_icon_default, { size: 16 }), - /* @__PURE__ */ jsx58(Text12, { children: "Copy link" }) + /* @__PURE__ */ jsx58(Text13, { children: "Copy link" }) ] }), - /* @__PURE__ */ jsx58(Box22, { sx: styles_default21.divider }), - /* @__PURE__ */ jsx58(EmailShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default21.innerButton, onClick: handleCopyLink, children: [ + /* @__PURE__ */ jsx58(Box23, { sx: styles_default22.divider }), + /* @__PURE__ */ jsx58(EmailShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerButton, onClick: handleCopyLink, children: [ /* @__PURE__ */ jsx58(email_icon_default, { size: 16 }), - /* @__PURE__ */ jsx58(Text12, { children: "E-mail" }) + /* @__PURE__ */ jsx58(Text13, { children: "E-mail" }) ] }) }), - /* @__PURE__ */ jsx58(TwitterShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default21.innerButton, children: [ + /* @__PURE__ */ jsx58(TwitterShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerButton, children: [ /* @__PURE__ */ jsx58(twitter_icon_default, { size: 16 }), - /* @__PURE__ */ jsx58(Text12, { children: "Twitter" }) + /* @__PURE__ */ jsx58(Text13, { children: "Twitter" }) ] }) }), - /* @__PURE__ */ jsx58(FacebookShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default21.innerButton, children: [ + /* @__PURE__ */ jsx58(FacebookShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerButton, children: [ /* @__PURE__ */ jsx58(facebook_icon_default, { size: 16 }), - /* @__PURE__ */ jsx58(Text12, { children: "Facebook" }) + /* @__PURE__ */ jsx58(Text13, { children: "Facebook" }) ] }) }), - /* @__PURE__ */ jsx58(LinkedinShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default21.innerButton, children: [ + /* @__PURE__ */ jsx58(LinkedinShareButton, { url, children: /* @__PURE__ */ jsxs46(Flex19, { sx: styles_default22.innerButton, children: [ /* @__PURE__ */ jsx58(linkedin_icon_default, { size: 16 }), - /* @__PURE__ */ jsx58(Text12, { children: "LinkedIn" }) + /* @__PURE__ */ jsx58(Text13, { children: "LinkedIn" }) ] }) }) ] }) ] }); }; var share_button_default = ShareButton; -// src/components/feedback-section/index.tsx +// src/components/suggest-edits/index.tsx +import { useContext as useContext16 } from "react"; +import { Link as Link8, Text as Text14 } from "@vtex/brand-ui"; + +// src/components/icons/edit-icon.tsx +import { Icon as Icon32 } from "@vtex/brand-ui"; import { jsx as jsx59, jsxs as jsxs47 } from "react/jsx-runtime"; +var EditIcon = (props) => /* @__PURE__ */ jsxs47( + Icon32, + { + ...props, + width: "25", + height: "25", + viewBox: "0 0 25 25", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: [ + /* @__PURE__ */ jsx59( + "path", + { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M5.793 16.6107L16.119 6.28469C16.509 5.89469 17.142 5.89469 17.532 6.28469L19.208 7.96069C19.598 8.35069 19.598 8.98369 19.208 9.37369L8.881 19.6987C8.694 19.8867 8.44 19.9917 8.175 19.9917H5.5V17.3167C5.5 17.0517 5.605 16.7977 5.793 16.6107Z", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ), + /* @__PURE__ */ jsx59( + "path", + { + d: "M14.25 8.15234L17.34 11.2423", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + ] + } +); +var edit_icon_default = EditIcon; + +// src/components/suggest-edits/styles.ts +var container10 = ({ small } = {}) => ({ + alignItems: "center", + gap: "4px", + fontSize: small ? "12px" : "16px", + lineHeight: "22px", + color: "#4A596B !important", + display: "flex", + ":hover": { + color: "#000711 !important", + cursor: "pointer" + } +}); +var icon2 = { + flexShrink: 0 +}; +var styles_default23 = { container: container10, icon: icon2 }; + +// src/components/suggest-edits/index.tsx +import { jsx as jsx60, jsxs as jsxs48 } from "react/jsx-runtime"; +var SuggestEdits = ({ + urlToEdit, + small = false, + sx = {} +}) => { + const { locale } = useContext16(LibraryContext); + const label4 = messages[locale]["feedback_section.edit"] || "Suggest Edits (GitHub)"; + return /* @__PURE__ */ jsxs48( + Link8, + { + target: "_blank", + rel: "noopener noreferrer", + href: urlToEdit, + sx: { ...styles_default23.container({ small }), ...sx }, + children: [ + /* @__PURE__ */ jsx60(edit_icon_default, { size: small ? 18 : 24, sx: styles_default23.icon }), + /* @__PURE__ */ jsx60(Text14, { children: label4 }) + ] + } + ); +}; +var suggest_edits_default = SuggestEdits; + +// src/components/feedback-section/index.tsx +import { jsx as jsx61, jsxs as jsxs49 } from "react/jsx-runtime"; var DEFAULT_FEEDBACK_ENDPOINT = "/api/feedback/"; var postFeedback = async (liked, pageUrl, endpoint) => { await fetch(endpoint, { @@ -13710,8 +13894,8 @@ var FeedbackSection = ({ sendFeedback, small = false }) => { - const [feedback, setFeedback] = useState17(void 0); - const { locale } = useContext15(LibraryContext); + const [feedback, setFeedback] = useState18(void 0); + const { locale } = useContext17(LibraryContext); useEffect15(() => { setFeedback(void 0); }, [slug]); @@ -13730,79 +13914,67 @@ var FeedbackSection = ({ setFeedback(void 0); } }; - return /* @__PURE__ */ jsxs47(Flex20, { sx: styles_default20.container({ small }), "data-cy": "feedback-section", children: [ - /* @__PURE__ */ jsxs47(Flex20, { sx: styles_default20.likeContainer, children: [ - /* @__PURE__ */ jsx59(Text13, { sx: styles_default20.question({ small }), children: feedback !== void 0 ? messages[locale]["feedback_section.response"] : messages[locale]["feedback_section.question"] }), - /* @__PURE__ */ jsxs47(Flex20, { sx: styles_default20.iconsContainer({ small }), children: [ - /* @__PURE__ */ jsxs47( + return /* @__PURE__ */ jsxs49(Flex20, { sx: styles_default21.container({ small }), "data-cy": "feedback-section", children: [ + /* @__PURE__ */ jsxs49(Flex20, { sx: styles_default21.likeContainer, children: [ + /* @__PURE__ */ jsx61(Text15, { sx: styles_default21.question({ small }), children: feedback !== void 0 ? messages[locale]["feedback_section.response"] : messages[locale]["feedback_section.question"] }), + /* @__PURE__ */ jsxs49(Flex20, { sx: styles_default21.iconsContainer({ small }), children: [ + /* @__PURE__ */ jsxs49( Flex20, { - sx: feedback === void 0 ? styles_default20.button : feedback === true ? styles_default20.selectedButton : styles_default20.disabled, + sx: feedback === void 0 ? styles_default21.button : feedback === true ? styles_default21.selectedButton : styles_default21.disabled, onClick: () => handleSend(true), role: "button", "aria-pressed": feedback === true, "data-cy": "feedback-section-like", children: [ - feedback === true ? /* @__PURE__ */ jsx59(like_selected_icon_default, { size: small ? 18 : 24, sx: styles_default20.likeIcon }) : /* @__PURE__ */ jsx59(like_icon_default, { size: small ? 18 : 24, sx: styles_default20.likeIcon }), - !small && /* @__PURE__ */ jsx59(Text13, { children: messages[locale]["feedback_section.positive"] }) + feedback === true ? /* @__PURE__ */ jsx61(like_selected_icon_default, { size: small ? 18 : 24, sx: styles_default21.likeIcon }) : /* @__PURE__ */ jsx61(like_icon_default, { size: small ? 18 : 24, sx: styles_default21.likeIcon }), + !small && /* @__PURE__ */ jsx61(Text15, { children: messages[locale]["feedback_section.positive"] }) ] } ), - /* @__PURE__ */ jsxs47( + /* @__PURE__ */ jsxs49( Flex20, { - sx: feedback === void 0 ? styles_default20.button : feedback === false ? styles_default20.selectedButton : styles_default20.disabled, + sx: feedback === void 0 ? styles_default21.button : feedback === false ? styles_default21.selectedButton : styles_default21.disabled, onClick: () => handleSend(false), role: "button", "aria-pressed": feedback === false, "data-cy": "feedback-section-dislike", children: [ - feedback === false ? /* @__PURE__ */ jsx59( + feedback === false ? /* @__PURE__ */ jsx61( like_selected_icon_default, { size: small ? 18 : 24, - sx: styles_default20.dislikeIcon + sx: styles_default21.dislikeIcon } - ) : /* @__PURE__ */ jsx59(like_icon_default, { size: small ? 18 : 24, sx: styles_default20.dislikeIcon }), - !small && /* @__PURE__ */ jsx59(Text13, { children: messages[locale]["feedback_section.negative"] }) + ) : /* @__PURE__ */ jsx61(like_icon_default, { size: small ? 18 : 24, sx: styles_default21.dislikeIcon }), + !small && /* @__PURE__ */ jsx61(Text15, { children: messages[locale]["feedback_section.negative"] }) ] } ) ] }) ] }), - suggestEdits && /* @__PURE__ */ jsxs47( - Link8, - { - target: "_blank", - rel: "noopener noreferrer", - href: urlToEdit, - sx: styles_default20.editContainer({ small }), - children: [ - /* @__PURE__ */ jsx59(edit_icon_default, { size: small ? 18 : 24, sx: styles_default20.editIcon }), - /* @__PURE__ */ jsx59(Text13, { children: messages[locale]["feedback_section.edit"] }) - ] - } - ), - shareButton2 && /* @__PURE__ */ jsx59(share_button_default, { url: window.location.href, sx: styles_default20.shareButton }) + suggestEdits && urlToEdit && /* @__PURE__ */ jsx61(suggest_edits_default, { urlToEdit, small }), + shareButton2 && /* @__PURE__ */ jsx61(share_button_default, { url: window.location.href, sx: styles_default21.shareButton }) ] }); }; var feedback_section_default = FeedbackSection; // src/components/feedback-modal/index.tsx -import { useContext as useContext16, useEffect as useEffect17, useState as useState19 } from "react"; -import { Box as Box24, Flex as Flex22, Text as Text15 } from "@vtex/brand-ui"; +import { useContext as useContext18, useEffect as useEffect17, useState as useState20 } from "react"; +import { Box as Box25, Flex as Flex22, Text as Text17 } from "@vtex/brand-ui"; // src/components/icons/check-icon.tsx import { Icon as Icon33 } from "@vtex/brand-ui"; -import { jsx as jsx60 } from "react/jsx-runtime"; -var CheckIcon = (props) => /* @__PURE__ */ jsx60( +import { jsx as jsx62 } from "react/jsx-runtime"; +var CheckIcon = (props) => /* @__PURE__ */ jsx62( Icon33, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx60( + children: /* @__PURE__ */ jsx62( "path", { d: "M13.333 4L6 11.333 2.667 8", @@ -13816,18 +13988,42 @@ var CheckIcon = (props) => /* @__PURE__ */ jsx60( ); var check_icon_default = CheckIcon; -// src/components/icons/warning-icon.tsx +// src/components/icons/comment-icon.tsx import { Icon as Icon34 } from "@vtex/brand-ui"; -import { jsx as jsx61, jsxs as jsxs48 } from "react/jsx-runtime"; -var WarningIcon = (props) => /* @__PURE__ */ jsxs48( +import { jsx as jsx63 } from "react/jsx-runtime"; +var CommentIcon = (props) => /* @__PURE__ */ jsx63( Icon34, + { + ...props, + viewBox: "0 0 16 16", + fill: "none", + xmlns: "http://www.w3.org/2000/svg", + children: /* @__PURE__ */ jsx63( + "path", + { + d: "M13.5 2.5H2.5C1.94772 2.5 1.5 2.94772 1.5 3.5V10.5C1.5 11.0523 1.94772 11.5 2.5 11.5H4.5V14L8 11.5H13.5C14.0523 11.5 14.5 11.0523 14.5 10.5V3.5C14.5 2.94772 14.0523 2.5 13.5 2.5Z", + stroke: "currentColor", + strokeWidth: "1.5", + strokeLinecap: "round", + strokeLinejoin: "round" + } + ) + } +); +var comment_icon_default = CommentIcon; + +// src/components/icons/warning-icon.tsx +import { Icon as Icon35 } from "@vtex/brand-ui"; +import { jsx as jsx64, jsxs as jsxs50 } from "react/jsx-runtime"; +var WarningIcon = (props) => /* @__PURE__ */ jsxs50( + Icon35, { ...props, viewBox: "0 0 18 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx61( + /* @__PURE__ */ jsx64( "path", { d: "M7.71758 1.89497L1.36508 12.5C1.2341 12.7268 1.1648 12.9839 1.16407 13.2459C1.16334 13.5078 1.23119 13.7653 1.3609 13.9929C1.4906 14.2204 1.67762 14.41 1.90336 14.5429C2.12909 14.6757 2.38568 14.7471 2.64758 14.75H15.3526C15.6145 14.7471 15.8711 14.6757 16.0968 14.5429C16.3225 14.41 16.5096 14.2204 16.6393 13.9929C16.769 13.7653 16.8368 13.5078 16.8361 13.2459C16.8354 12.9839 16.766 12.7268 16.6351 12.5L10.2826 1.89497C10.1489 1.67455 9.96062 1.49231 9.73597 1.36583C9.51133 1.23936 9.25788 1.17291 9.00008 1.17291C8.74227 1.17291 8.48882 1.23936 8.26418 1.36583C8.03953 1.49231 7.85128 1.67455 7.71758 1.89497Z", @@ -13837,7 +14033,7 @@ var WarningIcon = (props) => /* @__PURE__ */ jsxs48( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx61( + /* @__PURE__ */ jsx64( "path", { d: "M9 5.75V8.75", @@ -13847,7 +14043,7 @@ var WarningIcon = (props) => /* @__PURE__ */ jsxs48( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx61( + /* @__PURE__ */ jsx64( "path", { d: "M9 11.75H9.0075", @@ -13863,11 +14059,38 @@ var WarningIcon = (props) => /* @__PURE__ */ jsxs48( var warning_icon_default = WarningIcon; // src/components/feedback-modal/modal.tsx -import { useEffect as useEffect16, useState as useState18 } from "react"; +import { useEffect as useEffect16, useState as useState19 } from "react"; import { createPortal } from "react-dom"; -import { Box as Box23, Flex as Flex21, Text as Text14 } from "@vtex/brand-ui"; +import { Box as Box24, Flex as Flex21, Text as Text16 } from "@vtex/brand-ui"; // src/components/feedback-modal/styles.ts +var triggerWrap = { + display: "inline-flex", + flexShrink: 0, + width: "max-content" +}; +var triggerButton = { + mt: 0, + px: 3, + minHeight: 36, + background: "#fff", + borderRadius: "4px", + cursor: "pointer", + fontSize: 12, + height: "min-content", + textTransform: "none", + display: "inline-flex", + alignItems: "center", + justifyContent: "center", + gap: 3, + width: "max-content", + maxWidth: "180px", + flexShrink: 0, + whiteSpace: "nowrap", + color: "muted.0", + border: "1px solid #E7E9EE", + "&:hover": { backgroundColor: "#F8F7FC", color: "#000711" } +}; var wrapContainer = { position: "fixed", inset: 0, @@ -14000,12 +14223,12 @@ var control = { boxShadow: "0 0 0 3px rgba(227, 28, 88, 0.16)" } }; -var input = { +var input2 = { ...control, height: "40px" }; var inputMuted = { - ...input, + ...input2, background: "#FAFAFB", color: "#4A596B", fontSize: "13px" @@ -14016,7 +14239,7 @@ var textarea = { resize: "vertical" }; var dropdownMenu = { - ...input, + ...input2, appearance: "none", WebkitAppearance: "none", cursor: "pointer", @@ -14131,7 +14354,9 @@ var successTitle = { color: "#142032", maxWidth: "320px" }; -var styles_default22 = { +var styles_default24 = { + triggerWrap, + triggerButton, wrapContainer, innerContainer: innerContainer2, header, @@ -14145,7 +14370,7 @@ var styles_default22 = { row, label: label2, requiredMark, - input, + input: input2, inputMuted, textarea, dropdownMenu, @@ -14160,7 +14385,7 @@ var styles_default22 = { }; // src/components/feedback-modal/modal.tsx -import { jsx as jsx62, jsxs as jsxs49 } from "react/jsx-runtime"; +import { jsx as jsx65, jsxs as jsxs51 } from "react/jsx-runtime"; var Modal = ({ isOpen, onClose, @@ -14169,7 +14394,7 @@ var Modal = ({ closeLabel, children }) => { - const [mounted, setMounted] = useState18(false); + const [mounted, setMounted] = useState19(false); useEffect16(() => { setMounted(true); }, []); @@ -14192,10 +14417,10 @@ var Modal = ({ if (!isOpen || !mounted) return null; return createPortal( - /* @__PURE__ */ jsx62( - Box23, + /* @__PURE__ */ jsx65( + Box24, { - sx: styles_default22.wrapContainer, + sx: styles_default24.wrapContainer, onClick: onClose, className: "modal", "data-open": "true", @@ -14204,30 +14429,30 @@ var Modal = ({ "aria-modal": "true", "aria-labelledby": "feedback-modal-title", "aria-describedby": description6 ? "feedback-modal-description" : void 0, - children: /* @__PURE__ */ jsxs49( - Box23, + children: /* @__PURE__ */ jsxs51( + Box24, { - sx: styles_default22.innerContainer, + sx: styles_default24.innerContainer, onClick: (e) => e.stopPropagation(), children: [ - /* @__PURE__ */ jsxs49(Box23, { sx: styles_default22.header, children: [ - /* @__PURE__ */ jsxs49(Flex21, { sx: styles_default22.headerTop, children: [ - /* @__PURE__ */ jsx62(Text14, { id: "feedback-modal-title", sx: styles_default22.modalTitle, children: title9 }), - /* @__PURE__ */ jsx62( - Box23, + /* @__PURE__ */ jsxs51(Box24, { sx: styles_default24.header, children: [ + /* @__PURE__ */ jsxs51(Flex21, { sx: styles_default24.headerTop, children: [ + /* @__PURE__ */ jsx65(Text16, { id: "feedback-modal-title", sx: styles_default24.modalTitle, children: title9 }), + /* @__PURE__ */ jsx65( + Box24, { as: "button", type: "button", onClick: onClose, - sx: styles_default22.modalButton, + sx: styles_default24.modalButton, "aria-label": closeLabel, - children: /* @__PURE__ */ jsx62(close_icon_default, { sx: { width: "16px", height: "16px" } }) + children: /* @__PURE__ */ jsx65(close_icon_default, { sx: { width: "16px", height: "16px" } }) } ) ] }), - description6 ? /* @__PURE__ */ jsx62(Text14, { id: "feedback-modal-description", sx: styles_default22.modalDescription, children: description6 }) : null + description6 ? /* @__PURE__ */ jsx65(Text16, { id: "feedback-modal-description", sx: styles_default24.modalDescription, children: description6 }) : null ] }), - /* @__PURE__ */ jsx62(Box23, { sx: styles_default22.body, children }) + /* @__PURE__ */ jsx65(Box24, { sx: styles_default24.body, children }) ] } ) @@ -14239,7 +14464,7 @@ var Modal = ({ var modal_default = Modal; // src/components/feedback-modal/index.tsx -import { jsx as jsx63, jsxs as jsxs50 } from "react/jsx-runtime"; +import { jsx as jsx66, jsxs as jsxs52 } from "react/jsx-runtime"; var DEFAULT_FEEDBACK_ENDPOINT2 = "/api/feedback-google"; var FEEDBACK_TYPES = [ { @@ -14275,18 +14500,19 @@ var postFeedback2 = async (payload, endpoint) => { } }; var FeedbackModal = ({ - isOpen, - onClose, pageUrl, initialMessage, feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT2, - sendFeedback + sendFeedback, + defaultOpen = false }) => { - const { locale } = useContext16(LibraryContext); + const { locale } = useContext18(LibraryContext); const localizedMessages = messages[locale] ?? messages.en; - const [submitted, setSubmitted] = useState19(false); - const [submitting, setSubmitting] = useState19(false); - const [error, setError] = useState19(false); + const [isOpen, setIsOpen] = useState20(defaultOpen); + const [submitted, setSubmitted] = useState20(false); + const [submitting, setSubmitting] = useState20(false); + const [error, setError] = useState20(false); + const handleClose = () => setIsOpen(false); const articleUrl = pageUrl || initialMessage || (typeof window !== "undefined" ? window.location.href : ""); useEffect17(() => { if (isOpen) { @@ -14322,157 +14548,172 @@ var FeedbackModal = ({ setSubmitting(false); } } - return /* @__PURE__ */ jsx63( - modal_default, - { - isOpen, - onClose, - title: localizedMessages["feedback_modal.title"], - description: submitted ? void 0 : localizedMessages["feedback_modal.description"], - closeLabel: localizedMessages["feedback_modal.close"], - children: submitted ? /* @__PURE__ */ jsxs50(Flex22, { sx: styles_default22.successState, role: "status", children: [ - /* @__PURE__ */ jsx63(Flex22, { sx: styles_default22.successIconWrap, "aria-hidden": "true", children: /* @__PURE__ */ jsx63(check_icon_default, { size: 22 }) }), - /* @__PURE__ */ jsx63(Text15, { sx: styles_default22.successTitle, children: localizedMessages["feedback_modal.success"] }), - /* @__PURE__ */ jsx63( - Box24, - { - as: "button", - type: "button", - onClick: onClose, - sx: styles_default22.submitButton, - children: localizedMessages["feedback_modal.done"] - } - ) - ] }) : /* @__PURE__ */ jsx63(Box24, { as: "form", onSubmit: handleSubmit, children: /* @__PURE__ */ jsxs50(Box24, { sx: styles_default22.form, children: [ - error ? /* @__PURE__ */ jsxs50(Flex22, { role: "alert", sx: styles_default22.feedbackErrorText, children: [ - /* @__PURE__ */ jsx63(warning_icon_default, { sx: styles_default22.errorIcon }), - localizedMessages["feedback_modal.error"] - ] }) : null, - /* @__PURE__ */ jsxs50(Box24, { sx: styles_default22.field, children: [ - /* @__PURE__ */ jsx63(Text15, { as: "label", htmlFor: "feedback-modal-url", sx: styles_default22.label, children: localizedMessages["feedback_modal.article"] }), - /* @__PURE__ */ jsx63( - Box24, - { - as: "input", - id: "feedback-modal-url", - name: "url", - defaultValue: articleUrl, - sx: styles_default22.inputMuted - } - ) - ] }), - /* @__PURE__ */ jsxs50(Box24, { sx: styles_default22.field, children: [ - /* @__PURE__ */ jsxs50( - Text15, - { - as: "label", - htmlFor: "feedback-modal-message", - sx: styles_default22.label, - children: [ - localizedMessages["feedback_modal.message"], - " ", - /* @__PURE__ */ jsx63(Box24, { as: "span", sx: styles_default22.requiredMark, children: "*" }) - ] - } - ), - /* @__PURE__ */ jsx63( - Box24, - { - as: "textarea", - id: "feedback-modal-message", - name: "feedback", - "aria-required": "true", - required: true, - rows: 5, - placeholder: localizedMessages["feedback_modal.message_placeholder"], - sx: styles_default22.textarea - } - ) - ] }), - /* @__PURE__ */ jsxs50(Box24, { sx: styles_default22.field, children: [ - /* @__PURE__ */ jsx63(Text15, { as: "label", htmlFor: "feedback-modal-type", sx: styles_default22.label, children: localizedMessages["feedback_modal.type"] }), - /* @__PURE__ */ jsx63( - Box24, + return /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.triggerWrap, children: [ + /* @__PURE__ */ jsxs52( + Box25, + { + as: "button", + type: "button", + onClick: () => setIsOpen(true), + sx: styles_default24.triggerButton, + children: [ + /* @__PURE__ */ jsx66(comment_icon_default, { size: 14 }), + /* @__PURE__ */ jsx66(Text17, { children: localizedMessages["feedback_modal.button"] }) + ] + } + ), + /* @__PURE__ */ jsx66( + modal_default, + { + isOpen, + onClose: handleClose, + title: localizedMessages["feedback_modal.title"], + description: submitted ? void 0 : localizedMessages["feedback_modal.description"], + closeLabel: localizedMessages["feedback_modal.close"], + children: submitted ? /* @__PURE__ */ jsxs52(Flex22, { sx: styles_default24.successState, role: "status", children: [ + /* @__PURE__ */ jsx66(Flex22, { sx: styles_default24.successIconWrap, "aria-hidden": "true", children: /* @__PURE__ */ jsx66(check_icon_default, { size: 22 }) }), + /* @__PURE__ */ jsx66(Text17, { sx: styles_default24.successTitle, children: localizedMessages["feedback_modal.success"] }), + /* @__PURE__ */ jsx66( + Box25, { - as: "select", - id: "feedback-modal-type", - name: "type", - sx: styles_default22.dropdownMenu, - children: FEEDBACK_TYPES.map((type) => /* @__PURE__ */ jsx63("option", { value: type.value, children: localizedMessages[type.labelKey] }, type.value)) + as: "button", + type: "button", + onClick: handleClose, + sx: styles_default24.submitButton, + children: localizedMessages["feedback_modal.done"] } ) - ] }), - /* @__PURE__ */ jsxs50(Box24, { sx: styles_default22.row, children: [ - /* @__PURE__ */ jsxs50(Box24, { sx: styles_default22.field, children: [ - /* @__PURE__ */ jsx63( - Text15, + ] }) : /* @__PURE__ */ jsx66(Box25, { as: "form", onSubmit: handleSubmit, children: /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.form, children: [ + error ? /* @__PURE__ */ jsxs52(Flex22, { role: "alert", sx: styles_default24.feedbackErrorText, children: [ + /* @__PURE__ */ jsx66(warning_icon_default, { sx: styles_default24.errorIcon }), + localizedMessages["feedback_modal.error"] + ] }) : null, + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.field, children: [ + /* @__PURE__ */ jsx66(Text17, { as: "label", htmlFor: "feedback-modal-url", sx: styles_default24.label, children: localizedMessages["feedback_modal.article"] }), + /* @__PURE__ */ jsx66( + Box25, + { + as: "input", + id: "feedback-modal-url", + name: "url", + defaultValue: articleUrl, + sx: styles_default24.inputMuted + } + ) + ] }), + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.field, children: [ + /* @__PURE__ */ jsxs52( + Text17, { as: "label", - htmlFor: "feedback-modal-name", - sx: styles_default22.label, - children: localizedMessages["feedback_modal.name"] + htmlFor: "feedback-modal-message", + sx: styles_default24.label, + children: [ + localizedMessages["feedback_modal.message"], + " ", + /* @__PURE__ */ jsx66(Box25, { as: "span", sx: styles_default24.requiredMark, children: "*" }) + ] } ), - /* @__PURE__ */ jsx63( - Box24, + /* @__PURE__ */ jsx66( + Box25, { - as: "input", - id: "feedback-modal-name", - name: "name", - type: "text", - placeholder: localizedMessages["feedback_modal.name_placeholder"], - sx: styles_default22.input + as: "textarea", + id: "feedback-modal-message", + name: "feedback", + "aria-required": "true", + required: true, + rows: 5, + placeholder: localizedMessages["feedback_modal.message_placeholder"], + sx: styles_default24.textarea } ) ] }), - /* @__PURE__ */ jsxs50(Box24, { sx: styles_default22.field, children: [ - /* @__PURE__ */ jsx63( - Text15, + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.field, children: [ + /* @__PURE__ */ jsx66(Text17, { as: "label", htmlFor: "feedback-modal-type", sx: styles_default24.label, children: localizedMessages["feedback_modal.type"] }), + /* @__PURE__ */ jsx66( + Box25, { - as: "label", - htmlFor: "feedback-modal-email", - sx: styles_default22.label, - children: localizedMessages["feedback_modal.email"] + as: "select", + id: "feedback-modal-type", + name: "type", + sx: styles_default24.dropdownMenu, + children: FEEDBACK_TYPES.map((type) => /* @__PURE__ */ jsx66("option", { value: type.value, children: localizedMessages[type.labelKey] }, type.value)) + } + ) + ] }), + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.row, children: [ + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.field, children: [ + /* @__PURE__ */ jsx66( + Text17, + { + as: "label", + htmlFor: "feedback-modal-name", + sx: styles_default24.label, + children: localizedMessages["feedback_modal.name"] + } + ), + /* @__PURE__ */ jsx66( + Box25, + { + as: "input", + id: "feedback-modal-name", + name: "name", + type: "text", + placeholder: localizedMessages["feedback_modal.name_placeholder"], + sx: styles_default24.input + } + ) + ] }), + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.field, children: [ + /* @__PURE__ */ jsx66( + Text17, + { + as: "label", + htmlFor: "feedback-modal-email", + sx: styles_default24.label, + children: localizedMessages["feedback_modal.email"] + } + ), + /* @__PURE__ */ jsx66( + Box25, + { + as: "input", + id: "feedback-modal-email", + name: "email", + type: "email", + placeholder: localizedMessages["feedback_modal.email_placeholder"], + sx: styles_default24.input + } + ) + ] }) + ] }), + /* @__PURE__ */ jsxs52(Box25, { sx: styles_default24.actions, children: [ + /* @__PURE__ */ jsx66( + Box25, + { + as: "button", + type: "button", + onClick: handleClose, + sx: styles_default24.cancelButton, + children: localizedMessages["feedback_modal.cancel"] } ), - /* @__PURE__ */ jsx63( - Box24, + /* @__PURE__ */ jsx66( + Box25, { - as: "input", - id: "feedback-modal-email", - name: "email", - type: "email", - placeholder: localizedMessages["feedback_modal.email_placeholder"], - sx: styles_default22.input + as: "button", + type: "submit", + sx: styles_default24.submitButton, + disabled: submitting, + children: submitting ? localizedMessages["feedback_modal.submitting"] : localizedMessages["feedback_modal.submit"] } ) ] }) - ] }), - /* @__PURE__ */ jsxs50(Box24, { sx: styles_default22.actions, children: [ - /* @__PURE__ */ jsx63( - Box24, - { - as: "button", - type: "button", - onClick: onClose, - sx: styles_default22.cancelButton, - children: localizedMessages["feedback_modal.cancel"] - } - ), - /* @__PURE__ */ jsx63( - Box24, - { - as: "button", - type: "submit", - sx: styles_default22.submitButton, - disabled: submitting, - children: submitting ? localizedMessages["feedback_modal.submitting"] : localizedMessages["feedback_modal.submit"] - } - ) - ] }) - ] }) }) - } - ); + ] }) }) + } + ) + ] }); }; var feedback_modal_default = FeedbackModal; @@ -14480,11 +14721,11 @@ var feedback_modal_default = FeedbackModal; import { Flex as Flex27 } from "@vtex/brand-ui"; // src/components/search-sections/index.tsx -import { Box as Box26 } from "@vtex/brand-ui"; +import { Box as Box27 } from "@vtex/brand-ui"; // src/components/search-section/index.tsx -import { Box as Box25, Flex as Flex23, Text as Text16 } from "@vtex/brand-ui"; -import { useContext as useContext17, useEffect as useEffect18 } from "react"; +import { Box as Box26, Flex as Flex23, Text as Text18 } from "@vtex/brand-ui"; +import { useContext as useContext19, useEffect as useEffect18 } from "react"; // src/components/search-section/styles.ts var sectionContainer = (disabled2 = false) => ({ @@ -14543,7 +14784,7 @@ var allResultsTextActive = { fontWeight: "bold", color: "#0C1522" }; -var styles_default23 = { +var styles_default25 = { sectionContainer, sectionIconTitleBox, sectionIcon, @@ -14560,9 +14801,9 @@ import { useRouter as useRouter8 } from "next/router.js"; // src/utils/context/search.tsx import { createContext as createContext2, - useState as useState20 + useState as useState21 } from "react"; -import { jsx as jsx64 } from "react/jsx-runtime"; +import { jsx as jsx67 } from "react/jsx-runtime"; var SearchContext = createContext2({ filterSelectedSection: "", changeFilterSelectedSection: () => void 0, @@ -14570,12 +14811,12 @@ var SearchContext = createContext2({ updateOcurrenceCount: () => void 0 }); var SearchContextProvider = ({ children }) => { - const [filterSelectedSection, changeFilterSelectedSection] = useState20(""); - const [ocurrenceCount, changeOcurrenceCount] = useState20({}); + const [filterSelectedSection, changeFilterSelectedSection] = useState21(""); + const [ocurrenceCount, changeOcurrenceCount] = useState21({}); const updateOcurrenceCount = (resultsData) => { changeOcurrenceCount(resultsData); }; - return /* @__PURE__ */ jsx64( + return /* @__PURE__ */ jsx67( SearchContext.Provider, { value: { @@ -14591,11 +14832,11 @@ var SearchContextProvider = ({ children }) => { var search_default = SearchContextProvider; // src/components/search-section/index.tsx -import { jsx as jsx65, jsxs as jsxs51 } from "react/jsx-runtime"; +import { jsx as jsx68, jsxs as jsxs53 } from "react/jsx-runtime"; var SearchSection = ({ dataElement, index }) => { const router = useRouter8(); - const { filterSelectedSection, ocurrenceCount, changeFilterSelectedSection } = useContext17(SearchContext); - const { locale, sidebarDataMaster } = useContext17(LibraryContext); + const { filterSelectedSection, ocurrenceCount, changeFilterSelectedSection } = useContext19(SearchContext); + const { locale, sidebarDataMaster } = useContext19(LibraryContext); const updateFilter = (value) => { router.query.filter = value; changeFilterSelectedSection(value); @@ -14605,26 +14846,26 @@ var SearchSection = ({ dataElement, index }) => { }, [router.query]); const allCountLabel = formatSearchTabCount(ocurrenceCount[""]); if (!dataElement) { - return /* @__PURE__ */ jsxs51(Flex23, { sx: styles_default23.sectionContainer(), onClick: () => updateFilter(""), children: [ - /* @__PURE__ */ jsx65( - Text16, + return /* @__PURE__ */ jsxs53(Flex23, { sx: styles_default25.sectionContainer(), onClick: () => updateFilter(""), children: [ + /* @__PURE__ */ jsx68( + Text18, { className: "search-section-title", - sx: filterSelectedSection ? styles_default23.allResultsText : styles_default23.allResultsTextActive, + sx: filterSelectedSection ? styles_default25.allResultsText : styles_default25.allResultsTextActive, children: messages[locale]["search_results.all"] || "All results" } ), - allCountLabel !== void 0 && /* @__PURE__ */ jsx65(Box25, { className: "search-section-count", sx: styles_default23.sectionCount, children: allCountLabel }) + allCountLabel !== void 0 && /* @__PURE__ */ jsx68(Box26, { className: "search-section-count", sx: styles_default25.sectionCount, children: allCountLabel }) ] }); } const countsLoaded = Object.keys(ocurrenceCount).length > 0; const count2 = countsLoaded ? ocurrenceCount[dataElement.id] ?? 0 : ocurrenceCount[dataElement.id]; const isDisabled = count2 === 0; const countLabel = formatSearchTabCount(count2); - return /* @__PURE__ */ jsxs51( + return /* @__PURE__ */ jsxs53( Flex23, { - sx: styles_default23.sectionContainer(isDisabled), + sx: styles_default25.sectionContainer(isDisabled), onClick: () => { if (isDisabled) return; @@ -14632,18 +14873,18 @@ var SearchSection = ({ dataElement, index }) => { }, "data-disabled": String(isDisabled), children: [ - /* @__PURE__ */ jsxs51(Flex23, { sx: styles_default23.sectionIconTitleBox, children: [ - /* @__PURE__ */ jsx65(dataElement.Icon, { sx: styles_default23.sectionIcon(isDisabled) }), - /* @__PURE__ */ jsx65( - Text16, + /* @__PURE__ */ jsxs53(Flex23, { sx: styles_default25.sectionIconTitleBox, children: [ + /* @__PURE__ */ jsx68(dataElement.Icon, { sx: styles_default25.sectionIcon(isDisabled) }), + /* @__PURE__ */ jsx68( + Text18, { className: "search-section-title", - sx: filterSelectedSection === dataElement.id ? styles_default23.sectionTitleActive : styles_default23.sectionTitle(isDisabled), + sx: filterSelectedSection === dataElement.id ? styles_default25.sectionTitleActive : styles_default25.sectionTitle(isDisabled), children: getSectionLabel(dataElement, sidebarDataMaster, locale) } ) ] }), - countLabel !== void 0 && /* @__PURE__ */ jsx65(Box25, { className: "search-section-count", sx: styles_default23.sectionCount, children: countLabel }) + countLabel !== void 0 && /* @__PURE__ */ jsx68(Box26, { className: "search-section-count", sx: styles_default25.sectionCount, children: countLabel }) ] }, `search-section-${dataElement.id}${index}` @@ -14652,7 +14893,7 @@ var SearchSection = ({ dataElement, index }) => { var search_section_default = SearchSection; // src/components/search-sections/styles.ts -var container9 = { +var container11 = { display: ["none", "none", "none", "initial"], height: "100%", width: "242px", @@ -14669,27 +14910,27 @@ var docsSection = { ...notesSection, borderBottom: "1px solid #E7E9EE" }; -var styles_default24 = { - container: container9, +var styles_default26 = { + container: container11, notesSection, docsSection }; // src/components/search-sections/index.tsx -import { useContext as useContext18 } from "react"; -import { jsx as jsx66, jsxs as jsxs52 } from "react/jsx-runtime"; +import { useContext as useContext20 } from "react"; +import { jsx as jsx69, jsxs as jsxs54 } from "react/jsx-runtime"; var SearchSections = () => { - const { sidebarSections } = useContext18(LibraryContext); + const { sidebarSections } = useContext20(LibraryContext); const internalOnlySections = sidebarSections.map( (section) => section.filter((item2) => !item2.isExternalLink) ); - return /* @__PURE__ */ jsx66(Box26, { sx: styles_default24.container, children: internalOnlySections.map((sections, id) => /* @__PURE__ */ jsxs52( - Box26, + return /* @__PURE__ */ jsx69(Box27, { sx: styles_default26.container, children: internalOnlySections.map((sections, id) => /* @__PURE__ */ jsxs54( + Box27, { - sx: id < internalOnlySections.length - 1 ? styles_default24.docsSection : styles_default24.notesSection, + sx: id < internalOnlySections.length - 1 ? styles_default26.docsSection : styles_default26.notesSection, children: [ - id === 0 && /* @__PURE__ */ jsx66(search_section_default, { dataElement: null }), - sections.map((section, index) => /* @__PURE__ */ jsx66( + id === 0 && /* @__PURE__ */ jsx69(search_section_default, { dataElement: null }), + sections.map((section, index) => /* @__PURE__ */ jsx69( search_section_default, { dataElement: section, @@ -14706,25 +14947,25 @@ var search_sections_default = SearchSections; // src/components/search-results/index.tsx import { useRouter as useRouter10 } from "next/router.js"; -import { useContext as useContext21, useEffect as useEffect21, useState as useState22 } from "react"; -import { Box as Box29, Text as Text19 } from "@vtex/brand-ui"; +import { useContext as useContext23, useEffect as useEffect21, useState as useState23 } from "react"; +import { Box as Box30, Text as Text21 } from "@vtex/brand-ui"; import { Configure as Configure2, InstantSearch as InstantSearch2 } from "react-instantsearch-dom"; // src/components/search-results/infiniteHits.tsx -import { useContext as useContext20, useEffect as useEffect20, useMemo as useMemo4, useRef as useRef12 } from "react"; +import { useContext as useContext22, useEffect as useEffect20, useMemo as useMemo4, useRef as useRef12 } from "react"; import { connectInfiniteHits, connectStateResults as connectStateResults2 } from "react-instantsearch-dom"; // src/components/search-card/index.tsx -import { Box as Box27, Flex as Flex24, Text as Text17, IconCaret as IconCaret6, Tooltip as Tooltip2 } from "@vtex/brand-ui"; -import { useContext as useContext19, useEffect as useEffect19, useState as useState21 } from "react"; +import { Box as Box28, Flex as Flex24, Text as Text19, IconCaret as IconCaret6, Tooltip as Tooltip2 } from "@vtex/brand-ui"; +import { useContext as useContext21, useEffect as useEffect19, useState as useState22 } from "react"; import { useRouter as useRouter9 } from "next/router.js"; import Link9 from "next/link.js"; // src/components/search-card/styles.ts -var container10 = { +var container12 = { position: "relative", flexWrap: ["wrap", "nowrap"], justifyContent: "space-between", @@ -14748,7 +14989,7 @@ var container10 = { } }; var containerActive = { - ...container10, + ...container12, ":hover": { background: "#F8F7FC", borderColor: "#D8D8E3", @@ -14811,7 +15052,7 @@ var httpMethod2 = { flexShrink: 0, alignSelf: "center" }; -var icon2 = { +var icon3 = { width: "18px", height: "18px", color: "#4A596B", @@ -14936,7 +15177,7 @@ var actionButtonCopied = { color: "#36875A", background: "#F0FAF4" }; -var styles_default25 = { +var styles_default27 = { containerActive, cardBody, cardText, @@ -14944,7 +15185,7 @@ var styles_default25 = { title: title5, titleText, httpMethod: httpMethod2, - icon: icon2, + icon: icon3, description: description3, descriptionToggle, descriptionExpandedItem, @@ -14964,39 +15205,39 @@ var styles_default25 = { }; // src/components/icons/expanded-results-icon.tsx -import { Icon as Icon35 } from "@vtex/brand-ui"; -import { jsx as jsx67, jsxs as jsxs53 } from "react/jsx-runtime"; -var ExpandedResultsIcon = ({ active }) => active ? /* @__PURE__ */ jsxs53(Icon35, { viewBox: "0 0 19 13", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx67( +import { Icon as Icon36 } from "@vtex/brand-ui"; +import { jsx as jsx70, jsxs as jsxs55 } from "react/jsx-runtime"; +var ExpandedResultsIcon = ({ active }) => active ? /* @__PURE__ */ jsxs55(Icon36, { viewBox: "0 0 19 13", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ + /* @__PURE__ */ jsx70( "path", { d: "M18.8728 6.03784C18.265 5.00744 14.9223 -0.163132 9.2436 0.00396015C3.99219 0.133921 0.953397 4.6454 0.127225 6.03784C0.0438786 6.17895 0 6.33903 0 6.50198C0 6.66493 0.0438786 6.82501 0.127225 6.96612C0.725488 7.97796 3.92572 13 9.51899 13H9.7564C15.0078 12.87 18.0561 8.35856 18.8728 6.96612C18.9561 6.82501 19 6.66493 19 6.50198C19 6.33903 18.9561 6.17895 18.8728 6.03784ZM9.70892 11.1434C5.61604 11.2363 2.9476 7.81087 2.11194 6.50198C3.06156 5.00744 5.54007 1.95337 9.33856 1.86054C13.4124 1.75843 16.0904 5.19309 16.9355 6.50198C15.9574 7.99652 13.5074 11.0506 9.70892 11.1434Z", fill: "#EE2565" } ), - /* @__PURE__ */ jsx67( + /* @__PURE__ */ jsx70( "path", { d: "M9.49977 3.25293C8.84241 3.25293 8.19981 3.44348 7.65323 3.80049C7.10665 4.15749 6.68065 4.66492 6.42909 5.2586C6.17753 5.85228 6.11171 6.50554 6.23995 7.13579C6.3682 7.76604 6.68475 8.34495 7.14957 8.79934C7.6144 9.25372 8.20662 9.56316 8.85135 9.68852C9.49608 9.81388 10.1644 9.74954 10.7717 9.50363C11.379 9.25772 11.8981 8.84129 12.2633 8.30699C12.6285 7.7727 12.8234 7.14453 12.8234 6.50194C12.8234 5.64025 12.4733 4.81385 11.85 4.20454C11.2267 3.59524 10.3813 3.25293 9.49977 3.25293ZM9.49977 7.89437C9.21804 7.89437 8.94264 7.81271 8.70839 7.65971C8.47415 7.5067 8.29157 7.28923 8.18376 7.0348C8.07595 6.78037 8.04774 6.50039 8.1027 6.23029C8.15767 5.96018 8.29333 5.71208 8.49254 5.51734C8.69175 5.32261 8.94556 5.18999 9.22187 5.13626C9.49819 5.08253 9.78459 5.11011 10.0449 5.2155C10.3052 5.32089 10.5276 5.49936 10.6841 5.72835C10.8407 5.95733 10.9242 6.22654 10.9242 6.50194C10.9242 6.87124 10.7741 7.22541 10.507 7.48654C10.2399 7.74767 9.87755 7.89437 9.49977 7.89437Z", fill: "#EE2565" } ) -] }) : /* @__PURE__ */ jsxs53(Icon35, { viewBox: "0 0 23 23", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx67( +] }) : /* @__PURE__ */ jsxs55(Icon36, { viewBox: "0 0 23 23", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ + /* @__PURE__ */ jsx70( "path", { d: "M4.51334 3.15293C4.42398 3.06358 4.31791 2.9927 4.20116 2.94434C4.08441 2.89598 3.95929 2.87109 3.83292 2.87109C3.70656 2.87109 3.58143 2.89598 3.46468 2.94434C3.34794 2.9927 3.24186 3.06358 3.1525 3.15293C2.97205 3.33339 2.87067 3.57814 2.87067 3.83335C2.87067 4.08855 2.97205 4.33331 3.1525 4.51377L8.54792 9.90918C8.20657 10.5442 8.0789 11.2723 8.18384 11.9856C8.28878 12.6988 8.62074 13.3593 9.13053 13.8691C9.64031 14.3789 10.3008 14.7108 11.0141 14.8158C11.7273 14.9207 12.4554 14.793 13.0904 14.4517L18.4858 19.8471C18.5749 19.9369 18.6809 20.0082 18.7977 20.0569C18.9145 20.1055 19.0397 20.1306 19.1663 20.1306C19.2928 20.1306 19.418 20.1055 19.5348 20.0569C19.6516 20.0082 19.7576 19.9369 19.8467 19.8471C19.9365 19.758 20.0078 19.652 20.0564 19.5352C20.1051 19.4185 20.1301 19.2932 20.1301 19.1667C20.1301 19.0402 20.1051 18.9149 20.0564 18.7981C20.0078 18.6813 19.9365 18.5754 19.8467 18.4863L4.51334 3.15293ZM11.4996 12.9375C11.1183 12.9375 10.7527 12.7861 10.4831 12.5165C10.2135 12.2469 10.0621 11.8813 10.0621 11.5C10.0621 11.5 10.0621 11.4521 10.0621 11.4329L11.5571 12.9279L11.4996 12.9375Z", fill: "#CCCED8" } ), - /* @__PURE__ */ jsx67( + /* @__PURE__ */ jsx70( "path", { d: "M11.71 16.2917C7.58919 16.3875 4.88669 12.8513 4.04336 11.5C4.64372 10.5424 5.36525 9.66623 6.19002 8.89336L4.79086 7.54211C3.70921 8.56127 2.78258 9.73328 2.04044 11.0209C1.95633 11.1665 1.91205 11.3318 1.91205 11.5C1.91205 11.6683 1.95633 11.8335 2.04044 11.9792C2.64419 13.0238 5.87378 18.2084 11.5184 18.2084H11.7579C12.8193 18.1769 13.867 17.9596 14.8534 17.5663L13.3392 16.0521C12.8067 16.1922 12.2603 16.2725 11.71 16.2917Z", fill: "#CCCED8" } ), - /* @__PURE__ */ jsx67( + /* @__PURE__ */ jsx70( "path", { d: "M20.9587 11.0209C20.3453 9.9571 16.9624 4.61919 11.2412 4.79169C10.1798 4.82317 9.1321 5.04049 8.14575 5.43377L9.65992 6.94794C10.1924 6.80786 10.7388 6.7275 11.2891 6.70835C15.4003 6.60294 18.1028 10.1488 18.9558 11.5C18.3406 12.4606 17.6028 13.3368 16.7612 14.1067L18.2083 15.4579C19.3035 14.4415 20.2431 13.2693 20.997 11.9792C21.0754 11.8302 21.1131 11.6631 21.1063 11.4949C21.0996 11.3266 21.0487 11.1631 20.9587 11.0209Z", @@ -15007,9 +15248,9 @@ var ExpandedResultsIcon = ({ active }) => active ? /* @__PURE__ */ jsxs53(Icon35 var expanded_results_icon_default = ExpandedResultsIcon; // src/components/search-card/index.tsx -import { jsx as jsx68, jsxs as jsxs54 } from "react/jsx-runtime"; +import { jsx as jsx71, jsxs as jsxs56 } from "react/jsx-runtime"; var SearchCard = ({ - Icon: Icon81, + Icon: Icon82, title: title9, method, breadcrumbs, @@ -15018,12 +15259,12 @@ var SearchCard = ({ hit }) => { const actionValue = actionType ? getAction(actionType) : null; - const [toggleChildResults, setToggleChildResults] = useState21(false); - const [copied, setCopied] = useState21(false); - const { locale } = useContext19(LibraryContext); + const [toggleChildResults, setToggleChildResults] = useState22(false); + const [copied, setCopied] = useState22(false); + const { locale } = useContext21(LibraryContext); const router = useRouter9(); const query = String(router.query.keyword ?? ""); - const DocIcon = Icon81 || paper_icon_default; + const DocIcon = Icon82 || paper_icon_default; const displayTitle = title9 === "overview" && hit.doccategory ? `${hit.doccategory} ${title9}` : title9; const crumbs = (breadcrumbs || []).filter( (crumb2) => Boolean(crumb2) @@ -15049,24 +15290,24 @@ var SearchCard = ({ event.stopPropagation(); window.open(url, "_blank", "noopener,noreferrer"); }; - return /* @__PURE__ */ jsxs54(Flex24, { sx: styles_default25.containerActive, children: [ - /* @__PURE__ */ jsx68(Link9, { href: url, legacyBehavior: true, children: /* @__PURE__ */ jsx68("a", { children: /* @__PURE__ */ jsxs54(Flex24, { sx: styles_default25.cardBody, children: [ - /* @__PURE__ */ jsx68(Box27, { className: "search-card-icon-wrap", sx: styles_default25.iconWrap, children: /* @__PURE__ */ jsx68(DocIcon, { className: "search-card-icon", sx: styles_default25.icon }) }), - /* @__PURE__ */ jsxs54(Box27, { sx: styles_default25.cardText, children: [ - /* @__PURE__ */ jsxs54(Text17, { className: "searchCardTitle", sx: styles_default25.title, children: [ - method ? /* @__PURE__ */ jsx68( + return /* @__PURE__ */ jsxs56(Flex24, { sx: styles_default27.containerActive, children: [ + /* @__PURE__ */ jsx71(Link9, { href: url, legacyBehavior: true, children: /* @__PURE__ */ jsx71("a", { children: /* @__PURE__ */ jsxs56(Flex24, { sx: styles_default27.cardBody, children: [ + /* @__PURE__ */ jsx71(Box28, { className: "search-card-icon-wrap", sx: styles_default27.iconWrap, children: /* @__PURE__ */ jsx71(DocIcon, { className: "search-card-icon", sx: styles_default27.icon }) }), + /* @__PURE__ */ jsxs56(Box28, { sx: styles_default27.cardText, children: [ + /* @__PURE__ */ jsxs56(Text19, { className: "searchCardTitle", sx: styles_default27.title, children: [ + method ? /* @__PURE__ */ jsx71( method_category_default, { - sx: styles_default25.httpMethod, + sx: styles_default27.httpMethod, origin: "search", method, active: false } ) : null, - /* @__PURE__ */ jsx68(Text17, { as: "span", sx: styles_default25.titleText, children: /* @__PURE__ */ jsx68(HighlightQuery, { text: displayTitle, query }) }) + /* @__PURE__ */ jsx71(Text19, { as: "span", sx: styles_default27.titleText, children: /* @__PURE__ */ jsx71(HighlightQuery, { text: displayTitle, query }) }) ] }), - /* @__PURE__ */ jsxs54(Text17, { className: "searchCardDescription", sx: styles_default25.description, children: [ - /* @__PURE__ */ jsx68( + /* @__PURE__ */ jsxs56(Text19, { className: "searchCardDescription", sx: styles_default27.description, children: [ + /* @__PURE__ */ jsx71( customHighlight_default, { hit, @@ -15074,11 +15315,11 @@ var SearchCard = ({ ...{ searchPage: true } } ), - toggleChildResults && hit.filteredMatches?.map((childHit, index) => /* @__PURE__ */ jsx68( - Box27, + toggleChildResults && hit.filteredMatches?.map((childHit, index) => /* @__PURE__ */ jsx71( + Box28, { - sx: styles_default25.descriptionExpandedItem, - children: /* @__PURE__ */ jsx68( + sx: styles_default27.descriptionExpandedItem, + children: /* @__PURE__ */ jsx71( customHighlight_default, { hit: childHit, @@ -15090,19 +15331,19 @@ var SearchCard = ({ `search-card-${hit.objectID}-${index}` )) ] }), - crumbs.length > 0 ? /* @__PURE__ */ jsxs54(Box27, { sx: styles_default25.breadcrumbsContainer, children: [ - /* @__PURE__ */ jsx68(Text17, { sx: styles_default25.breadcrumbsIn, children: messages[locale]["search_card.in"] || "In" }), - crumbs.map((breadcrumb3, index) => /* @__PURE__ */ jsxs54( + crumbs.length > 0 ? /* @__PURE__ */ jsxs56(Box28, { sx: styles_default27.breadcrumbsContainer, children: [ + /* @__PURE__ */ jsx71(Text19, { sx: styles_default27.breadcrumbsIn, children: messages[locale]["search_card.in"] || "In" }), + crumbs.map((breadcrumb3, index) => /* @__PURE__ */ jsxs56( Flex24, { - sx: index === 0 ? styles_default25.documentation : styles_default25.alignCenter, + sx: index === 0 ? styles_default27.documentation : styles_default27.alignCenter, children: [ - /* @__PURE__ */ jsx68(Tooltip2, { label: breadcrumb3, placement: "top", children: /* @__PURE__ */ jsx68(Text17, { sx: styles_default25.breadcrumb, children: breadcrumb3 }) }), - index < crumbs.length - 1 ? /* @__PURE__ */ jsx68( + /* @__PURE__ */ jsx71(Tooltip2, { label: breadcrumb3, placement: "top", children: /* @__PURE__ */ jsx71(Text19, { sx: styles_default27.breadcrumb, children: breadcrumb3 }) }), + index < crumbs.length - 1 ? /* @__PURE__ */ jsx71( IconCaret6, { direction: "right", - sx: styles_default25.breadcrumbsArrow + sx: styles_default27.breadcrumbsArrow } ) : null ] @@ -15110,51 +15351,51 @@ var SearchCard = ({ `${breadcrumb3}${index}` )) ] }) : null, - actionValue ? /* @__PURE__ */ jsxs54(Flex24, { sx: styles_default25.actionContainer, children: [ - /* @__PURE__ */ jsx68(actionValue.Icon, { sx: styles_default25.actionIcon }), + actionValue ? /* @__PURE__ */ jsxs56(Flex24, { sx: styles_default27.actionContainer, children: [ + /* @__PURE__ */ jsx71(actionValue.Icon, { sx: styles_default27.actionIcon }), " ", - /* @__PURE__ */ jsx68(Text17, { children: actionValue?.title }) + /* @__PURE__ */ jsx71(Text19, { children: actionValue?.title }) ] }) : null ] }) ] }) }) }), - /* @__PURE__ */ jsxs54(Flex24, { sx: styles_default25.cardToolbar, children: [ - /* @__PURE__ */ jsxs54(Flex24, { className: "search-card-actions", sx: styles_default25.cardActions, children: [ - /* @__PURE__ */ jsx68( - Box27, + /* @__PURE__ */ jsxs56(Flex24, { sx: styles_default27.cardToolbar, children: [ + /* @__PURE__ */ jsxs56(Flex24, { className: "search-card-actions", sx: styles_default27.cardActions, children: [ + /* @__PURE__ */ jsx71( + Box28, { as: "button", type: "button", - sx: copied ? styles_default25.actionButtonCopied : styles_default25.actionButton, + sx: copied ? styles_default27.actionButtonCopied : styles_default27.actionButton, "aria-label": copied ? messages[locale]["search_input.copied"] || "Copied" : messages[locale]["search_input.copy_link"] || "Copy link", title: copied ? messages[locale]["search_input.copied"] || "Copied" : messages[locale]["search_input.copy_link"] || "Copy link", onClick: handleCopy, onMouseDown: (event) => event.preventDefault(), - children: /* @__PURE__ */ jsx68(copy_icon_default, { size: 14 }) + children: /* @__PURE__ */ jsx71(copy_icon_default, { size: 14 }) } ), - /* @__PURE__ */ jsx68( - Box27, + /* @__PURE__ */ jsx71( + Box28, { as: "button", type: "button", - sx: styles_default25.actionButton, + sx: styles_default27.actionButton, "aria-label": messages[locale]["search_input.open_new_tab"] || "Open in new tab", title: messages[locale]["search_input.open_new_tab"] || "Open in new tab", onClick: handleOpenNewTab, onMouseDown: (event) => event.preventDefault(), - children: /* @__PURE__ */ jsx68(external_link_icon_default, { size: 14 }) + children: /* @__PURE__ */ jsx71(external_link_icon_default, { size: 14 }) } ) ] }), - hit.filteredMatches && hit.filteredMatches.length > 0 && /* @__PURE__ */ jsx68( - Box27, + hit.filteredMatches && hit.filteredMatches.length > 0 && /* @__PURE__ */ jsx71( + Box28, { - sx: styles_default25.descriptionToggle, + sx: styles_default27.descriptionToggle, onClick: (event) => { setToggleChildResults(!toggleChildResults); event.stopPropagation(); }, - children: /* @__PURE__ */ jsx68(expanded_results_icon_default, { active: toggleChildResults }) + children: /* @__PURE__ */ jsx71(expanded_results_icon_default, { active: toggleChildResults }) } ) ] }) @@ -15163,7 +15404,7 @@ var SearchCard = ({ var search_card_default = SearchCard; // src/components/search-results/infiniteHits.tsx -import { Box as Box28, Flex as Flex25, Text as Text18 } from "@vtex/brand-ui"; +import { Box as Box29, Flex as Flex25, Text as Text20 } from "@vtex/brand-ui"; // src/components/search-results/styles.ts var resultContainer = { @@ -15237,7 +15478,7 @@ var hitListItem = { width: "100%", minWidth: 0 }; -var styles_default26 = { +var styles_default28 = { resultContainer, resultText, resultCount, @@ -15252,9 +15493,9 @@ var styles_default26 = { }; // src/components/search-results/infiniteHits.tsx -import { jsx as jsx69, jsxs as jsxs55 } from "react/jsx-runtime"; +import { jsx as jsx72, jsxs as jsxs57 } from "react/jsx-runtime"; var HitCard = ({ hit }) => { - const { sidebarSections, sidebarDataMaster, locale } = useContext20(LibraryContext); + const { sidebarSections, sidebarDataMaster, locale } = useContext22(LibraryContext); const breadcrumbs = getSearchBreadcrumbs({ hit, navigation: sidebarDataMaster, @@ -15262,7 +15503,7 @@ var HitCard = ({ hit }) => { locale }); const DocIcon = getIconFromSection(sidebarSections, hit.doctype); - return /* @__PURE__ */ jsx69( + return /* @__PURE__ */ jsx72( search_card_default, { doc: hit.doctype, @@ -15278,7 +15519,7 @@ var HitCard = ({ hit }) => { }; var StateResults = connectStateResults2( ({ searchResults }) => { - const { updateOcurrenceCount } = useContext20(SearchContext); + const { updateOcurrenceCount } = useContext22(SearchContext); useEffect20(() => { if (!searchResults) return; @@ -15321,7 +15562,7 @@ var StateResults = connectStateResults2( ); var InfiniteHits = ({ hits, hasMore, refineNext }) => { const scrollRef = useRef12(null); - const { locale } = useContext20(LibraryContext); + const { locale } = useContext22(LibraryContext); const filteredResult = useMemo4(() => { const mergeHits = []; hits.forEach((hit) => { @@ -15351,29 +15592,29 @@ var InfiniteHits = ({ hits, hasMore, refineNext }) => { observer.disconnect(); }; }, [hasMore, refineNext]); - return /* @__PURE__ */ jsxs55(Box28, { children: [ - /* @__PURE__ */ jsx69(StateResults, {}), - filteredResult.length === 0 && /* @__PURE__ */ jsx69(Flex25, { sx: styles_default26.noResults, children: /* @__PURE__ */ jsx69(Text18, { children: messages[locale]["search_input.empty"] || "No results found. Try different search terms." }) }), - filteredResult.map((hit, index) => /* @__PURE__ */ jsx69(Flex25, { sx: styles_default26.hitListItem, children: /* @__PURE__ */ jsx69(HitCard, { hit }, index) }, hit.objectID)), - /* @__PURE__ */ jsx69("span", { ref: scrollRef }) + return /* @__PURE__ */ jsxs57(Box29, { children: [ + /* @__PURE__ */ jsx72(StateResults, {}), + filteredResult.length === 0 && /* @__PURE__ */ jsx72(Flex25, { sx: styles_default28.noResults, children: /* @__PURE__ */ jsx72(Text20, { children: messages[locale]["search_input.empty"] || "No results found. Try different search terms." }) }), + filteredResult.map((hit, index) => /* @__PURE__ */ jsx72(Flex25, { sx: styles_default28.hitListItem, children: /* @__PURE__ */ jsx72(HitCard, { hit }, index) }, hit.objectID)), + /* @__PURE__ */ jsx72("span", { ref: scrollRef }) ] }); }; var infiniteHits_default = connectInfiniteHits(InfiniteHits); // src/components/search-results/index.tsx -import { jsx as jsx70, jsxs as jsxs56 } from "react/jsx-runtime"; +import { jsx as jsx73, jsxs as jsxs58 } from "react/jsx-runtime"; var SearchResults = () => { const router = useRouter10(); - const { filterSelectedSection, ocurrenceCount } = useContext21(SearchContext); - const { locale } = useContext21(LibraryContext); + const { filterSelectedSection, ocurrenceCount } = useContext23(SearchContext); + const { locale } = useContext23(LibraryContext); const filters = [ `language:${locale}`, filterSelectedSection ? `doctype:"${filterSelectedSection}"` : "" ].filter(Boolean).join(" AND "); const keyword = String(router.query.keyword ?? ""); - const [prevFilter, setPrevFilter] = useState22(""); - const [prevKeyword, setPrevKeyword] = useState22(keyword); - const [searchState, setSearchState] = useState22({}); + const [prevFilter, setPrevFilter] = useState23(""); + const [prevKeyword, setPrevKeyword] = useState23(keyword); + const [searchState, setSearchState] = useState23({}); useEffect21(() => { if (!keyword || keyword === prevKeyword) return; @@ -15395,16 +15636,16 @@ var SearchResults = () => { page }); }; - return /* @__PURE__ */ jsxs56(Box29, { sx: styles_default26.resultContainer, children: [ - /* @__PURE__ */ jsxs56(Text19, { sx: styles_default26.resultText, children: [ + return /* @__PURE__ */ jsxs58(Box30, { sx: styles_default28.resultContainer, children: [ + /* @__PURE__ */ jsxs58(Text21, { sx: styles_default28.resultText, children: [ `${messages[locale]["search_results.showing"] || "Showing"} `, - /* @__PURE__ */ jsx70(Text19, { as: "span", sx: styles_default26.resultCount, children: formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? "" }), + /* @__PURE__ */ jsx73(Text21, { as: "span", sx: styles_default28.resultCount, children: formatSearchTabCount(ocurrenceCount[filterSelectedSection]) ?? "" }), ` ${messages[locale]["search_results.results_for"] || "results for"} `, - /* @__PURE__ */ jsx70(Text19, { as: "span", sx: styles_default26.resultKeyword, children: `\u201C${router.query.keyword}\u201D` }), + /* @__PURE__ */ jsx73(Text21, { as: "span", sx: styles_default28.resultKeyword, children: `\u201C${router.query.keyword}\u201D` }), ` ${messages[locale]["search_results.in"] || "in"} ${!filterSelectedSection ? messages[locale]["search_results.all_lowercase"] || "all results" : filterSelectedSection}` ] }), - /* @__PURE__ */ jsx70("hr", {}), - /* @__PURE__ */ jsx70(Box29, { children: /* @__PURE__ */ jsxs56( + /* @__PURE__ */ jsx73("hr", {}), + /* @__PURE__ */ jsx73(Box30, { children: /* @__PURE__ */ jsxs58( InstantSearch2, { searchClient, @@ -15412,7 +15653,7 @@ var SearchResults = () => { searchState, onSearchStateChange: (currentState) => updateSearchState(currentState), children: [ - /* @__PURE__ */ jsx70( + /* @__PURE__ */ jsx73( Configure2, { filters, @@ -15423,7 +15664,7 @@ var SearchResults = () => { facetingAfterDistinct: true } ), - /* @__PURE__ */ jsx70(infiniteHits_default, {}, keyword) + /* @__PURE__ */ jsx73(infiniteHits_default, {}, keyword) ] } ) }) @@ -15432,11 +15673,11 @@ var SearchResults = () => { var search_results_default = SearchResults; // src/components/search-filter-tab-bar/index.tsx -import { useContext as useContext22, useEffect as useEffect22 } from "react"; -import { Flex as Flex26, Text as Text20 } from "@vtex/brand-ui"; +import { useContext as useContext24, useEffect as useEffect22 } from "react"; +import { Flex as Flex26, Text as Text22 } from "@vtex/brand-ui"; // src/components/search-filter-tab-bar/styles.ts -var container11 = { +var container13 = { display: ["flex", "flex", "flex", "none"], flexWrap: "wrap", alignItems: "center", @@ -15487,10 +15728,10 @@ var tabCount = (active) => ({ backgroundColor: active ? "#FFFFFF" : "#EDEAF6", color: active ? "#D71D55" : "#4A596B" }); -var styles_default27 = { container: container11, tab, tabIcon, tabTitle, tabCount }; +var styles_default29 = { container: container13, tab, tabIcon, tabTitle, tabCount }; // src/components/search-filter-tab-bar/index.tsx -import { jsx as jsx71, jsxs as jsxs57 } from "react/jsx-runtime"; +import { jsx as jsx74, jsxs as jsxs59 } from "react/jsx-runtime"; var hasFilterResults = (ocurrenceCount, filter) => { const count2 = ocurrenceCount[filter]; return typeof count2 === "number" && count2 > 0; @@ -15498,35 +15739,35 @@ var hasFilterResults = (ocurrenceCount, filter) => { var SearchFilterTab = ({ filter, label: label4, - Icon: Icon81 + Icon: Icon82 }) => { - const { filterSelectedSection, changeFilterSelectedSection, ocurrenceCount } = useContext22(SearchContext); - const { locale } = useContext22(LibraryContext); + const { filterSelectedSection, changeFilterSelectedSection, ocurrenceCount } = useContext24(SearchContext); + const { locale } = useContext24(LibraryContext); const count2 = ocurrenceCount[filter]; const formattedCount = formatSearchTabCount(count2); const isActive = filterSelectedSection === filter; - return /* @__PURE__ */ jsxs57( + return /* @__PURE__ */ jsxs59( Flex26, { - sx: styles_default27.tab(isActive), + sx: styles_default29.tab(isActive), onClick: () => changeFilterSelectedSection(filter), "data-testid": "doctype-filter-tab", "data-filter": filter, "data-active": String(isActive), children: [ - Icon81 ? /* @__PURE__ */ jsx71(Icon81, { sx: styles_default27.tabIcon(isActive) }) : null, - /* @__PURE__ */ jsx71( - Text20, + Icon82 ? /* @__PURE__ */ jsx74(Icon82, { sx: styles_default29.tabIcon(isActive) }) : null, + /* @__PURE__ */ jsx74( + Text22, { - sx: styles_default27.tabTitle(isActive), + sx: styles_default29.tabTitle(isActive), "data-testid": "doctype-filter-tab-title", children: filter === "" ? messages[locale]["search_results.all"] || "All results" : label4 || filter } ), - formattedCount !== void 0 && /* @__PURE__ */ jsx71( - Text20, + formattedCount !== void 0 && /* @__PURE__ */ jsx74( + Text22, { - sx: styles_default27.tabCount(isActive), + sx: styles_default29.tabCount(isActive), "data-testid": "doctype-filter-tab-count", children: formattedCount } @@ -15536,8 +15777,8 @@ var SearchFilterTab = ({ ); }; var SearchFilterTabBar = () => { - const { sidebarSections, sidebarDataMaster, locale } = useContext22(LibraryContext); - const { ocurrenceCount, filterSelectedSection, changeFilterSelectedSection } = useContext22(SearchContext); + 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( (section) => !countsLoaded || hasFilterResults(ocurrenceCount, section.id) @@ -15554,9 +15795,9 @@ var SearchFilterTabBar = () => { ocurrenceCount, changeFilterSelectedSection ]); - return /* @__PURE__ */ jsxs57(Flex26, { sx: styles_default27.container, "data-testid": "doctype-filter-tab-bar", children: [ - /* @__PURE__ */ jsx71(SearchFilterTab, { filter: "" }), - visibleSections.map((section) => /* @__PURE__ */ jsx71( + return /* @__PURE__ */ jsxs59(Flex26, { sx: styles_default29.container, "data-testid": "doctype-filter-tab-bar", children: [ + /* @__PURE__ */ jsx74(SearchFilterTab, { filter: "" }), + visibleSections.map((section) => /* @__PURE__ */ jsx74( SearchFilterTab, { filter: section.id, @@ -15575,25 +15816,25 @@ var body2 = { justifyContent: "center", px: [0, 0, 0, "16px"] }; -var styles_default28 = { +var styles_default30 = { body: body2 }; // src/lib/search/index.tsx -import { jsx as jsx72, jsxs as jsxs58 } from "react/jsx-runtime"; +import { jsx as jsx75, jsxs as jsxs60 } from "react/jsx-runtime"; var Search = () => { - return /* @__PURE__ */ jsxs58(search_default, { children: [ - /* @__PURE__ */ jsx72(search_filter_tab_bar_default, {}), - /* @__PURE__ */ jsxs58(Flex27, { sx: styles_default28.body, children: [ - /* @__PURE__ */ jsx72(search_sections_default, {}), - /* @__PURE__ */ jsx72(search_results_default, {}) + return /* @__PURE__ */ jsxs60(search_default, { children: [ + /* @__PURE__ */ jsx75(search_filter_tab_bar_default, {}), + /* @__PURE__ */ jsxs60(Flex27, { sx: styles_default30.body, children: [ + /* @__PURE__ */ jsx75(search_sections_default, {}), + /* @__PURE__ */ jsx75(search_results_default, {}) ] }) ] }); }; var search_default2 = Search; // src/lib/cookie-bar/index.tsx -import { useContext as useContext23 } from "react"; +import { useContext as useContext25 } from "react"; import { CookieConsent } from "react-cookie-consent"; // src/lib/cookie-bar/styles.ts @@ -15654,7 +15895,7 @@ var declineButton = { opacity: "0.7" } }; -var styles_default29 = { +var styles_default31 = { bar, barContent, title: title6, @@ -15664,21 +15905,21 @@ var styles_default29 = { }; // src/lib/cookie-bar/index.tsx -import { Flex as Flex28, Text as Text21 } from "@vtex/brand-ui"; +import { Flex as Flex28, Text as Text23 } from "@vtex/brand-ui"; import aa3 from "search-insights"; -import { jsx as jsx73, jsxs as jsxs59 } from "react/jsx-runtime"; +import { jsx as jsx76, jsxs as jsxs61 } from "react/jsx-runtime"; var Button6 = ({ children, style, ...props }) => { - return /* @__PURE__ */ jsx73(Flex28, { sx: style, ...props, children }); + return /* @__PURE__ */ jsx76(Flex28, { sx: style, ...props, children }); }; var CookieBar = ({ onAccept }) => { - const { locale } = useContext23(LibraryContext); - return /* @__PURE__ */ jsxs59( + const { locale } = useContext25(LibraryContext); + return /* @__PURE__ */ jsxs61( CookieConsent, { enableDeclineButton: true, - buttonStyle: styles_default29.acceptButton, - declineButtonStyle: styles_default29.declineButton, - style: styles_default29.bar, + buttonStyle: styles_default31.acceptButton, + declineButtonStyle: styles_default31.declineButton, + style: styles_default31.bar, onAccept: () => { aa3("init", { partial: true, @@ -15689,11 +15930,11 @@ var CookieBar = ({ onAccept }) => { declineButtonText: messages[locale]["cookie_bar.decline"], buttonText: messages[locale]["cookie_bar.accept"], ButtonComponent: Button6, - customButtonWrapperAttributes: { style: styles_default29.buttonContainer }, - customContentAttributes: { style: styles_default29.barContent }, + customButtonWrapperAttributes: { style: styles_default31.buttonContainer }, + customContentAttributes: { style: styles_default31.barContent }, children: [ - /* @__PURE__ */ jsx73(Text21, { sx: styles_default29.title, children: messages[locale]["cookie_bar.title"] }), - /* @__PURE__ */ jsx73(Text21, { children: messages[locale]["cookie_bar.description"] }) + /* @__PURE__ */ jsx76(Text23, { sx: styles_default31.title, children: messages[locale]["cookie_bar.title"] }), + /* @__PURE__ */ jsx76(Text23, { children: messages[locale]["cookie_bar.description"] }) ] } ); @@ -15702,7 +15943,7 @@ var cookie_bar_default = CookieBar; // src/components/copy-link-button/index.tsx import { Button as Button7 } from "@vtex/brand-ui"; -import { useState as useState23 } from "react"; +import { useState as useState24 } from "react"; // src/components/copy-link-button/styles.ts var copyIcon = { @@ -15722,15 +15963,15 @@ var copyLinkButton = { backgroundColor: "#EFEFEF" } }; -var styles_default30 = { +var styles_default32 = { copyIcon, copyLinkButton }; // src/components/copy-link-button/index.tsx -import { jsx as jsx74 } from "react/jsx-runtime"; +import { jsx as jsx77 } from "react/jsx-runtime"; var CopyLinkButton = () => { - const [tooltipText, setTooltipText] = useState23("Copy"); + const [tooltipText, setTooltipText] = useState24("Copy"); const handleCopy = () => { navigator.clipboard.writeText(window.location.href); setTooltipText("Copy"); @@ -15738,14 +15979,14 @@ var CopyLinkButton = () => { setTooltipText("Copied!"); }, 2e3); }; - return /* @__PURE__ */ jsx74(tooltip_default, { label: tooltipText, placement: "bottom", children: /* @__PURE__ */ jsx74(Button7, { onClick: handleCopy, sx: styles_default30.copyLinkButton, children: /* @__PURE__ */ jsx74(copy_icon_default, { sx: styles_default30.copyIcon, size: 16 }) }) }); + return /* @__PURE__ */ jsx77(tooltip_default, { label: tooltipText, placement: "bottom", children: /* @__PURE__ */ jsx77(Button7, { onClick: handleCopy, sx: styles_default32.copyLinkButton, children: /* @__PURE__ */ jsx77(copy_icon_default, { sx: styles_default32.copyIcon, size: 16 }) }) }); }; var copy_link_button_default = CopyLinkButton; // src/components/copy-button/index.tsx -import { useCallback as useCallback3, useState as useState24, useRef as useRef13, useEffect as useEffect23 } from "react"; +import { useCallback as useCallback3, useState as useState25, useRef as useRef13, useEffect as useEffect23 } from "react"; import copy2 from "copy-text-to-clipboard"; -import { Box as Box30, Button as Button8, Icon as Icon36 } from "@vtex/brand-ui"; +import { Box as Box31, Button as Button8, Icon as Icon37 } from "@vtex/brand-ui"; // src/components/copy-button/styles.ts var basicButton = { @@ -15798,7 +16039,7 @@ var copyButtonSuccessIconCopied = { opacity: "1", transitionDelay: "0.075s" }; -var styles_default31 = { +var styles_default33 = { copyButton, copyButtonCopied, copyButtonIcons, @@ -15809,9 +16050,9 @@ var styles_default31 = { }; // src/components/copy-button/index.tsx -import { jsx as jsx75, jsxs as jsxs60 } from "react/jsx-runtime"; +import { jsx as jsx78, jsxs as jsxs62 } from "react/jsx-runtime"; var CopyButton = ({ code, sx }) => { - const [isCopied, setIsCopied] = useState24(false); + const [isCopied, setIsCopied] = useState25(false); const copyTimeout = useRef13(void 0); const handleCopyCode = useCallback3(() => { copy2(code); @@ -15821,32 +16062,32 @@ var CopyButton = ({ code, sx }) => { }, 1e3); }, [code]); useEffect23(() => () => window.clearTimeout(copyTimeout.current), []); - return /* @__PURE__ */ jsx75( + return /* @__PURE__ */ jsx78( Button8, { variant: "tertiary", size: "small", onClick: handleCopyCode, sx: { - ...isCopied ? styles_default31.copyButtonCopied : styles_default31.copyButton, + ...isCopied ? styles_default33.copyButtonCopied : styles_default33.copyButton, ...sx }, "aria-label": "Copy code snippet", - children: /* @__PURE__ */ jsxs60(Box30, { sx: styles_default31.copyButtonIcons, "aria-hidden": "true", children: [ - /* @__PURE__ */ jsx75( - Icon36, + children: /* @__PURE__ */ jsxs62(Box31, { sx: styles_default33.copyButtonIcons, "aria-hidden": "true", children: [ + /* @__PURE__ */ jsx78( + Icon37, { size: 16, - sx: isCopied ? styles_default31.copyButtonIconCopied : styles_default31.copyButtonIcon, - children: /* @__PURE__ */ jsx75("path", { d: "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" }) + sx: isCopied ? styles_default33.copyButtonIconCopied : styles_default33.copyButtonIcon, + children: /* @__PURE__ */ jsx78("path", { d: "M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" }) } ), - /* @__PURE__ */ jsx75( - Icon36, + /* @__PURE__ */ jsx78( + Icon37, { size: 16, - sx: isCopied ? styles_default31.copyButtonSuccessIcon : styles_default31.copyButtonSuccessIconCopied, - children: /* @__PURE__ */ jsx75("path", { d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" }) + sx: isCopied ? styles_default33.copyButtonSuccessIcon : styles_default33.copyButtonSuccessIconCopied, + children: /* @__PURE__ */ jsx78("path", { d: "M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z" }) } ) ] }) @@ -15856,15 +16097,15 @@ var CopyButton = ({ code, sx }) => { var copy_button_default = CopyButton; // src/components/ask-ai/index.tsx -import { useContext as useContext24, useEffect as useEffect24, useRef as useRef14, useState as useState25 } from "react"; +import { useContext as useContext26, useEffect as useEffect24, useRef as useRef14, useState as useState26 } from "react"; import copy3 from "copy-text-to-clipboard"; -import { Box as Box31, Text as Text22, IconCaret as IconCaret7 } from "@vtex/brand-ui"; +import { Box as Box32, Text as Text24, IconCaret as IconCaret7 } from "@vtex/brand-ui"; // src/components/icons/chatgpt-icon.tsx -import { Icon as Icon37 } from "@vtex/brand-ui"; -import { jsx as jsx76 } from "react/jsx-runtime"; -var ChatGPTIcon = (props) => /* @__PURE__ */ jsx76( - Icon37, +import { Icon as Icon38 } from "@vtex/brand-ui"; +import { jsx as jsx79 } from "react/jsx-runtime"; +var ChatGPTIcon = (props) => /* @__PURE__ */ jsx79( + Icon38, { ...props, fill: "currentColor", @@ -15873,16 +16114,16 @@ var ChatGPTIcon = (props) => /* @__PURE__ */ jsx76( viewBox: "0 0 24 24", width: "64", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx76("path", { d: "M21.55 10.004a5.416 5.416 0 00-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59 5.59 0 0010.831 1C8.39.995 6.224 2.546 5.473 4.838A5.553 5.553 0 001.76 7.496a5.487 5.487 0 00.691 6.5 5.416 5.416 0 00.477 4.502c1.217 2.09 3.662 3.165 6.05 2.66A5.586 5.586 0 0013.168 23c2.443.006 4.61-1.546 5.361-3.84a5.553 5.553 0 003.715-2.66 5.488 5.488 0 00-.693-6.497v.001zm-8.381 11.558a4.199 4.199 0 01-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71 0 00.364-.623v-6.176l1.877 1.069c.02.01.033.029.036.05v5.115c-.003 2.274-1.87 4.118-4.174 4.123zM4.192 17.78a4.059 4.059 0 01-.498-2.763c.032.02.09.055.131.078l4.44 2.53c.225.13.504.13.73 0l5.42-3.088v2.138a.068.068 0 01-.027.057L9.9 19.288c-1.999 1.136-4.552.46-5.707-1.51h-.001zM3.023 8.216A4.15 4.15 0 015.198 6.41l-.002.151v5.06a.711.711 0 00.364.624l5.42 3.087-1.876 1.07a.067.067 0 01-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417 3.54l-5.42-3.088L14.896 7.6a.067.067 0 01.063-.006l4.489 2.557c1.998 1.14 2.683 3.662 1.529 5.633a4.163 4.163 0 01-2.174 1.807V12.38a.71.71 0 00-.363-.623zm1.867-2.773a6.04 6.04 0 00-.132-.078l-4.44-2.53a.731.731 0 00-.729 0l-5.42 3.088V7.325a.068.068 0 01.027-.057L14.1 4.713c2-1.137 4.555-.46 5.707 1.513.487.833.664 1.809.499 2.757h.001zm-11.741 3.81l-1.877-1.068a.065.065 0 01-.036-.051V6.559c.001-2.277 1.873-4.122 4.181-4.12.976 0 1.92.338 2.671.954-.034.018-.092.05-.131.073l-4.44 2.53a.71.71 0 00-.365.623l-.003 6.173v.002zm1.02-2.168L12 9.25l2.414 1.375v2.75L12 14.75l-2.415-1.375v-2.75z" }) + children: /* @__PURE__ */ jsx79("path", { d: "M21.55 10.004a5.416 5.416 0 00-.478-4.501c-1.217-2.09-3.662-3.166-6.05-2.66A5.59 5.59 0 0010.831 1C8.39.995 6.224 2.546 5.473 4.838A5.553 5.553 0 001.76 7.496a5.487 5.487 0 00.691 6.5 5.416 5.416 0 00.477 4.502c1.217 2.09 3.662 3.165 6.05 2.66A5.586 5.586 0 0013.168 23c2.443.006 4.61-1.546 5.361-3.84a5.553 5.553 0 003.715-2.66 5.488 5.488 0 00-.693-6.497v.001zm-8.381 11.558a4.199 4.199 0 01-2.675-.954c.034-.018.093-.05.132-.074l4.44-2.53a.71.71 0 00.364-.623v-6.176l1.877 1.069c.02.01.033.029.036.05v5.115c-.003 2.274-1.87 4.118-4.174 4.123zM4.192 17.78a4.059 4.059 0 01-.498-2.763c.032.02.09.055.131.078l4.44 2.53c.225.13.504.13.73 0l5.42-3.088v2.138a.068.068 0 01-.027.057L9.9 19.288c-1.999 1.136-4.552.46-5.707-1.51h-.001zM3.023 8.216A4.15 4.15 0 015.198 6.41l-.002.151v5.06a.711.711 0 00.364.624l5.42 3.087-1.876 1.07a.067.067 0 01-.063.005l-4.489-2.559c-1.995-1.14-2.679-3.658-1.53-5.63h.001zm15.417 3.54l-5.42-3.088L14.896 7.6a.067.067 0 01.063-.006l4.489 2.557c1.998 1.14 2.683 3.662 1.529 5.633a4.163 4.163 0 01-2.174 1.807V12.38a.71.71 0 00-.363-.623zm1.867-2.773a6.04 6.04 0 00-.132-.078l-4.44-2.53a.731.731 0 00-.729 0l-5.42 3.088V7.325a.068.068 0 01.027-.057L14.1 4.713c2-1.137 4.555-.46 5.707 1.513.487.833.664 1.809.499 2.757h.001zm-11.741 3.81l-1.877-1.068a.065.065 0 01-.036-.051V6.559c.001-2.277 1.873-4.122 4.181-4.12.976 0 1.92.338 2.671.954-.034.018-.092.05-.131.073l-4.44 2.53a.71.71 0 00-.365.623l-.003 6.173v.002zm1.02-2.168L12 9.25l2.414 1.375v2.75L12 14.75l-2.415-1.375v-2.75z" }) } ); var chatgpt_icon_default = ChatGPTIcon; // src/components/icons/copilot-icon.tsx -import { Icon as Icon38 } from "@vtex/brand-ui"; -import { jsx as jsx77 } from "react/jsx-runtime"; -var CopilotIcon = (props) => /* @__PURE__ */ jsx77( - Icon38, +import { Icon as Icon39 } from "@vtex/brand-ui"; +import { jsx as jsx80 } from "react/jsx-runtime"; +var CopilotIcon = (props) => /* @__PURE__ */ jsx80( + Icon39, { ...props, fill: "currentColor", @@ -15891,16 +16132,16 @@ var CopilotIcon = (props) => /* @__PURE__ */ jsx77( viewBox: "0 0 24 24", width: "64", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx77("path", { d: "M9 23l.073-.001a2.53 2.53 0 01-2.347-1.838l-.697-2.433a2.529 2.529 0 00-2.426-1.839h-.497l-.104-.002c-4.485 0-2.935-5.278-1.75-9.225l.162-.525C2.412 3.99 3.883 1 6.25 1h8.86c1.12 0 2.106.745 2.422 1.829l.715 2.453a2.53 2.53 0 002.247 1.823l.147.005.534.001c3.557.115 3.088 3.745 2.156 7.206l-.113.413c-.154.548-.315 1.089-.47 1.607l-.163.525C21.588 20.01 20.116 23 17.75 23h-8.75zm8.22-15.89l-3.856.001a2.526 2.526 0 00-2.35 1.615L9.21 15.04a2.529 2.529 0 01-2.43 1.847l3.853.002c1.056 0 1.992-.661 2.361-1.644l1.796-6.287a2.529 2.529 0 012.43-1.848z" }) + children: /* @__PURE__ */ jsx80("path", { d: "M9 23l.073-.001a2.53 2.53 0 01-2.347-1.838l-.697-2.433a2.529 2.529 0 00-2.426-1.839h-.497l-.104-.002c-4.485 0-2.935-5.278-1.75-9.225l.162-.525C2.412 3.99 3.883 1 6.25 1h8.86c1.12 0 2.106.745 2.422 1.829l.715 2.453a2.53 2.53 0 002.247 1.823l.147.005.534.001c3.557.115 3.088 3.745 2.156 7.206l-.113.413c-.154.548-.315 1.089-.47 1.607l-.163.525C21.588 20.01 20.116 23 17.75 23h-8.75zm8.22-15.89l-3.856.001a2.526 2.526 0 00-2.35 1.615L9.21 15.04a2.529 2.529 0 01-2.43 1.847l3.853.002c1.056 0 1.992-.661 2.361-1.644l1.796-6.287a2.529 2.529 0 012.43-1.848z" }) } ); var copilot_icon_default = CopilotIcon; // src/components/icons/claude-icon.tsx -import { Icon as Icon39 } from "@vtex/brand-ui"; -import { jsx as jsx78, jsxs as jsxs61 } from "react/jsx-runtime"; -var ClaudeIcon = (props) => /* @__PURE__ */ jsxs61( - Icon39, +import { Icon as Icon40 } from "@vtex/brand-ui"; +import { jsx as jsx81, jsxs as jsxs63 } from "react/jsx-runtime"; +var ClaudeIcon = (props) => /* @__PURE__ */ jsxs63( + Icon40, { ...props, fill: "currentColor", @@ -15910,18 +16151,18 @@ var ClaudeIcon = (props) => /* @__PURE__ */ jsxs61( width: "64", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx78("title", { children: "Claude" }), - /* @__PURE__ */ jsx78("path", { d: "M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z" }) + /* @__PURE__ */ jsx81("title", { children: "Claude" }), + /* @__PURE__ */ jsx81("path", { d: "M4.709 15.955l4.72-2.647.08-.23-.08-.128H9.2l-.79-.048-2.698-.073-2.339-.097-2.266-.122-.571-.121L0 11.784l.055-.352.48-.321.686.06 1.52.103 2.278.158 1.652.097 2.449.255h.389l.055-.157-.134-.098-.103-.097-2.358-1.596-2.552-1.688-1.336-.972-.724-.491-.364-.462-.158-1.008.656-.722.881.06.225.061.893.686 1.908 1.476 2.491 1.833.365.304.145-.103.019-.073-.164-.274-1.355-2.446-1.446-2.49-.644-1.032-.17-.619a2.97 2.97 0 01-.104-.729L6.283.134 6.696 0l.996.134.42.364.62 1.414 1.002 2.229 1.555 3.03.456.898.243.832.091.255h.158V9.01l.128-1.706.237-2.095.23-2.695.08-.76.376-.91.747-.492.584.28.48.685-.067.444-.286 1.851-.559 2.903-.364 1.942h.212l.243-.242.985-1.306 1.652-2.064.73-.82.85-.904.547-.431h1.033l.76 1.129-.34 1.166-1.064 1.347-.881 1.142-1.264 1.7-.79 1.36.073.11.188-.02 2.856-.606 1.543-.28 1.841-.315.833.388.091.395-.328.807-1.969.486-2.309.462-3.439.813-.042.03.049.061 1.549.146.662.036h1.622l3.02.225.79.522.474.638-.079.485-1.215.62-1.64-.389-3.829-.91-1.312-.329h-.182v.11l1.093 1.068 2.006 1.81 2.509 2.33.127.578-.322.455-.34-.049-2.205-1.657-.851-.747-1.926-1.62h-.128v.17l.444.649 2.345 3.521.122 1.08-.17.353-.608.213-.668-.122-1.374-1.925-1.415-2.167-1.143-1.943-.14.08-.674 7.254-.316.37-.729.28-.607-.461-.322-.747.322-1.476.389-1.924.315-1.53.286-1.9.17-.632-.012-.042-.14.018-1.434 1.967-2.18 2.945-1.726 1.845-.414.164-.717-.37.067-.662.401-.589 2.388-3.036 1.44-1.882.93-1.086-.006-.158h-.055L4.132 18.56l-1.13.146-.487-.456.061-.746.231-.243 1.908-1.312-.006.006z" }) ] } ); var claude_icon_default = ClaudeIcon; // src/components/icons/gemini-icon.tsx -import { Icon as Icon40 } from "@vtex/brand-ui"; -import { jsx as jsx79 } from "react/jsx-runtime"; -var GeminiIcon = (props) => /* @__PURE__ */ jsx79( - Icon40, +import { Icon as Icon41 } from "@vtex/brand-ui"; +import { jsx as jsx82 } from "react/jsx-runtime"; +var GeminiIcon = (props) => /* @__PURE__ */ jsx82( + Icon41, { ...props, fill: "currentColor", @@ -15930,23 +16171,23 @@ var GeminiIcon = (props) => /* @__PURE__ */ jsx79( viewBox: "0 0 24 24", width: "64", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx79("path", { d: "M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" }) + children: /* @__PURE__ */ jsx82("path", { d: "M20.616 10.835a14.147 14.147 0 01-4.45-3.001 14.111 14.111 0 01-3.678-6.452.503.503 0 00-.975 0 14.134 14.134 0 01-3.679 6.452 14.155 14.155 0 01-4.45 3.001c-.65.28-1.318.505-2.002.678a.502.502 0 000 .975c.684.172 1.35.397 2.002.677a14.147 14.147 0 014.45 3.001 14.112 14.112 0 013.679 6.453.502.502 0 00.975 0c.172-.685.397-1.351.677-2.003a14.145 14.145 0 013.001-4.45 14.113 14.113 0 016.453-3.678.503.503 0 000-.975 13.245 13.245 0 01-2.003-.678z" }) } ); var gemini_icon_default = GeminiIcon; // src/components/icons/long-arrow-icon.tsx -import { Icon as Icon41 } from "@vtex/brand-ui"; -import { jsx as jsx80, jsxs as jsxs62 } from "react/jsx-runtime"; -var LongArrowIcon = (props) => /* @__PURE__ */ jsxs62( - Icon41, +import { Icon as Icon42 } from "@vtex/brand-ui"; +import { jsx as jsx83, jsxs as jsxs64 } from "react/jsx-runtime"; +var LongArrowIcon = (props) => /* @__PURE__ */ jsxs64( + Icon42, { ...props, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx80( + /* @__PURE__ */ jsx83( "path", { d: "M17.4431 6.05859L6 17.5017", @@ -15956,7 +16197,7 @@ var LongArrowIcon = (props) => /* @__PURE__ */ jsxs62( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx80( + /* @__PURE__ */ jsx83( "path", { d: "M9.4082 6L17.4415 6.05664L17.4993 14.0911", @@ -15972,17 +16213,17 @@ var LongArrowIcon = (props) => /* @__PURE__ */ jsxs62( var long_arrow_icon_default = LongArrowIcon; // src/components/icons/markdown-icon.tsx -import { Icon as Icon42 } from "@vtex/brand-ui"; -import { jsx as jsx81, jsxs as jsxs63 } from "react/jsx-runtime"; -var MarkdownIcon = (props) => /* @__PURE__ */ jsxs63( - Icon42, +import { Icon as Icon43 } from "@vtex/brand-ui"; +import { jsx as jsx84, jsxs as jsxs65 } from "react/jsx-runtime"; +var MarkdownIcon = (props) => /* @__PURE__ */ jsxs65( + Icon43, { ...props, viewBox: "0 0 208 128", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx81( + /* @__PURE__ */ jsx84( "rect", { width: "198", @@ -15994,7 +16235,7 @@ var MarkdownIcon = (props) => /* @__PURE__ */ jsxs63( strokeWidth: "10" } ), - /* @__PURE__ */ jsx81( + /* @__PURE__ */ jsx84( "path", { fill: "currentColor", @@ -16020,7 +16261,7 @@ var baseBtn = { cursor: "pointer", "&:hover": { backgroundColor: "#F8F7FC", color: "#000711" } }; -var container12 = { +var container14 = { position: "relative" }; var group = { @@ -16087,8 +16328,8 @@ var askaiItem = { transform: "translateY(1px)" } }; -var styles_default32 = { - container: container12, +var styles_default34 = { + container: container14, group, primaryBtn, caretBtn, @@ -16098,7 +16339,7 @@ var styles_default32 = { }; // src/components/ask-ai/index.tsx -import { jsx as jsx82, jsxs as jsxs64 } from "react/jsx-runtime"; +import { jsx as jsx85, jsxs as jsxs66 } from "react/jsx-runtime"; var DEFAULT_PROVIDERS = [ { id: "chatgpt", name: "ChatGPT", href: "https://chat.openai.com/" }, { id: "copilot", name: "Copilot", href: "https://copilot.microsoft.com/" }, @@ -16116,8 +16357,8 @@ var fetchMarkdown = async (filePath, contentEndpoint) => { const params = new URLSearchParams({ path: filePath }); const res = await fetch(`${contentEndpoint}?${params.toString()}`); if (!res.ok) { - const errorText2 = await res.text(); - throw new Error(`Failed to fetch content: ${res.status} ${errorText2}`); + const errorText3 = await res.text(); + throw new Error(`Failed to fetch content: ${res.status} ${errorText3}`); } const data = await res.json(); return getMarkdownFromResponse(data); @@ -16125,13 +16366,13 @@ var fetchMarkdown = async (filePath, contentEndpoint) => { var ProviderIcon = ({ id, size = 14 }) => { switch (id) { case "chatgpt": - return /* @__PURE__ */ jsx82(chatgpt_icon_default, { size }); + return /* @__PURE__ */ jsx85(chatgpt_icon_default, { size }); case "copilot": - return /* @__PURE__ */ jsx82(copilot_icon_default, { size }); + return /* @__PURE__ */ jsx85(copilot_icon_default, { size }); case "claude": - return /* @__PURE__ */ jsx82(claude_icon_default, { size }); + return /* @__PURE__ */ jsx85(claude_icon_default, { size }); case "gemini": - return /* @__PURE__ */ jsx82(gemini_icon_default, { size }); + return /* @__PURE__ */ jsx85(gemini_icon_default, { size }); default: return null; } @@ -16145,14 +16386,14 @@ var AskAIMenu = ({ contentEndpoint = DEFAULT_CONTENT_ENDPOINT, onCopyPage }) => { - const { locale } = useContext24(LibraryContext); + const { locale } = useContext26(LibraryContext); const localizedMessages = messages[locale] ?? messages.en; const copyLabel = localizedMessages["ask_ai.copy"] || "Copy markdown"; const viewLabel = localizedMessages["ask_ai.view"] || "View markdown"; const copiedLabel = localizedMessages["ask_ai.copied"] || "Copied"; - const [open, setOpen] = useState25(false); - const [isCopied, setIsCopied] = useState25(false); - const [isLoading, setIsLoading] = useState25(false); + const [open, setOpen] = useState26(false); + const [isCopied, setIsCopied] = useState26(false); + const [isLoading, setIsLoading] = useState26(false); const menuRef = useRef14(null); const handleProvider = (provider) => { onOpenProvider?.(provider); @@ -16218,66 +16459,66 @@ var AskAIMenu = ({ document.removeEventListener("mousedown", handleClickOutside); }; }, [open]); - return /* @__PURE__ */ jsxs64(Box31, { ref: menuRef, sx: styles_default32.container, children: [ - /* @__PURE__ */ jsxs64(Box31, { sx: styles_default32.group, children: [ - /* @__PURE__ */ jsxs64( - Box31, + return /* @__PURE__ */ jsxs66(Box32, { ref: menuRef, sx: styles_default34.container, children: [ + /* @__PURE__ */ jsxs66(Box32, { sx: styles_default34.group, children: [ + /* @__PURE__ */ jsxs66( + Box32, { as: "button", type: "button", - sx: styles_default32.primaryBtn, + sx: styles_default34.primaryBtn, onClick: handleCopy, "aria-label": isCopied ? copiedLabel : copyLabel, disabled: isLoading, children: [ - isCopied ? /* @__PURE__ */ jsx82(check_icon_default, { size: 14 }) : /* @__PURE__ */ jsx82(markdown_icon_default, { size: 14 }), - /* @__PURE__ */ jsx82(Text22, { children: isCopied ? copiedLabel : copyLabel }) + isCopied ? /* @__PURE__ */ jsx85(check_icon_default, { size: 14 }) : /* @__PURE__ */ jsx85(markdown_icon_default, { size: 14 }), + /* @__PURE__ */ jsx85(Text24, { children: isCopied ? copiedLabel : copyLabel }) ] } ), - /* @__PURE__ */ jsx82( - Box31, + /* @__PURE__ */ jsx85( + Box32, { as: "button", type: "button", - sx: styles_default32.caretBtn, + sx: styles_default34.caretBtn, onClick: () => setOpen((isOpen) => !isOpen), "aria-haspopup": "menu", "aria-expanded": open, "aria-controls": "askai-menu", - children: /* @__PURE__ */ jsx82(IconCaret7, { direction: open ? "up" : "down" }) + children: /* @__PURE__ */ jsx85(IconCaret7, { direction: open ? "up" : "down" }) } ) ] }), - open && /* @__PURE__ */ jsxs64(Box31, { id: "askai-menu", sx: styles_default32.askaiMenu, role: "menu", children: [ - /* @__PURE__ */ jsx82(Box31, { sx: styles_default32.askaiSection, children: providers.map((provider) => /* @__PURE__ */ jsxs64( - Box31, + open && /* @__PURE__ */ jsxs66(Box32, { id: "askai-menu", sx: styles_default34.askaiMenu, role: "menu", children: [ + /* @__PURE__ */ jsx85(Box32, { sx: styles_default34.askaiSection, children: providers.map((provider) => /* @__PURE__ */ jsxs66( + Box32, { as: "button", - sx: styles_default32.askaiItem, + sx: styles_default34.askaiItem, onClick: () => handleProvider(provider), role: "menuitem", "aria-label": `Open ${provider.name}`, children: [ - /* @__PURE__ */ jsx82(ProviderIcon, { id: provider.id, size: 12 }), - /* @__PURE__ */ jsxs64("span", { children: [ + /* @__PURE__ */ jsx85(ProviderIcon, { id: provider.id, size: 12 }), + /* @__PURE__ */ jsxs66("span", { children: [ provider.name, " ", - /* @__PURE__ */ jsx82(long_arrow_icon_default, { size: 12 }) + /* @__PURE__ */ jsx85(long_arrow_icon_default, { size: 12 }) ] }) ] }, `lu-${provider.id}` )) }), - /* @__PURE__ */ jsx82(Box31, { sx: styles_default32.askaiSection, children: /* @__PURE__ */ jsxs64( - Box31, + /* @__PURE__ */ jsx85(Box32, { sx: styles_default34.askaiSection, children: /* @__PURE__ */ jsxs66( + Box32, { as: "button", - sx: styles_default32.askaiItem, + sx: styles_default34.askaiItem, onClick: handleView, "aria-label": viewLabel, children: [ - /* @__PURE__ */ jsx82(markdown_icon_default, { size: 12 }), + /* @__PURE__ */ jsx85(markdown_icon_default, { size: 12 }), viewLabel ] } @@ -16290,29 +16531,29 @@ var ask_ai_default = AskAIMenu; // src/components/ask-assistant/index.tsx import { useCallback as useCallback4, - useContext as useContext25, + useContext as useContext27, useEffect as useEffect25, useId, useMemo as useMemo5, useRef as useRef15, - useState as useState26 + useState as useState27 } from "react"; import { createPortal as createPortal2 } from "react-dom"; import copy4 from "copy-text-to-clipboard"; -import { Box as Box33, Flex as Flex29, Text as Text23 } from "@vtex/brand-ui"; +import { Box as Box34, Flex as Flex29, Text as Text25 } from "@vtex/brand-ui"; // src/components/icons/book-icon.tsx -import { Icon as Icon43 } from "@vtex/brand-ui"; -import { jsx as jsx83, jsxs as jsxs65 } from "react/jsx-runtime"; -var BookIcon = (props) => /* @__PURE__ */ jsxs65( - Icon43, +import { Icon as Icon44 } from "@vtex/brand-ui"; +import { jsx as jsx86, jsxs as jsxs67 } from "react/jsx-runtime"; +var BookIcon = (props) => /* @__PURE__ */ jsxs67( + Icon44, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx83( + /* @__PURE__ */ jsx86( "path", { d: "M2.5 3.25c0-.414.336-.75.75-.75H8v10.5H3.25a.75.75 0 0 1-.75-.75V3.25Z", @@ -16321,7 +16562,7 @@ var BookIcon = (props) => /* @__PURE__ */ jsxs65( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx83( + /* @__PURE__ */ jsx86( "path", { d: "M13.5 3.25c0-.414-.336-.75-.75-.75H8v10.5h4.75a.75.75 0 0 0 .75-.75V3.25Z", @@ -16330,7 +16571,7 @@ var BookIcon = (props) => /* @__PURE__ */ jsxs65( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx83( + /* @__PURE__ */ jsx86( "path", { d: "M8 2.5v10.5", @@ -16345,17 +16586,17 @@ var BookIcon = (props) => /* @__PURE__ */ jsxs65( var book_icon_default = BookIcon; // src/components/icons/collapse-icon.tsx -import { Icon as Icon44 } from "@vtex/brand-ui"; -import { jsx as jsx84, jsxs as jsxs66 } from "react/jsx-runtime"; -var CollapseIcon = (props) => /* @__PURE__ */ jsxs66( - Icon44, +import { Icon as Icon45 } from "@vtex/brand-ui"; +import { jsx as jsx87, jsxs as jsxs68 } from "react/jsx-runtime"; +var CollapseIcon = (props) => /* @__PURE__ */ jsxs68( + Icon45, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx84( + /* @__PURE__ */ jsx87( "path", { d: "M13.5 6.5H9.5V2.5", @@ -16365,7 +16606,7 @@ var CollapseIcon = (props) => /* @__PURE__ */ jsxs66( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx84( + /* @__PURE__ */ jsx87( "path", { d: "M2.5 9.5H6.5V13.5", @@ -16375,7 +16616,7 @@ var CollapseIcon = (props) => /* @__PURE__ */ jsxs66( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx84( + /* @__PURE__ */ jsx87( "path", { d: "M9.5 6.5L14 2", @@ -16385,7 +16626,7 @@ var CollapseIcon = (props) => /* @__PURE__ */ jsxs66( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx84( + /* @__PURE__ */ jsx87( "path", { d: "M6.5 9.5L2 14", @@ -16401,17 +16642,17 @@ var CollapseIcon = (props) => /* @__PURE__ */ jsxs66( var collapse_icon_default = CollapseIcon; // src/components/icons/expand-icon.tsx -import { Icon as Icon45 } from "@vtex/brand-ui"; -import { jsx as jsx85, jsxs as jsxs67 } from "react/jsx-runtime"; -var ExpandIcon = (props) => /* @__PURE__ */ jsxs67( - Icon45, +import { Icon as Icon46 } from "@vtex/brand-ui"; +import { jsx as jsx88, jsxs as jsxs69 } from "react/jsx-runtime"; +var ExpandIcon = (props) => /* @__PURE__ */ jsxs69( + Icon46, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx85( + /* @__PURE__ */ jsx88( "path", { d: "M9.5 2.5H13.5V6.5", @@ -16421,7 +16662,7 @@ var ExpandIcon = (props) => /* @__PURE__ */ jsxs67( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx85( + /* @__PURE__ */ jsx88( "path", { d: "M6.5 13.5H2.5V9.5", @@ -16431,7 +16672,7 @@ var ExpandIcon = (props) => /* @__PURE__ */ jsxs67( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx85( + /* @__PURE__ */ jsx88( "path", { d: "M13.5 2.5L9 7", @@ -16441,7 +16682,7 @@ var ExpandIcon = (props) => /* @__PURE__ */ jsxs67( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx85( + /* @__PURE__ */ jsx88( "path", { d: "M2.5 13.5L7 9", @@ -16457,17 +16698,17 @@ var ExpandIcon = (props) => /* @__PURE__ */ jsxs67( var expand_icon_default = ExpandIcon; // src/components/icons/history-icon.tsx -import { Icon as Icon46 } from "@vtex/brand-ui"; -import { jsx as jsx86, jsxs as jsxs68 } from "react/jsx-runtime"; -var HistoryIcon = (props) => /* @__PURE__ */ jsxs68( - Icon46, +import { Icon as Icon47 } from "@vtex/brand-ui"; +import { jsx as jsx89, jsxs as jsxs70 } from "react/jsx-runtime"; +var HistoryIcon = (props) => /* @__PURE__ */ jsxs70( + Icon47, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx86( + /* @__PURE__ */ jsx89( "path", { d: "M3.2 5A5.5 5.5 0 1 1 2.5 8", @@ -16476,7 +16717,7 @@ var HistoryIcon = (props) => /* @__PURE__ */ jsxs68( strokeLinecap: "round" } ), - /* @__PURE__ */ jsx86( + /* @__PURE__ */ jsx89( "path", { d: "M3.2 2.4V5.2H6", @@ -16486,7 +16727,7 @@ var HistoryIcon = (props) => /* @__PURE__ */ jsxs68( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx86( + /* @__PURE__ */ jsx89( "path", { d: "M8 5.4V8.2L10 9.3", @@ -16502,17 +16743,17 @@ var HistoryIcon = (props) => /* @__PURE__ */ jsxs68( var history_icon_default = HistoryIcon; // src/components/icons/refresh-icon.tsx -import { Icon as Icon47 } from "@vtex/brand-ui"; -import { jsx as jsx87, jsxs as jsxs69 } from "react/jsx-runtime"; -var RefreshIcon = (props) => /* @__PURE__ */ jsxs69( - Icon47, +import { Icon as Icon48 } from "@vtex/brand-ui"; +import { jsx as jsx90, jsxs as jsxs71 } from "react/jsx-runtime"; +var RefreshIcon = (props) => /* @__PURE__ */ jsxs71( + Icon48, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx87( + /* @__PURE__ */ jsx90( "path", { d: "M13.5 8A5.5 5.5 0 1 1 11.4 3.35", @@ -16522,7 +16763,7 @@ var RefreshIcon = (props) => /* @__PURE__ */ jsxs69( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx87( + /* @__PURE__ */ jsx90( "path", { d: "M13.5 2.5V6H10", @@ -16538,17 +16779,17 @@ var RefreshIcon = (props) => /* @__PURE__ */ jsxs69( var refresh_icon_default = RefreshIcon; // src/components/icons/send-icon.tsx -import { Icon as Icon48 } from "@vtex/brand-ui"; -import { jsx as jsx88, jsxs as jsxs70 } from "react/jsx-runtime"; -var SendIcon = (props) => /* @__PURE__ */ jsxs70( - Icon48, +import { Icon as Icon49 } from "@vtex/brand-ui"; +import { jsx as jsx91, jsxs as jsxs72 } from "react/jsx-runtime"; +var SendIcon = (props) => /* @__PURE__ */ jsxs72( + Icon49, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx88( + /* @__PURE__ */ jsx91( "path", { d: "M8 12.5V3.5", @@ -16558,7 +16799,7 @@ var SendIcon = (props) => /* @__PURE__ */ jsxs70( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx88( + /* @__PURE__ */ jsx91( "path", { d: "M3.5 8L8 3.5L12.5 8", @@ -16574,17 +16815,17 @@ var SendIcon = (props) => /* @__PURE__ */ jsxs70( var send_icon_default = SendIcon; // src/components/icons/sparkle-icon.tsx -import { Icon as Icon49 } from "@vtex/brand-ui"; -import { jsx as jsx89, jsxs as jsxs71 } from "react/jsx-runtime"; -var SparkleIcon = (props) => /* @__PURE__ */ jsxs71( - Icon49, +import { Icon as Icon50 } from "@vtex/brand-ui"; +import { jsx as jsx92, jsxs as jsxs73 } from "react/jsx-runtime"; +var SparkleIcon = (props) => /* @__PURE__ */ jsxs73( + Icon50, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx89( + /* @__PURE__ */ jsx92( "path", { d: "M8 3.4 8.68 6.72c.1.46.46.82.92.92L12.92 8.32 9.6 9.01c-.46.1-.82.46-.92.92L8 13.25 7.32 9.93c-.1-.46-.46-.82-.92-.92L3.08 8.32 6.4 7.64c.46-.1.82-.46.92-.92L8 3.4Z", @@ -16593,7 +16834,7 @@ var SparkleIcon = (props) => /* @__PURE__ */ jsxs71( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx89( + /* @__PURE__ */ jsx92( "path", { d: "M3.45 1.35 3.72 2.6c.04.2.2.36.4.4L5.37 3.27 4.12 3.54c-.2.04-.36.2-.4.4L3.45 5.19 3.18 3.94c-.04-.2-.2-.36-.4-.4L1.53 3.27 2.78 3c.2-.04.36-.2.4-.4L3.45 1.35Z", @@ -16602,7 +16843,7 @@ var SparkleIcon = (props) => /* @__PURE__ */ jsxs71( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx89( + /* @__PURE__ */ jsx92( "path", { d: "M12.7 10.7 12.97 11.95c.04.2.2.36.4.4L14.62 12.62 13.37 12.89c-.2.04-.36.2-.4.4L12.7 14.54 12.43 13.29c-.04-.2-.2-.36-.4-.4L10.78 12.62 12.03 12.35c.2-.04.36-.2.4-.4L12.7 10.7Z", @@ -16617,17 +16858,17 @@ var SparkleIcon = (props) => /* @__PURE__ */ jsxs71( var sparkle_icon_default = SparkleIcon; // src/components/icons/new-chat-icon.tsx -import { Icon as Icon50 } from "@vtex/brand-ui"; -import { jsx as jsx90, jsxs as jsxs72 } from "react/jsx-runtime"; -var NewChatIcon = (props) => /* @__PURE__ */ jsxs72( - Icon50, +import { Icon as Icon51 } from "@vtex/brand-ui"; +import { jsx as jsx93, jsxs as jsxs74 } from "react/jsx-runtime"; +var NewChatIcon = (props) => /* @__PURE__ */ jsxs74( + Icon51, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx90( + /* @__PURE__ */ jsx93( "path", { d: "M8 2.5H4.5A2 2 0 0 0 2.5 4.5v7A2 2 0 0 0 4.5 13.5h7a2 2 0 0 0 2-2V8", @@ -16637,7 +16878,7 @@ var NewChatIcon = (props) => /* @__PURE__ */ jsxs72( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx90( + /* @__PURE__ */ jsx93( "path", { d: "M12.15 2.4a1.05 1.05 0 0 1 1.45 1.45L8.2 9.25c-.16.16-.36.27-.58.33l-1.92.56a.33.33 0 0 1-.41-.41l.56-1.92c.06-.22.17-.42.33-.58z", @@ -16763,7 +17004,7 @@ var upsertHistory = (current, conversation) => { }; // src/components/ask-assistant/markdown.tsx -import { Box as Box32 } from "@vtex/brand-ui"; +import { Box as Box33 } from "@vtex/brand-ui"; // src/components/ask-assistant/styles.ts var focusRing = { @@ -17384,7 +17625,7 @@ var inlineCode = { fontSize: "13px", fontFamily: "monospace" }; -var errorText = { +var errorText2 = { width: "100%", padding: "12px 14px", background: "#FFF6F4", @@ -17394,7 +17635,7 @@ var errorText = { fontSize: "13px", lineHeight: "18px" }; -var styles_default33 = { +var styles_default35 = { trigger: trigger2, triggerIcon, triggerShortcut, @@ -17457,11 +17698,11 @@ var styles_default33 = { markdownLink, markdownRule, inlineCode, - errorText + errorText: errorText2 }; // src/components/ask-assistant/markdown.tsx -import { jsx as jsx91 } from "react/jsx-runtime"; +import { jsx as jsx94 } from "react/jsx-runtime"; var INLINE_TOKEN = /(\[[^\]]+\]\([^)\s]+(?:\s+"[^"]*")?\)|\*\*[^*]+\*\*|`[^`]+`)/g; var renderInline = (text4, keyPrefix) => { const parts = text4.split(INLINE_TOKEN); @@ -17471,24 +17712,24 @@ var renderInline = (text4, keyPrefix) => { return null; const link2 = part.match(/^\[([^\]]+)\]\(([^)\s]+)(?:\s+"[^"]*")?\)$/); if (link2) { - return /* @__PURE__ */ jsx91( - Box32, + return /* @__PURE__ */ jsx94( + Box33, { as: "a", href: link2[2], target: "_blank", rel: "noreferrer", - sx: styles_default33.markdownLink, + sx: styles_default35.markdownLink, children: renderInline(link2[1], key) }, key ); } if (part.startsWith("**") && part.endsWith("**")) { - return /* @__PURE__ */ jsx91("strong", { children: renderInline(part.slice(2, -2), key) }, key); + return /* @__PURE__ */ jsx94("strong", { children: renderInline(part.slice(2, -2), key) }, key); } if (part.startsWith("`") && part.endsWith("`")) { - return /* @__PURE__ */ jsx91(Box32, { as: "code", sx: styles_default33.inlineCode, children: part.slice(1, -1) }, key); + return /* @__PURE__ */ jsx94(Box33, { as: "code", sx: styles_default35.inlineCode, children: part.slice(1, -1) }, key); } return part; }); @@ -17518,13 +17759,13 @@ var MarkdownMessage = ({ content }) => { if (heading) { const Tag2 = headingTag(heading[1].length); nodes.push( - /* @__PURE__ */ jsx91(Box32, { as: Tag2, sx: styles_default33.markdownHeading, children: renderInline(heading[2], `h-${index}`) }, `h-${index}`) + /* @__PURE__ */ jsx94(Box33, { as: Tag2, sx: styles_default35.markdownHeading, children: renderInline(heading[2], `h-${index}`) }, `h-${index}`) ); index += 1; continue; } if (/^---+$/.test(line.trim())) { - nodes.push(/* @__PURE__ */ jsx91(Box32, { as: "hr", sx: styles_default33.markdownRule }, `hr-${index}`)); + nodes.push(/* @__PURE__ */ jsx94(Box33, { as: "hr", sx: styles_default35.markdownRule }, `hr-${index}`)); index += 1; continue; } @@ -17535,11 +17776,11 @@ var MarkdownMessage = ({ content }) => { while (index < lines.length && isListItem(lines[index])) { const nested = /^\s{2,}/.test(lines[index]); items.push( - /* @__PURE__ */ jsx91( - Box32, + /* @__PURE__ */ jsx94( + Box33, { as: "li", - sx: nested ? styles_default33.nestedListItem : void 0, + sx: nested ? styles_default35.nestedListItem : void 0, children: renderInline(listItemText(lines[index]), `li-${index}`) }, `li-${index}` @@ -17548,11 +17789,11 @@ var MarkdownMessage = ({ content }) => { index += 1; } nodes.push( - /* @__PURE__ */ jsx91( - Box32, + /* @__PURE__ */ jsx94( + Box33, { as: ordered ? "ol" : "ul", - sx: styles_default33.markdownList, + sx: styles_default35.markdownList, children: items }, `list-${listIndex}` @@ -17567,10 +17808,10 @@ var MarkdownMessage = ({ content }) => { index += 1; } nodes.push( - /* @__PURE__ */ jsx91(Box32, { as: "p", sx: styles_default33.markdownParagraph, children: renderInline(paragraph.join(" "), `p-${paragraphIndex}`) }, `p-${paragraphIndex}`) + /* @__PURE__ */ jsx94(Box33, { as: "p", sx: styles_default35.markdownParagraph, children: renderInline(paragraph.join(" "), `p-${paragraphIndex}`) }, `p-${paragraphIndex}`) ); } - return /* @__PURE__ */ jsx91(Box32, { sx: styles_default33.markdown, children: nodes }); + return /* @__PURE__ */ jsx94(Box33, { sx: styles_default35.markdown, children: nodes }); }; var markdown_default = MarkdownMessage; @@ -17641,7 +17882,7 @@ var createDefaultStream = (streamUrl, locale) => async (query, signal, onEvent) }; // src/components/ask-assistant/index.tsx -import { Fragment as Fragment9, jsx as jsx92, jsxs as jsxs73 } from "react/jsx-runtime"; +import { Fragment as Fragment9, jsx as jsx95, jsxs as jsxs75 } from "react/jsx-runtime"; var createId = () => `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`; var isMacShortcut = () => typeof navigator !== "undefined" && /Mac|iPhone|iPad|iPod/.test(navigator.platform); var toolStepLabel = (name, labels) => { @@ -17664,7 +17905,7 @@ var processHeaderText = (count2, complete, labels) => { return labels.processCompletedOne; return labels.processCompleted.replace("{count}", String(count2)); }; -var ToolStepIcon = ({ name }) => name === "final_answer" || name === "fetch_document" ? /* @__PURE__ */ jsx92(book_icon_default, { size: 14, sx: styles_default33.processBookIcon }) : /* @__PURE__ */ jsx92(search_icon_default, { size: 14, sx: styles_default33.processStepIcon }); +var ToolStepIcon = ({ name }) => name === "final_answer" || name === "fetch_document" ? /* @__PURE__ */ jsx95(book_icon_default, { size: 14, sx: styles_default35.processBookIcon }) : /* @__PURE__ */ jsx95(search_icon_default, { size: 14, sx: styles_default35.processStepIcon }); var completeSteps = (steps2 = []) => steps2.map( (step) => step.status === "complete" ? step : { ...step, status: "complete" } ); @@ -17688,7 +17929,7 @@ var AskAssistant = ({ onAsk, onFeedback }) => { - const { locale } = useContext25(LibraryContext); + const { locale } = useContext27(LibraryContext); const localized = messages[locale] ?? messages.en; const titleId = useId(); const textareaRef = useRef15(null); @@ -17698,16 +17939,16 @@ var AskAssistant = ({ const pendingToolsRef = useRef15([]); const conversationIdRef = useRef15(null); const chatRef = useRef15(initialMessages); - const [mounted, setMounted] = useState26(false); - const [uncontrolledOpen, setUncontrolledOpen] = useState26(defaultOpen); - const [expanded, setExpanded] = useState26(false); - const [draft, setDraft] = useState26(""); - const [chat, setChat] = useState26(initialMessages); - const [feedback, setFeedback] = useState26({}); - const [copiedId, setCopiedId] = useState26(null); - const [activeExampleId, setActiveExampleId] = useState26(examples2[0]?.id ?? ""); - const [history, setHistory] = useState26(initialHistory); - const [historyOpen, setHistoryOpen] = useState26(false); + const [mounted, setMounted] = useState27(false); + const [uncontrolledOpen, setUncontrolledOpen] = useState27(defaultOpen); + const [expanded, setExpanded] = useState27(false); + const [draft, setDraft] = useState27(""); + const [chat, setChat] = useState27(initialMessages); + const [feedback, setFeedback] = useState27({}); + const [copiedId, setCopiedId] = useState27(null); + const [activeExampleId, setActiveExampleId] = useState27(examples2[0]?.id ?? ""); + const [history, setHistory] = useState27(initialHistory); + const [historyOpen, setHistoryOpen] = useState27(false); const isOpen = open ?? uncontrolledOpen; const isStreaming = chat.some((message) => message.status === "streaming"); const canSend = Boolean(draft.trim()) && !isStreaming; @@ -18055,13 +18296,13 @@ var AskAssistant = ({ }; const isEmpty = chat.length === 0; const activeCategory = categories.find((category) => category.id === activeExampleId) ?? categories[0]; - const composer = /* @__PURE__ */ jsx92(Box33, { sx: isEmpty ? styles_default33.inputWrapCentered : styles_default33.inputWrap, children: /* @__PURE__ */ jsxs73(Box33, { sx: styles_default33.inputBox, children: [ - /* @__PURE__ */ jsx92( - Box33, + const composer = /* @__PURE__ */ jsx95(Box34, { sx: isEmpty ? styles_default35.inputWrapCentered : styles_default35.inputWrap, children: /* @__PURE__ */ jsxs75(Box34, { sx: styles_default35.inputBox, children: [ + /* @__PURE__ */ jsx95( + Box34, { as: "textarea", ref: textareaRef, - sx: styles_default33.textarea, + sx: styles_default35.textarea, rows: 2, value: draft, placeholder: labels.placeholder, @@ -18070,105 +18311,105 @@ var AskAssistant = ({ onKeyDown: onDraftKeyDown } ), - /* @__PURE__ */ jsx92(Flex29, { sx: styles_default33.inputFooter, children: /* @__PURE__ */ jsx92( - Box33, + /* @__PURE__ */ jsx95(Flex29, { sx: styles_default35.inputFooter, children: /* @__PURE__ */ jsx95( + Box34, { as: "button", type: "button", - sx: styles_default33.sendButton(canSend), + sx: styles_default35.sendButton(canSend), "aria-label": labels.send, disabled: !canSend, onClick: () => void submit(draft), - children: /* @__PURE__ */ jsx92(send_icon_default, { size: 14 }) + children: /* @__PURE__ */ jsx95(send_icon_default, { size: 14 }) } ) }) ] }) }); - const panel2 = isOpen && mounted && /* @__PURE__ */ jsxs73(Fragment9, { children: [ - /* @__PURE__ */ jsx92(Box33, { sx: styles_default33.overlay, onClick: () => setOpen(false) }), - /* @__PURE__ */ jsxs73( - Box33, + const panel2 = isOpen && mounted && /* @__PURE__ */ jsxs75(Fragment9, { children: [ + /* @__PURE__ */ jsx95(Box34, { sx: styles_default35.overlay, onClick: () => setOpen(false) }), + /* @__PURE__ */ jsxs75( + Box34, { - sx: styles_default33.panel(expanded), + sx: styles_default35.panel(expanded), "data-ask-assistant-panel": true, role: "dialog", "aria-modal": "true", "aria-labelledby": titleId, children: [ - /* @__PURE__ */ jsxs73(Flex29, { sx: styles_default33.header, children: [ - /* @__PURE__ */ jsxs73(Flex29, { sx: styles_default33.headerTitle, id: titleId, children: [ - /* @__PURE__ */ jsx92(sparkle_icon_default, { size: 16, sx: styles_default33.triggerIcon }), - /* @__PURE__ */ jsx92(Text23, { children: labels.title }) + /* @__PURE__ */ jsxs75(Flex29, { sx: styles_default35.header, children: [ + /* @__PURE__ */ jsxs75(Flex29, { sx: styles_default35.headerTitle, id: titleId, children: [ + /* @__PURE__ */ jsx95(sparkle_icon_default, { size: 16, sx: styles_default35.triggerIcon }), + /* @__PURE__ */ jsx95(Text25, { children: labels.title }) ] }), - /* @__PURE__ */ jsxs73(Flex29, { sx: styles_default33.headerActions, children: [ - /* @__PURE__ */ jsx92( - Box33, + /* @__PURE__ */ jsxs75(Flex29, { sx: styles_default35.headerActions, children: [ + /* @__PURE__ */ jsx95( + Box34, { as: "button", type: "button", - sx: styles_default33.iconButton, + sx: styles_default35.iconButton, "aria-label": expanded ? labels.collapse : labels.expand, onClick: () => setExpanded((value) => !value), - children: expanded ? /* @__PURE__ */ jsx92(collapse_icon_default, { size: 16 }) : /* @__PURE__ */ jsx92(expand_icon_default, { size: 16 }) + children: expanded ? /* @__PURE__ */ jsx95(collapse_icon_default, { size: 16 }) : /* @__PURE__ */ jsx95(expand_icon_default, { size: 16 }) } ), - /* @__PURE__ */ jsx92( - Box33, + /* @__PURE__ */ jsx95( + Box34, { as: "button", type: "button", - sx: styles_default33.iconButton, + sx: styles_default35.iconButton, "aria-label": labels.clear, disabled: isEmpty, onClick: clearChat, - children: /* @__PURE__ */ jsx92(new_chat_icon_default, { size: 16 }) + children: /* @__PURE__ */ jsx95(new_chat_icon_default, { size: 16 }) } ), - /* @__PURE__ */ jsxs73(Box33, { ref: historyRef, sx: styles_default33.historyWrap, children: [ - /* @__PURE__ */ jsx92( - Box33, + /* @__PURE__ */ jsxs75(Box34, { ref: historyRef, sx: styles_default35.historyWrap, children: [ + /* @__PURE__ */ jsx95( + Box34, { as: "button", type: "button", - sx: historyOpen ? styles_default33.iconButtonActive : styles_default33.iconButton, + sx: historyOpen ? styles_default35.iconButtonActive : styles_default35.iconButton, "aria-label": labels.history, "aria-haspopup": "menu", "aria-expanded": historyOpen, disabled: history.length === 0, onClick: () => setHistoryOpen((value) => !value), - children: /* @__PURE__ */ jsx92(history_icon_default, { size: 16 }) + children: /* @__PURE__ */ jsx95(history_icon_default, { size: 16 }) } ), - historyOpen && history.length > 0 ? /* @__PURE__ */ jsxs73( - Box33, + historyOpen && history.length > 0 ? /* @__PURE__ */ jsxs75( + Box34, { - sx: styles_default33.historyMenu, + sx: styles_default35.historyMenu, role: "menu", "aria-label": labels.history, children: [ - /* @__PURE__ */ jsxs73(Flex29, { sx: styles_default33.historyHeader, children: [ - /* @__PURE__ */ jsx92(Text23, { sx: styles_default33.historyTitle, children: labels.history }), - /* @__PURE__ */ jsx92( - Box33, + /* @__PURE__ */ jsxs75(Flex29, { sx: styles_default35.historyHeader, children: [ + /* @__PURE__ */ jsx95(Text25, { sx: styles_default35.historyTitle, children: labels.history }), + /* @__PURE__ */ jsx95( + Box34, { as: "button", type: "button", - sx: styles_default33.historyClear, + sx: styles_default35.historyClear, onClick: clearHistory, children: labels.historyClear } ) ] }), - /* @__PURE__ */ jsx92(Box33, { sx: styles_default33.historyList, children: history.map((item2) => /* @__PURE__ */ jsxs73( - Box33, + /* @__PURE__ */ jsx95(Box34, { sx: styles_default35.historyList, children: history.map((item2) => /* @__PURE__ */ jsxs75( + Box34, { as: "button", type: "button", role: "menuitem", - sx: styles_default33.historyItem, + sx: styles_default35.historyItem, onClick: () => openHistoryItem(item2), children: [ - /* @__PURE__ */ jsx92(history_icon_default, { size: 14, sx: styles_default33.historyItemIcon }), - /* @__PURE__ */ jsx92(Text23, { sx: styles_default33.historyItemText, children: item2.title }) + /* @__PURE__ */ jsx95(history_icon_default, { size: 14, sx: styles_default35.historyItemIcon }), + /* @__PURE__ */ jsx95(Text25, { sx: styles_default35.historyItemText, children: item2.title }) ] }, item2.id @@ -18177,44 +18418,44 @@ var AskAssistant = ({ } ) : null ] }), - /* @__PURE__ */ jsx92( - Box33, + /* @__PURE__ */ jsx95( + Box34, { as: "button", type: "button", - sx: styles_default33.iconButton, + sx: styles_default35.iconButton, "aria-label": labels.close, onClick: () => setOpen(false), - children: /* @__PURE__ */ jsx92(close_icon_default, { sx: { width: "16px", height: "16px" } }) + children: /* @__PURE__ */ jsx95(close_icon_default, { sx: { width: "16px", height: "16px" } }) } ) ] }) ] }), - isEmpty ? /* @__PURE__ */ jsx92(Box33, { sx: styles_default33.emptyState, children: /* @__PURE__ */ jsxs73(Box33, { sx: styles_default33.emptyMain, children: [ - /* @__PURE__ */ jsx92(Box33, { sx: styles_default33.emptyHero, "aria-hidden": true, children: /* @__PURE__ */ jsx92(Flex29, { sx: styles_default33.emptyHeroIcon, children: /* @__PURE__ */ jsx92(sparkle_icon_default, { size: 24 }) }) }), + isEmpty ? /* @__PURE__ */ jsx95(Box34, { sx: styles_default35.emptyState, children: /* @__PURE__ */ jsxs75(Box34, { sx: styles_default35.emptyMain, children: [ + /* @__PURE__ */ jsx95(Box34, { sx: styles_default35.emptyHero, "aria-hidden": true, children: /* @__PURE__ */ jsx95(Flex29, { sx: styles_default35.emptyHeroIcon, children: /* @__PURE__ */ jsx95(sparkle_icon_default, { size: 24 }) }) }), composer, - activeCategory ? /* @__PURE__ */ jsxs73(Box33, { sx: styles_default33.examples, children: [ - /* @__PURE__ */ jsx92(Text23, { sx: styles_default33.examplesLabel, children: labels.examples }), - /* @__PURE__ */ jsx92( - Box33, + activeCategory ? /* @__PURE__ */ jsxs75(Box34, { sx: styles_default35.examples, children: [ + /* @__PURE__ */ jsx95(Text25, { sx: styles_default35.examplesLabel, children: labels.examples }), + /* @__PURE__ */ jsx95( + Box34, { - sx: styles_default33.examplePills, + sx: styles_default35.examplePills, role: "tablist", "aria-label": labels.examples, children: categories.map((category) => { - const Icon81 = category.Icon; + const Icon82 = category.Icon; const isActive = category.id === activeCategory.id; - return /* @__PURE__ */ jsxs73( - Box33, + return /* @__PURE__ */ jsxs75( + Box34, { as: "button", type: "button", role: "tab", "aria-selected": isActive, - sx: styles_default33.examplePill(isActive), + sx: styles_default35.examplePill(isActive), onClick: () => setActiveExampleId(category.id), children: [ - Icon81 ? /* @__PURE__ */ jsx92(Icon81, { size: 14, sx: styles_default33.examplePillIcon }) : null, + Icon82 ? /* @__PURE__ */ jsx95(Icon82, { size: 14, sx: styles_default35.examplePillIcon }) : null, category.title ] }, @@ -18223,80 +18464,80 @@ var AskAssistant = ({ }) } ), - /* @__PURE__ */ jsx92(Box33, { sx: styles_default33.exampleQuestions, children: activeCategory.questions.filter((question2) => question2.trim()).map((question2) => /* @__PURE__ */ jsx92( - Box33, + /* @__PURE__ */ jsx95(Box34, { sx: styles_default35.exampleQuestions, children: activeCategory.questions.filter((question2) => question2.trim()).map((question2) => /* @__PURE__ */ jsx95( + Box34, { as: "button", type: "button", - sx: styles_default33.exampleQuestion, + sx: styles_default35.exampleQuestion, onClick: () => void submit(question2), children: question2 }, question2 )) }) ] }) : null - ] }) }) : /* @__PURE__ */ jsxs73(Fragment9, { children: [ - /* @__PURE__ */ jsx92(Box33, { ref: listRef, sx: styles_default33.messages, "aria-live": "polite", children: chat.map( - (message) => message.role === "user" ? /* @__PURE__ */ jsx92(Text23, { sx: styles_default33.userBubble, children: message.content }, message.id) : /* @__PURE__ */ jsxs73(Box33, { sx: styles_default33.assistantBlock, children: [ - message.status === "streaming" || message.steps && message.steps.length > 0 ? /* @__PURE__ */ jsxs73(Box33, { sx: styles_default33.process, children: [ - message.status === "error" ? null : /* @__PURE__ */ jsxs73(Flex29, { sx: styles_default33.processHeader, children: [ - message.status === "complete" ? /* @__PURE__ */ jsx92(Flex29, { sx: styles_default33.processCheck, "aria-hidden": true, children: /* @__PURE__ */ jsx92(check_icon_default, { size: 10 }) }) : /* @__PURE__ */ jsx92(Box33, { sx: styles_default33.processSpinner, "aria-hidden": true }), - /* @__PURE__ */ jsx92(Text23, { children: processHeaderText( + ] }) }) : /* @__PURE__ */ jsxs75(Fragment9, { children: [ + /* @__PURE__ */ jsx95(Box34, { ref: listRef, sx: styles_default35.messages, "aria-live": "polite", children: chat.map( + (message) => message.role === "user" ? /* @__PURE__ */ jsx95(Text25, { sx: styles_default35.userBubble, children: message.content }, message.id) : /* @__PURE__ */ jsxs75(Box34, { sx: styles_default35.assistantBlock, children: [ + message.status === "streaming" || message.steps && message.steps.length > 0 ? /* @__PURE__ */ jsxs75(Box34, { sx: styles_default35.process, children: [ + message.status === "error" ? null : /* @__PURE__ */ jsxs75(Flex29, { sx: styles_default35.processHeader, children: [ + message.status === "complete" ? /* @__PURE__ */ jsx95(Flex29, { sx: styles_default35.processCheck, "aria-hidden": true, children: /* @__PURE__ */ jsx95(check_icon_default, { size: 10 }) }) : /* @__PURE__ */ jsx95(Box34, { sx: styles_default35.processSpinner, "aria-hidden": true }), + /* @__PURE__ */ jsx95(Text25, { children: processHeaderText( message.steps?.length ?? 0, message.status === "complete", labels ) }) ] }), - message.steps && message.steps.length > 0 ? /* @__PURE__ */ jsx92(Box33, { sx: styles_default33.processSteps, children: message.steps.map((step) => /* @__PURE__ */ jsxs73(Flex29, { sx: styles_default33.processStep, children: [ - /* @__PURE__ */ jsx92(Text23, { as: "span", sx: styles_default33.processBadge, children: labels.tool }), - /* @__PURE__ */ jsx92(ToolStepIcon, { name: step.name }), - /* @__PURE__ */ jsx92(Text23, { as: "span", sx: styles_default33.processStepLabel, children: toolStepLabel(step.name, labels) }) + message.steps && message.steps.length > 0 ? /* @__PURE__ */ jsx95(Box34, { sx: styles_default35.processSteps, children: message.steps.map((step) => /* @__PURE__ */ jsxs75(Flex29, { sx: styles_default35.processStep, children: [ + /* @__PURE__ */ jsx95(Text25, { as: "span", sx: styles_default35.processBadge, children: labels.tool }), + /* @__PURE__ */ jsx95(ToolStepIcon, { name: step.name }), + /* @__PURE__ */ jsx95(Text25, { as: "span", sx: styles_default35.processStepLabel, children: toolStepLabel(step.name, labels) }) ] }, step.id)) }) : null ] }) : null, - message.status === "error" ? /* @__PURE__ */ jsx92(Text23, { sx: styles_default33.errorText, children: message.content }) : message.content ? /* @__PURE__ */ jsx92(markdown_default, { content: message.content }) : null, - message.status === "complete" && message.content ? /* @__PURE__ */ jsxs73(Flex29, { sx: styles_default33.messageActions, children: [ - /* @__PURE__ */ jsx92( - Box33, + message.status === "error" ? /* @__PURE__ */ jsx95(Text25, { sx: styles_default35.errorText, children: message.content }) : message.content ? /* @__PURE__ */ jsx95(markdown_default, { content: message.content }) : null, + message.status === "complete" && message.content ? /* @__PURE__ */ jsxs75(Flex29, { sx: styles_default35.messageActions, children: [ + /* @__PURE__ */ jsx95( + Box34, { as: "button", type: "button", - sx: feedback[message.id] === true ? styles_default33.actionButtonActive : styles_default33.actionButton, + sx: feedback[message.id] === true ? styles_default35.actionButtonActive : styles_default35.actionButton, "aria-label": labels.helpful, onClick: () => vote(message, true), - children: feedback[message.id] === true ? /* @__PURE__ */ jsx92(like_selected_icon_default, { size: 16 }) : /* @__PURE__ */ jsx92(like_icon_default, { size: 16 }) + children: feedback[message.id] === true ? /* @__PURE__ */ jsx95(like_selected_icon_default, { size: 16 }) : /* @__PURE__ */ jsx95(like_icon_default, { size: 16 }) } ), - /* @__PURE__ */ jsx92( - Box33, + /* @__PURE__ */ jsx95( + Box34, { as: "button", type: "button", - sx: feedback[message.id] === false ? styles_default33.actionButtonActive : styles_default33.actionButton, + sx: feedback[message.id] === false ? styles_default35.actionButtonActive : styles_default35.actionButton, "aria-label": labels.notHelpful, onClick: () => vote(message, false), - children: /* @__PURE__ */ jsx92(like_icon_default, { size: 16, sx: styles_default33.dislikeIcon }) + children: /* @__PURE__ */ jsx95(like_icon_default, { size: 16, sx: styles_default35.dislikeIcon }) } ), - /* @__PURE__ */ jsx92( - Box33, + /* @__PURE__ */ jsx95( + Box34, { as: "button", type: "button", - sx: styles_default33.actionButton, + sx: styles_default35.actionButton, "aria-label": copiedId === message.id ? labels.copied : labels.copy, onClick: () => copyAnswer(message), - children: /* @__PURE__ */ jsx92(copy_icon_default, { size: 14 }) + children: /* @__PURE__ */ jsx95(copy_icon_default, { size: 14 }) } ), - /* @__PURE__ */ jsx92( - Box33, + /* @__PURE__ */ jsx95( + Box34, { as: "button", type: "button", - sx: styles_default33.actionButton, + sx: styles_default35.actionButton, "aria-label": labels.regenerate, onClick: () => regenerate(message.id), - children: /* @__PURE__ */ jsx92(refresh_icon_default, { size: 14 }) + children: /* @__PURE__ */ jsx95(refresh_icon_default, { size: 14 }) } ) ] }) : null @@ -18308,23 +18549,23 @@ var AskAssistant = ({ } ) ] }); - return /* @__PURE__ */ jsxs73(Fragment9, { children: [ - hideTrigger ? null : /* @__PURE__ */ jsxs73( - Box33, + return /* @__PURE__ */ jsxs75(Fragment9, { children: [ + hideTrigger ? null : /* @__PURE__ */ jsxs75( + Box34, { as: "button", type: "button", - sx: styles_default33.trigger, + sx: styles_default35.trigger, "data-ask-assistant-trigger": true, "aria-haspopup": "dialog", "aria-expanded": isOpen, onClick: () => setOpen(!isOpen), children: [ - /* @__PURE__ */ jsx92(sparkle_icon_default, { size: 14, sx: styles_default33.triggerIcon }), - /* @__PURE__ */ jsx92(Text23, { children: labels.button }), - /* @__PURE__ */ jsxs73(Flex29, { as: "span", sx: styles_default33.triggerShortcut, "aria-hidden": "true", children: [ - /* @__PURE__ */ jsx92(Box33, { as: "kbd", sx: styles_default33.triggerKbd, children: isMacShortcut() ? "\u2318" : "Ctrl" }), - /* @__PURE__ */ jsx92(Box33, { as: "kbd", sx: styles_default33.triggerKbd, children: "I" }) + /* @__PURE__ */ jsx95(sparkle_icon_default, { size: 14, sx: styles_default35.triggerIcon }), + /* @__PURE__ */ jsx95(Text25, { children: labels.button }), + /* @__PURE__ */ jsxs75(Flex29, { as: "span", sx: styles_default35.triggerShortcut, "aria-hidden": "true", children: [ + /* @__PURE__ */ jsx95(Box34, { as: "kbd", sx: styles_default35.triggerKbd, children: isMacShortcut() ? "\u2318" : "Ctrl" }), + /* @__PURE__ */ jsx95(Box34, { as: "kbd", sx: styles_default35.triggerKbd, children: "I" }) ] }) ] } @@ -18390,27 +18631,27 @@ var crumb = { pointerEvents: "none" } }; -var styles_default34 = { breadcrumb: breadcrumb2, crumb }; +var styles_default36 = { breadcrumb: breadcrumb2, crumb }; // src/components/breadcrumb/index.tsx -import { jsx as jsx93 } from "react/jsx-runtime"; +import { jsx as jsx96 } from "react/jsx-runtime"; var Breadcrumb = ({ breadcrumbList, breadcumbList }) => { const items = (breadcrumbList ?? breadcumbList ?? []).slice(0, -1); - return /* @__PURE__ */ jsx93(Flex30, { as: "nav", "aria-label": "Breadcrumb", sx: styles_default34.breadcrumb, children: items.map((item2, idx) => { + return /* @__PURE__ */ jsx96(Flex30, { as: "nav", "aria-label": "Breadcrumb", sx: styles_default36.breadcrumb, children: items.map((item2, idx) => { const label4 = item2.name || "Untitled"; - return /* @__PURE__ */ jsx93(Flex30, { as: "span", sx: styles_default34.crumb, children: item2.type === "markdown" ? /* @__PURE__ */ jsx93(Link10, { href: item2.slug, children: label4 }) : /* @__PURE__ */ jsx93("span", { "data-breadcrumb-label": true, children: label4 }) }, item2.slug || idx); + return /* @__PURE__ */ jsx96(Flex30, { as: "span", sx: styles_default36.crumb, children: item2.type === "markdown" ? /* @__PURE__ */ jsx96(Link10, { href: item2.slug, children: label4 }) : /* @__PURE__ */ jsx96("span", { "data-breadcrumb-label": true, children: label4 }) }, item2.slug || idx); }) }); }; var breadcrumb_default = Breadcrumb; // src/components/input/index.tsx -import { useState as useState27, useEffect as useEffect26 } from "react"; +import { useState as useState28, useEffect as useEffect26 } from "react"; // src/components/input/styles.ts -var input2 = { +var input3 = { background: "none", border: "#F4F4F4", color: "#545454", @@ -18419,7 +18660,7 @@ var input2 = { transition: "flex 0.3s", outline: "none" }; -var icon3 = { +var icon4 = { minWidth: "16px", minHeight: "16px", width: "16px", @@ -18427,7 +18668,7 @@ var icon3 = { flex: 0, maxWidth: "fit-content" }; -var container13 = { +var container15 = { paddingLeft: "12px", alignItems: "center", justifyContent: "center", @@ -18443,23 +18684,23 @@ var container13 = { border: "1px solid #3B3B3B" } }; -var styles_default35 = { container: container13, input: input2, icon: icon3 }; +var styles_default37 = { container: container15, input: input3, icon: icon4 }; // src/components/input/index.tsx import { Flex as Flex31 } from "@vtex/brand-ui"; -import { jsx as jsx94, jsxs as jsxs74 } from "react/jsx-runtime"; -var Input = ({ value, onChange, placeholder = "", Icon: Icon81 }) => { - const [inputValue, setInputValue] = useState27(value ?? ""); +import { jsx as jsx97, jsxs as jsxs76 } from "react/jsx-runtime"; +var Input = ({ value, onChange, placeholder = "", Icon: Icon82 }) => { + const [inputValue, setInputValue] = useState28(value ?? ""); useEffect26(() => { if (inputValue !== value) setInputValue(value); }, [value]); - return /* @__PURE__ */ jsxs74(Flex31, { sx: styles_default35.container, children: [ - Icon81 && /* @__PURE__ */ jsx94(Icon81, { sx: styles_default35.icon }), - /* @__PURE__ */ jsx94( + return /* @__PURE__ */ jsxs76(Flex31, { sx: styles_default37.container, children: [ + Icon82 && /* @__PURE__ */ jsx97(Icon82, { sx: styles_default37.icon }), + /* @__PURE__ */ jsx97( "input", { - style: styles_default35.input, + style: styles_default37.input, value: inputValue, placeholder, onChange: (e) => { @@ -18473,8 +18714,8 @@ var Input = ({ value, onChange, placeholder = "", Icon: Icon81 }) => { var input_default = Input; // src/components/subscription-list/index.tsx -import { useContext as useContext26, useState as useState28 } from "react"; -import { Box as Box34, Button as Button9, Text as Text24, Flex as Flex32, Link as Link11 } from "@vtex/brand-ui"; +import { useContext as useContext28, useState as useState29 } from "react"; +import { Box as Box35, Button as Button9, Text as Text26, Flex as Flex32, Link as Link11 } from "@vtex/brand-ui"; // src/utils/get-url.tsx var getFeedbackURL = (currentUrl) => { @@ -18582,7 +18823,7 @@ var emailInputField = { borderColor: "#A1A8B3" } }; -var button4 = { +var button5 = { transition: "all 0.3s ease-out", minHeight: controlHeight, height: controlHeight, @@ -18615,26 +18856,26 @@ var popupCard = { marginTop: "16px", alignSelf: "center" }; -var styles_default36 = { +var styles_default38 = { sectionContainer: sectionContainer2, cardContainer: cardContainer4, title: title7, description: description4, inputContainer, emailInputField, - button: button4, + button: button5, privacyText, popupCard }; // src/components/subscription-list/index.tsx -import { jsx as jsx95, jsxs as jsxs75 } from "react/jsx-runtime"; +import { jsx as jsx98, jsxs as jsxs77 } from "react/jsx-runtime"; var SubscriptionList = () => { - const { locale } = useContext26(LibraryContext); + const { locale } = useContext28(LibraryContext); const localizedMessages = messages[locale] ?? messages.en; - const [email, setEmail] = useState28(""); - const [message, setMessage] = useState28(""); - const [messageType, setMessageType] = useState28(""); + const [email, setEmail] = useState29(""); + const [message, setMessage] = useState29(""); + const [messageType, setMessageType] = useState29(""); const clearMessageAfterTimeout = () => { setTimeout(() => { setMessage(""); @@ -18732,14 +18973,14 @@ var SubscriptionList = () => { showMessage("error", localizedMessages["subscription_list.error"]); } }; - return /* @__PURE__ */ jsxs75(Box34, { sx: styles_default36.sectionContainer, children: [ - /* @__PURE__ */ jsx95(Text24, { sx: styles_default36.title, children: localizedMessages["landing_page_subscription.title"] }), - /* @__PURE__ */ jsx95(Flex32, { sx: styles_default36.cardContainer, children: /* @__PURE__ */ jsxs75("div", { children: [ - /* @__PURE__ */ jsxs75(Text24, { sx: styles_default36.description, children: [ + return /* @__PURE__ */ jsxs77(Box35, { sx: styles_default38.sectionContainer, children: [ + /* @__PURE__ */ jsx98(Text26, { sx: styles_default38.title, children: localizedMessages["landing_page_subscription.title"] }), + /* @__PURE__ */ jsx98(Flex32, { sx: styles_default38.cardContainer, children: /* @__PURE__ */ jsxs77("div", { children: [ + /* @__PURE__ */ jsxs77(Text26, { sx: styles_default38.description, children: [ localizedMessages["landing_page_subscription.description"].split( "newsletter" )[0], - /* @__PURE__ */ jsx95( + /* @__PURE__ */ jsx98( "a", { href: getNewsletterURL(locale), @@ -18752,9 +18993,9 @@ var SubscriptionList = () => { "newsletter" )[1] ] }), - /* @__PURE__ */ jsxs75(Flex32, { sx: styles_default36.inputContainer, children: [ - /* @__PURE__ */ jsx95( - Box34, + /* @__PURE__ */ jsxs77(Flex32, { sx: styles_default38.inputContainer, children: [ + /* @__PURE__ */ jsx98( + Box35, { as: "input", id: "email", @@ -18763,24 +19004,24 @@ var SubscriptionList = () => { placeholder: "Email", value: email, onChange: (e) => setEmail(e.target.value), - sx: styles_default36.emailInputField + sx: styles_default38.emailInputField } ), - /* @__PURE__ */ jsx95( + /* @__PURE__ */ jsx98( Button9, { type: "button", size: "regular", onClick: handleSubscribe, - sx: styles_default36.button, + sx: styles_default38.button, children: localizedMessages["landing_page_newsletter.Button"] } ) ] }), - /* @__PURE__ */ jsxs75(Text24, { sx: styles_default36.privacyText, children: [ + /* @__PURE__ */ jsxs77(Text26, { sx: styles_default38.privacyText, children: [ localizedMessages["subscription_list.privacy_notice"], " ", - /* @__PURE__ */ jsx95( + /* @__PURE__ */ jsx98( Link11, { href: getPrivacyNoticeURL(locale), @@ -18790,14 +19031,14 @@ var SubscriptionList = () => { } ) ] }), - message && /* @__PURE__ */ jsx95( - Box34, + message && /* @__PURE__ */ jsx98( + Box35, { sx: { - ...styles_default36.popupCard, + ...styles_default38.popupCard, backgroundColor: messageType === "success" ? "#dff1e0" : "#f8e3e3" }, - children: /* @__PURE__ */ jsx95(Text24, { children: message }) + children: /* @__PURE__ */ jsx98(Text26, { children: message }) } ) ] }) }) @@ -18806,49 +19047,49 @@ var SubscriptionList = () => { var subscription_list_default = SubscriptionList; // src/components/footer/index.tsx -import { useContext as useContext27 } from "react"; -import { Box as Box35, Flex as Flex33, Link as Link12 } from "@vtex/brand-ui"; +import { useContext as useContext29 } from "react"; +import { Box as Box36, Flex as Flex33, Link as Link12 } from "@vtex/brand-ui"; // src/components/icons/vtex-logo-footer.tsx -import { Icon as Icon51 } from "@vtex/brand-ui"; -import { jsx as jsx96, jsxs as jsxs76 } from "react/jsx-runtime"; -var VTEXLogoFooter = (props) => /* @__PURE__ */ jsxs76( - Icon51, +import { Icon as Icon52 } from "@vtex/brand-ui"; +import { jsx as jsx99, jsxs as jsxs78 } from "react/jsx-runtime"; +var VTEXLogoFooter = (props) => /* @__PURE__ */ jsxs78( + Icon52, { ...props, viewBox: "0 0 61 22", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx96( + /* @__PURE__ */ jsx99( "path", { d: "M23.667 0.000165906H4.55235C3.47417 -0.0137423 2.59101 0.848566 2.57987 1.92506C2.57708 2.25886 2.65788 2.58709 2.81668 2.87916L4.72787 6.49529H1.2621C0.560025 6.50086 -0.00553116 7.07387 4.08212e-05 7.77763C0.00282681 7.98069 0.0529747 8.18097 0.147698 8.36177L6.28245 19.9723C6.6112 20.5926 7.38013 20.8291 8.0042 20.5008C8.22986 20.3812 8.41374 20.1976 8.53354 19.9723L10.2051 16.8374L12.3002 20.7957C12.81 21.7526 13.9997 22.117 14.9608 21.6079C15.3063 21.4243 15.5905 21.1406 15.7743 20.7957L25.3386 2.80684C25.8345 1.87499 25.4779 0.717829 24.5446 0.222697C24.2744 0.0808334 23.9735 0.00294754 23.667 0.000165906ZM15.075 7.68583L10.9462 15.4466C10.7428 15.8611 10.2413 16.0308 9.82624 15.8249C9.66186 15.7442 9.52813 15.6107 9.44734 15.4466L5.3575 7.71921C5.13184 7.31866 5.27392 6.80962 5.67511 6.58152C5.80884 6.50642 5.96206 6.47026 6.11529 6.47582H14.3451C14.8076 6.48417 15.1726 6.86525 15.1642 7.327C15.1614 7.45218 15.1308 7.57457 15.075 7.68583Z", fill: "white" } ), - /* @__PURE__ */ jsx96( + /* @__PURE__ */ jsx99( "path", { d: "M43.5224 8.27831H41.3772V15.6246C41.3772 15.7637 41.263 15.8777 41.1237 15.8777H39.466C39.3267 15.8777 39.2125 15.7637 39.2125 15.6246V8.27831H37.0533C36.9196 8.28387 36.8054 8.18095 36.7998 8.04743C36.7998 8.04465 36.7998 8.04187 36.7998 8.03908V6.73728C36.8026 6.60376 36.9112 6.49527 37.045 6.49806C37.0478 6.49806 37.0505 6.49806 37.0533 6.49806H43.5224C43.6645 6.48415 43.7871 6.58985 43.801 6.72893C43.801 6.73171 43.801 6.7345 43.801 6.73728V8.03908C43.7926 8.18095 43.6701 8.28665 43.5308 8.27831C43.528 8.27831 43.5252 8.27831 43.5224 8.27831Z", fill: "white" } ), - /* @__PURE__ */ jsx96( + /* @__PURE__ */ jsx99( "path", { d: "M50.3883 15.8056C49.5442 15.9252 48.6944 15.9808 47.8419 15.9697C46.2149 15.9697 44.7773 15.5524 44.7773 13.2604V9.08791C44.7773 6.79584 46.2288 6.39251 47.8559 6.39251C48.7028 6.38138 49.5525 6.43701 50.3911 6.55662C50.5666 6.58166 50.6419 6.64563 50.6419 6.80975V7.98082C50.6391 8.11712 50.5276 8.22839 50.3911 8.23117H47.7305C47.1371 8.23117 46.9226 8.43423 46.9226 9.08791V10.234H50.288C50.4273 10.234 50.5416 10.348 50.5416 10.4871V11.6832C50.5416 11.8223 50.4301 11.9335 50.2908 11.9335H50.288H46.9198V13.2687C46.9198 13.9252 47.1343 14.1255 47.7277 14.1255H50.3883C50.5276 14.1282 50.6391 14.2395 50.6391 14.3786V15.5497C50.6391 15.7054 50.5638 15.7805 50.3883 15.8056Z", fill: "white" } ), - /* @__PURE__ */ jsx96( + /* @__PURE__ */ jsx99( "path", { d: "M59.93 15.8833H57.9185C57.7792 15.8945 57.6483 15.8194 57.587 15.6942L55.8429 12.9292L54.2633 15.633C54.1741 15.7832 54.0878 15.8833 53.9485 15.8833H52.0846C51.9927 15.8945 51.9091 15.8305 51.898 15.7415C51.898 15.7359 51.8952 15.7276 51.8952 15.7192C51.898 15.6886 51.9063 15.6608 51.9203 15.633L54.6645 11.0711L51.8952 6.73732C51.8813 6.71507 51.8729 6.69004 51.8701 6.66222C51.8785 6.56486 51.9621 6.49254 52.0596 6.4981H54.0989C54.2382 6.4981 54.3385 6.62328 54.4137 6.73732L56.0324 9.29087L57.5981 6.73732C57.6566 6.60937 57.7764 6.51757 57.9157 6.4981H59.7879C59.8854 6.49254 59.969 6.56486 59.9774 6.66222C59.9746 6.69004 59.9662 6.71507 59.9523 6.73732L57.1858 11.0989L60.0554 15.633C60.0777 15.6719 60.0916 15.7137 60.0944 15.7582C60.0944 15.8333 60.0303 15.8833 59.93 15.8833Z", fill: "white" } ), - /* @__PURE__ */ jsx96( + /* @__PURE__ */ jsx99( "path", { d: "M33.7975 6.49536C33.7056 6.49536 33.6248 6.55934 33.6053 6.65113L31.7666 13.4383C31.7415 13.5774 31.7053 13.6275 31.591 13.6275C31.4768 13.6275 31.4378 13.5774 31.4127 13.4383L29.5768 6.65113C29.5573 6.55934 29.4765 6.49536 29.3845 6.49536H27.5681C27.4594 6.49536 27.373 6.58159 27.373 6.69008C27.373 6.70398 27.3758 6.72067 27.3786 6.73458C27.3786 6.73458 29.6213 14.5232 29.6464 14.5927C29.8916 15.4522 30.7051 16.0225 31.5966 15.9641C32.4826 16.0002 33.2794 15.4383 33.5468 14.5955C33.583 14.4898 35.7756 6.73458 35.7756 6.73458C35.8007 6.62888 35.7338 6.52596 35.6307 6.50092C35.6168 6.49814 35.6001 6.49536 35.5862 6.49536H33.7975Z", @@ -18861,31 +19102,31 @@ var VTEXLogoFooter = (props) => /* @__PURE__ */ jsxs76( var vtex_logo_footer_default = VTEXLogoFooter; // src/components/icons/instagram-icon.tsx -import { Icon as Icon52 } from "@vtex/brand-ui"; -import { jsx as jsx97, jsxs as jsxs77 } from "react/jsx-runtime"; -var IgIcon = (props) => /* @__PURE__ */ jsxs77( - Icon52, +import { Icon as Icon53 } from "@vtex/brand-ui"; +import { jsx as jsx100, jsxs as jsxs79 } from "react/jsx-runtime"; +var IgIcon = (props) => /* @__PURE__ */ jsxs79( + Icon53, { ...props, viewBox: "0 0 33 33", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx97( + /* @__PURE__ */ jsx100( "path", { d: "M31.5999 16.8379C31.5999 25.3976 24.6498 32.3379 16.0748 32.3379C7.49986 32.3379 0.549805 25.3976 0.549805 16.8379C0.549805 8.27821 7.49986 1.33789 16.0748 1.33789C24.6498 1.33789 31.5999 8.27821 31.5999 16.8379Z", stroke: "#4D596A" } ), - /* @__PURE__ */ jsx97("g", { clipPath: "url(#clip0_311_37416)", children: /* @__PURE__ */ jsx97( + /* @__PURE__ */ jsx100("g", { clipPath: "url(#clip0_311_37416)", children: /* @__PURE__ */ jsx100( "path", { d: "M16.0742 14.5879C15.4766 14.5879 14.9034 14.8249 14.4808 15.2469C14.0581 15.6689 13.8207 16.2412 13.8207 16.8379C13.8207 17.4346 14.0581 18.0069 14.4808 18.4289C14.9034 18.8508 15.4766 19.0879 16.0742 19.0879C16.6719 19.0879 17.2451 18.8508 17.6677 18.4289C18.0903 18.0069 18.3278 17.4346 18.3278 16.8379C18.3278 16.2412 18.0903 15.6689 17.6677 15.2469C17.2451 14.8249 16.6719 14.5879 16.0742 14.5879ZM16.0742 13.0879C17.0704 13.0879 18.0257 13.483 18.73 14.1862C19.4344 14.8895 19.8301 15.8433 19.8301 16.8379C19.8301 17.8325 19.4344 18.7863 18.73 19.4895C18.0257 20.1928 17.0704 20.5879 16.0742 20.5879C15.0781 20.5879 14.1228 20.1928 13.4184 19.4895C12.7141 18.7863 12.3184 17.8325 12.3184 16.8379C12.3184 15.8433 12.7141 14.8895 13.4184 14.1862C14.1228 13.483 15.0781 13.0879 16.0742 13.0879ZM20.9569 12.9004C20.9569 13.149 20.8579 13.3875 20.6819 13.5633C20.5058 13.7391 20.2669 13.8379 20.0179 13.8379C19.7689 13.8379 19.53 13.7391 19.3539 13.5633C19.1779 13.3875 19.0789 13.149 19.0789 12.9004C19.0789 12.6518 19.1779 12.4133 19.3539 12.2375C19.53 12.0617 19.7689 11.9629 20.0179 11.9629C20.2669 11.9629 20.5058 12.0617 20.6819 12.2375C20.8579 12.4133 20.9569 12.6518 20.9569 12.9004ZM16.0742 10.8379C14.2158 10.8379 13.9124 10.8431 13.0478 10.8814C12.4588 10.9091 12.0637 10.9879 11.6971 11.1304C11.3711 11.2564 11.136 11.4071 10.8859 11.6576C10.6508 11.8844 10.47 12.1613 10.3571 12.4676C10.2143 12.8351 10.1355 13.2289 10.1084 13.8161C10.0694 14.6441 10.0648 14.9336 10.0648 16.8379C10.0648 18.6934 10.0701 18.9964 10.1084 19.8596C10.1362 20.4469 10.2151 20.8421 10.3571 21.2074C10.4848 21.5336 10.635 21.7684 10.8844 22.0174C11.1375 22.2694 11.3726 22.4201 11.6956 22.5446C12.0667 22.6879 12.4618 22.7674 13.0478 22.7944C13.8771 22.8334 14.167 22.8379 16.0742 22.8379C17.9326 22.8379 18.2361 22.8326 19.1007 22.7944C19.6881 22.7666 20.084 22.6879 20.4506 22.5461C20.7758 22.4194 21.0125 22.2686 21.2618 22.0196C21.515 21.7669 21.666 21.5321 21.7907 21.2096C21.9334 20.8399 22.013 20.4446 22.0401 19.8596C22.0791 19.0316 22.0836 18.7421 22.0836 16.8379C22.0836 14.9824 22.0784 14.6794 22.0401 13.8161C22.0123 13.2296 21.9334 12.8336 21.7907 12.4676C21.6775 12.1616 21.497 11.8849 21.2626 11.6576C21.0355 11.4228 20.7582 11.2423 20.4513 11.1296C20.0833 10.9871 19.6881 10.9084 19.1007 10.8814C18.2714 10.8424 17.9815 10.8379 16.0742 10.8379ZM16.0742 9.33789C18.1152 9.33789 18.3698 9.34539 19.1706 9.38289C19.9706 9.42039 20.5152 9.54564 20.9944 9.73164C21.4902 9.92214 21.9079 10.1801 22.3255 10.5964C22.7075 10.9713 23.003 11.4248 23.1916 11.9254C23.3771 12.4031 23.5033 12.9476 23.5409 13.7464C23.5762 14.5459 23.586 14.8001 23.586 16.8379C23.586 18.8756 23.5785 19.1299 23.5409 19.9294C23.5033 20.7281 23.3771 21.2719 23.1916 21.7504C23.0036 22.2512 22.7079 22.7049 22.3255 23.0794C21.9499 23.4606 21.4957 23.7557 20.9944 23.9441C20.5159 24.1294 19.9706 24.2554 19.1706 24.2929C18.3698 24.3281 18.1152 24.3379 16.0742 24.3379C14.0333 24.3379 13.7787 24.3304 12.9779 24.2929C12.1779 24.2554 11.6333 24.1294 11.154 23.9441C10.6525 23.7562 10.1982 23.4611 9.82297 23.0794C9.44093 22.7045 9.14536 22.251 8.95687 21.7504C8.77058 21.2726 8.64513 20.7281 8.60757 19.9294C8.57227 19.1299 8.5625 18.8756 8.5625 16.8379C8.5625 14.8001 8.57001 14.5459 8.60757 13.7464C8.64513 12.9469 8.77058 12.4039 8.95687 11.9254C9.14484 11.4245 9.44047 10.9709 9.82297 10.5964C10.1983 10.2148 10.6526 9.91969 11.154 9.73164C11.6333 9.54564 12.1771 9.42039 12.9779 9.38289C13.7787 9.34764 14.0333 9.33789 16.0742 9.33789Z", fill: "#C5C7D1" } ) }), - /* @__PURE__ */ jsx97("defs", { children: /* @__PURE__ */ jsx97("clipPath", { id: "clip0_311_37416", children: /* @__PURE__ */ jsx97( + /* @__PURE__ */ jsx100("defs", { children: /* @__PURE__ */ jsx100("clipPath", { id: "clip0_311_37416", children: /* @__PURE__ */ jsx100( "rect", { width: "18.0282", @@ -18900,38 +19141,38 @@ var IgIcon = (props) => /* @__PURE__ */ jsxs77( var instagram_icon_default = IgIcon; // src/components/icons/youtube-icon.tsx -import { Icon as Icon53 } from "@vtex/brand-ui"; -import { jsx as jsx98, jsxs as jsxs78 } from "react/jsx-runtime"; -var YoutubeIcon = (props) => /* @__PURE__ */ jsxs78( - Icon53, +import { Icon as Icon54 } from "@vtex/brand-ui"; +import { jsx as jsx101, jsxs as jsxs80 } from "react/jsx-runtime"; +var YoutubeIcon = (props) => /* @__PURE__ */ jsxs80( + Icon54, { ...props, viewBox: "0 0 33 33", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx98( + /* @__PURE__ */ jsx101( "path", { d: "M31.6507 16.8379C31.6507 25.3976 24.7006 32.3379 16.1256 32.3379C7.55065 32.3379 0.600586 25.3976 0.600586 16.8379C0.600586 8.27821 7.55065 1.33789 16.1256 1.33789C24.7006 1.33789 31.6507 8.27821 31.6507 16.8379Z", stroke: "#4D596A" } ), - /* @__PURE__ */ jsx98( + /* @__PURE__ */ jsx101( "path", { d: "M31.6507 16.8379C31.6507 25.3976 24.7006 32.3379 16.1256 32.3379C7.55065 32.3379 0.600586 25.3976 0.600586 16.8379C0.600586 8.27821 7.55065 1.33789 16.1256 1.33789C24.7006 1.33789 31.6507 8.27821 31.6507 16.8379Z", stroke: "#4D596A" } ), - /* @__PURE__ */ jsx98("g", { clipPath: "url(#clip0_311_37417)", children: /* @__PURE__ */ jsx98( + /* @__PURE__ */ jsx101("g", { clipPath: "url(#clip0_311_37417)", children: /* @__PURE__ */ jsx101( "path", { d: "M22.4973 13.17C22.8024 14.358 22.8024 16.838 22.8024 16.838C22.8024 16.838 22.8024 19.318 22.4973 20.506C22.3277 21.1626 21.8316 21.6793 21.2033 21.854C20.0622 22.1713 16.1253 22.1713 16.1253 22.1713C16.1253 22.1713 12.1905 22.1713 11.0474 21.854C10.4164 21.6766 9.92098 21.1606 9.75339 20.506C9.44824 19.318 9.44824 16.838 9.44824 16.838C9.44824 16.838 9.44824 14.358 9.75339 13.17C9.92298 12.5133 10.4191 11.9966 11.0474 11.822C12.1905 11.5046 16.1253 11.5046 16.1253 11.5046C16.1253 11.5046 20.0622 11.5046 21.2033 11.822C21.8343 11.9993 22.3297 12.5153 22.4973 13.17ZM14.7899 19.1713L18.7962 16.838L14.7899 14.5046V19.1713Z", fill: "#C5C7D1" } ) }), - /* @__PURE__ */ jsx98("defs", { children: /* @__PURE__ */ jsx98("clipPath", { id: "clip0_311_37417", children: /* @__PURE__ */ jsx98( + /* @__PURE__ */ jsx101("defs", { children: /* @__PURE__ */ jsx101("clipPath", { id: "clip0_311_37417", children: /* @__PURE__ */ jsx101( "rect", { width: "16.025", @@ -18946,31 +19187,31 @@ var YoutubeIcon = (props) => /* @__PURE__ */ jsxs78( var youtube_icon_default = YoutubeIcon; // src/components/icons/facebook-circle-icon.tsx -import { Icon as Icon54 } from "@vtex/brand-ui"; -import { jsx as jsx99, jsxs as jsxs79 } from "react/jsx-runtime"; -var FacebookCircleIcon = (props) => /* @__PURE__ */ jsxs79( - Icon54, +import { Icon as Icon55 } from "@vtex/brand-ui"; +import { jsx as jsx102, jsxs as jsxs81 } from "react/jsx-runtime"; +var FacebookCircleIcon = (props) => /* @__PURE__ */ jsxs81( + Icon55, { ...props, viewBox: "0 0 33 33", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx99( + /* @__PURE__ */ jsx102( "path", { d: "M31.5501 16.8379C31.5501 25.3976 24.6 32.3379 16.025 32.3379C7.45006 32.3379 0.5 25.3976 0.5 16.8379C0.5 8.27821 7.45006 1.33789 16.025 1.33789C24.6 1.33789 31.5501 8.27821 31.5501 16.8379Z", stroke: "#4D596A" } ), - /* @__PURE__ */ jsx99("g", { clipPath: "url(#clip0_311_37415)", children: /* @__PURE__ */ jsx99( + /* @__PURE__ */ jsx102("g", { clipPath: "url(#clip0_311_37415)", children: /* @__PURE__ */ jsx102( "path", { d: "M17.5268 17.9629H19.4047L20.1559 14.9629H17.5268V13.4629C17.5268 12.6904 17.5268 11.9629 19.0291 11.9629H20.1559V9.44289C19.911 9.41064 18.9863 9.33789 18.0098 9.33789C15.9703 9.33789 14.5221 10.5806 14.5221 12.8629V14.9629H12.2686V17.9629H14.5221V24.3379H17.5268V17.9629Z", fill: "#CCCED7" } ) }), - /* @__PURE__ */ jsx99("defs", { children: /* @__PURE__ */ jsx99("clipPath", { id: "clip0_311_37415", children: /* @__PURE__ */ jsx99( + /* @__PURE__ */ jsx102("defs", { children: /* @__PURE__ */ jsx102("clipPath", { id: "clip0_311_37415", children: /* @__PURE__ */ jsx102( "rect", { width: "18.0282", @@ -18985,31 +19226,31 @@ var FacebookCircleIcon = (props) => /* @__PURE__ */ jsxs79( var facebook_circle_icon_default = FacebookCircleIcon; // src/components/icons/linkedin-circle-icon.tsx -import { Icon as Icon55 } from "@vtex/brand-ui"; -import { jsx as jsx100, jsxs as jsxs80 } from "react/jsx-runtime"; -var LinkedinCircleIcon = (props) => /* @__PURE__ */ jsxs80( - Icon55, +import { Icon as Icon56 } from "@vtex/brand-ui"; +import { jsx as jsx103, jsxs as jsxs82 } from "react/jsx-runtime"; +var LinkedinCircleIcon = (props) => /* @__PURE__ */ jsxs82( + Icon56, { ...props, viewBox: "0 0 33 33", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx100( + /* @__PURE__ */ jsx103( "path", { d: "M31.7005 16.8379C31.7005 25.3976 24.7504 32.3379 16.1754 32.3379C7.60045 32.3379 0.650391 25.3976 0.650391 16.8379C0.650391 8.27821 7.60045 1.33789 16.1754 1.33789C24.7504 1.33789 31.7005 8.27821 31.7005 16.8379Z", stroke: "#4D596A" } ), - /* @__PURE__ */ jsx100("g", { clipPath: "url(#clip0_311_37418)", children: /* @__PURE__ */ jsx100( + /* @__PURE__ */ jsx103("g", { clipPath: "url(#clip0_311_37418)", children: /* @__PURE__ */ jsx103( "path", { d: "M20.9353 21.5921H18.9334V18.4594C18.9334 17.7124 18.9184 16.7509 17.8893 16.7509C16.8459 16.7509 16.6866 17.5639 16.6866 18.4046V21.5921H14.684V15.1504H16.607V16.0279H16.6333C16.9022 15.5224 17.5557 14.9876 18.5323 14.9876C20.5604 14.9876 20.936 16.3211 20.936 18.0559V21.5921H20.9353ZM12.423 14.2691C12.2701 14.2693 12.1188 14.2394 11.9776 14.1811C11.8363 14.1228 11.708 14.0372 11.6 13.9293C11.492 13.8213 11.4064 13.6932 11.348 13.5521C11.2897 13.4111 11.2599 13.26 11.2601 13.1074C11.2603 12.8778 11.3286 12.6533 11.4565 12.4625C11.5844 12.2717 11.7661 12.123 11.9787 12.0352C12.1912 11.9475 12.425 11.9247 12.6506 11.9696C12.8761 12.0145 13.0832 12.1252 13.2457 12.2877C13.4082 12.4502 13.5189 12.6571 13.5636 12.8824C13.6083 13.1076 13.5851 13.341 13.497 13.5531C13.4088 13.7652 13.2597 13.9464 13.0684 14.0739C12.8771 14.2013 12.6529 14.2693 12.423 14.2691ZM13.4265 21.5921H11.4186V15.1504H13.4273V21.5921H13.4265ZM21.9381 10.0879H10.4143C9.86146 10.0879 9.41602 10.5229 9.41602 11.0606V22.6151C9.41602 23.1529 9.86221 23.5879 10.4136 23.5879H21.9351C22.4864 23.5879 22.9371 23.1529 22.9371 22.6151V11.0606C22.9371 10.5229 22.4864 10.0879 21.9351 10.0879H21.9381Z", fill: "#C5C7D1" } ) }), - /* @__PURE__ */ jsx100("defs", { children: /* @__PURE__ */ jsx100("clipPath", { id: "clip0_311_37418", children: /* @__PURE__ */ jsx100( + /* @__PURE__ */ jsx103("defs", { children: /* @__PURE__ */ jsx103("clipPath", { id: "clip0_311_37418", children: /* @__PURE__ */ jsx103( "rect", { width: "18.0282", @@ -19089,7 +19330,7 @@ var textLinkItems = { var localeSwitch = { flexShrink: 0 }; -var icon4 = { +var icon5 = { size: [28, 32], color: "#CCCED7", transition: "all 0.3s ease-out", @@ -19099,18 +19340,18 @@ var icon4 = { backgroundColor: "rgba(204, 206, 215, 0.3)" } }; -var styles_default37 = { +var styles_default39 = { outerBox, brandAndSocial, logo, socialMediaIcons, textLinkItems, localeSwitch, - icon: icon4 + icon: icon5 }; // src/components/footer/index.tsx -import { jsx as jsx101, jsxs as jsxs81 } from "react/jsx-runtime"; +import { jsx as jsx104, jsxs as jsxs83 } from "react/jsx-runtime"; var Footer = ({ variant = "helpcenter", links, @@ -19121,7 +19362,7 @@ var Footer = ({ feedbackUrl, localeSwitcher }) => { - const { locale } = useContext27(LibraryContext); + const { locale } = useContext29(LibraryContext); const localizedMessages = messages[locale] ?? messages.en; const crossSiteLink = variant === "devportal" ? { label: localizedMessages["footer.help_center"], @@ -19149,29 +19390,29 @@ var Footer = ({ const socialIcons = [ { href: getLinkedinURL(), - component: /* @__PURE__ */ jsx101(linkedin_circle_icon_default, { sx: styles_default37.icon }) + component: /* @__PURE__ */ jsx104(linkedin_circle_icon_default, { sx: styles_default39.icon }) }, { href: getInstagramURL(), - component: /* @__PURE__ */ jsx101(instagram_icon_default, { sx: styles_default37.icon }) + component: /* @__PURE__ */ jsx104(instagram_icon_default, { sx: styles_default39.icon }) }, { href: getYoutubeURL(), - component: /* @__PURE__ */ jsx101(youtube_icon_default, { sx: styles_default37.icon }) + component: /* @__PURE__ */ jsx104(youtube_icon_default, { sx: styles_default39.icon }) }, { href: getFacebookURL(), - component: /* @__PURE__ */ jsx101(facebook_circle_icon_default, { sx: styles_default37.icon }) + component: /* @__PURE__ */ jsx104(facebook_circle_icon_default, { sx: styles_default39.icon }) } ]; - return /* @__PURE__ */ jsxs81(Box35, { sx: styles_default37.outerBox, children: [ - /* @__PURE__ */ jsxs81(Flex33, { sx: styles_default37.brandAndSocial, children: [ - /* @__PURE__ */ jsx101(vtex_logo_footer_default, { sx: styles_default37.logo }), - /* @__PURE__ */ jsx101(Flex33, { sx: styles_default37.socialMediaIcons, children: socialIcons.map((icon5) => /* @__PURE__ */ jsx101(Link12, { href: icon5.href, children: icon5.component }, icon5.href)) }) + return /* @__PURE__ */ jsxs83(Box36, { sx: styles_default39.outerBox, children: [ + /* @__PURE__ */ jsxs83(Flex33, { sx: styles_default39.brandAndSocial, children: [ + /* @__PURE__ */ jsx104(vtex_logo_footer_default, { sx: styles_default39.logo }), + /* @__PURE__ */ jsx104(Flex33, { sx: styles_default39.socialMediaIcons, children: socialIcons.map((icon6) => /* @__PURE__ */ jsx104(Link12, { href: icon6.href, children: icon6.component }, icon6.href)) }) ] }), - /* @__PURE__ */ jsxs81(Flex33, { sx: styles_default37.textLinkItems, children: [ - resolvedLinks.map((link2) => /* @__PURE__ */ jsx101(Link12, { href: link2.href, children: link2.label }, link2.href)), - localeSwitcher ? /* @__PURE__ */ jsx101(Box35, { sx: styles_default37.localeSwitch, children: localeSwitcher }) : null + /* @__PURE__ */ jsxs83(Flex33, { sx: styles_default39.textLinkItems, children: [ + resolvedLinks.map((link2) => /* @__PURE__ */ jsx104(Link12, { href: link2.href, children: link2.label }, link2.href)), + localeSwitcher ? /* @__PURE__ */ jsx104(Box36, { sx: styles_default39.localeSwitch, children: localeSwitcher }) : null ] }) ] }); }; @@ -19179,43 +19420,43 @@ var footer_default = Footer; // src/components/header/index.tsx import * as BrandUI from "@vtex/brand-ui"; -import { Link as VtexLink, Flex as Flex34, Text as Text25, Box as Box37 } from "@vtex/brand-ui"; -import { useContext as useContext29, useEffect as useEffect27, useRef as useRef16, useState as useState29 } from "react"; +import { Link as VtexLink, Flex as Flex34, Text as Text27, Box as Box38 } from "@vtex/brand-ui"; +import { useContext as useContext31, useEffect as useEffect27, useRef as useRef16, useState as useState30 } from "react"; import { useRouter as useRouter11 } from "next/router.js"; // src/components/icons/vtex-devportal-icon.tsx -import { Icon as Icon56 } from "@vtex/brand-ui"; -import { jsx as jsx102, jsxs as jsxs82 } from "react/jsx-runtime"; -var VTEXDevPortalIcon = (props) => /* @__PURE__ */ jsxs82( - Icon56, +import { Icon as Icon57 } from "@vtex/brand-ui"; +import { jsx as jsx105, jsxs as jsxs84 } from "react/jsx-runtime"; +var VTEXDevPortalIcon = (props) => /* @__PURE__ */ jsxs84( + Icon57, { ...props, viewBox: "0 0 204 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx102("g", { clipPath: "url(#clip0_2044_123231)", children: /* @__PURE__ */ jsx102( + /* @__PURE__ */ jsx105("g", { clipPath: "url(#clip0_2044_123231)", children: /* @__PURE__ */ jsx105( "path", { d: "M33.5348 0.751221H6.47098C4.37195 0.751221 3.01813 2.95123 3.99934 4.77234L6.70696 9.82013H1.80094C0.80732 9.82013 0 10.6146 0 11.5924C0 11.8857 0.0745218 12.1668 0.211145 12.4235L8.91778 28.6424C9.38975 29.5102 10.4827 29.8402 11.3522 29.3757C11.6751 29.2046 11.9359 28.9479 12.0974 28.6424L14.4572 24.2668L17.4257 29.7913C18.469 31.7346 21.3008 31.7346 22.3441 29.7913L35.9319 4.67456C36.8883 2.89011 35.5718 0.751221 33.5348 0.751221ZM21.3753 11.4824L15.5254 22.3235C15.2149 22.8979 14.4821 23.1179 13.8983 22.8124C13.6872 22.7024 13.5133 22.5313 13.4015 22.3235L7.61365 11.5312C7.30314 10.9568 7.5267 10.2357 8.11046 9.93013C8.28434 9.84457 8.47065 9.79568 8.66937 9.79568H20.3445C20.9903 9.79568 21.512 10.309 21.512 10.9446C21.512 11.1279 21.4623 11.3235 21.3753 11.4824ZM62.3251 12.4112H59.3691V22.3968C59.3691 22.5802 59.2076 22.739 59.0213 22.739H56.7359C56.5496 22.739 56.3882 22.5802 56.3882 22.3968V12.4112H53.4073C53.221 12.4235 53.072 12.2768 53.0595 12.0935V12.0812V10.309C53.0595 10.1257 53.2086 9.97902 53.3949 9.97902H53.4073H62.3251C62.5114 9.96679 62.6853 10.1135 62.6853 10.309V12.0812C62.6729 12.2646 62.5114 12.4112 62.3251 12.4112ZM71.8266 22.6657C71.218 22.7513 70.1871 22.8857 68.3117 22.8857C66.0636 22.8857 64.0764 22.3235 64.0764 19.1946V13.499C64.0764 10.3824 66.076 9.83235 68.3241 9.83235C70.1996 9.83235 71.218 9.96679 71.8266 10.0524C72.075 10.089 72.1744 10.1746 72.1744 10.3946V11.9957C72.1744 12.179 72.0129 12.3379 71.8266 12.3379H68.1502C67.3305 12.3379 67.0324 12.6068 67.0324 13.499V15.0635H71.6776C71.8639 15.0635 72.0253 15.2224 72.0253 15.4057V17.0313C72.0253 17.2146 71.8639 17.3735 71.6776 17.3735H67.0324V19.1946C67.0324 20.0868 67.3305 20.3557 68.1502 20.3557H71.8266C72.0129 20.3557 72.1744 20.5146 72.1744 20.6979V22.299C72.1744 22.519 72.075 22.629 71.8266 22.6657ZM84.9797 22.7268H82.21C81.9864 22.7268 81.8746 22.6535 81.7629 22.4702L79.3533 18.7179L77.1798 22.3846C77.0556 22.5924 76.9314 22.7268 76.7451 22.7268H74.1616C73.9877 22.7268 73.9008 22.629 73.9008 22.5068C73.9008 22.4702 73.9132 22.4213 73.9381 22.3846L77.7138 16.1879L73.9008 10.309C73.876 10.2724 73.8635 10.2479 73.8635 10.2112C73.876 10.0768 73.9877 9.97902 74.1244 9.99124H76.9314C77.1177 9.99124 77.2667 10.1624 77.3661 10.3212L79.6017 13.7801L81.7629 10.3212C81.8498 10.1624 82.0113 9.99124 82.1976 9.99124H84.781C84.9176 9.99124 85.0294 10.089 85.0418 10.2112C85.0418 10.2479 85.0294 10.2846 85.0046 10.309L81.2039 16.2246L85.166 22.3846C85.1909 22.4335 85.2157 22.4946 85.2157 22.5557C85.2033 22.6657 85.1163 22.7268 84.9797 22.7268ZM51.3455 10.0157C51.3704 10.0157 51.3828 10.0157 51.4076 10.0279C51.5567 10.0646 51.6436 10.199 51.6064 10.3457C51.6064 10.3457 48.5882 20.8813 48.5385 21.0157C48.1287 22.2379 47.0605 22.8735 45.8558 22.8735C44.5765 22.8735 43.5828 22.2746 43.173 21.0157C43.1357 20.9057 40.0431 10.3457 40.0431 10.3457C40.0431 10.3212 40.0306 10.309 40.0306 10.2846C40.0306 10.1379 40.1548 10.0157 40.3039 10.0157H42.8004C42.9246 10.0157 43.0364 10.1012 43.0612 10.2235L45.5949 19.439C45.6322 19.6224 45.6819 19.6957 45.8433 19.6957C46.0048 19.6957 46.0545 19.6224 46.0918 19.439L48.6255 10.2235C48.6503 10.1012 48.7621 10.0157 48.8863 10.0157H51.3455Z", fill: "#E31C58" } ) }), - /* @__PURE__ */ jsx102( + /* @__PURE__ */ jsx105( "path", { d: "M98.7088 0.751221H97.2158V31.2488H98.7088V0.751221Z", fill: "#E31C58" } ), - /* @__PURE__ */ jsx102( + /* @__PURE__ */ jsx105( "path", { d: "M112.221 21.5H116.037C120.393 21.5 122.661 19.34 122.661 15.362C122.661 11.402 120.393 9.26 116.037 9.26H112.221V21.5ZM114.003 19.988V10.772H115.947C119.385 10.772 120.789 12.464 120.789 15.362C120.789 18.278 119.385 19.988 115.947 19.988H114.003ZM128.357 21.68C130.481 21.68 131.885 20.618 132.227 18.89L130.697 18.512C130.463 19.736 129.581 20.294 128.411 20.294C126.683 20.294 125.891 19.088 125.855 17.162H132.263C132.263 17.072 132.281 17.036 132.281 16.73C132.281 13.958 130.841 12.41 128.429 12.41C125.693 12.41 124.127 14.39 124.127 17.18C124.127 19.88 125.603 21.68 128.357 21.68ZM125.945 16.01C126.197 14.552 127.025 13.76 128.339 13.76C129.707 13.76 130.463 14.624 130.517 16.01H125.945ZM136.207 21.5H138.817L141.805 12.608H140.023L137.575 20.366L135.145 12.608H133.255L136.207 21.5ZM147.025 21.68C149.149 21.68 150.553 20.618 150.895 18.89L149.365 18.512C149.131 19.736 148.249 20.294 147.079 20.294C145.351 20.294 144.559 19.088 144.523 17.162H150.931C150.931 17.072 150.949 17.036 150.949 16.73C150.949 13.958 149.509 12.41 147.097 12.41C144.361 12.41 142.795 14.39 142.795 17.18C142.795 19.88 144.271 21.68 147.025 21.68ZM144.613 16.01C144.865 14.552 145.693 13.76 147.007 13.76C148.375 13.76 149.131 14.624 149.185 16.01H144.613ZM153.102 21.5H154.758V9.26H153.102V21.5ZM161.425 21.68C163.873 21.68 165.799 20.078 165.799 17.054C165.799 14.012 163.873 12.41 161.425 12.41C158.995 12.41 157.033 14.012 157.033 17.054C157.033 20.078 158.995 21.68 161.425 21.68ZM158.779 17.054C158.779 15.02 159.841 13.886 161.425 13.886C163.027 13.886 164.071 15.02 164.071 17.054C164.071 19.07 163.027 20.222 161.425 20.222C159.841 20.222 158.779 19.07 158.779 17.054ZM167.991 24.848H169.647V18.854H169.665C170.061 21.032 171.195 21.68 172.761 21.68C174.813 21.68 176.433 20.186 176.433 17.108C176.433 14.012 174.741 12.446 172.653 12.446C171.051 12.446 170.133 13.346 169.665 14.984H169.629V12.608H167.991V24.848ZM169.683 17.108C169.683 14.966 170.745 13.886 172.185 13.886C173.643 13.886 174.687 14.948 174.687 17.108C174.687 19.196 173.679 20.222 172.185 20.222C170.709 20.222 169.683 19.196 169.683 17.108ZM182.427 21.68C184.551 21.68 185.955 20.618 186.297 18.89L184.767 18.512C184.533 19.736 183.651 20.294 182.481 20.294C180.753 20.294 179.961 19.088 179.925 17.162H186.333C186.333 17.072 186.351 17.036 186.351 16.73C186.351 13.958 184.911 12.41 182.499 12.41C179.763 12.41 178.197 14.39 178.197 17.18C178.197 19.88 179.673 21.68 182.427 21.68ZM180.015 16.01C180.267 14.552 181.095 13.76 182.409 13.76C183.777 13.76 184.533 14.624 184.587 16.01H180.015ZM188.505 21.5H190.161V16.784C190.161 15.056 191.079 14.084 192.717 14.084C193.059 14.084 193.473 14.12 193.725 14.174L193.635 12.518C193.383 12.464 193.005 12.428 192.717 12.428C191.421 12.428 190.593 13.004 190.107 15.182H190.053V12.608H188.505V21.5ZM198.692 21.68C200.996 21.68 202.454 20.636 202.454 18.71C202.454 16.892 200.942 16.532 199.448 16.28L198.134 16.082C197.27 15.938 196.676 15.722 196.676 14.966C196.676 14.156 197.396 13.724 198.404 13.724C199.556 13.724 200.33 14.282 200.474 15.452L202.112 15.092C201.896 13.328 200.348 12.428 198.476 12.428C196.478 12.428 195.002 13.418 195.002 15.092C195.002 16.694 196.28 17.216 197.504 17.414L198.944 17.63C200.078 17.81 200.762 18.062 200.762 18.908C200.762 19.808 200.042 20.348 198.656 20.348C197.414 20.348 196.55 19.736 196.406 18.368L194.696 18.728C194.84 20.672 196.442 21.68 198.692 21.68Z", fill: "#E31C58" } ), - /* @__PURE__ */ jsx102("defs", { children: /* @__PURE__ */ jsx102("clipPath", { id: "clip0_2044_123231", children: /* @__PURE__ */ jsx102( + /* @__PURE__ */ jsx105("defs", { children: /* @__PURE__ */ jsx105("clipPath", { id: "clip0_2044_123231", children: /* @__PURE__ */ jsx105( "rect", { width: "85.2157", @@ -19230,25 +19471,25 @@ var VTEXDevPortalIcon = (props) => /* @__PURE__ */ jsxs82( var vtex_devportal_icon_default = VTEXDevPortalIcon; // src/components/icons/vtex-helpcenter-icon.tsx -import { Icon as Icon57 } from "@vtex/brand-ui"; -import { jsx as jsx103, jsxs as jsxs83 } from "react/jsx-runtime"; -var VTEXHelpCenterIcon = (props) => /* @__PURE__ */ jsxs83( - Icon57, +import { Icon as Icon58 } from "@vtex/brand-ui"; +import { jsx as jsx106, jsxs as jsxs85 } from "react/jsx-runtime"; +var VTEXHelpCenterIcon = (props) => /* @__PURE__ */ jsxs85( + Icon58, { ...props, viewBox: "0 0 208 32", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx103( + /* @__PURE__ */ jsx106( "path", { d: "M33.5348 0H6.47098C4.37195 0 3.01813 2.2 3.99934 4.02112L6.70696 9.06891H1.80094C0.80732 9.06891 0 9.86335 0 10.8411C0 11.1345 0.0745218 11.4156 0.211145 11.6722L8.91778 27.8912C9.38975 28.7589 10.4827 29.0889 11.3522 28.6245C11.6751 28.4534 11.9359 28.1967 12.0974 27.8912L14.4572 23.5156L17.4257 29.0401C18.469 30.9834 21.3008 30.9834 22.3441 29.0401L35.9319 3.92334C36.8883 2.13889 35.5718 0 33.5348 0ZM21.3753 10.7311L15.5254 21.5723C15.2149 22.1467 14.4821 22.3667 13.8983 22.0612C13.6872 21.9512 13.5133 21.78 13.4015 21.5723L7.61365 10.78C7.30314 10.2056 7.5267 9.48446 8.11046 9.17891C8.28434 9.09335 8.47065 9.04446 8.66937 9.04446H20.3445C20.9903 9.04446 21.512 9.5578 21.512 10.1934C21.512 10.3767 21.4623 10.5722 21.3753 10.7311ZM62.3251 11.66H59.3691V21.6456C59.3691 21.8289 59.2076 21.9878 59.0213 21.9878H56.7359C56.5496 21.9878 56.3882 21.8289 56.3882 21.6456V11.66H53.4073C53.221 11.6722 53.072 11.5256 53.0595 11.3422V11.33V9.5578C53.0595 9.37446 53.2086 9.2278 53.3949 9.2278H53.4073H62.3251C62.5114 9.21557 62.6853 9.36224 62.6853 9.5578V11.33C62.6729 11.5134 62.5114 11.66 62.3251 11.66ZM71.8266 21.9145C71.218 22 70.1871 22.1345 68.3117 22.1345C66.0636 22.1345 64.0764 21.5723 64.0764 18.4434V12.7478C64.0764 9.63113 66.076 9.08113 68.3241 9.08113C70.1996 9.08113 71.218 9.21557 71.8266 9.30113C72.075 9.3378 72.1744 9.42335 72.1744 9.64335V11.2445C72.1744 11.4278 72.0129 11.5867 71.8266 11.5867H68.1502C67.3305 11.5867 67.0324 11.8556 67.0324 12.7478V14.3123H71.6776C71.8639 14.3123 72.0253 14.4711 72.0253 14.6545V16.28C72.0253 16.4634 71.8639 16.6223 71.6776 16.6223H67.0324V18.4434C67.0324 19.3356 67.3305 19.6045 68.1502 19.6045H71.8266C72.0129 19.6045 72.1744 19.7634 72.1744 19.9467V21.5478C72.1744 21.7678 72.075 21.8778 71.8266 21.9145ZM84.9797 21.9756H82.21C81.9864 21.9756 81.8746 21.9023 81.7629 21.7189L79.3533 17.9667L77.1798 21.6334C77.0556 21.8412 76.9314 21.9756 76.7451 21.9756H74.1616C73.9877 21.9756 73.9008 21.8778 73.9008 21.7556C73.9008 21.7189 73.9132 21.67 73.9381 21.6334L77.7138 15.4367L73.9008 9.5578C73.876 9.52113 73.8636 9.49669 73.8636 9.46002C73.876 9.32557 73.9878 9.2278 74.1244 9.24002H76.9314C77.1177 9.24002 77.2667 9.41113 77.3661 9.57002L79.6017 13.0289L81.7629 9.57002C81.8498 9.41113 82.0113 9.24002 82.1976 9.24002H84.781C84.9176 9.24002 85.0294 9.3378 85.0418 9.46002C85.0418 9.49669 85.0294 9.53335 85.0046 9.5578L81.2039 15.4734L85.166 21.6334C85.1909 21.6823 85.2157 21.7434 85.2157 21.8045C85.2033 21.9145 85.1163 21.9756 84.9797 21.9756ZM51.3455 9.26446C51.3704 9.26446 51.3828 9.26446 51.4076 9.27669C51.5567 9.31335 51.6436 9.4478 51.6064 9.59446C51.6064 9.59446 48.5882 20.13 48.5385 20.2645C48.1287 21.4867 47.0605 22.1223 45.8558 22.1223C44.5765 22.1223 43.5828 21.5234 43.173 20.2645C43.1357 20.1545 40.0431 9.59446 40.0431 9.59446C40.0431 9.57002 40.0306 9.5578 40.0306 9.53335C40.0306 9.38669 40.1548 9.26446 40.3039 9.26446H42.8004C42.9246 9.26446 43.0364 9.35002 43.0612 9.47224L45.5949 18.6878C45.6322 18.8711 45.6819 18.9445 45.8433 18.9445C46.0048 18.9445 46.0545 18.8711 46.0917 18.6878L48.6255 9.47224C48.6503 9.35002 48.7621 9.26446 48.8863 9.26446H51.3455Z", fill: "#E31C58" } ), - /* @__PURE__ */ jsx103("path", { d: "M98.7078 0H97.2148V30.4976H98.7078V0Z", fill: "#E31C58" }), - /* @__PURE__ */ jsx103( + /* @__PURE__ */ jsx106("path", { d: "M98.7078 0H97.2148V30.4976H98.7078V0Z", fill: "#E31C58" }), + /* @__PURE__ */ jsx106( "path", { d: "M120.139 20.748V8.50805H121.921V20.748H120.139ZM112.219 20.748V8.50805H114.001V20.748H112.219ZM112.741 15.222V13.746H120.931V15.222H112.741ZM128.144 20.928C127.46 20.928 126.854 20.82 126.326 20.604C125.798 20.388 125.354 20.082 124.994 19.686C124.634 19.29 124.364 18.816 124.184 18.264C124.004 17.712 123.914 17.1 123.914 16.428C123.914 15.492 124.082 14.67 124.418 13.962C124.754 13.242 125.24 12.678 125.876 12.27C126.524 11.862 127.304 11.658 128.216 11.658C129.02 11.658 129.71 11.826 130.286 12.162C130.862 12.498 131.3 12.99 131.6 13.638C131.912 14.274 132.068 15.054 132.068 15.978C132.068 16.134 132.062 16.236 132.05 16.284C132.05 16.32 132.05 16.362 132.05 16.41H125.408V15.258H130.754L130.304 15.708C130.34 15.156 130.28 14.682 130.124 14.286C129.968 13.878 129.722 13.566 129.386 13.35C129.05 13.122 128.63 13.008 128.126 13.008C127.586 13.008 127.13 13.14 126.758 13.404C126.398 13.656 126.122 14.028 125.93 14.52C125.738 15 125.642 15.594 125.642 16.302C125.642 16.806 125.69 17.256 125.786 17.652C125.894 18.048 126.05 18.39 126.254 18.678C126.47 18.954 126.734 19.17 127.046 19.326C127.37 19.47 127.754 19.542 128.198 19.542C128.594 19.542 128.948 19.482 129.26 19.362C129.572 19.23 129.836 19.032 130.052 18.768C130.268 18.504 130.412 18.168 130.484 17.76L132.014 18.138C131.906 18.714 131.678 19.212 131.33 19.632C130.994 20.04 130.556 20.358 130.016 20.586C129.476 20.814 128.852 20.928 128.144 20.928ZM134.221 20.748V8.50805H135.877V20.748H134.221ZM138.44 24.096V11.856H140.078V14.232H140.114C140.354 13.416 140.708 12.792 141.176 12.36C141.656 11.916 142.298 11.694 143.102 11.694C143.63 11.694 144.122 11.796 144.578 12C145.034 12.192 145.43 12.48 145.766 12.864C146.114 13.248 146.384 13.734 146.576 14.322C146.78 14.898 146.882 15.576 146.882 16.356C146.882 17.376 146.72 18.228 146.396 18.912C146.072 19.584 145.628 20.088 145.064 20.424C144.512 20.76 143.894 20.928 143.21 20.928C142.694 20.928 142.226 20.844 141.806 20.676C141.386 20.508 141.032 20.22 140.744 19.812C140.456 19.392 140.246 18.822 140.114 18.102H140.096V24.096H138.44ZM142.634 19.47C143.138 19.47 143.576 19.356 143.948 19.128C144.32 18.9 144.608 18.558 144.812 18.102C145.028 17.634 145.136 17.052 145.136 16.356C145.136 15.816 145.076 15.348 144.956 14.952C144.836 14.544 144.662 14.208 144.434 13.944C144.206 13.668 143.936 13.464 143.624 13.332C143.324 13.2 142.994 13.134 142.634 13.134C142.154 13.134 141.722 13.254 141.338 13.494C140.966 13.734 140.672 14.094 140.456 14.574C140.24 15.042 140.132 15.636 140.132 16.356C140.132 16.872 140.192 17.328 140.312 17.724C140.432 18.108 140.6 18.432 140.816 18.696C141.044 18.96 141.308 19.158 141.608 19.29C141.92 19.41 142.262 19.47 142.634 19.47ZM158.704 20.946C157.888 20.946 157.138 20.808 156.454 20.532C155.782 20.256 155.194 19.848 154.69 19.308C154.198 18.768 153.814 18.108 153.538 17.328C153.274 16.548 153.142 15.654 153.142 14.646C153.142 13.638 153.28 12.744 153.556 11.964C153.832 11.172 154.222 10.512 154.726 9.98405C155.242 9.44405 155.848 9.03605 156.544 8.76005C157.24 8.48405 158.008 8.34605 158.848 8.34605C159.748 8.34605 160.558 8.52605 161.278 8.88605C161.998 9.23405 162.598 9.74405 163.078 10.416C163.558 11.076 163.876 11.88 164.032 12.828L162.25 13.188C162.118 12.456 161.896 11.85 161.584 11.37C161.284 10.89 160.894 10.536 160.414 10.308C159.934 10.068 159.376 9.94805 158.74 9.94805C157.972 9.94805 157.306 10.134 156.742 10.506C156.178 10.878 155.74 11.412 155.428 12.108C155.116 12.804 154.96 13.65 154.96 14.646C154.96 15.618 155.116 16.458 155.428 17.166C155.74 17.862 156.178 18.402 156.742 18.786C157.318 19.158 157.984 19.344 158.74 19.344C159.376 19.344 159.946 19.218 160.45 18.966C160.954 18.702 161.362 18.306 161.674 17.778C161.998 17.25 162.202 16.584 162.286 15.78L164.086 16.194C163.966 17.214 163.654 18.078 163.15 18.786C162.658 19.494 162.028 20.034 161.26 20.406C160.492 20.766 159.64 20.946 158.704 20.946ZM169.751 20.928C169.067 20.928 168.461 20.82 167.933 20.604C167.405 20.388 166.961 20.082 166.601 19.686C166.241 19.29 165.971 18.816 165.791 18.264C165.611 17.712 165.521 17.1 165.521 16.428C165.521 15.492 165.689 14.67 166.025 13.962C166.361 13.242 166.847 12.678 167.483 12.27C168.131 11.862 168.911 11.658 169.823 11.658C170.627 11.658 171.317 11.826 171.893 12.162C172.469 12.498 172.907 12.99 173.207 13.638C173.519 14.274 173.675 15.054 173.675 15.978C173.675 16.134 173.669 16.236 173.657 16.284C173.657 16.32 173.657 16.362 173.657 16.41H167.015V15.258H172.361L171.911 15.708C171.947 15.156 171.887 14.682 171.731 14.286C171.575 13.878 171.329 13.566 170.993 13.35C170.657 13.122 170.237 13.008 169.733 13.008C169.193 13.008 168.737 13.14 168.365 13.404C168.005 13.656 167.729 14.028 167.537 14.52C167.345 15 167.249 15.594 167.249 16.302C167.249 16.806 167.297 17.256 167.393 17.652C167.501 18.048 167.657 18.39 167.861 18.678C168.077 18.954 168.341 19.17 168.653 19.326C168.977 19.47 169.361 19.542 169.805 19.542C170.201 19.542 170.555 19.482 170.867 19.362C171.179 19.23 171.443 19.032 171.659 18.768C171.875 18.504 172.019 18.168 172.091 17.76L173.621 18.138C173.513 18.714 173.285 19.212 172.937 19.632C172.601 20.04 172.163 20.358 171.623 20.586C171.083 20.814 170.459 20.928 169.751 20.928ZM175.829 20.748V11.856H177.395V14.106H177.449C177.569 13.554 177.755 13.098 178.007 12.738C178.259 12.378 178.577 12.108 178.961 11.928C179.345 11.748 179.783 11.658 180.275 11.658C180.767 11.658 181.205 11.73 181.589 11.874C181.973 12.018 182.297 12.24 182.561 12.54C182.825 12.828 183.023 13.2 183.155 13.656C183.299 14.1 183.371 14.628 183.371 15.24V20.748H181.715V15.33C181.715 14.874 181.637 14.484 181.481 14.16C181.337 13.824 181.115 13.572 180.815 13.404C180.515 13.224 180.137 13.134 179.681 13.134C178.949 13.134 178.397 13.332 178.025 13.728C177.665 14.112 177.485 14.646 177.485 15.33V20.748H175.829ZM188.749 20.928C188.269 20.928 187.849 20.862 187.489 20.73C187.141 20.598 186.871 20.376 186.679 20.064C186.487 19.74 186.391 19.302 186.391 18.75V12.9L187.687 11.856H190.549V13.242H184.897V12.234C185.233 12.138 185.521 12.018 185.761 11.874C186.001 11.73 186.199 11.55 186.355 11.334C186.523 11.106 186.655 10.836 186.751 10.524C186.847 10.2 186.913 9.82205 186.949 9.39005H188.047V18.39C188.047 18.822 188.143 19.116 188.335 19.272C188.527 19.416 188.809 19.488 189.181 19.488C189.469 19.488 189.739 19.464 189.991 19.416C190.255 19.356 190.477 19.302 190.657 19.254L190.441 20.712C190.213 20.772 189.949 20.82 189.649 20.856C189.361 20.904 189.061 20.928 188.749 20.928ZM196.259 20.928C195.575 20.928 194.969 20.82 194.441 20.604C193.913 20.388 193.469 20.082 193.109 19.686C192.749 19.29 192.479 18.816 192.299 18.264C192.119 17.712 192.029 17.1 192.029 16.428C192.029 15.492 192.197 14.67 192.533 13.962C192.869 13.242 193.355 12.678 193.991 12.27C194.639 11.862 195.419 11.658 196.331 11.658C197.135 11.658 197.825 11.826 198.401 12.162C198.977 12.498 199.415 12.99 199.715 13.638C200.027 14.274 200.183 15.054 200.183 15.978C200.183 16.134 200.177 16.236 200.165 16.284C200.165 16.32 200.165 16.362 200.165 16.41H193.523V15.258H198.869L198.419 15.708C198.455 15.156 198.395 14.682 198.239 14.286C198.083 13.878 197.837 13.566 197.501 13.35C197.165 13.122 196.745 13.008 196.241 13.008C195.701 13.008 195.245 13.14 194.873 13.404C194.513 13.656 194.237 14.028 194.045 14.52C193.853 15 193.757 15.594 193.757 16.302C193.757 16.806 193.805 17.256 193.901 17.652C194.009 18.048 194.165 18.39 194.369 18.678C194.585 18.954 194.849 19.17 195.161 19.326C195.485 19.47 195.869 19.542 196.313 19.542C196.709 19.542 197.063 19.482 197.375 19.362C197.687 19.23 197.951 19.032 198.167 18.768C198.383 18.504 198.527 18.168 198.599 17.76L200.129 18.138C200.021 18.714 199.793 19.212 199.445 19.632C199.109 20.04 198.671 20.358 198.131 20.586C197.591 20.814 196.967 20.928 196.259 20.928ZM202.337 20.748V11.856H203.885V14.43H203.939C204.107 13.698 204.311 13.134 204.551 12.738C204.791 12.342 205.073 12.066 205.397 11.91C205.733 11.754 206.117 11.676 206.549 11.676C206.693 11.676 206.849 11.688 207.017 11.712C207.197 11.724 207.347 11.742 207.467 11.766L207.557 13.422C207.437 13.398 207.281 13.38 207.089 13.368C206.897 13.344 206.717 13.332 206.549 13.332C206.009 13.332 205.547 13.44 205.163 13.656C204.779 13.86 204.485 14.166 204.281 14.574C204.089 14.97 203.993 15.456 203.993 16.032V20.748H202.337Z", @@ -19261,17 +19502,17 @@ var VTEXHelpCenterIcon = (props) => /* @__PURE__ */ jsxs83( var vtex_helpcenter_icon_default = VTEXHelpCenterIcon; // src/components/icons/grid-icon.tsx -import { Icon as Icon58 } from "@vtex/brand-ui"; -import { jsx as jsx104, jsxs as jsxs84 } from "react/jsx-runtime"; -var GridIcon = (props) => /* @__PURE__ */ jsxs84( - Icon58, +import { Icon as Icon59 } from "@vtex/brand-ui"; +import { jsx as jsx107, jsxs as jsxs86 } from "react/jsx-runtime"; +var GridIcon = (props) => /* @__PURE__ */ jsxs86( + Icon59, { ...props, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx104( + /* @__PURE__ */ jsx107( "path", { fillRule: "evenodd", @@ -19280,7 +19521,7 @@ var GridIcon = (props) => /* @__PURE__ */ jsxs84( fill: "#4A596B" } ), - /* @__PURE__ */ jsx104( + /* @__PURE__ */ jsx107( "path", { fillRule: "evenodd", @@ -19289,7 +19530,7 @@ var GridIcon = (props) => /* @__PURE__ */ jsxs84( fill: "#4A596B" } ), - /* @__PURE__ */ jsx104( + /* @__PURE__ */ jsx107( "path", { fillRule: "evenodd", @@ -19298,7 +19539,7 @@ var GridIcon = (props) => /* @__PURE__ */ jsxs84( fill: "#4A596B" } ), - /* @__PURE__ */ jsx104( + /* @__PURE__ */ jsx107( "path", { fillRule: "evenodd", @@ -19307,7 +19548,7 @@ var GridIcon = (props) => /* @__PURE__ */ jsxs84( fill: "#4A596B" } ), - /* @__PURE__ */ jsx104( + /* @__PURE__ */ jsx107( "path", { fillRule: "evenodd", @@ -19316,7 +19557,7 @@ var GridIcon = (props) => /* @__PURE__ */ jsxs84( fill: "#4A596B" } ), - /* @__PURE__ */ jsx104( + /* @__PURE__ */ jsx107( "path", { fillRule: "evenodd", @@ -19325,7 +19566,7 @@ var GridIcon = (props) => /* @__PURE__ */ jsxs84( fill: "#4A596B" } ), - /* @__PURE__ */ jsx104( + /* @__PURE__ */ jsx107( "path", { fillRule: "evenodd", @@ -19334,7 +19575,7 @@ var GridIcon = (props) => /* @__PURE__ */ jsxs84( fill: "#4A596B" } ), - /* @__PURE__ */ jsx104( + /* @__PURE__ */ jsx107( "path", { fillRule: "evenodd", @@ -19343,7 +19584,7 @@ var GridIcon = (props) => /* @__PURE__ */ jsxs84( fill: "#4A596B" } ), - /* @__PURE__ */ jsx104( + /* @__PURE__ */ jsx107( "path", { fillRule: "evenodd", @@ -19358,8 +19599,8 @@ var GridIcon = (props) => /* @__PURE__ */ jsxs84( var grid_icon_default = GridIcon; // src/components/header/dropdown-menu.tsx -import { useContext as useContext28 } from "react"; -import { Box as Box36 } from "@vtex/brand-ui"; +import { useContext as useContext30 } from "react"; +import { Box as Box37 } from "@vtex/brand-ui"; // src/components/header/dropdown-menu.styles.ts var outerContainer = { @@ -19422,18 +19663,18 @@ var dropdown_menu_styles_default = { }; // src/components/header/dropdown-menu.tsx -import { jsx as jsx105 } from "react/jsx-runtime"; +import { jsx as jsx108 } from "react/jsx-runtime"; var DropdownMenu = ({ sections }) => { - const { locale, sidebarDataMaster } = useContext28(LibraryContext); - return /* @__PURE__ */ jsx105(Box36, { sx: dropdown_menu_styles_default.outerContainer, children: /* @__PURE__ */ jsx105(Box36, { sx: dropdown_menu_styles_default.innerContainer, "data-cy": "dropdown-menu", children: sections.map((section, id) => /* @__PURE__ */ jsx105( - Box36, + const { locale, sidebarDataMaster } = useContext30(LibraryContext); + return /* @__PURE__ */ jsx108(Box37, { sx: dropdown_menu_styles_default.outerContainer, children: /* @__PURE__ */ jsx108(Box37, { sx: dropdown_menu_styles_default.innerContainer, "data-cy": "dropdown-menu", children: sections.map((section, id) => /* @__PURE__ */ jsx108( + Box37, { sx: { ...dropdown_menu_styles_default.documentationContainer, ...id > 0 ? dropdown_menu_styles_default.sectionDivider : {} }, "data-cy": id > 0 ? "dropdown-menu-second-section" : "dropdown-menu-first-section", - children: section.map((card2) => /* @__PURE__ */ jsx105( + children: section.map((card2) => /* @__PURE__ */ jsx108( documentation_card_default, { containerType: "dropdown", @@ -19629,7 +19870,7 @@ var assistantSlot = { flexShrink: 0, alignSelf: "center" }; -var styles_default38 = { +var styles_default40 = { logoSize, headerContainer, headerBrand, @@ -19649,7 +19890,7 @@ var styles_default38 = { }; // src/components/header/index.tsx -import { jsx as jsx106, jsxs as jsxs85 } from "react/jsx-runtime"; +import { jsx as jsx109, jsxs as jsxs87 } from "react/jsx-runtime"; var HeaderBrand = BrandUI.Header; var Header3 = ({ variant = "helpcenter", @@ -19667,14 +19908,14 @@ var Header3 = ({ assistant }) => { const router = useRouter11(); - const { locale, hamburguerSections } = useContext29(LibraryContext); + const { locale, hamburguerSections } = useContext31(LibraryContext); const localizedMessages = messages[locale] ?? messages.en; const modalOpen = useRef16(false); - const [showDropdown, setShowDropdown] = useState29(false); + const [showDropdown, setShowDropdown] = useState30(false); const headerElement = useRef16(null); const docsSections = dropdownSections ?? hamburguerSections; const menuSections = isEditor && editorSections.length > 0 ? [editorSections] : docsSections; - const defaultLogo = variant === "devportal" ? /* @__PURE__ */ jsx106(vtex_devportal_icon_default, { sx: styles_default38.logoSize }) : /* @__PURE__ */ jsx106(vtex_helpcenter_icon_default, { sx: styles_default38.logoSize }); + const defaultLogo = variant === "devportal" ? /* @__PURE__ */ jsx109(vtex_devportal_icon_default, { sx: styles_default40.logoSize }) : /* @__PURE__ */ jsx109(vtex_helpcenter_icon_default, { sx: styles_default40.logoSize }); useEffect27(() => { const body3 = document.body; const observer = new MutationObserver(() => { @@ -19709,70 +19950,70 @@ var Header3 = ({ router.events?.off("routeChangeStart", hideDropdown); }; }, [router.events]); - return /* @__PURE__ */ jsxs85(Box37, { ref: headerElement, sx: styles_default38.headerContainer, children: [ - announcement ?? /* @__PURE__ */ jsx106("div", {}), - /* @__PURE__ */ jsxs85(HeaderBrand, { sx: styles_default38.headerBrand, children: [ - /* @__PURE__ */ jsx106( + return /* @__PURE__ */ jsxs87(Box38, { ref: headerElement, sx: styles_default40.headerContainer, children: [ + announcement ?? /* @__PURE__ */ jsx109("div", {}), + /* @__PURE__ */ jsxs87(HeaderBrand, { sx: styles_default40.headerBrand, children: [ + /* @__PURE__ */ jsx109( VtexLink, { "aria-label": localizedMessages["header.home_aria"], href: homeHref, - sx: styles_default38.headerBrandLink, + sx: styles_default40.headerBrandLink, children: logo2 ?? defaultLogo } ), - /* @__PURE__ */ jsxs85(Flex34, { sx: styles_default38.searchRow, children: [ - /* @__PURE__ */ jsx106(Box37, { sx: styles_default38.searchContainer, children: /* @__PURE__ */ jsx106(SearchInput, {}) }), - showAssistant ? /* @__PURE__ */ jsx106(Box37, { sx: styles_default38.assistantSlot, children: /* @__PURE__ */ jsx106(ask_assistant_default, { ...assistant }) }) : null + /* @__PURE__ */ jsxs87(Flex34, { sx: styles_default40.searchRow, children: [ + /* @__PURE__ */ jsx109(Box38, { sx: styles_default40.searchContainer, children: /* @__PURE__ */ jsx109(SearchInput, {}) }), + showAssistant ? /* @__PURE__ */ jsx109(Box38, { sx: styles_default40.assistantSlot, children: /* @__PURE__ */ jsx109(ask_assistant_default, { ...assistant }) }) : null ] }), - /* @__PURE__ */ jsxs85(HeaderBrand.RightLinks, { sx: styles_default38.rightLinks, children: [ - /* @__PURE__ */ jsxs85( + /* @__PURE__ */ jsxs87(HeaderBrand.RightLinks, { sx: styles_default40.rightLinks, children: [ + /* @__PURE__ */ jsxs87( Flex34, { - sx: styles_default38.dropdownContainer, + sx: styles_default40.dropdownContainer, onMouseOver: () => setShowDropdown(true), onMouseLeave: () => setShowDropdown(false), children: [ - /* @__PURE__ */ jsxs85(Flex34, { sx: styles_default38.dropdownButton(showDropdown), children: [ - /* @__PURE__ */ jsx106(grid_icon_default, {}), - /* @__PURE__ */ jsx106(Text25, { sx: styles_default38.rightButtonsText, "data-cy": "docs-dropdown", children: isEditor ? localizedMessages["header.admin_tools"] : localizedMessages["header.docs"] }) + /* @__PURE__ */ jsxs87(Flex34, { sx: styles_default40.dropdownButton(showDropdown), children: [ + /* @__PURE__ */ jsx109(grid_icon_default, {}), + /* @__PURE__ */ jsx109(Text27, { sx: styles_default40.rightButtonsText, "data-cy": "docs-dropdown", children: isEditor ? localizedMessages["header.admin_tools"] : localizedMessages["header.docs"] }) ] }), - showDropdown && /* @__PURE__ */ jsx106(dropdown_menu_default, { sections: menuSections }) + showDropdown && /* @__PURE__ */ jsx109(dropdown_menu_default, { sections: menuSections }) ] } ), - extraRightLinks2 ? /* @__PURE__ */ jsx106(Box37, { sx: styles_default38.extraRightLinks, children: extraRightLinks2 }) : null, - feedbackUrl ? /* @__PURE__ */ jsxs85( + extraRightLinks2 ? /* @__PURE__ */ jsx109(Box38, { sx: styles_default40.extraRightLinks, children: extraRightLinks2 }) : null, + feedbackUrl ? /* @__PURE__ */ jsxs87( VtexLink, { - sx: styles_default38.rightLinksItem, + sx: styles_default40.rightLinksItem, href: feedbackUrl, target: "_blank", rel: "noreferrer", title: localizedMessages["header.feedback"], "aria-label": localizedMessages["header.feedback"], children: [ - /* @__PURE__ */ jsx106(long_arrow_icon_default, {}), - /* @__PURE__ */ jsx106(Text25, { sx: styles_default38.rightButtonsText, children: localizedMessages["header.feedback"] }) + /* @__PURE__ */ jsx109(long_arrow_icon_default, {}), + /* @__PURE__ */ jsx109(Text27, { sx: styles_default40.rightButtonsText, children: localizedMessages["header.feedback"] }) ] } ) : null ] }), - localeSwitcher ? /* @__PURE__ */ jsxs85(Flex34, { sx: styles_default38.headerEndActions, children: [ - /* @__PURE__ */ jsx106(Box37, { sx: styles_default38.hamburgerMenuToggle, children: /* @__PURE__ */ jsx106(hamburger_menu_default, { parentsArray }) }), - /* @__PURE__ */ jsx106(Box37, { sx: styles_default38.localeSwitcherSlot, children: localeSwitcher }) - ] }) : /* @__PURE__ */ jsx106(Box37, { sx: styles_default38.hamburgerMenuToggle, children: /* @__PURE__ */ jsx106(hamburger_menu_default, { parentsArray }) }) + localeSwitcher ? /* @__PURE__ */ jsxs87(Flex34, { sx: styles_default40.headerEndActions, children: [ + /* @__PURE__ */ jsx109(Box38, { sx: styles_default40.hamburgerMenuToggle, children: /* @__PURE__ */ jsx109(hamburger_menu_default, { parentsArray }) }), + /* @__PURE__ */ jsx109(Box38, { sx: styles_default40.localeSwitcherSlot, children: localeSwitcher }) + ] }) : /* @__PURE__ */ jsx109(Box38, { sx: styles_default40.hamburgerMenuToggle, children: /* @__PURE__ */ jsx109(hamburger_menu_default, { parentsArray }) }) ] }) ] }); }; var header_default = Header3; // src/components/announcement-bar/index.tsx -import { useEffect as useEffect28, useState as useState30 } from "react"; -import { Box as Box38, Button as Button10, Text as Text26, Link as Link13, Icon as Icon59 } from "@vtex/brand-ui"; +import { useEffect as useEffect28, useState as useState31 } from "react"; +import { Box as Box39, Button as Button10, Text as Text28, Link as Link13, Icon as Icon60 } from "@vtex/brand-ui"; // src/components/announcement-bar/styles.ts -var container14 = (type) => { +var container16 = (type) => { const background = { color: type == "warning" ? "#fff2d4" : "#fff9fa" }; @@ -19789,7 +20030,7 @@ var container14 = (type) => { } }; }; -var box2 = { +var box = { width: "100%", textAlign: "center" }; @@ -19810,7 +20051,7 @@ var label3 = (type) => { fontSize: "13px" }; }; -var button5 = (type) => { +var button6 = (type) => { const labelColor = { bgColor: type == "warning" ? "#ffe1a7" : "#feeaef" }; @@ -19830,21 +20071,21 @@ var text3 = { }; var closeIcon2 = { display: "block", - float: "right" -}; -var styles_default39 = { - button: button5, - container: container14, + float: "right" +}; +var styles_default41 = { + button: button6, + container: container16, closeIcon: closeIcon2, - box: box2, + box, label: label3, text: text3 }; // src/components/announcement-bar/index.tsx -import { jsx as jsx107, jsxs as jsxs86 } from "react/jsx-runtime"; -var CloseIcon2 = (props) => /* @__PURE__ */ jsxs86(Icon59, { ...props, children: [ - /* @__PURE__ */ jsx107( +import { jsx as jsx110, jsxs as jsxs88 } from "react/jsx-runtime"; +var CloseIcon2 = (props) => /* @__PURE__ */ jsxs88(Icon60, { ...props, children: [ + /* @__PURE__ */ jsx110( "path", { d: "M8 8L16 16", @@ -19854,7 +20095,7 @@ var CloseIcon2 = (props) => /* @__PURE__ */ jsxs86(Icon59, { ...props, children: strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx107( + /* @__PURE__ */ jsx110( "path", { d: "M16 8L8 16", @@ -19868,11 +20109,11 @@ var CloseIcon2 = (props) => /* @__PURE__ */ jsxs86(Icon59, { ...props, children: var AnnouncementBar = ({ closable, type, - action: { tag: tag4, button: button6, href, target = "_blank" }, + action: { tag: tag4, button: button7, href, target = "_blank" }, label: label4, children }) => { - const [visible, setVisible] = useState30(true); + const [visible, setVisible] = useState31(true); useEffect28(() => { if (!closable || !visible) return; @@ -19885,25 +20126,25 @@ var AnnouncementBar = ({ }, [closable, visible]); if (!visible) return null; - return /* @__PURE__ */ jsxs86(Box38, { sx: styles_default39.container(type), role: "status", "aria-label": "Announcement", children: [ - /* @__PURE__ */ jsxs86(Box38, { sx: styles_default39.box, children: [ - tag4 && /* @__PURE__ */ jsx107(Text26, { sx: styles_default39.label(type), children: tag4 }), - children ? /* @__PURE__ */ jsx107(Text26, { sx: styles_default39.text, children }) : null, - label4 ? /* @__PURE__ */ jsx107(Text26, { sx: styles_default39.text, children: label4 }) : null, - button6 && /* @__PURE__ */ jsx107(Link13, { sx: styles_default39.button(type), target, href, children: button6 }) + return /* @__PURE__ */ jsxs88(Box39, { sx: styles_default41.container(type), role: "status", "aria-label": "Announcement", children: [ + /* @__PURE__ */ jsxs88(Box39, { sx: styles_default41.box, children: [ + tag4 && /* @__PURE__ */ jsx110(Text28, { sx: styles_default41.label(type), children: tag4 }), + children ? /* @__PURE__ */ jsx110(Text28, { sx: styles_default41.text, children }) : null, + label4 ? /* @__PURE__ */ jsx110(Text28, { sx: styles_default41.text, children: label4 }) : null, + button7 && /* @__PURE__ */ jsx110(Link13, { sx: styles_default41.button(type), target, href, children: button7 }) ] }), - closable && /* @__PURE__ */ jsx107(Box38, { children: /* @__PURE__ */ jsx107( + closable && /* @__PURE__ */ jsx110(Box39, { children: /* @__PURE__ */ jsx110( Button10, { "aria-label": "Close Announcement Bar", - sx: styles_default39.closeIcon, + sx: styles_default41.closeIcon, variant: "tertiary", size: "small", onClick: (event) => { event.stopPropagation(); setVisible(false); }, - icon: () => /* @__PURE__ */ jsx107(CloseIcon2, {}) + icon: () => /* @__PURE__ */ jsx110(CloseIcon2, {}) } ) }) ] }); @@ -19911,7 +20152,7 @@ var AnnouncementBar = ({ var announcement_bar_default = AnnouncementBar; // src/components/tag/index.tsx -import { Text as Text27 } from "@vtex/brand-ui"; +import { Text as Text29 } from "@vtex/brand-ui"; // src/components/tag/styles.ts var tag = { @@ -19992,18 +20233,18 @@ var statusColors = { background: "#DFF5DB" } }; -var styles_default40 = { +var styles_default42 = { statusColors, tag }; // src/components/tag/index.tsx -import { jsx as jsx108 } from "react/jsx-runtime"; +import { jsx as jsx111 } from "react/jsx-runtime"; var Tag = ({ sx = {}, children, color = "Default", onClick }) => { - return /* @__PURE__ */ jsx108( - Text27, + return /* @__PURE__ */ jsx111( + Text29, { - sx: { ...styles_default40.tag, ...sx, ...styles_default40.statusColors[color] }, + sx: { ...styles_default42.tag, ...sx, ...styles_default42.statusColors[color] }, onClick, children } @@ -20012,20 +20253,20 @@ var Tag = ({ sx = {}, children, color = "Default", onClick }) => { var tag_default = Tag; // src/components/listing-filter/index.tsx -import { Box as Box39, Button as Button11, Checkbox, Flex as Flex35, Text as Text28 } from "@vtex/brand-ui"; +import { Box as Box40, Button as Button11, Checkbox, Flex as Flex35, Text as Text30 } from "@vtex/brand-ui"; // src/components/icons/filter-icon.tsx -import { Icon as Icon60 } from "@vtex/brand-ui"; -import { jsx as jsx109, jsxs as jsxs87 } from "react/jsx-runtime"; -var FilterIcon = (props) => /* @__PURE__ */ jsxs87( - Icon60, +import { Icon as Icon61 } from "@vtex/brand-ui"; +import { jsx as jsx112, jsxs as jsxs89 } from "react/jsx-runtime"; +var FilterIcon = (props) => /* @__PURE__ */ jsxs89( + Icon61, { ...props, viewBox: "0 0 16 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx109( + /* @__PURE__ */ jsx112( "path", { d: "M3.33333 4.5V2.5", @@ -20034,7 +20275,7 @@ var FilterIcon = (props) => /* @__PURE__ */ jsxs87( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx109( + /* @__PURE__ */ jsx112( "path", { d: "M3.33333 14.4998V7.1665", @@ -20043,7 +20284,7 @@ var FilterIcon = (props) => /* @__PURE__ */ jsxs87( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx109( + /* @__PURE__ */ jsx112( "path", { d: "M7.99984 9.83333V2.5", @@ -20052,7 +20293,7 @@ var FilterIcon = (props) => /* @__PURE__ */ jsxs87( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx109( + /* @__PURE__ */ jsx112( "path", { d: "M7.99984 14.5V12.5", @@ -20061,7 +20302,7 @@ var FilterIcon = (props) => /* @__PURE__ */ jsxs87( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx109( + /* @__PURE__ */ jsx112( "path", { d: "M12.6668 4.5V2.5", @@ -20070,7 +20311,7 @@ var FilterIcon = (props) => /* @__PURE__ */ jsxs87( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx109( + /* @__PURE__ */ jsx112( "path", { d: "M12.6668 14.4998V7.1665", @@ -20079,7 +20320,7 @@ var FilterIcon = (props) => /* @__PURE__ */ jsxs87( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx109( + /* @__PURE__ */ jsx112( "path", { d: "M4.27614 4.89052C4.79684 5.41122 4.79684 6.25544 4.27614 6.77614C3.75545 7.29684 2.91122 7.29684 2.39052 6.77614C1.86983 6.25545 1.86983 5.41122 2.39052 4.89052C2.91122 4.36983 3.75544 4.36983 4.27614 4.89052", @@ -20088,7 +20329,7 @@ var FilterIcon = (props) => /* @__PURE__ */ jsxs87( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx109( + /* @__PURE__ */ jsx112( "path", { d: "M8.94265 10.224C9.46335 10.7447 9.46335 11.5889 8.94265 12.1096C8.42195 12.6303 7.57773 12.6303 7.05703 12.1096C6.53633 11.5889 6.53633 10.7447 7.05703 10.224C7.57773 9.70332 8.42195 9.70332 8.94265 10.224", @@ -20097,7 +20338,7 @@ var FilterIcon = (props) => /* @__PURE__ */ jsxs87( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx109( + /* @__PURE__ */ jsx112( "path", { d: "M13.6096 4.89052C14.1303 5.41122 14.1303 6.25544 13.6096 6.77614C13.0889 7.29684 12.2447 7.29684 11.724 6.77614C11.2033 6.25545 11.2033 5.41122 11.724 4.89052C12.2447 4.36983 13.0889 4.36983 13.6096 4.89052", @@ -20112,17 +20353,17 @@ var FilterIcon = (props) => /* @__PURE__ */ jsxs87( var filter_icon_default = FilterIcon; // src/components/icons/trashcan-icon.tsx -import { Icon as Icon61 } from "@vtex/brand-ui"; -import { jsx as jsx110, jsxs as jsxs88 } from "react/jsx-runtime"; -var TrashcanIcon = (props) => /* @__PURE__ */ jsxs88( - Icon61, +import { Icon as Icon62 } from "@vtex/brand-ui"; +import { jsx as jsx113, jsxs as jsxs90 } from "react/jsx-runtime"; +var TrashcanIcon = (props) => /* @__PURE__ */ jsxs90( + Icon62, { ...props, viewBox: "0 0 19 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx110( + /* @__PURE__ */ jsx113( "path", { d: "M4.25 5.25H14.75", @@ -20132,7 +20373,7 @@ var TrashcanIcon = (props) => /* @__PURE__ */ jsxs88( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx110( + /* @__PURE__ */ jsx113( "path", { d: "M14 5.25V13.5C14 14.3288 13.3288 15 12.5 15H6.5C5.67125 15 5 14.3288 5 13.5V5.25", @@ -20142,7 +20383,7 @@ var TrashcanIcon = (props) => /* @__PURE__ */ jsxs88( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx110( + /* @__PURE__ */ jsx113( "path", { d: "M11.75 2.8125H7.25", @@ -20152,7 +20393,7 @@ var TrashcanIcon = (props) => /* @__PURE__ */ jsxs88( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx110( + /* @__PURE__ */ jsx113( "path", { d: "M8 8.25V12", @@ -20162,7 +20403,7 @@ var TrashcanIcon = (props) => /* @__PURE__ */ jsxs88( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx110( + /* @__PURE__ */ jsx113( "path", { d: "M11 8.25V12", @@ -20178,21 +20419,21 @@ var TrashcanIcon = (props) => /* @__PURE__ */ jsxs88( var trashcan_icon_default = TrashcanIcon; // src/components/listing-filter/index.tsx -import { useState as useState31 } from "react"; +import { useState as useState32 } from "react"; // src/components/listing-filter/normalize.ts function isFilterGroup(value) { return typeof value === "object" && value !== null && "name" in value && "options" in value && Array.isArray(value.options); } -function toFilterGroup(input3, name = "") { - if (!input3) +function toFilterGroup(input4, name = "") { + if (!input4) return void 0; - if (isFilterGroup(input3)) { - return input3; + if (isFilterGroup(input4)) { + return input4; } return { name, - options: input3.map((option) => ({ id: option, name: option })) + options: input4.map((option) => ({ id: option, name: option })) }; } function toFilterGroups(checkBoxFilter, checkBoxFilters, filterName = "") { @@ -20241,7 +20482,7 @@ var blanket = { alignItems: "center", zIndex: "9999" }; -var container15 = { +var container17 = { position: "fixed", top: "50%", left: "50%", @@ -20347,12 +20588,12 @@ var removeButton = { color: "#E31C58" } }; -var styles_default41 = { +var styles_default43 = { filterButton, filterButtonText, numberOfFilters, blanket, - container: container15, + container: container17, innerContainer: innerContainer4, topContainer, modalTitle: modalTitle2, @@ -20369,7 +20610,7 @@ var styles_default41 = { }; // src/components/listing-filter/index.tsx -import { Fragment as Fragment10, jsx as jsx111, jsxs as jsxs89 } from "react/jsx-runtime"; +import { Fragment as Fragment10, jsx as jsx114, jsxs as jsxs91 } from "react/jsx-runtime"; var defaultLabels = { button: "Filters", modalTitle: "Filters", @@ -20396,8 +20637,8 @@ var ListingFilter = ({ checkBoxFilters, filterName ); - const [isModalOpen, setIsModalOpen] = useState31(false); - const [tempFilters, setTempFilters] = useState31({ + const [isModalOpen, setIsModalOpen] = useState32(false); + const [tempFilters, setTempFilters] = useState32({ tag: [], checklist: [] }); @@ -20421,10 +20662,10 @@ var ListingFilter = ({ } return selectedCheckboxes?.includes(option) ?? false; } - const FilterButton = () => /* @__PURE__ */ jsxs89( + const FilterButton = () => /* @__PURE__ */ jsxs91( Flex35, { - sx: { ...styles_default41.filterButton, ...buttonSx }, + sx: { ...styles_default43.filterButton, ...buttonSx }, onClick: () => { setTempFilters({ checklist: selectedCheckboxes ?? [], @@ -20433,25 +20674,25 @@ var ListingFilter = ({ setIsModalOpen(true); }, children: [ - /* @__PURE__ */ jsx111(filter_icon_default, { size: 16 }), - /* @__PURE__ */ jsx111(Text28, { sx: styles_default41.filterButtonText, children: resolvedLabels.button }), - numberOfFilters2 > 0 && /* @__PURE__ */ jsx111(Text28, { sx: styles_default41.numberOfFilters, children: numberOfFilters2 }) + /* @__PURE__ */ jsx114(filter_icon_default, { size: 16 }), + /* @__PURE__ */ jsx114(Text30, { sx: styles_default43.filterButtonText, children: resolvedLabels.button }), + numberOfFilters2 > 0 && /* @__PURE__ */ jsx114(Text30, { sx: styles_default43.numberOfFilters, children: numberOfFilters2 }) ] } ); const TagFilter = () => { if (!normalizedTagFilter) return null; - return /* @__PURE__ */ jsxs89(Box39, { sx: styles_default41.filterContainer, children: [ - /* @__PURE__ */ jsx111(Text28, { sx: styles_default41.filterTitle, children: normalizedTagFilter.name }), - /* @__PURE__ */ jsx111( + return /* @__PURE__ */ jsxs91(Box40, { sx: styles_default43.filterContainer, children: [ + /* @__PURE__ */ jsx114(Text30, { sx: styles_default43.filterTitle, children: normalizedTagFilter.name }), + /* @__PURE__ */ jsx114( Flex35, { - sx: centeredTagOptions ? styles_default41.tagContainerCentered : styles_default41.tagContainer, - children: normalizedTagFilter.options.map((option) => /* @__PURE__ */ jsx111( + sx: centeredTagOptions ? styles_default43.tagContainerCentered : styles_default43.tagContainer, + children: normalizedTagFilter.options.map((option) => /* @__PURE__ */ jsx114( tag_default, { - sx: styles_default41.tag, + sx: styles_default43.tag, color: isFilterSelected(option.id, "tag") ? "Selected" : "Default", onClick: () => handleFilterClick(option.id, "tag"), children: option.name @@ -20465,11 +20706,11 @@ var ListingFilter = ({ const CheckboxFilters = () => { if (checkboxGroups.length === 0) return null; - return /* @__PURE__ */ jsx111(Fragment10, { children: checkboxGroups.map((group2, groupIndex) => /* @__PURE__ */ jsxs89(Box39, { children: [ - groupIndex > 0 && /* @__PURE__ */ jsx111(Divider, {}), - /* @__PURE__ */ jsxs89(Box39, { sx: styles_default41.filterContainer, children: [ - /* @__PURE__ */ jsx111(Text28, { sx: styles_default41.filterTitle, children: group2.name }), - /* @__PURE__ */ jsx111(Box39, { sx: styles_default41.checkBoxContainer, children: group2.options.map((option) => /* @__PURE__ */ jsx111( + return /* @__PURE__ */ jsx114(Fragment10, { children: checkboxGroups.map((group2, groupIndex) => /* @__PURE__ */ jsxs91(Box40, { children: [ + groupIndex > 0 && /* @__PURE__ */ jsx114(Divider, {}), + /* @__PURE__ */ jsxs91(Box40, { sx: styles_default43.filterContainer, children: [ + /* @__PURE__ */ jsx114(Text30, { sx: styles_default43.filterTitle, children: group2.name }), + /* @__PURE__ */ jsx114(Box40, { sx: styles_default43.checkBoxContainer, children: group2.options.map((option) => /* @__PURE__ */ jsx114( Checkbox, { label: option.name, @@ -20481,37 +20722,37 @@ var ListingFilter = ({ ] }) ] }, group2.name)) }); }; - const Divider = () => /* @__PURE__ */ jsx111(Box39, { sx: styles_default41.sectionDivider, children: /* @__PURE__ */ jsx111("hr", {}) }); - const FilterModal = () => /* @__PURE__ */ jsxs89(Fragment10, { children: [ - /* @__PURE__ */ jsx111(Box39, { sx: styles_default41.blanket, onClick: () => setIsModalOpen(false) }), - /* @__PURE__ */ jsxs89(Box39, { sx: styles_default41.container, children: [ - /* @__PURE__ */ jsxs89(Box39, { sx: styles_default41.topContainer, children: [ - /* @__PURE__ */ jsx111(Text28, { sx: styles_default41.modalTitle, children: resolvedLabels.modalTitle }), - /* @__PURE__ */ jsx111( + const Divider = () => /* @__PURE__ */ jsx114(Box40, { sx: styles_default43.sectionDivider, children: /* @__PURE__ */ jsx114("hr", {}) }); + const FilterModal = () => /* @__PURE__ */ jsxs91(Fragment10, { children: [ + /* @__PURE__ */ jsx114(Box40, { sx: styles_default43.blanket, onClick: () => setIsModalOpen(false) }), + /* @__PURE__ */ jsxs91(Box40, { sx: styles_default43.container, children: [ + /* @__PURE__ */ jsxs91(Box40, { sx: styles_default43.topContainer, children: [ + /* @__PURE__ */ jsx114(Text30, { sx: styles_default43.modalTitle, children: resolvedLabels.modalTitle }), + /* @__PURE__ */ jsx114( Flex35, { - sx: styles_default41.closeButtonContainer, + sx: styles_default43.closeButtonContainer, onClick: () => setIsModalOpen(false), - children: /* @__PURE__ */ jsx111(close_icon_default, { size: 32 }) + children: /* @__PURE__ */ jsx114(close_icon_default, { size: 32 }) } ) ] }), - /* @__PURE__ */ jsxs89(Box39, { sx: styles_default41.innerContainer, children: [ - /* @__PURE__ */ jsx111(TagFilter, {}), - normalizedTagFilter && checkboxGroups.length > 0 && /* @__PURE__ */ jsx111(Divider, {}), - /* @__PURE__ */ jsx111(CheckboxFilters, {}) + /* @__PURE__ */ jsxs91(Box40, { sx: styles_default43.innerContainer, children: [ + /* @__PURE__ */ jsx114(TagFilter, {}), + normalizedTagFilter && checkboxGroups.length > 0 && /* @__PURE__ */ jsx114(Divider, {}), + /* @__PURE__ */ jsx114(CheckboxFilters, {}) ] }), - /* @__PURE__ */ jsxs89(Flex35, { sx: styles_default41.buttonsContainer, children: [ - /* @__PURE__ */ jsx111( + /* @__PURE__ */ jsxs91(Flex35, { sx: styles_default43.buttonsContainer, children: [ + /* @__PURE__ */ jsx114( Button11, { - sx: styles_default41.removeButton, - icon: () => /* @__PURE__ */ jsx111(trashcan_icon_default, { sx: { mr: "8px" }, size: 18 }), + sx: styles_default43.removeButton, + icon: () => /* @__PURE__ */ jsx114(trashcan_icon_default, { sx: { mr: "8px" }, size: 18 }), onClick: () => setTempFilters({ tag: [], checklist: [] }), children: resolvedLabels.remove } ), - /* @__PURE__ */ jsx111( + /* @__PURE__ */ jsx114( Button11, { onClick: () => { @@ -20524,16 +20765,16 @@ var ListingFilter = ({ ] }) ] }) ] }); - return /* @__PURE__ */ jsxs89(Fragment10, { children: [ - /* @__PURE__ */ jsx111(FilterButton, {}), - isModalOpen && /* @__PURE__ */ jsx111(FilterModal, {}) + return /* @__PURE__ */ jsxs91(Fragment10, { children: [ + /* @__PURE__ */ jsx114(FilterButton, {}), + isModalOpen && /* @__PURE__ */ jsx114(FilterModal, {}) ] }); }; var listing_filter_default = ListingFilter; // src/components/chip-filter/index.tsx -import { Box as Box40, Flex as Flex36, Button as Button12, Text as Text29 } from "@vtex/brand-ui"; -import { useEffect as useEffect29, useRef as useRef17, useState as useState32 } from "react"; +import { Box as Box41, Flex as Flex36, Button as Button12, Text as Text31 } from "@vtex/brand-ui"; +import { useEffect as useEffect29, useRef as useRef17, useState as useState33 } from "react"; // src/components/chip-filter/styles.ts var chipButtonWrapper = { @@ -20664,7 +20905,7 @@ var rightArrowContainer = { pointerEvents: "auto" } }; -var styles_default42 = { +var styles_default44 = { leftArrowBlur, rightArrowBlur, arrowButton: arrowButton2, @@ -20680,7 +20921,7 @@ var styles_default42 = { }; // src/components/chip-filter/index.tsx -import { jsx as jsx112, jsxs as jsxs90 } from "react/jsx-runtime"; +import { jsx as jsx115, jsxs as jsxs92 } from "react/jsx-runtime"; var ChipFilter = ({ filters, categories, @@ -20691,7 +20932,7 @@ var ChipFilter = ({ allResultsLabel = "All results" }) => { const containerRef = useRef17(null); - const [shouldDisplayArrows, setShouldDisplayArrows] = useState32({ left: false, right: false }); + const [shouldDisplayArrows, setShouldDisplayArrows] = useState33({ left: false, right: false }); const totalCount = categories.reduce( (sum, category) => sum + getCategoryAmount(category.type), 0 @@ -20727,28 +20968,28 @@ var ChipFilter = ({ window.addEventListener("resize", handleContainerScroll); return () => window.removeEventListener("resize", handleContainerScroll); }, [categories, filters]); - return /* @__PURE__ */ jsxs90(Flex36, { sx: styles_default42.chipButtonWrapper, children: [ - shouldDisplayArrows.left && /* @__PURE__ */ jsxs90(Box40, { sx: styles_default42.leftArrowContainer, children: [ - /* @__PURE__ */ jsx112( + return /* @__PURE__ */ jsxs92(Flex36, { sx: styles_default44.chipButtonWrapper, children: [ + shouldDisplayArrows.left && /* @__PURE__ */ jsxs92(Box41, { sx: styles_default44.leftArrowContainer, children: [ + /* @__PURE__ */ jsx115( Button12, { variant: "tertiary", size: "small", - sx: styles_default42.arrowButton, + sx: styles_default44.arrowButton, onClick: handleLeftArrowClick, children: `\u2039` } ), - /* @__PURE__ */ jsx112(Box40, { sx: styles_default42.leftArrowBlur }) + /* @__PURE__ */ jsx115(Box41, { sx: styles_default44.leftArrowBlur }) ] }), - /* @__PURE__ */ jsx112( - Box40, + /* @__PURE__ */ jsx115( + Box41, { - sx: styles_default42.chipsContainer, + sx: styles_default44.chipsContainer, ref: containerRef, onScroll: handleContainerScroll, - children: /* @__PURE__ */ jsxs90(Box40, { sx: styles_default42.optionsContainer, children: [ - /* @__PURE__ */ jsx112( + children: /* @__PURE__ */ jsxs92(Box41, { sx: styles_default44.optionsContainer, children: [ + /* @__PURE__ */ jsx115( FilterChip, { value: allResultsLabel, @@ -20757,7 +20998,7 @@ var ChipFilter = ({ applyCategory: () => resetFilters() } ), - categories.map((category) => /* @__PURE__ */ jsx112( + categories.map((category) => /* @__PURE__ */ jsx115( FilterChip, { value: category.title, @@ -20771,18 +21012,18 @@ var ChipFilter = ({ ] }) } ), - shouldDisplayArrows.right && /* @__PURE__ */ jsxs90(Box40, { sx: styles_default42.rightArrowContainer, children: [ - /* @__PURE__ */ jsx112( + shouldDisplayArrows.right && /* @__PURE__ */ jsxs92(Box41, { sx: styles_default44.rightArrowContainer, children: [ + /* @__PURE__ */ jsx115( Button12, { variant: "tertiary", size: "small", - sx: styles_default42.arrowButton, + sx: styles_default44.arrowButton, onClick: handleRightArrowClick, children: `\u203A` } ), - /* @__PURE__ */ jsx112(Box40, { sx: styles_default42.rightArrowBlur }) + /* @__PURE__ */ jsx115(Box41, { sx: styles_default44.rightArrowBlur }) ] }) ] }); }; @@ -20791,82 +21032,737 @@ function FilterChip({ isActive, count: count2, applyCategory, - Icon: Icon81 + Icon: Icon82 }) { - return /* @__PURE__ */ jsxs90(Flex36, { sx: styles_default42.chip(isActive), onClick: applyCategory, children: [ - Icon81 ? /* @__PURE__ */ jsx112(Icon81, { sx: styles_default42.chipIcon }) : null, - /* @__PURE__ */ jsx112(Text29, { className: "filter-chip-title", sx: styles_default42.chipTitle(isActive), children: value }), - /* @__PURE__ */ jsx112(Text29, { sx: styles_default42.chipCount, children: count2 }) + return /* @__PURE__ */ jsxs92(Flex36, { sx: styles_default44.chip(isActive), onClick: applyCategory, children: [ + Icon82 ? /* @__PURE__ */ jsx115(Icon82, { sx: styles_default44.chipIcon }) : null, + /* @__PURE__ */ jsx115(Text31, { className: "filter-chip-title", sx: styles_default44.chipTitle(isActive), children: value }), + /* @__PURE__ */ jsx115(Text31, { sx: styles_default44.chipCount, children: count2 }) ] }); } var chip_filter_default = ChipFilter; // src/components/author/index.tsx -import { Box as Box41, Flex as Flex37, Text as Text30 } from "@vtex/brand-ui"; +import { Box as Box42, Flex as Flex37, Text as Text32 } from "@vtex/brand-ui"; // src/components/author/styles.ts -var container16 = { +var container18 = { + alignItems: "center", + columnGap: "16px", + pt: "14px" +}; +var photo2 = { + width: "32px", + height: "32px", + img: { + width: "32px", + height: "32px", + borderRadius: "100%" + } +}; +var styles_default45 = { + container: container18, + photo: photo2 +}; + +// src/components/author/index.tsx +import { jsx as jsx116, jsxs as jsxs93 } from "react/jsx-runtime"; +var Author = ({ contributor }) => { + return /* @__PURE__ */ jsxs93(Flex37, { sx: styles_default45.container, children: [ + /* @__PURE__ */ jsx116(Box42, { sx: styles_default45.photo, children: /* @__PURE__ */ jsx116( + "img", + { + src: contributor?.avatar, + alt: "Photo of the author", + width: 32, + height: 32 + } + ) }, contributor?.login), + /* @__PURE__ */ jsx116(Text32, { children: contributor?.name }) + ] }); +}; +var author_default = Author; + +// src/components/time-to-read/index.tsx +import { useContext as useContext32 } from "react"; +import { Text as Text33 } from "@vtex/brand-ui"; + +// src/components/time-to-read/styles.ts +var readingTime = { + color: "#A1AAB7", + fontSize: ["14px", "16px"], + lineHeight: "22px" +}; +var styles_default46 = { + readingTime +}; + +// src/components/time-to-read/index.tsx +import { jsx as jsx117 } from "react/jsx-runtime"; +var TimeToRead = ({ minutes }) => { + const { locale } = useContext32(LibraryContext); + const template = messages[locale]["documentation_reading_time.text"] || "{minutes} min read"; + return /* @__PURE__ */ jsx117(Text33, { sx: styles_default46.readingTime, children: template.replace("{minutes}", minutes) }); +}; +var time_to_read_default = TimeToRead; + +// src/components/date-text/index.tsx +import { useContext as useContext33 } from "react"; +import { Flex as Flex38, Text as Text34 } from "@vtex/brand-ui"; + +// src/components/date-text/styles.ts +var dateContainer = { + alignItems: "center", + color: "#5E6E84", + fontSize: "13px", + lineHeight: "20px", + fontWeight: "400", + columnGap: "6px", + rowGap: "2px", + flexWrap: "wrap", + width: "100%" +}; +var dateItem = { + color: "inherit", + fontSize: "inherit", + lineHeight: "inherit" +}; +var dateLabel = { + fontWeight: "500", + paddingRight: "4px" +}; +var dateSeparator = { + color: "#8A94A3", + flexShrink: 0 +}; +var styles_default47 = { dateContainer, dateItem, dateLabel, dateSeparator }; + +// src/components/date-text/index.tsx +import { jsx as jsx118, jsxs as jsxs94 } from "react/jsx-runtime"; +var formatDate = (date, locale) => new Intl.DateTimeFormat(locale).format(date); +var DateText = ({ createdAt, updatedAt }) => { + const { locale } = useContext33(LibraryContext); + const createdLabel = messages[locale]["date_text.created"] || "Published on"; + const updatedLabel = messages[locale]["date_text.updated"] || "Last updated on"; + return /* @__PURE__ */ jsxs94(Flex38, { sx: styles_default47.dateContainer, children: [ + /* @__PURE__ */ jsxs94(Text34, { sx: styles_default47.dateItem, children: [ + /* @__PURE__ */ jsx118(Text34, { as: "span", sx: styles_default47.dateLabel, children: createdLabel }), + formatDate(createdAt, locale) + ] }), + /* @__PURE__ */ jsx118(Text34, { sx: styles_default47.dateSeparator, children: "\u2022" }), + /* @__PURE__ */ jsxs94(Text34, { sx: styles_default47.dateItem, children: [ + /* @__PURE__ */ jsx118(Text34, { as: "span", sx: styles_default47.dateLabel, children: updatedLabel }), + formatDate(updatedAt, locale) + ] }) + ] }); +}; +var date_text_default = DateText; + +// src/components/article-pagination/index.tsx +import { useContext as useContext34 } from "react"; +import Link14 from "next/link.js"; +import { Flex as Flex39, Text as Text35, Box as Box43 } from "@vtex/brand-ui"; + +// src/components/article-pagination/styles.ts +var mainContainer = { + width: "100%", + mt: ["20px", "32px"], + mb: ["24px", "52px"], + maxWidth: "100%", + minWidth: 0, + borderTop: "1px solid #E7E9EE", + pt: ["20px", "32px"] +}; +var flexContainer = { + display: "flex", + flexDirection: "row", + justifyContent: "space-between", + alignItems: "stretch", + gap: ["16px", "16px"], + width: "100%", + minWidth: 0 +}; +var paginationBox = { + width: "100%", + minWidth: 0, + padding: ["0", "16px"], + borderRadius: ["0", "4px"], + border: ["none", "1px solid #E7E9EE"], + color: "#4A596B", + display: "flex", + flexDirection: "column", + justifyContent: "center", + gap: "4px", + boxSizing: "border-box", + ":hover": { + border: ["none", "1px solid #CCCED8"], + boxShadow: ["none", "0px 0px 16px rgba(0, 0, 0, 0.1)"], + color: "#000711" + } +}; +var paginationBoxNext = { + ...paginationBox, + alignItems: "flex-end", + textAlign: "right" +}; +var paginationText = { + width: "100%", + minWidth: 0, + overflow: "hidden", + textOverflow: "ellipsis", + display: "-webkit-box", + "-webkit-line-clamp": "2", + "-webkit-box-orient": "vertical", + overflowWrap: "anywhere", + whiteSpace: "normal", + fontSize: ["15px", "16px"], + lineHeight: ["20px", "22px"], + color: "#4A596B" +}; +var subTitle = { + color: "#A1A8B3", + fontSize: ["12px", "0.85em"], + lineHeight: "16px", + fontWeight: "500", + flexShrink: 0 +}; +var linkReset2 = { + width: "100%", + minWidth: 0, + display: "block", + textDecoration: "none", + color: "inherit" +}; +var paginationLinkPrevious = { + width: ["auto", "230px"], + maxWidth: ["none", "230px"], + minWidth: 0, + flex: ["1 1 0", "0 0 auto"] +}; +var paginationLinkNext = { + width: ["auto", "230px"], + maxWidth: ["none", "230px"], + minWidth: 0, + ml: "auto", + flex: ["1 1 0", "0 0 auto"] +}; +var styles_default48 = { + mainContainer, + flexContainer, + linkReset: linkReset2, + paginationLinkNext, + paginationLinkPrevious, + paginationBox, + paginationBoxNext, + paginationText, + subTitle +}; + +// src/components/article-pagination/index.tsx +import { jsx as jsx119, jsxs as jsxs95 } from "react/jsx-runtime"; +var ArticlePagination = ({ + pagination, + hidePaginationNext = false, + hidePaginationPrevious = false +}) => { + const { locale } = useContext34(LibraryContext); + const previousLabel = messages[locale]["article_pagination.previous"] || "Previous"; + const nextLabel = messages[locale]["article_pagination.next"] || "Next"; + const showPrevious = !hidePaginationPrevious && Boolean(pagination?.previousDoc?.slug) && Boolean(pagination?.previousDoc?.name); + const showNext = !hidePaginationNext && Boolean(pagination?.nextDoc?.slug) && Boolean(pagination?.nextDoc?.name); + return /* @__PURE__ */ jsx119(Box43, { as: "nav", sx: styles_default48.mainContainer, children: /* @__PURE__ */ jsxs95(Flex39, { sx: styles_default48.flexContainer, children: [ + showPrevious && /* @__PURE__ */ jsx119(Box43, { sx: styles_default48.paginationLinkPrevious, children: /* @__PURE__ */ jsx119( + Link14, + { + style: styles_default48.linkReset, + href: pagination.previousDoc.slug, + locale, + children: /* @__PURE__ */ jsxs95(Box43, { sx: styles_default48.paginationBox, children: [ + /* @__PURE__ */ jsx119(Text35, { sx: styles_default48.subTitle, children: `\xAB ${previousLabel}` }), + /* @__PURE__ */ jsx119(Text35, { sx: styles_default48.paginationText, children: pagination.previousDoc.name }) + ] }) + } + ) }), + showNext && /* @__PURE__ */ jsx119(Box43, { sx: styles_default48.paginationLinkNext, children: /* @__PURE__ */ jsx119( + Link14, + { + style: styles_default48.linkReset, + href: pagination.nextDoc.slug, + locale, + children: /* @__PURE__ */ jsxs95(Box43, { sx: styles_default48.paginationBoxNext, children: [ + /* @__PURE__ */ jsx119(Text35, { sx: styles_default48.subTitle, children: `${nextLabel} \xBB` }), + /* @__PURE__ */ jsx119(Text35, { sx: styles_default48.paginationText, children: pagination.nextDoc.name }) + ] }) + } + ) }) + ] }) }); +}; +var article_pagination_default = ArticlePagination; + +// src/components/article-render/index.tsx +import Head from "next/head.js"; +import { Box as Box44, Flex as Flex40, Text as Text36 } from "@vtex/brand-ui"; + +// src/components/article-render/styles.ts +var MUTED = "#5E6E84"; +var innerContainer5 = { + justifyContent: "center", + width: "100%", + minWidth: 0, + boxSizing: "border-box", + pt: ["24px", "32px", "3em"], + mx: "auto", + px: ["18px", "24px", "32px", "40px", "48px", "64px", "20em"], + pb: ["48px", "64px", "72px"] +}; +var articleBox = { + fontSize: "1em", + lineHeight: "1.75em", + flex: "1 1 auto", + width: "100%", + minWidth: 0, + maxWidth: "100%", + color: "rgb(51, 65, 85)", + overflowWrap: "anywhere", + img: { + maxWidth: "100%", + height: "auto" + }, + pre: { + maxWidth: "100%", + overflowX: "auto" + }, + iframe: { + maxWidth: "100%" + }, + a: { + color: "#E31C58", + textDecoration: "none", + fontWeight: "500" + }, + ul: { + pl: "1.5em", + mt: "1.25em", + mb: "1.25em", + li: { + mt: "0.5em", + mb: "0.5em" + }, + listStyleType: "disc", + "ul, ol": { + mt: "0.5em", + mb: "0.5em" + } + }, + ol: { + pl: "1.5em", + mt: "1.25em", + mb: "1.25em", + li: { + mt: "0.5em", + mb: "0.5em" + }, + "ul, ol": { + mt: "0.5em", + mb: "0.5em" + } + }, + header: { + marginTop: ["8px", "16px"], + borderBottom: "1px solid #E7E9EE", + marginBottom: ["8px", "12px"], + pb: ["12px", "16px"] + }, + h2: { + fontSize: "1.375em", + lineHeight: "1.3em", + fontWeight: "700", + mt: ["1.5em", "2em"], + mb: ["0.75em", "1em"], + overflowWrap: "anywhere", + color: "rgb(15, 23, 42)" + }, + h3: { + fontSize: "1.125em", + fontWeight: "600", + lineHeight: "1.6em", + mt: "1.6em", + mb: "0.6em", + overflowWrap: "anywhere" + }, + h4: { + fontSize: "1em", + fontWeight: "600", + lineHeight: "1.5em", + mt: "1.5em", + mb: "0.5em", + color: "rgb(15, 23, 42)", + overflowWrap: "anywhere" + }, + h5: { + fontSize: "0.9375em", + fontWeight: "600", + lineHeight: "1.5em", + mt: "1.25em", + mb: "0.5em", + color: "rgb(71, 85, 105)", + overflowWrap: "anywhere" + }, + h6: { + fontSize: "0.9375em", + fontWeight: "600", + lineHeight: "1.5em", + mt: "1.25em", + mb: "0.5em", + color: "rgb(100, 116, 139)", + overflowWrap: "anywhere" + }, + strong: { + fontWeight: "600", + overflowWrap: "break-word" + }, + hr: { + border: "0.5px solid #E7E9EE", + my: ["2em", "3em"] + } +}; +var contentContainer2 = { + width: "100%", + minWidth: 0, + maxWidth: "100%" +}; +var documentationTitle = { + marginTop: "16px", + fontSize: ["24px", "28px"], + lineHeight: ["32px", "36px"], + fontWeight: "400", + color: "#142032", + overflowWrap: "anywhere" +}; +var documentationExcerpt = { + color: "#A1A8B3", + padding: ["8px 0 16px", "8px 0 24px"], + lineHeight: ["20px", "22px"], + fontWeight: "400", + overflowWrap: "anywhere" +}; +var breadcrumbRow = { + justifyContent: "space-between", + alignItems: "flex-start", + flexWrap: "wrap", + gap: "8px", + width: "100%", + minWidth: 0 +}; +var articleHeaderExtra = { + mt: ["8px", "10px"], + width: "100%", + minWidth: 0 +}; +var articleMeta = { + flexDirection: "column-reverse", + justifyContent: "flex-start", + alignItems: "stretch", + gap: "10px", + marginBottom: ["16px", "20px"], + marginTop: "0", + width: "100%", + minWidth: 0, + "@media screen and (min-width: 40em)": { + flexDirection: "row", + justifyContent: "space-between", + alignItems: "center", + flexWrap: "wrap", + gap: "8px 16px" + } +}; +var articleMetaInfo = { + flexDirection: "column", + alignItems: "flex-start", + justifyContent: "flex-start", + gap: "2px", + minWidth: 0, + width: "100%", + flex: "0 0 auto", + "@media screen and (min-width: 40em)": { + width: "auto", + flex: "1 1 auto" + } +}; +var articleReadingTime = { + color: MUTED, + fontSize: "13px", + lineHeight: "20px", + "& > *": { + color: "inherit !important", + fontSize: "inherit !important", + lineHeight: "inherit !important" + } +}; +var articleActions = { + display: "flex", alignItems: "center", - columnGap: "16px", - pt: "14px" + justifyContent: "flex-start", + gap: "8px", + flexShrink: 0, + ml: 0, + width: "100%", + minWidth: 0, + "& > div": { + width: "max-content", + flexShrink: 0 + }, + '& [role="menu"]': { + right: 0 + }, + "@media screen and (min-width: 40em)": { + justifyContent: "flex-end", + ml: "auto", + width: "auto" + } }; -var photo2 = { - width: "32px", - height: "32px", - img: { - width: "32px", - height: "32px", - borderRadius: "100%" +var bottomContributorsContainer = { + display: ["flex", "flex", "flex", "flex", "none"], + flexDirection: "column", + alignItems: "center", + width: "100%", + minWidth: 0, + pt: ["20px", "24px"], + gap: ["24px", "24px"], + '[data-cy="feedback-section"]': { + marginTop: "0", + marginBottom: "0", + gap: "12px", + "& > div:first-of-type": { + borderBottom: "none", + paddingBottom: 0, + marginBottom: 0, + marginTop: 0 + } } }; -var styles_default43 = { - container: container16, - photo: photo2 +var bottomContributors = { + width: "100%", + display: "flex", + flexDirection: "column", + alignItems: "center", + "& > div": { + alignItems: "center !important", + width: "auto !important", + mb: "0 !important" + }, + '[data-cy="contributors-container"]': { + display: "flex !important", + flexWrap: "wrap", + justifyContent: "center", + width: "auto !important", + maxWidth: "232px" + } }; - -// src/components/author/index.tsx -import { jsx as jsx113, jsxs as jsxs91 } from "react/jsx-runtime"; -var Author = ({ contributor }) => { - return /* @__PURE__ */ jsxs91(Flex37, { sx: styles_default43.container, children: [ - /* @__PURE__ */ jsx113(Box41, { sx: styles_default43.photo, children: /* @__PURE__ */ jsx113( - "img", - { - src: contributor?.avatar, - alt: "Photo of the author", - width: 32, - height: 32 - } - ) }, contributor?.login), - /* @__PURE__ */ jsx113(Text30, { children: contributor?.name }) - ] }); +var rightContainer = { + ml: [0, 0, 0, 0, "48px", "68px", "200px"], + display: [ + "none !important", + "none !important", + "none !important", + "none !important", + "initial !important" + ], + flexShrink: 0, + width: [0, 0, 0, 0, "240px", "240px", "284px"] }; -var author_default = Author; - -// src/components/time-to-read/index.tsx -import { useContext as useContext30 } from "react"; -import { Text as Text31 } from "@vtex/brand-ui"; - -// src/components/time-to-read/styles.ts -var readingTime = { - color: "#A1AAB7", - fontSize: ["14px", "16px"], - lineHeight: "22px" +var divider2 = { + borderTop: "1px solid #E7E9EE", + pt: 4, + mt: 4 }; -var styles_default44 = { - readingTime +var textContainer = { + width: "100%", + minWidth: 0, + maxWidth: "100%", + gap: "8px", + pb: ["16px", "24px", "32px"], + mb: ["8px", "24px", "48px"] +}; +var editContainer = { + my: 3, + gap: 2 +}; +var styles_default49 = { + innerContainer: innerContainer5, + articleBox, + contentContainer: contentContainer2, + documentationTitle, + documentationExcerpt, + breadcrumbRow, + articleHeaderExtra, + articleMeta, + articleMetaInfo, + articleReadingTime, + articleActions, + bottomContributorsContainer, + bottomContributors, + rightContainer, + divider: divider2, + textContainer, + editContainer +}; + +// src/components/article-render/index.tsx +import { Fragment as Fragment11, jsx as jsx120, jsxs as jsxs96 } from "react/jsx-runtime"; +var readingTimeLabel = (readingTime2) => { + if (readingTime2 == null || readingTime2 === "") + return void 0; + if (typeof readingTime2 === "object" && readingTime2 !== null && "text" in readingTime2) { + const text4 = readingTime2.text; + return text4 != null ? String(text4) : void 0; + } + return String(readingTime2); }; - -// src/components/time-to-read/index.tsx -import { jsx as jsx114 } from "react/jsx-runtime"; -var TimeToRead = ({ minutes }) => { - const { locale } = useContext30(LibraryContext); - const template = messages[locale]["documentation_reading_time.text"] || "{minutes} min read"; - return /* @__PURE__ */ jsx114(Text31, { sx: styles_default44.readingTime, children: template.replace("{minutes}", minutes) }); +var ArticleRender = ({ + serialized, + headings: headings2 = [], + headingList, + breadcrumbList, + contributors = [], + path, + pagination, + slug, + type, + pageUrl, + urlToEdit, + rawContentBaseUrl, + children, + seeAlso, + customComponents, + scope = {}, + renderMarkdown, + showReadingTime = true, + showAskAIMenu = true, + showAuthor = false, + showContributors = true, + showFeedbackSection = true, + showSuggestEdits = true, + showArticlePagination = true, + showTableOfContents = true, + showDateText = true +}) => { + const tocHeadings = headingList?.length ? headingList : headings2; + const readingTime2 = readingTimeLabel(serialized?.frontmatter?.readingTime); + const showBottomSection = showContributors || showFeedbackSection; + const showSidebar = showContributors || showTableOfContents; + const markdown2 = /* @__PURE__ */ jsx120( + MarkdownRenderer_default, + { + serialized, + customComponents, + scope + } + ); + return /* @__PURE__ */ jsxs96(Fragment11, { children: [ + /* @__PURE__ */ jsx120(Head, { children: /* @__PURE__ */ jsxs96(Fragment11, { children: [ + /* @__PURE__ */ jsx120("meta", { name: "docsearch:doctype", content: type }), + serialized?.frontmatter?.title && /* @__PURE__ */ jsx120("title", { children: serialized?.frontmatter?.title }), + serialized?.frontmatter?.title && /* @__PURE__ */ jsx120( + "meta", + { + name: "docsearch:doctitle", + content: serialized?.frontmatter?.title + } + ), + serialized.frontmatter?.hidden && /* @__PURE__ */ jsx120("meta", { name: "robots", content: "noindex" }), + serialized.frontmatter?.excerpt && /* @__PURE__ */ jsx120( + "meta", + { + property: "og:description", + content: serialized.frontmatter?.excerpt + } + ) + ] }) }), + /* @__PURE__ */ jsxs96(Flex40, { sx: styles_default49.innerContainer, children: [ + /* @__PURE__ */ jsxs96(Box44, { sx: styles_default49.articleBox, children: [ + /* @__PURE__ */ jsxs96(Box44, { sx: styles_default49.contentContainer, children: [ + /* @__PURE__ */ jsx120(Flex40, { sx: styles_default49.breadcrumbRow, children: /* @__PURE__ */ jsx120(breadcrumb_default, { breadcrumbList }) }), + /* @__PURE__ */ jsx120(Box44, { sx: styles_default49.textContainer, children: /* @__PURE__ */ jsxs96("article", { children: [ + /* @__PURE__ */ jsx120("header", { children: /* @__PURE__ */ jsxs96(Fragment11, { children: [ + /* @__PURE__ */ jsxs96(Text36, { sx: styles_default49.documentationTitle, className: "title", children: [ + serialized.frontmatter?.title, + /* @__PURE__ */ jsx120(copy_heading_link_default, {}) + ] }), + children && /* @__PURE__ */ jsx120(Box44, { sx: styles_default49.articleHeaderExtra, children }), + showAuthor && contributors[0]?.avatar && /* @__PURE__ */ jsx120(author_default, { contributor: contributors[0] }), + serialized.frontmatter?.excerpt && /* @__PURE__ */ jsx120(Text36, { sx: styles_default49.documentationExcerpt, children: serialized.frontmatter?.excerpt }) + ] }) }), + /* @__PURE__ */ jsxs96(Flex40, { sx: styles_default49.articleMeta, children: [ + (showDateText || showReadingTime && readingTime2) && /* @__PURE__ */ jsxs96(Flex40, { sx: styles_default49.articleMetaInfo, children: [ + showDateText && /* @__PURE__ */ jsx120( + date_text_default, + { + createdAt: new Date(String(serialized.frontmatter?.createdAt)), + updatedAt: new Date(String(serialized.frontmatter?.updatedAt)) + } + ), + showReadingTime && readingTime2 && /* @__PURE__ */ jsx120(Box44, { sx: styles_default49.articleReadingTime, children: /* @__PURE__ */ jsx120(time_to_read_default, { minutes: readingTime2 }) }) + ] }), + /* @__PURE__ */ jsxs96(Flex40, { sx: styles_default49.articleActions, children: [ + /* @__PURE__ */ jsx120(feedback_modal_default, { pageUrl }), + showAskAIMenu && /* @__PURE__ */ jsx120( + ask_ai_default, + { + filePath: path, + pageUrl, + rawContentBaseUrl + } + ) + ] }) + ] }), + renderMarkdown ? renderMarkdown(markdown2) : markdown2 + ] }) }) + ] }), + showBottomSection && /* @__PURE__ */ jsxs96(Box44, { sx: styles_default49.bottomContributorsContainer, children: [ + showContributors && /* @__PURE__ */ jsx120(Box44, { sx: styles_default49.bottomContributors, children: /* @__PURE__ */ jsx120(Contributors_default, { contributors }) }), + showFeedbackSection && /* @__PURE__ */ jsx120( + feedback_section_default, + { + slug, + urlToEdit, + pageUrl, + suggestEdits: showSuggestEdits + } + ) + ] }), + showArticlePagination && pagination && /* @__PURE__ */ jsx120( + article_pagination_default, + { + hidePaginationNext: Boolean(serialized.frontmatter?.hidePaginationNext) || false, + hidePaginationPrevious: Boolean(serialized.frontmatter?.hidePaginationPrevious) || false, + pagination + } + ), + seeAlso + ] }), + showSidebar && /* @__PURE__ */ jsxs96(Box44, { sx: styles_default49.rightContainer, children: [ + showContributors && /* @__PURE__ */ jsx120(Contributors_default, { contributors }), + showTableOfContents && /* @__PURE__ */ jsx120(TableOfContents_default, { headingList: tocHeadings, children: (showFeedbackSection || showSuggestEdits) && /* @__PURE__ */ jsxs96(Box44, { sx: styles_default49.divider, children: [ + showFeedbackSection && /* @__PURE__ */ jsx120(feedback_section_default, { slug, small: true, suggestEdits: false }), + showSuggestEdits && /* @__PURE__ */ jsx120( + suggest_edits_default, + { + urlToEdit, + small: true, + sx: styles_default49.editContainer + } + ) + ] }) }) + ] }), + showTableOfContents && /* @__PURE__ */ jsx120(OnThisPage_default, { headingList: tocHeadings }) + ] }) + ] }); }; -var time_to_read_default = TimeToRead; +var article_render_default = ArticleRender; // src/components/troubleshooting-card/index.tsx -import { Box as Box42, Link as Link14, Text as Text32 } from "@vtex/brand-ui"; +import { Box as Box45, Link as Link15, Text as Text37 } from "@vtex/brand-ui"; // src/components/troubleshooting-card/styles.ts var devportalContainer = { @@ -20969,7 +21865,7 @@ var helpcenterTagsContainer = { flexWrap: "wrap", alignItems: "center" }; -var styles_default45 = { +var styles_default50 = { devportalContainer, helpcenterContainer, title: title8, @@ -20983,7 +21879,7 @@ var styles_default45 = { }; // src/components/troubleshooting-card/index.tsx -import { jsx as jsx115, jsxs as jsxs92 } from "react/jsx-runtime"; +import { jsx as jsx121, jsxs as jsxs97 } from "react/jsx-runtime"; function buildHref({ slug, href, @@ -21011,8 +21907,8 @@ var TroubleshootingCard = ({ const fallbackTags = tags?.filter(Boolean) ?? []; const hasStructuredTags = resolvedSymptomFilters.length > 0 || resolvedDomainFilters.length > 0; if (variant === "helpcenter") { - return /* @__PURE__ */ jsx115( - Link14, + return /* @__PURE__ */ jsx121( + Link15, { href: cardHref, sx: { @@ -21022,31 +21918,31 @@ var TroubleshootingCard = ({ minWidth: 0, textDecoration: "none" }, - children: /* @__PURE__ */ jsxs92(Box42, { sx: styles_default45.helpcenterContainer, children: [ - /* @__PURE__ */ jsx115(Text32, { sx: styles_default45.title, className: "title", children: title9 }), - hasStructuredTags ? /* @__PURE__ */ jsxs92(Box42, { sx: styles_default45.groupsContainer, children: [ - resolvedSymptomFilters.length > 0 && /* @__PURE__ */ jsx115(Box42, { sx: styles_default45.groupContainer, children: /* @__PURE__ */ jsx115(Box42, { sx: styles_default45.helpcenterTagsContainer, children: resolvedSymptomFilters.map((filter) => /* @__PURE__ */ jsx115( + children: /* @__PURE__ */ jsxs97(Box45, { sx: styles_default50.helpcenterContainer, children: [ + /* @__PURE__ */ jsx121(Text37, { sx: styles_default50.title, className: "title", children: title9 }), + hasStructuredTags ? /* @__PURE__ */ jsxs97(Box45, { sx: styles_default50.groupsContainer, children: [ + resolvedSymptomFilters.length > 0 && /* @__PURE__ */ jsx121(Box45, { sx: styles_default50.groupContainer, children: /* @__PURE__ */ jsx121(Box45, { sx: styles_default50.helpcenterTagsContainer, children: resolvedSymptomFilters.map((filter) => /* @__PURE__ */ jsx121( tag_default, { - sx: styles_default45.tag, + sx: styles_default50.tag, color: "Blue", children: filter }, `symptom-${filter}` )) }) }), - resolvedDomainFilters.length > 0 && /* @__PURE__ */ jsx115(Box42, { sx: styles_default45.groupContainer, children: /* @__PURE__ */ jsx115(Box42, { sx: styles_default45.helpcenterTagsContainer, children: resolvedDomainFilters.map((filter) => /* @__PURE__ */ jsx115(tag_default, { sx: styles_default45.tag, color: "Gray", children: filter }, `domain-${filter}`)) }) }) + resolvedDomainFilters.length > 0 && /* @__PURE__ */ jsx121(Box45, { sx: styles_default50.groupContainer, children: /* @__PURE__ */ jsx121(Box45, { sx: styles_default50.helpcenterTagsContainer, children: resolvedDomainFilters.map((filter) => /* @__PURE__ */ jsx121(tag_default, { sx: styles_default50.tag, color: "Gray", children: filter }, `domain-${filter}`)) }) }) ] }) : null ] }) } ); } - return /* @__PURE__ */ jsx115(Link14, { href: cardHref, sx: styles_default45.devportalContainer, children: /* @__PURE__ */ jsxs92(Box42, { children: [ - /* @__PURE__ */ jsx115(Text32, { sx: styles_default45.title, className: "title", children: title9 }), - description6 ? /* @__PURE__ */ jsx115(Text32, { sx: styles_default45.description, className: "description", children: description6 }) : null, - /* @__PURE__ */ jsxs92(Box42, { sx: styles_default45.tagsContainer, children: [ - resolvedSymptomFilters.length > 0 && /* @__PURE__ */ jsx115(Box42, { sx: styles_default45.tagGroup, children: resolvedSymptomFilters.map((filter) => /* @__PURE__ */ jsx115(tag_default, { sx: styles_default45.tag, color: "Blue", children: filter }, `symptom-${filter}`)) }), - resolvedDomainFilters.length > 0 && /* @__PURE__ */ jsx115(Box42, { sx: styles_default45.tagGroup, children: resolvedDomainFilters.map((filter) => /* @__PURE__ */ jsx115(tag_default, { sx: styles_default45.tag, color: "Gray", children: filter }, `domain-${filter}`)) }), - !hasStructuredTags && fallbackTags.map((moduleTag) => /* @__PURE__ */ jsx115(tag_default, { sx: styles_default45.tag, color: "Gray", children: moduleTag }, `tags-${moduleTag}`)) + return /* @__PURE__ */ jsx121(Link15, { href: cardHref, sx: styles_default50.devportalContainer, children: /* @__PURE__ */ jsxs97(Box45, { children: [ + /* @__PURE__ */ jsx121(Text37, { sx: styles_default50.title, className: "title", children: title9 }), + description6 ? /* @__PURE__ */ jsx121(Text37, { sx: styles_default50.description, className: "description", children: description6 }) : null, + /* @__PURE__ */ jsxs97(Box45, { sx: styles_default50.tagsContainer, children: [ + resolvedSymptomFilters.length > 0 && /* @__PURE__ */ jsx121(Box45, { sx: styles_default50.tagGroup, children: resolvedSymptomFilters.map((filter) => /* @__PURE__ */ jsx121(tag_default, { sx: styles_default50.tag, color: "Blue", children: filter }, `symptom-${filter}`)) }), + resolvedDomainFilters.length > 0 && /* @__PURE__ */ jsx121(Box45, { sx: styles_default50.tagGroup, children: resolvedDomainFilters.map((filter) => /* @__PURE__ */ jsx121(tag_default, { sx: styles_default50.tag, color: "Gray", children: filter }, `domain-${filter}`)) }), + !hasStructuredTags && fallbackTags.map((moduleTag) => /* @__PURE__ */ jsx121(tag_default, { sx: styles_default50.tag, color: "Gray", children: moduleTag }, `tags-${moduleTag}`)) ] }) ] }) }); }; @@ -21103,18 +21999,18 @@ var getDaysElapsed = (date) => { }; // src/components/icons/gear-troubleshooting-icon.tsx -import { Icon as Icon62 } from "@vtex/brand-ui"; -import { jsx as jsx116, jsxs as jsxs93 } from "react/jsx-runtime"; +import { Icon as Icon63 } from "@vtex/brand-ui"; +import { jsx as jsx122, jsxs as jsxs98 } from "react/jsx-runtime"; var GearTroubleshootingIcon = (props) => { - return /* @__PURE__ */ jsxs93( - Icon62, + return /* @__PURE__ */ jsxs98( + Icon63, { ...props, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx116( + /* @__PURE__ */ jsx122( "path", { d: "M17.8404 9.42954C18.2229 9.00197 18.9342 8.46816 18.9962 7.87786C19.063 7.2423 17.8607 5.16896 17.2775 4.93176C16.6221 4.66521 15.5159 5.22824 14.8633 5.41204C13.9538 5.62179 12.9047 5.05365 12.5708 4.18302C12.373 3.59238 12.2403 2.55197 11.7172 2.17424C11.1959 1.79774 8.80418 1.79774 8.28284 2.17424C7.75979 2.55197 7.62703 3.59238 7.42927 4.18302C7.09533 5.05365 6.04632 5.62179 5.13676 5.41204C4.48421 5.22824 3.37798 4.66521 2.72262 4.93176C2.13942 5.16896 0.937071 7.2423 1.00384 7.87786C1.0817 8.61902 2.16084 9.43088 2.63551 9.96156C3.17336 10.6425 3.17338 11.819 2.63554 12.4999C2.16086 13.0306 1.0817 13.8425 1.00384 14.5836C0.93707 15.2192 2.13942 17.2925 2.72262 17.5297C3.37797 17.7963 4.48418 17.2332 5.13672 17.0494C6.0463 16.8396 7.0953 17.4078 7.42924 18.2785C7.62701 18.8691 7.75977 19.9096 8.28284 20.2873C8.46309 20.4175 8.68756 20.4504 9.05686 20.4587", @@ -21124,7 +22020,7 @@ var GearTroubleshootingIcon = (props) => { strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx116( + /* @__PURE__ */ jsx122( "path", { d: "M12.201 8.86537C9.28547 6.15174 4.92127 10.5159 7.63491 13.4314", @@ -21134,7 +22030,7 @@ var GearTroubleshootingIcon = (props) => { strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx116( + /* @__PURE__ */ jsx122( "path", { d: "M20.25 20.2499L22.8462 22.846", @@ -21144,7 +22040,7 @@ var GearTroubleshootingIcon = (props) => { strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx116( + /* @__PURE__ */ jsx122( "path", { d: "M21.6922 16.4999C21.6922 13.6323 19.3676 11.3076 16.4999 11.3076C13.6323 11.3076 11.3076 13.6323 11.3076 16.4999C11.3076 19.3676 13.6323 21.6922 16.4999 21.6922C19.3676 21.6922 21.6922 19.3676 21.6922 16.4999Z", @@ -21153,7 +22049,7 @@ var GearTroubleshootingIcon = (props) => { strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx116( + /* @__PURE__ */ jsx122( "path", { d: "M16.4089 13.4053V17.0653", @@ -21162,7 +22058,7 @@ var GearTroubleshootingIcon = (props) => { strokeLinecap: "round" } ), - /* @__PURE__ */ jsx116( + /* @__PURE__ */ jsx122( "path", { d: "M16.4089 19.0988V19.0989", @@ -21178,17 +22074,17 @@ var GearTroubleshootingIcon = (props) => { var gear_troubleshooting_icon_default = GearTroubleshootingIcon; // src/components/icons/documentation-updates-icon.tsx -import { Icon as Icon63 } from "@vtex/brand-ui"; -import { jsx as jsx117, jsxs as jsxs94 } from "react/jsx-runtime"; -var DocumentationUpdatesIcon = (props) => /* @__PURE__ */ jsxs94( - Icon63, +import { Icon as Icon64 } from "@vtex/brand-ui"; +import { jsx as jsx123, jsxs as jsxs99 } from "react/jsx-runtime"; +var DocumentationUpdatesIcon = (props) => /* @__PURE__ */ jsxs99( + Icon64, { ...props, viewBox: "0 0 24 25", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx117( + /* @__PURE__ */ jsx123( "path", { fillRule: "evenodd", @@ -21200,7 +22096,7 @@ var DocumentationUpdatesIcon = (props) => /* @__PURE__ */ jsxs94( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx117( + /* @__PURE__ */ jsx123( "path", { d: "M19 8.49805H15C14.448 8.49805 14 8.05005 14 7.49805V3.49805", @@ -21210,7 +22106,7 @@ var DocumentationUpdatesIcon = (props) => /* @__PURE__ */ jsxs94( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx117( + /* @__PURE__ */ jsx123( "path", { d: "M9.5 17.498H14.5", @@ -21220,7 +22116,7 @@ var DocumentationUpdatesIcon = (props) => /* @__PURE__ */ jsxs94( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx117( + /* @__PURE__ */ jsx123( "path", { d: "M14 11.998L11.5 14.498L10 12.998", @@ -21236,10 +22132,10 @@ var DocumentationUpdatesIcon = (props) => /* @__PURE__ */ jsxs94( var documentation_updates_icon_default = DocumentationUpdatesIcon; // src/components/icons/helpcenter-icon.tsx -import { Icon as Icon64 } from "@vtex/brand-ui"; -import { jsx as jsx118, jsxs as jsxs95 } from "react/jsx-runtime"; -var HelpCenterIcon = (props) => /* @__PURE__ */ jsxs95( - Icon64, +import { Icon as Icon65 } from "@vtex/brand-ui"; +import { jsx as jsx124, jsxs as jsxs100 } from "react/jsx-runtime"; +var HelpCenterIcon = (props) => /* @__PURE__ */ jsxs100( + Icon65, { ...props, viewBox: "0 0 64 65", @@ -21247,7 +22143,7 @@ var HelpCenterIcon = (props) => /* @__PURE__ */ jsxs95( xmlns: "http://www.w3.org/2000/svg", children: [ " ", - /* @__PURE__ */ jsx118( + /* @__PURE__ */ jsx124( "path", { fillRule: "evenodd", @@ -21259,7 +22155,7 @@ var HelpCenterIcon = (props) => /* @__PURE__ */ jsxs95( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx118( + /* @__PURE__ */ jsx124( "path", { d: "M42.3575 35.665C36.5522 41.4704 27.1388 41.4704 21.3335 35.665", @@ -21269,7 +22165,7 @@ var HelpCenterIcon = (props) => /* @__PURE__ */ jsxs95( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx118( + /* @__PURE__ */ jsx124( "path", { d: "M26.6668 22.3311V24.9977", @@ -21279,7 +22175,7 @@ var HelpCenterIcon = (props) => /* @__PURE__ */ jsxs95( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx118( + /* @__PURE__ */ jsx124( "path", { d: "M37.3333 22.3311V24.9977", @@ -21295,17 +22191,17 @@ var HelpCenterIcon = (props) => /* @__PURE__ */ jsxs95( var helpcenter_icon_default = HelpCenterIcon; // src/components/icons/developer-portal-icon.tsx -import { Icon as Icon65 } from "@vtex/brand-ui"; -import { jsx as jsx119, jsxs as jsxs96 } from "react/jsx-runtime"; -var DeveloperPortalIcon = (props) => /* @__PURE__ */ jsxs96( - Icon65, +import { Icon as Icon66 } from "@vtex/brand-ui"; +import { jsx as jsx125, jsxs as jsxs101 } from "react/jsx-runtime"; +var DeveloperPortalIcon = (props) => /* @__PURE__ */ jsxs101( + Icon66, { ...props, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx119( + /* @__PURE__ */ jsx125( "rect", { x: "3", @@ -21317,8 +22213,8 @@ var DeveloperPortalIcon = (props) => /* @__PURE__ */ jsxs96( strokeWidth: "1.5" } ), - /* @__PURE__ */ jsx119("path", { d: "M3 7L21 7", stroke: "#4A596B", strokeWidth: "1.5" }), - /* @__PURE__ */ jsx119( + /* @__PURE__ */ jsx125("path", { d: "M3 7L21 7", stroke: "#4A596B", strokeWidth: "1.5" }), + /* @__PURE__ */ jsx125( "path", { d: "M15 16.375L17 14.875L15 13.375", @@ -21328,7 +22224,7 @@ var DeveloperPortalIcon = (props) => /* @__PURE__ */ jsxs96( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx119( + /* @__PURE__ */ jsx125( "path", { d: "M9 13.375L7 14.875L9 16.375", @@ -21338,7 +22234,7 @@ var DeveloperPortalIcon = (props) => /* @__PURE__ */ jsxs96( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx119( + /* @__PURE__ */ jsx125( "path", { d: "M10.5644 17.8947L13.5 11.5", @@ -21354,17 +22250,17 @@ var DeveloperPortalIcon = (props) => /* @__PURE__ */ jsxs96( var developer_portal_icon_default = DeveloperPortalIcon; // src/components/icons/faq-icon.tsx -import { Icon as Icon66 } from "@vtex/brand-ui"; -import { jsx as jsx120, jsxs as jsxs97 } from "react/jsx-runtime"; -var FAQIcon = (props) => /* @__PURE__ */ jsxs97( - Icon66, +import { Icon as Icon67 } from "@vtex/brand-ui"; +import { jsx as jsx126, jsxs as jsxs102 } from "react/jsx-runtime"; +var FAQIcon = (props) => /* @__PURE__ */ jsxs102( + Icon67, { ...props, viewBox: "0 0 24 25", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx120( + /* @__PURE__ */ jsx126( "path", { d: "M22 11.5667C22 16.8499 17.5222 21.1334 12 21.1334C11.3507 21.1343 10.7032 21.0742 10.0654 20.9545C9.60633 20.8682 9.37678 20.8251 9.21653 20.8496C9.05627 20.8741 8.82918 20.9948 8.37499 21.2364C7.09014 21.9197 5.59195 22.161 4.15111 21.893C4.69874 21.2194 5.07275 20.4112 5.23778 19.5448C5.33778 19.0148 5.09 18.5 4.71889 18.1231C3.03333 16.4115 2 14.1051 2 11.5667C2 6.28357 6.47778 2 12 2C17.5222 2 22 6.28357 22 11.5667Z", @@ -21373,7 +22269,7 @@ var FAQIcon = (props) => /* @__PURE__ */ jsxs97( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx120( + /* @__PURE__ */ jsx126( "path", { d: "M10 9.84615C10 8.82655 10.8954 8 12 8C13.1046 8 14 8.82655 14 9.84615C14 10.2137 13.8837 10.5561 13.6831 10.8438C13.0854 11.7012 12 12.5189 12 13.5385V14", @@ -21382,7 +22278,7 @@ var FAQIcon = (props) => /* @__PURE__ */ jsxs97( strokeLinecap: "round" } ), - /* @__PURE__ */ jsx120( + /* @__PURE__ */ jsx126( "path", { d: "M12 16.5H12.009", @@ -21398,18 +22294,18 @@ var FAQIcon = (props) => /* @__PURE__ */ jsxs97( var faq_icon_default = FAQIcon; // src/components/icons/known-issues-icon.tsx -import { Icon as Icon67 } from "@vtex/brand-ui"; -import { jsx as jsx121, jsxs as jsxs98 } from "react/jsx-runtime"; -var KnownIssueIcon = (props) => /* @__PURE__ */ jsxs98( - Icon67, +import { Icon as Icon68 } from "@vtex/brand-ui"; +import { jsx as jsx127, jsxs as jsxs103 } from "react/jsx-runtime"; +var KnownIssueIcon = (props) => /* @__PURE__ */ jsxs103( + Icon68, { ...props, viewBox: "0 0 256 256", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx121("rect", { width: "16rem", height: "16rem", fill: "none" }), - /* @__PURE__ */ jsx121( + /* @__PURE__ */ jsx127("rect", { width: "16rem", height: "16rem", fill: "none" }), + /* @__PURE__ */ jsx127( "line", { x1: "104", @@ -21423,7 +22319,7 @@ var KnownIssueIcon = (props) => /* @__PURE__ */ jsxs98( strokeWidth: "18" } ), - /* @__PURE__ */ jsx121( + /* @__PURE__ */ jsx127( "line", { x1: "32", @@ -21437,7 +22333,7 @@ var KnownIssueIcon = (props) => /* @__PURE__ */ jsxs98( strokeWidth: "18" } ), - /* @__PURE__ */ jsx121( + /* @__PURE__ */ jsx127( "rect", { x: "32", @@ -21458,17 +22354,17 @@ var KnownIssueIcon = (props) => /* @__PURE__ */ jsxs98( var known_issues_icon_default = KnownIssueIcon; // src/components/icons/megaphone-icon.tsx -import { Icon as Icon68 } from "@vtex/brand-ui"; -import { jsx as jsx122, jsxs as jsxs99 } from "react/jsx-runtime"; -var MegaphoneIcon = (props) => /* @__PURE__ */ jsxs99( - Icon68, +import { Icon as Icon69 } from "@vtex/brand-ui"; +import { jsx as jsx128, jsxs as jsxs104 } from "react/jsx-runtime"; +var MegaphoneIcon = (props) => /* @__PURE__ */ jsxs104( + Icon69, { ...props, viewBox: "0 0 24 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx122( + /* @__PURE__ */ jsx128( "path", { d: "M8.39317 5.82935H5.00293C4.72679 5.82935 4.50293 6.0532 4.50293 6.32935V12.3537C4.50293 12.6299 4.72679 12.8537 5.00293 12.8537H8.39317C8.66932 12.8537 8.89317 12.6299 8.89317 12.3537V6.32935C8.89317 6.0532 8.66932 5.82935 8.39317 5.82935Z", @@ -21476,7 +22372,7 @@ var MegaphoneIcon = (props) => /* @__PURE__ */ jsxs99( strokeWidth: "1.5" } ), - /* @__PURE__ */ jsx122( + /* @__PURE__ */ jsx128( "path", { d: "M15.5853 1.49929L8.89355 5.82927V12.8537L15.5853 17.1836C15.918 17.3989 16.357 17.1601 16.357 16.7639V1.91907C16.357 1.52282 15.918 1.28402 15.5853 1.49929Z", @@ -21484,7 +22380,7 @@ var MegaphoneIcon = (props) => /* @__PURE__ */ jsxs99( strokeWidth: "1.5" } ), - /* @__PURE__ */ jsx122( + /* @__PURE__ */ jsx128( "path", { d: "M2.36914 6.70728H4.00329C4.27943 6.70728 4.50329 6.93113 4.50329 7.20728V11.4756C4.50329 11.7517 4.27943 11.9756 4.00329 11.9756H2.36914C2.093 11.9756 1.86914 11.7517 1.86914 11.4756V7.20728C1.86914 6.93113 2.093 6.70728 2.36914 6.70728Z", @@ -21492,7 +22388,7 @@ var MegaphoneIcon = (props) => /* @__PURE__ */ jsxs99( strokeWidth: "1.5" } ), - /* @__PURE__ */ jsx122( + /* @__PURE__ */ jsx128( "path", { d: "M2.90474 16.9811L5.38122 12.8536H8.47085C8.85476 12.8536 9.09544 13.2684 8.90497 13.6017L5.96908 18.7395C5.88688 18.8834 5.70362 18.9333 5.55977 18.8511L3.01314 17.3959C2.86712 17.3125 2.81821 17.1253 2.90474 16.9811Z", @@ -21500,7 +22396,7 @@ var MegaphoneIcon = (props) => /* @__PURE__ */ jsxs99( strokeWidth: "1.5" } ), - /* @__PURE__ */ jsx122( + /* @__PURE__ */ jsx128( "path", { d: "M20.789 5C21.8086 6.16449 22.3813 7.74366 22.3813 9.39024C22.3813 11.0368 21.8086 12.616 20.789 13.7805M18.8691 7.19202C19.3789 7.77426 19.6653 8.56385 19.6653 9.38714C19.6653 10.2104 19.3789 11 18.8691 11.5823", @@ -21516,17 +22412,17 @@ var MegaphoneIcon = (props) => /* @__PURE__ */ jsxs99( var megaphone_icon_default = MegaphoneIcon; // src/components/icons/graph-icon.tsx -import { Icon as Icon69 } from "@vtex/brand-ui"; -import { jsx as jsx123, jsxs as jsxs100 } from "react/jsx-runtime"; -var GraphIcon = (props) => /* @__PURE__ */ jsxs100( - Icon69, +import { Icon as Icon70 } from "@vtex/brand-ui"; +import { jsx as jsx129, jsxs as jsxs105 } from "react/jsx-runtime"; +var GraphIcon = (props) => /* @__PURE__ */ jsxs105( + Icon70, { ...props, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx123( + /* @__PURE__ */ jsx129( "path", { d: "M15.5993 9.03607H12.749L10.6112 11.2461L6.33574 6.82608L4.19799 9.03607H1.34766", @@ -21536,7 +22432,7 @@ var GraphIcon = (props) => /* @__PURE__ */ jsxs100( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx123( + /* @__PURE__ */ jsx129( "path", { d: "M1 14V3C1 1.89543 1.89543 1 3 1H14C15.1046 1 16 1.89543 16 3V14C16 15.1046 15.1046 16 14 16H3C1.89543 16 1 15.1046 1 14Z", @@ -21550,17 +22446,17 @@ var GraphIcon = (props) => /* @__PURE__ */ jsxs100( var graph_icon_default = GraphIcon; // src/components/icons/start-here-icon.tsx -import { Icon as Icon70 } from "@vtex/brand-ui"; -import { jsx as jsx124, jsxs as jsxs101 } from "react/jsx-runtime"; -var StartHereIcon = (props) => /* @__PURE__ */ jsxs101( - Icon70, +import { Icon as Icon71 } from "@vtex/brand-ui"; +import { jsx as jsx130, jsxs as jsxs106 } from "react/jsx-runtime"; +var StartHereIcon = (props) => /* @__PURE__ */ jsxs106( + Icon71, { ...props, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx124( + /* @__PURE__ */ jsx130( "path", { d: "M4 15.35C4 15.35 4.95 14.4 7.8 14.4C10.65 14.4 12.55 16.3 15.4 16.3C18.25 16.3 19.2 15.35 19.2 15.35V3.95C19.2 3.95 18.25 4.9 15.4 4.9C12.55 4.9 10.65 3 7.8 3C4.95 3 4 3.95 4 3.95V15.35Z", @@ -21570,7 +22466,7 @@ var StartHereIcon = (props) => /* @__PURE__ */ jsxs101( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx124( + /* @__PURE__ */ jsx130( "path", { d: "M4 22V15.35", @@ -21586,17 +22482,17 @@ var StartHereIcon = (props) => /* @__PURE__ */ jsxs101( var start_here_icon_default = StartHereIcon; // src/components/icons/tutorials-icon.tsx -import { Icon as Icon71 } from "@vtex/brand-ui"; -import { jsx as jsx125, jsxs as jsxs102 } from "react/jsx-runtime"; -var TutorialsIcon = (props) => /* @__PURE__ */ jsxs102( - Icon71, +import { Icon as Icon72 } from "@vtex/brand-ui"; +import { jsx as jsx131, jsxs as jsxs107 } from "react/jsx-runtime"; +var TutorialsIcon = (props) => /* @__PURE__ */ jsxs107( + Icon72, { ...props, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx125( + /* @__PURE__ */ jsx131( "path", { d: "M4 19.5C4 18.837 4.26339 18.2011 4.73223 17.7322C5.20107 17.2634 5.83696 17 6.5 17H20", @@ -21606,7 +22502,7 @@ var TutorialsIcon = (props) => /* @__PURE__ */ jsxs102( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx125( + /* @__PURE__ */ jsx131( "path", { d: "M6.5 2H20V22H6.5C5.83696 22 5.20107 21.7366 4.73223 21.2678C4.26339 20.7989 4 20.163 4 19.5V4.5C4 3.83696 4.26339 3.20107 4.73223 2.73223C5.20107 2.26339 5.83696 2 6.5 2Z", @@ -21616,7 +22512,7 @@ var TutorialsIcon = (props) => /* @__PURE__ */ jsxs102( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx125( + /* @__PURE__ */ jsx131( "path", { d: "M17 9H8", @@ -21626,7 +22522,7 @@ var TutorialsIcon = (props) => /* @__PURE__ */ jsxs102( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx125( + /* @__PURE__ */ jsx131( "path", { d: "M15 13H8", @@ -21636,7 +22532,7 @@ var TutorialsIcon = (props) => /* @__PURE__ */ jsxs102( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx125( + /* @__PURE__ */ jsx131( "path", { d: "M12 5H10H8", @@ -21646,7 +22542,7 @@ var TutorialsIcon = (props) => /* @__PURE__ */ jsxs102( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx125( + /* @__PURE__ */ jsx131( "path", { d: "M16 5H15.5H15", @@ -21662,18 +22558,18 @@ var TutorialsIcon = (props) => /* @__PURE__ */ jsxs102( var tutorials_icon_default = TutorialsIcon; // src/components/icons/announcement-icon.tsx -import { Icon as Icon72 } from "@vtex/brand-ui"; -import { jsx as jsx126, jsxs as jsxs103 } from "react/jsx-runtime"; -var AnnouncementIcon = (props) => /* @__PURE__ */ jsxs103( - Icon72, +import { Icon as Icon73 } from "@vtex/brand-ui"; +import { jsx as jsx132, jsxs as jsxs108 } from "react/jsx-runtime"; +var AnnouncementIcon = (props) => /* @__PURE__ */ jsxs108( + Icon73, { ...props, viewBox: "0 0 256 256", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx126("rect", { width: "16rem", height: "16rem", fill: "none" }), - /* @__PURE__ */ jsx126( + /* @__PURE__ */ jsx132("rect", { width: "16rem", height: "16rem", fill: "none" }), + /* @__PURE__ */ jsx132( "path", { d: "M56.20305,104A71.899,71.899,0,0,1,128.5484,32.002c39.58967.29432,71.25651,33.20133,71.25651,72.90185V112c0,35.81563,7.49325,56.59893,14.093,67.95814A7.999,7.999,0,0,1,207.01628,192H48.98365A7.99908,7.99908,0,0,1,42.103,179.95641c6.60328-11.35959,14.1-32.1426,14.1-67.95641Z", @@ -21684,7 +22580,7 @@ var AnnouncementIcon = (props) => /* @__PURE__ */ jsxs103( strokeWidth: "18" } ), - /* @__PURE__ */ jsx126( + /* @__PURE__ */ jsx132( "path", { d: "M96,192v8a32,32,0,0,0,64,0v-8", @@ -21701,31 +22597,31 @@ var AnnouncementIcon = (props) => /* @__PURE__ */ jsxs103( var announcement_icon_default = AnnouncementIcon; // src/components/icons/info-icon.tsx -import { Icon as Icon73 } from "@vtex/brand-ui"; -import { jsx as jsx127, jsxs as jsxs104 } from "react/jsx-runtime"; -var InfoIcon = (props) => /* @__PURE__ */ jsxs104( - Icon73, +import { Icon as Icon74 } from "@vtex/brand-ui"; +import { jsx as jsx133, jsxs as jsxs109 } from "react/jsx-runtime"; +var InfoIcon = (props) => /* @__PURE__ */ jsxs109( + Icon74, { ...props, viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx127( + /* @__PURE__ */ jsx133( "path", { d: "M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16Z", fill: "#ECEFF2" } ), - /* @__PURE__ */ jsx127( + /* @__PURE__ */ jsx133( "path", { d: "M9.5 12.2231C9.5 12.3615 9.35714 12.5 9.21429 12.5H6.78571C6.64286 12.5 6.5 12.3615 6.5 12.2231V11.6692C6.5 11.5307 6.64286 11.3923 6.78571 11.3923H7.21429V8.06901H6.78571C6.64286 8.06901 6.5 7.93054 6.5 7.79207V7.09973C6.5 6.96126 6.64286 6.82279 6.78571 6.82279H8.5C8.64286 6.82279 8.78571 6.96126 8.78571 7.09973V11.2538H9.21429C9.35714 11.2538 9.5 11.3923 9.5 11.5307V12.2231V12.2231Z", fill: "#5B6E84" } ), - /* @__PURE__ */ jsx127( + /* @__PURE__ */ jsx133( "path", { d: "M8.0714 5.43856C8.62368 5.43856 9.0714 5.0046 9.0714 4.46928C9.0714 3.93396 8.62368 3.5 8.0714 3.5C7.51911 3.5 7.0714 3.93396 7.0714 4.46928C7.0714 5.0046 7.51911 5.43856 8.0714 5.43856Z", @@ -21738,19 +22634,19 @@ var InfoIcon = (props) => /* @__PURE__ */ jsxs104( var info_icon_default = InfoIcon; // src/components/icons/new-icon.tsx -import { Icon as Icon74 } from "@vtex/brand-ui"; -import { jsx as jsx128, jsxs as jsxs105 } from "react/jsx-runtime"; -var NewIcon = (props) => /* @__PURE__ */ jsxs105( - Icon74, +import { Icon as Icon75 } from "@vtex/brand-ui"; +import { jsx as jsx134, jsxs as jsxs110 } from "react/jsx-runtime"; +var NewIcon = (props) => /* @__PURE__ */ jsxs110( + Icon75, { ...props, viewBox: "0 0 17 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx128("circle", { cx: "8.50146", cy: "8", r: "8", fill: "#F71963" }), - /* @__PURE__ */ jsxs105("g", { clipPath: "url(#clip0_462_17766)", children: [ - /* @__PURE__ */ jsx128( + /* @__PURE__ */ jsx134("circle", { cx: "8.50146", cy: "8", r: "8", fill: "#F71963" }), + /* @__PURE__ */ jsxs110("g", { clipPath: "url(#clip0_462_17766)", children: [ + /* @__PURE__ */ jsx134( "path", { d: "M12.6681 6L8.7098 9.95833L6.62646 7.875L3.50146 11", @@ -21759,7 +22655,7 @@ var NewIcon = (props) => /* @__PURE__ */ jsxs105( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx128( + /* @__PURE__ */ jsx134( "path", { d: "M10.1685 6H12.6685V8.5", @@ -21769,7 +22665,7 @@ var NewIcon = (props) => /* @__PURE__ */ jsxs105( } ) ] }), - /* @__PURE__ */ jsx128("defs", { children: /* @__PURE__ */ jsx128("clipPath", { id: "clip0_462_17766", children: /* @__PURE__ */ jsx128( + /* @__PURE__ */ jsx134("defs", { children: /* @__PURE__ */ jsx134("clipPath", { id: "clip0_462_17766", children: /* @__PURE__ */ jsx134( "rect", { width: "11", @@ -21784,16 +22680,16 @@ var NewIcon = (props) => /* @__PURE__ */ jsxs105( var new_icon_default = NewIcon; // src/components/icons/github-icon.tsx -import { Icon as Icon75 } from "@vtex/brand-ui"; -import { jsx as jsx129 } from "react/jsx-runtime"; -var GithubIcon = (props) => /* @__PURE__ */ jsx129( - Icon75, +import { Icon as Icon76 } from "@vtex/brand-ui"; +import { jsx as jsx135 } from "react/jsx-runtime"; +var GithubIcon = (props) => /* @__PURE__ */ jsx135( + Icon76, { ...props, viewBox: "0 0 64 65", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx129( + children: /* @__PURE__ */ jsx135( "path", { fillRule: "evenodd", @@ -21810,10 +22706,10 @@ var GithubIcon = (props) => /* @__PURE__ */ jsx129( var github_icon_default = GithubIcon; // src/components/icons/community-icon.tsx -import { Icon as Icon76 } from "@vtex/brand-ui"; -import { jsx as jsx130, jsxs as jsxs106 } from "react/jsx-runtime"; -var CommunityIcon = (props) => /* @__PURE__ */ jsxs106( - Icon76, +import { Icon as Icon77 } from "@vtex/brand-ui"; +import { jsx as jsx136, jsxs as jsxs111 } from "react/jsx-runtime"; +var CommunityIcon = (props) => /* @__PURE__ */ jsxs111( + Icon77, { ...props, viewBox: "0 0 64 65", @@ -21821,7 +22717,7 @@ var CommunityIcon = (props) => /* @__PURE__ */ jsxs106( xmlns: "http://www.w3.org/2000/svg", children: [ " ", - /* @__PURE__ */ jsx130( + /* @__PURE__ */ jsx136( "path", { fillRule: "evenodd", @@ -21833,7 +22729,7 @@ var CommunityIcon = (props) => /* @__PURE__ */ jsxs106( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx130( + /* @__PURE__ */ jsx136( "path", { fillRule: "evenodd", @@ -21851,24 +22747,24 @@ var CommunityIcon = (props) => /* @__PURE__ */ jsxs106( var community_icon_default = CommunityIcon; // src/components/icons/twitter-circle-icon.tsx -import { Icon as Icon77 } from "@vtex/brand-ui"; -import { jsx as jsx131, jsxs as jsxs107 } from "react/jsx-runtime"; -var TwitterCircleIcon = (props) => /* @__PURE__ */ jsxs107( - Icon77, +import { Icon as Icon78 } from "@vtex/brand-ui"; +import { jsx as jsx137, jsxs as jsxs112 } from "react/jsx-runtime"; +var TwitterCircleIcon = (props) => /* @__PURE__ */ jsxs112( + Icon78, { ...props, viewBox: "0 0 33 33", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [ - /* @__PURE__ */ jsx131( + /* @__PURE__ */ jsx137( "path", { d: "M9.95605 9.54247C9.95868 9.54614 10.0339 9.65531 10.1232 9.78548C10.2126 9.91512 10.3477 10.1114 10.4234 10.2211C10.5874 10.4594 10.9296 10.9554 11.2356 11.3995C11.3581 11.5769 11.5463 11.8498 11.6535 12.0057C11.8307 12.2629 11.9773 12.4754 12.3842 13.0659C12.4599 13.1756 12.6245 13.4139 12.7496 13.596C12.8752 13.7776 12.9872 13.9409 12.9993 13.9582C13.0214 13.9902 13.0524 14.0348 13.607 14.84C13.7762 15.0851 14.0433 15.4724 14.2005 15.7008C14.3582 15.9285 14.5006 16.1359 14.518 16.1611C14.5469 16.2036 14.5485 16.2078 14.5411 16.2162C14.5364 16.2214 14.3713 16.4135 14.1742 16.6429C13.9771 16.8723 13.6816 17.216 13.5176 17.4061C13.3541 17.5966 13.1323 17.8538 13.0256 17.9782C12.9183 18.1026 12.708 18.3471 12.5577 18.5219C12.2191 18.915 11.0747 20.2451 10.6316 20.76C10.4507 20.9704 10.2215 21.2371 10.1227 21.352C10.0233 21.467 9.94238 21.562 9.94238 21.5635C9.94238 21.5651 10.1674 21.5656 10.4428 21.5651L10.9433 21.5635L11.1541 21.3189C11.7402 20.6382 11.8911 20.4629 12.084 20.2382C12.1997 20.1039 12.3369 19.9443 12.3895 19.884C12.4415 19.8231 12.9409 19.2436 13.4987 18.5954C14.0564 17.9472 14.621 17.2916 14.7524 17.1389C14.8844 16.9856 14.9943 16.8612 14.9974 16.8618C15 16.8623 15.0163 16.8838 15.0337 16.909C15.0742 16.9673 15.3391 17.352 15.6645 17.8238C15.8028 18.0243 16.0562 18.3918 16.227 18.64C16.3984 18.8883 16.6113 19.1974 16.7012 19.3276C16.7905 19.4572 16.9793 19.7312 17.1207 19.9364C17.2621 20.1411 17.3872 20.3233 17.3993 20.3406C17.4114 20.3579 17.5239 20.5206 17.649 20.7028C17.7741 20.8844 17.9134 21.0864 17.9581 21.1515C18.0033 21.2166 18.0764 21.3226 18.1211 21.3877C18.1663 21.4528 18.212 21.5194 18.2241 21.5362L18.2451 21.5662H19.9794H21.7136L21.7042 21.552C21.6994 21.5436 21.6069 21.4098 21.4997 21.2539C21.3924 21.098 21.2279 20.8592 21.1343 20.7237C20.7537 20.1716 20.5051 19.811 20.3784 19.6268C20.3043 19.5197 20.1529 19.3003 20.0414 19.1386C19.8233 18.8216 19.8054 18.7959 19.4179 18.2343C19.2765 18.0285 19.143 17.8354 19.1215 17.8039C19.1004 17.7729 19.0442 17.6921 18.9974 17.6244C18.9506 17.5567 18.8492 17.4087 18.7713 17.2964C18.6941 17.1835 18.6184 17.0738 18.6031 17.0523C18.5879 17.0308 18.5232 16.9363 18.4586 16.8423C18.3939 16.7484 18.3313 16.6576 18.3193 16.6403C18.3072 16.6229 18.2083 16.4802 18.1 16.3227C17.9918 16.1653 17.803 15.8913 17.6805 15.7139C17.3367 15.2158 17.2384 15.073 17.0755 14.8358L16.9241 14.6164L17.0834 14.4316C17.1706 14.3298 17.4335 14.0248 17.6669 13.7535C17.9008 13.4821 18.2115 13.1205 18.3582 12.9504C18.7955 12.4429 19.4116 11.727 20.3668 10.6174C20.8625 10.0416 21.2752 9.56241 21.2836 9.55349L21.2983 9.53617H20.7963H20.2948L19.869 10.028C19.4879 10.4683 19.0999 10.9192 17.0408 13.3126C16.7327 13.6706 16.4788 13.964 16.4772 13.9645C16.4757 13.965 16.4552 13.9377 16.4326 13.9041C16.4094 13.8705 16.2549 13.6454 16.0882 13.4045C15.9221 13.1635 15.7108 12.8565 15.6183 12.7221C15.5257 12.5878 15.4011 12.4072 15.3412 12.3206C15.2818 12.234 15.1041 11.9763 14.947 11.7485C14.7898 11.5202 14.6515 11.3197 14.6394 11.3024C14.6273 11.285 14.5285 11.1423 14.4202 10.9848C14.1463 10.5875 13.7994 10.0836 13.6679 9.89308C13.607 9.8049 13.5271 9.68891 13.4897 9.63432L13.4219 9.53617H11.6871C10.3004 9.53617 9.9529 9.53774 9.95605 9.54247ZM13.1917 10.587C13.2937 10.735 13.3867 10.8704 13.3988 10.8877C13.4203 10.9187 13.5581 11.1186 13.8472 11.5385C13.9271 11.654 14.0018 11.7627 14.0139 11.78C14.0259 11.7973 14.1248 11.9401 14.2331 12.0975C14.4507 12.414 14.7114 12.7919 15.3796 13.7614C15.6256 14.1177 15.8832 14.492 15.9526 14.5933C16.0667 14.7591 16.2796 15.0678 16.4741 15.3491C16.514 15.4068 16.6618 15.6204 16.8016 15.8241C16.9419 16.0277 17.0665 16.2083 17.0786 16.2256C17.0907 16.2429 17.2164 16.4245 17.3572 16.6298C17.4987 16.8345 17.7005 17.1273 17.8057 17.2806C18.1847 17.8296 18.611 18.4484 19.0557 19.094C19.1803 19.2746 19.3953 19.5864 19.5336 19.7869C19.6719 19.9874 19.8364 20.2262 19.899 20.317C19.9615 20.4078 20.0577 20.5474 20.1124 20.6266C20.1676 20.7059 20.2138 20.7741 20.2159 20.7778C20.2196 20.7825 20.063 20.7841 19.44 20.7841H18.6599L18.5742 20.6592C18.499 20.5505 18.252 20.1921 17.741 19.4509C17.6621 19.337 17.4745 19.0641 17.3231 18.8447C16.9362 18.2836 16.7984 18.0837 16.5976 17.7924C16.5014 17.6522 16.4126 17.5236 16.4005 17.5063C16.3705 17.4633 15.8548 16.7148 15.6624 16.4356C15.5005 16.1999 15.1467 15.6871 14.9785 15.4436C14.8413 15.2452 14.589 14.8793 14.2562 14.3965C14.1006 14.1697 13.9629 13.9703 13.9508 13.9529C13.9387 13.9356 13.8525 13.8102 13.7589 13.6748C13.3925 13.1425 12.8079 12.2954 12.7785 12.2524C12.7664 12.235 12.6933 12.1285 12.6155 12.0162C12.5382 11.9033 12.4625 11.7936 12.4473 11.7721C12.391 11.6913 12.0083 11.1354 11.715 10.7093C11.6351 10.5938 11.5626 10.4888 11.5536 10.4757C11.5447 10.4626 11.5163 10.4221 11.4911 10.3849L11.4453 10.3182H12.226H13.0061L13.1917 10.587Z", fill: "#C5C7D1" } ), - /* @__PURE__ */ jsx131( + /* @__PURE__ */ jsx137( "path", { d: "M31.7002 15.8379C31.7002 23.9917 24.7819 30.6394 16.2002 30.6394C7.61851 30.6394 0.700195 23.9917 0.700195 15.8379C0.700195 7.68404 7.61851 1.03638 16.2002 1.03638C24.7819 1.03638 31.7002 7.68404 31.7002 15.8379Z", @@ -21881,17 +22777,17 @@ var TwitterCircleIcon = (props) => /* @__PURE__ */ jsxs107( var twitter_circle_icon_default = TwitterCircleIcon; // src/components/icons/checkbox.tsx -import { Icon as Icon78 } from "@vtex/brand-ui"; -import { Fragment as Fragment11, jsx as jsx132, jsxs as jsxs108 } from "react/jsx-runtime"; -var CheckboxIcon = (props) => /* @__PURE__ */ jsx132( - Icon78, +import { Icon as Icon79 } from "@vtex/brand-ui"; +import { Fragment as Fragment12, jsx as jsx138, jsxs as jsxs113 } from "react/jsx-runtime"; +var CheckboxIcon = (props) => /* @__PURE__ */ jsx138( + Icon79, { ...props, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: !props.checked ? /* @__PURE__ */ jsxs108(Fragment11, { children: [ - /* @__PURE__ */ jsx132( + children: !props.checked ? /* @__PURE__ */ jsxs113(Fragment12, { children: [ + /* @__PURE__ */ jsx138( "rect", { x: "0.5", @@ -21903,7 +22799,7 @@ var CheckboxIcon = (props) => /* @__PURE__ */ jsx132( fillOpacity: "0.01" } ), - /* @__PURE__ */ jsx132( + /* @__PURE__ */ jsx138( "rect", { x: "0.5", @@ -21914,9 +22810,9 @@ var CheckboxIcon = (props) => /* @__PURE__ */ jsx132( stroke: "#B9B9B9" } ) - ] }) : /* @__PURE__ */ jsxs108(Fragment11, { children: [ - /* @__PURE__ */ jsx132("rect", { width: "20", height: "20", rx: "4", fill: "#0C1522" }), - /* @__PURE__ */ jsx132( + ] }) : /* @__PURE__ */ jsxs113(Fragment12, { children: [ + /* @__PURE__ */ jsx138("rect", { width: "20", height: "20", rx: "4", fill: "#0C1522" }), + /* @__PURE__ */ jsx138( "path", { fillRule: "evenodd", @@ -21931,16 +22827,16 @@ var CheckboxIcon = (props) => /* @__PURE__ */ jsx132( var checkbox_default = CheckboxIcon; // src/components/icons/resize-icon.tsx -import { Icon as Icon79 } from "@vtex/brand-ui"; -import { jsx as jsx133 } from "react/jsx-runtime"; -var ResizeIcon = (props) => /* @__PURE__ */ jsx133( - Icon79, +import { Icon as Icon80 } from "@vtex/brand-ui"; +import { jsx as jsx139 } from "react/jsx-runtime"; +var ResizeIcon = (props) => /* @__PURE__ */ jsx139( + Icon80, { ...props, viewBox: "0 0 29.96 122.88", fill: "none", xmlns: "http://www.w3.org/2000/svg", - children: /* @__PURE__ */ jsx133( + children: /* @__PURE__ */ jsx139( "path", { fillRule: "evenodd", @@ -21952,10 +22848,10 @@ var ResizeIcon = (props) => /* @__PURE__ */ jsx133( var resize_icon_default = ResizeIcon; // src/components/icons/arrow-right-icon.tsx -import { Icon as Icon80 } from "@vtex/brand-ui"; -import { jsx as jsx134, jsxs as jsxs109 } from "react/jsx-runtime"; -var ArrowRightIcon = (props) => /* @__PURE__ */ jsxs109( - Icon80, +import { Icon as Icon81 } from "@vtex/brand-ui"; +import { jsx as jsx140, jsxs as jsxs114 } from "react/jsx-runtime"; +var ArrowRightIcon = (props) => /* @__PURE__ */ jsxs114( + Icon81, { ...props, viewBox: "0 0 17 17", @@ -21963,7 +22859,7 @@ var ArrowRightIcon = (props) => /* @__PURE__ */ jsxs109( xmlns: "http://www.w3.org/2000/svg", children: [ " ", - /* @__PURE__ */ jsx134( + /* @__PURE__ */ jsx140( "path", { d: "M3.48682 8.9847H13.4801", @@ -21973,7 +22869,7 @@ var ArrowRightIcon = (props) => /* @__PURE__ */ jsxs109( strokeLinejoin: "round" } ), - /* @__PURE__ */ jsx134( + /* @__PURE__ */ jsx140( "path", { d: "M9.48877 4.99023L13.5134 8.99823L9.48877 13.0062", @@ -21996,6 +22892,8 @@ export { app_development_icon_default as AppDevelopmentIcon, arrow_left_icon_default as ArrowLeftIcon, arrow_right_icon_default as ArrowRightIcon, + article_pagination_default as ArticlePagination, + article_render_default as ArticleRender, ask_ai_default as AskAIMenu, ask_assistant_default as AskAssistant, author_default as Author, @@ -22017,6 +22915,7 @@ export { copy_icon_default as CopyIcon, copy_link_button_default as CopyLinkButton, DEFAULT_ASK_ASSISTANT_EXAMPLES, + date_text_default as DateText, deprecated_icon_default as DeprecatedIcon, developer_portal_icon_default as DeveloperPortalIcon, documentation_updates_icon_default as DocumentationUpdatesIcon, @@ -22045,6 +22944,7 @@ export { improved_icon_default as ImprovedIcon, info_icon_default as InfoIcon, input_default as Input, + insert_account_name_default as InsertAccountName, instagram_icon_default as InstagramIcon, known_issues_icon_default as KnownIssuesIcon, LibraryContext, @@ -22081,6 +22981,7 @@ export { start_here_icon_default as StartHereIcon, storefront_development_icon_default as StorefrontDevelopmentIcon, subscription_list_default as SubscriptionList, + suggest_edits_default as SuggestEdits, TableOfContents_default as TableOfContents, tag_default as Tag, time_to_read_default as TimeToRead, diff --git a/dist/index.mjs.map b/dist/index.mjs.map index f389a65..62b36ea 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/utils/context/libraryContext.tsx","../src/utils/string-utils.ts","../src/utils/mermaidInit.ts","../src/components/copy-heading-link/index.tsx","../src/components/icons/link-icon.tsx","../src/components/tooltip/index.tsx","../src/components/tooltip/styles.ts","../src/components/icons/caret.tsx","../src/messages/en.json","../src/messages/es.json","../src/messages/pt.json","../src/utils/get-message.ts","../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/edit-icon.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/feedback-modal/index.tsx","../src/components/icons/check-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/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/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'\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\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 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 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","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 useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n type MouseEvent,\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\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}: 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 return (\n \n event.preventDefault()}\n >\n \n \n \n )\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 { 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","{\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.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 \"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.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}\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.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 \"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.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}\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.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 \"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.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}\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'\n\nconst muted = '#A1AAB7'\nconst mutedHover = '#5E6E84'\nconst pink = '#E31C58'\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 { 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?.length) {\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 right: '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 {containerType === 'see-also' ? (\n <>\n \n \n \n {title}\n \n \n \n {description}\n \n \n ) : (\n \n {containerType === 'dropdown' ? (\n \n \n \n ) : (\n \n )}\n \n \n {title}\n \n \n {description}\n \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 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}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport styles from './styles'\n\nconst cardContainer = (containerType: string) => {\n const containerWidth =\n containerType === 'dropdown'\n ? '100%'\n : containerType === 'mobile'\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 : {\n '.title, .description': {\n width: textWidth,\n },\n }),\n }\n\n return cardContainer\n}\n\nconst titleContainer = (containerType: string) => {\n const marginBottom =\n containerType === 'dropdown' || containerType === 'mobile' ? 0 : '8px'\n\n const titleContainer: SxStyleProp = {\n ...styles.titleContainer,\n marginBottom,\n ...(containerType === 'mobile' || containerType === 'dropdown'\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 textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontSize: '18px',\n lineHeight: '24px',\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 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, Link } from '@vtex/brand-ui'\nimport EditIcon from 'components/icons/edit-icon'\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'\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 && (\n \n \n {messages[locale]['feedback_section.edit']}\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 EditIcon = (props: IconProps) => (\n \n \n \n \n)\n\nexport default EditIcon\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 box: StyleFn = ({ small } = {}) => ({\n alignItems: 'center',\n color: 'muted.0',\n fontSize: small ? '12px' : '16px',\n lineHeight: '22px',\n})\n\nconst disabled: SxStyleProp = {\n display: 'none !important',\n}\n\nconst editContainer: StyleFn = ({ small } = {}) => ({\n ...box({ small }),\n ...button,\n ':hover': {\n color: '#000711 !important',\n },\n color: '#4A596B !important',\n display: 'flex',\n})\n\nconst editIcon: SxStyleProp = { mr: '4px' }\n\nconst shareButton: SxStyleProp = {}\n\nexport default {\n disabled,\n container,\n question,\n likeContainer,\n likeIcon,\n dislikeIcon,\n editContainer,\n editIcon,\n box,\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 { 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 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 isOpen: boolean\n onClose: () => void\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}\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 isOpen,\n onClose,\n pageUrl,\n initialMessage,\n feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT,\n sendFeedback,\n}: FeedbackModalProps) => {\n const { locale } = useContext(LibraryContext)\n const localizedMessages = messages[locale] ?? messages.en\n const [submitted, setSubmitted] = useState(false)\n const [submitting, setSubmitting] = useState(false)\n const [error, setError] = useState(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 {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\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'\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 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 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 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 from './markdown'\nimport { createDefaultStream, isInternalEvent } from './stream'\nimport styles from './styles'\nimport type {\n AskAssistantProps,\n AssistantStreamEvent,\n ChatMessage,\n HistoryConversation,\n ProcessStep,\n} from './types'\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 enableShortcut = true,\n initialMessages = [],\n examples = DEFAULT_ASK_ASSISTANT_EXAMPLES,\n initialHistory = [],\n onAsk,\n onFeedback,\n}: AskAssistantProps) => {\n const { locale } = useContext(LibraryContext)\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 [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\n const labels = useMemo(\n () => ({\n button: localized['ask_assistant.button'] || 'Ask Assistant',\n title: localized['ask_assistant.title'] || 'Assistant',\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 if (!next) return\n content = next\n patchAssistant(assistantId, {\n content: next,\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 content = event.output\n patchAssistant(assistantId, (message) => ({\n ...message,\n content: event.output as string,\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 if (!message.content) return\n copy(message.content)\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: message.content, liked })\n }\n\n useEffect(() => {\n setMounted(true)\n const stored = readHistory()\n if (stored.length) setHistory(stored)\n return () => abortRef.current?.abort()\n }, [])\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 setOpen(false)} />\n \n \n \n \n {labels.title}\n \n \n setExpanded((value) => !value)}\n >\n {expanded ? : }\n \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 {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 {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)\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 styles from './styles'\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 isListItem = (line: string) =>\n /^\\s*[-*]\\s+/.test(line) || /^\\s*\\d+\\.\\s+/.test(line)\n\nconst listItemText = (line: string) => line.replace(/^\\s*(?:[-*]|\\d+\\.)\\s+/, '')\n\nconst MarkdownMessage = ({ content }: { content: string }) => {\n const lines = content.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 (isListItem(line)) {\n const ordered = /^\\s*\\d+\\.\\s+/.test(line)\n const items: ReactNode[] = []\n const listIndex = index\n\n while (index < lines.length && isListItem(lines[index])) {\n const nested = /^\\s{2,}/.test(lines[index])\n items.push(\n \n {renderInline(listItemText(lines[index]), `li-${index}`)}\n \n )\n index += 1\n }\n\n nodes.push(\n \n {items}\n \n )\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 !isListItem(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 {nodes}\n}\n\nexport default MarkdownMessage\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: '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 triggerIcon: SxStyleProp = {\n flexShrink: 0,\n}\n\nconst triggerShortcut: SxStyleProp = {\n display: ['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\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 panel = (expanded: boolean): SxStyleProp => ({\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n zIndex: 10001,\n display: 'flex',\n flexDirection: 'column',\n width: expanded\n ? ['100vw', 'min(720px, 80vw)']\n : ['100vw', 'min(400px, 100vw)'],\n maxWidth: '100vw',\n backgroundColor: '#FFFFFF',\n borderLeft: '1px solid #E7E9EE',\n boxShadow: '-8px 0 32px rgba(20, 32, 50, 0.12)',\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}\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 alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n mb: '20px',\n}\n\nconst emptyHeroIcon: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '48px',\n height: '48px',\n borderRadius: '8px',\n backgroundColor: '#F4F2FA',\n color: '#E31C58',\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 ? '#D8D8E3' : '#E7E9EE'}`,\n borderRadius: '16px',\n backgroundColor: active ? '#F8F7FC' : '#FFFFFF',\n color: '#4A596B',\n fontSize: '13px',\n fontWeight: active ? '600' : '500',\n lineHeight: '16px',\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n flexShrink: 0,\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 #E7E9EE',\n borderRadius: '8px',\n background: '#FFFFFF',\n color: '#4A596B',\n fontSize: '13px',\n lineHeight: '20px',\n textAlign: 'left',\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 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 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 display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n}\n\nconst nestedListItem: SxStyleProp = {\n ml: '8px',\n listStyleType: 'disc',\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 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 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 examples,\n examplesLabel,\n examplePills,\n examplePill,\n examplePillIcon,\n exampleQuestions,\n exampleQuestion,\n inputBox,\n textarea,\n inputFooter,\n sendButton,\n markdown,\n markdownParagraph,\n markdownHeading,\n markdownList,\n nestedListItem,\n markdownLink,\n markdownRule,\n inlineCode,\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.\n * Hidden on small viewports together with search.\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 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: '1fr 1fr 0fr 1fr',\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 gap: '8px',\n paddingBlock: '18px',\n height: 'auto',\n minWidth: 0,\n}\n\nconst searchContainer: SxStyleProp = {\n flex: 'none',\n width: 'max-content',\n}\n\nconst assistantSlot: SxStyleProp = {\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: '16px',\r\n pt: '14px',\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\nexport default {\r\n container,\r\n photo,\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 { 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","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","useEffect","useState","jsx","title","item","heading","useCallback","useEffect","useRef","useState","Box","Icon","jsx","jsxs","useEffect","useRef","useState","Box","Flex","styles_default","Icon","jsx","jsx","jsxs","label","box","useRef","useState","useEffect","Box","Flex","styles_default","messages","styles_default","jsx","search","useState","useRef","label","useCallback","useEffect","styles_default","Box","styles_default","img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","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","localizedName","Box","styles_default","Flex","Button","IconCaret","Link","item","Fragment","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","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","Fragment","jsx","jsxs","title","description","link","Icon","Link","Box","cardContainer","Flex","titleContainer","Text","styles_default","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","Link","Icon","jsx","jsxs","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","jsx","jsxs","shareButton","useState","useContext","useEffect","Flex","styles_default","Text","Link","useContext","useEffect","useState","Box","Flex","Text","Icon","jsx","Icon","jsx","jsxs","useEffect","useState","Box","Flex","Text","innerContainer","label","actions","styles_default","jsx","jsxs","title","description","useState","useEffect","Box","styles_default","Flex","Text","jsx","jsxs","DEFAULT_FEEDBACK_ENDPOINT","postFeedback","useContext","useState","useEffect","form","Flex","styles_default","Text","Box","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","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","trigger","overlay","header","headerActions","messages","process","actionButton","dislikeIcon","textarea","styles_default","jsx","text","link","Box","styles_default","Tag","Fragment","jsx","jsxs","count","styles_default","steps","examples","useContext","useRef","useState","useMemo","question","useCallback","messages","title","text","item","copy","useEffect","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","box","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","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","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/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/components/article-pagination/styles.ts","../src/components/article-render/index.tsx","../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\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 \"article_pagination.previous\": \"Previous\",\n \"article_pagination.next\": \"Next\",\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.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}\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 \"article_pagination.previous\": \"Anterior\",\n \"article_pagination.next\": \"Siguiente\",\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.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}\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 \"article_pagination.previous\": \"Anterior\",\n \"article_pagination.next\": \"Próximo\",\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.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}\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 useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n type MouseEvent,\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\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}: 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 return (\n \n event.preventDefault()}\n >\n \n \n \n )\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 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 { 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?.length) {\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 right: '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 {containerType === 'see-also' ? (\n <>\n \n \n \n {title}\n \n \n \n {description}\n \n \n ) : (\n \n {containerType === 'dropdown' ? (\n \n \n \n ) : (\n \n )}\n \n \n {title}\n \n \n {description}\n \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 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}\n","import { SxStyleProp } from '@vtex/brand-ui'\nimport styles from './styles'\n\nconst cardContainer = (containerType: string) => {\n const containerWidth =\n containerType === 'dropdown'\n ? '100%'\n : containerType === 'mobile'\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 : {\n '.title, .description': {\n width: textWidth,\n },\n }),\n }\n\n return cardContainer\n}\n\nconst titleContainer = (containerType: string) => {\n const marginBottom =\n containerType === 'dropdown' || containerType === 'mobile' ? 0 : '8px'\n\n const titleContainer: SxStyleProp = {\n ...styles.titleContainer,\n marginBottom,\n ...(containerType === 'mobile' || containerType === 'dropdown'\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 textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontSize: '18px',\n lineHeight: '24px',\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 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 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 from './markdown'\nimport { createDefaultStream, isInternalEvent } from './stream'\nimport styles from './styles'\nimport type {\n AskAssistantProps,\n AssistantStreamEvent,\n ChatMessage,\n HistoryConversation,\n ProcessStep,\n} from './types'\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 enableShortcut = true,\n initialMessages = [],\n examples = DEFAULT_ASK_ASSISTANT_EXAMPLES,\n initialHistory = [],\n onAsk,\n onFeedback,\n}: AskAssistantProps) => {\n const { locale } = useContext(LibraryContext)\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 [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\n const labels = useMemo(\n () => ({\n button: localized['ask_assistant.button'] || 'Ask Assistant',\n title: localized['ask_assistant.title'] || 'Assistant',\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 if (!next) return\n content = next\n patchAssistant(assistantId, {\n content: next,\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 content = event.output\n patchAssistant(assistantId, (message) => ({\n ...message,\n content: event.output as string,\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 if (!message.content) return\n copy(message.content)\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: message.content, liked })\n }\n\n useEffect(() => {\n setMounted(true)\n const stored = readHistory()\n if (stored.length) setHistory(stored)\n return () => abortRef.current?.abort()\n }, [])\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 setOpen(false)} />\n \n \n \n \n {labels.title}\n \n \n setExpanded((value) => !value)}\n >\n {expanded ? : }\n \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 {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 {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)\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 styles from './styles'\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 isListItem = (line: string) =>\n /^\\s*[-*]\\s+/.test(line) || /^\\s*\\d+\\.\\s+/.test(line)\n\nconst listItemText = (line: string) => line.replace(/^\\s*(?:[-*]|\\d+\\.)\\s+/, '')\n\nconst MarkdownMessage = ({ content }: { content: string }) => {\n const lines = content.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 (isListItem(line)) {\n const ordered = /^\\s*\\d+\\.\\s+/.test(line)\n const items: ReactNode[] = []\n const listIndex = index\n\n while (index < lines.length && isListItem(lines[index])) {\n const nested = /^\\s{2,}/.test(lines[index])\n items.push(\n \n {renderInline(listItemText(lines[index]), `li-${index}`)}\n \n )\n index += 1\n }\n\n nodes.push(\n \n {items}\n \n )\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 !isListItem(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 {nodes}\n}\n\nexport default MarkdownMessage\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: '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 triggerIcon: SxStyleProp = {\n flexShrink: 0,\n}\n\nconst triggerShortcut: SxStyleProp = {\n display: ['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\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 panel = (expanded: boolean): SxStyleProp => ({\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n zIndex: 10001,\n display: 'flex',\n flexDirection: 'column',\n width: expanded\n ? ['100vw', 'min(720px, 80vw)']\n : ['100vw', 'min(400px, 100vw)'],\n maxWidth: '100vw',\n backgroundColor: '#FFFFFF',\n borderLeft: '1px solid #E7E9EE',\n boxShadow: '-8px 0 32px rgba(20, 32, 50, 0.12)',\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}\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 alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n mb: '20px',\n}\n\nconst emptyHeroIcon: SxStyleProp = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '48px',\n height: '48px',\n borderRadius: '8px',\n backgroundColor: '#F4F2FA',\n color: '#E31C58',\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 ? '#D8D8E3' : '#E7E9EE'}`,\n borderRadius: '16px',\n backgroundColor: active ? '#F8F7FC' : '#FFFFFF',\n color: '#4A596B',\n fontSize: '13px',\n fontWeight: active ? '600' : '500',\n lineHeight: '16px',\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n flexShrink: 0,\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 #E7E9EE',\n borderRadius: '8px',\n background: '#FFFFFF',\n color: '#4A596B',\n fontSize: '13px',\n lineHeight: '20px',\n textAlign: 'left',\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 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 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 display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n}\n\nconst nestedListItem: SxStyleProp = {\n ml: '8px',\n listStyleType: 'disc',\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 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 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 examples,\n examplesLabel,\n examplePills,\n examplePill,\n examplePillIcon,\n exampleQuestions,\n exampleQuestion,\n inputBox,\n textarea,\n inputFooter,\n sendButton,\n markdown,\n markdownParagraph,\n markdownHeading,\n markdownList,\n nestedListItem,\n markdownLink,\n markdownRule,\n inlineCode,\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.\n * Hidden on small viewports together with search.\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 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: '1fr 1fr 0fr 1fr',\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 gap: '8px',\n paddingBlock: '18px',\n height: 'auto',\n minWidth: 0,\n}\n\nconst searchContainer: SxStyleProp = {\n flex: 'none',\n width: 'max-content',\n}\n\nconst assistantSlot: SxStyleProp = {\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: '16px',\r\n pt: '14px',\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\nexport default {\r\n container,\r\n photo,\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 new Intl.DateTimeFormat(locale).format(date)\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\n return (\n \n \n \n {createdLabel}\n \n {formatDate(createdAt, locale)}\n \n \n \n \n {updatedLabel}\n \n {formatDate(updatedAt, locale)}\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 } 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 { 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}\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}\r\n\r\nconst ArticlePagination = ({\r\n pagination,\r\n hidePaginationNext = false,\r\n hidePaginationPrevious = false,\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 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 \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 \r\n \r\n \r\n )}\r\n \r\n \r\n )\r\n}\r\n\r\nexport default ArticlePagination\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 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 subTitle,\r\n}\r\n","import 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 Author from 'components/author'\nimport Breadcrumb from 'components/breadcrumb'\nimport type { BreadcrumbItem } from 'components/breadcrumb'\nimport CopyHeadingLink from 'components/copy-heading-link'\nimport DateText from 'components/date-text'\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 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 children?: ReactNode\n seeAlso?: 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 showTableOfContents?: boolean\n showDateText?: 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 ArticleRender = ({\n serialized,\n headings = [],\n headingList,\n breadcrumbList,\n contributors = [],\n path,\n pagination,\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 showTableOfContents = true,\n showDateText = true,\n}: ArticleRenderProps) => {\n const tocHeadings = headingList?.length ? headingList : headings\n const readingTime = readingTimeLabel(serialized?.frontmatter?.readingTime)\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 {serialized.frontmatter?.title}\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 {(showDateText || (showReadingTime && readingTime)) && (\n \n {showDateText && (\n \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
\n
\n\n {showBottomSection && (\n \n {showContributors && (\n \n \n \n )}\n {showFeedbackSection && (\n \n )}\n \n )}\n\n {showArticlePagination && pagination && (\n \n )}\n {seeAlso}\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 && }\n
\n \n )\n}\n\nexport default ArticleRender\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 marginTop: '16px',\n fontSize: ['24px', '28px'],\n lineHeight: ['32px', '36px'],\n fontWeight: '400',\n color: '#142032',\n overflowWrap: 'anywhere',\n}\n\nconst documentationExcerpt: SxStyleProp = {\n color: '#A1A8B3',\n padding: ['8px 0 16px', '8px 0 24px'],\n lineHeight: ['20px', '22px'],\n fontWeight: '400',\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 articleReadingTime: SxStyleProp = {\n color: MUTED,\n fontSize: '13px',\n lineHeight: '20px',\n '& > *': {\n color: 'inherit !important',\n fontSize: 'inherit !important',\n lineHeight: 'inherit !important',\n },\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 articleReadingTime,\n articleActions,\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","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","search","useContext","useState","useRef","label","useCallback","useEffect","styles_default","Box","styles_default","img","heading","code","blockquote","blockquoteIcon","blockquoteInfo","blockquoteDanger","blockquoteWarning","blockquoteSuccess","flexWrap","svgContainer","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","localizedName","Box","styles_default","Flex","Button","IconCaret","Link","item","Fragment","Icon","jsx","Icon","jsx","jsxs","Icon","jsx","jsxs","Fragment","jsx","jsxs","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","Fragment","jsx","jsxs","title","description","link","Icon","Link","Box","cardContainer","Flex","titleContainer","Text","styles_default","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","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","trigger","overlay","header","headerActions","messages","process","actionButton","dislikeIcon","textarea","errorText","styles_default","jsx","text","link","Box","styles_default","Tag","Fragment","jsx","jsxs","count","styles_default","steps","examples","useContext","useRef","useState","useMemo","question","useCallback","messages","title","text","item","copy","useEffect","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","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","Box","Flex","Text","innerContainer","contentContainer","divider","styles_default","Fragment","jsx","jsxs","readingTime","text","headings","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/src/components/article-pagination/ArticlePagination.stories.tsx b/src/components/article-pagination/ArticlePagination.stories.tsx new file mode 100644 index 0000000..f28ebf0 --- /dev/null +++ b/src/components/article-pagination/ArticlePagination.stories.tsx @@ -0,0 +1,111 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { ThemeProvider } from '@vtex/brand-ui' +import ArticlePagination from './index' +import LibraryContextProvider from 'utils/context/libraryContext' +import { exampleContextProps } from 'utils/storybook-constants' + +const samplePagination = { + previousDoc: { + slug: '/docs/tutorials/getting-started', + name: 'Getting started', + }, + nextDoc: { + slug: '/docs/tutorials/catalog', + name: 'Catalog', + }, +} + +const meta = { + title: 'Example/ArticlePagination', + component: ArticlePagination, + parameters: { + layout: 'padded', + }, + tags: ['autodocs'], + args: { + pagination: samplePagination, + }, + decorators: [ + (Story) => ( + + +
+ +
+
+
+ ), + ], +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = {} + +export const PreviousOnly: Story = { + args: { + pagination: { + previousDoc: samplePagination.previousDoc, + nextDoc: { slug: null, name: null }, + }, + }, +} + +export const NextOnly: Story = { + args: { + pagination: { + previousDoc: { slug: null, name: null }, + nextDoc: samplePagination.nextDoc, + }, + }, +} + +export const HiddenPrevious: Story = { + args: { + hidePaginationPrevious: true, + }, +} + +export const LongTitles: Story = { + args: { + pagination: { + previousDoc: { + slug: '/docs/tutorials/payment-methods', + name: 'Payment methods and anti-fraud configuration for marketplaces', + }, + nextDoc: { + slug: '/docs/tutorials/shipping-strategies', + name: 'Shipping strategies, carriers, and delivery windows', + }, + }, + }, +} + +export const Spanish: Story = { + decorators: [ + (Story) => ( + + +
+ +
+
+
+ ), + ], +} + +export const Portuguese: Story = { + decorators: [ + (Story) => ( + + +
+ +
+
+
+ ), + ], +} diff --git a/src/components/article-pagination/index.tsx b/src/components/article-pagination/index.tsx new file mode 100644 index 0000000..10cda94 --- /dev/null +++ b/src/components/article-pagination/index.tsx @@ -0,0 +1,85 @@ +import { useContext } from 'react' +import Link from 'next/link.js' +import { Flex, Text, Box } from '@vtex/brand-ui' + +import { LibraryContext } from 'utils/context/libraryContext' +import { messages } from 'utils/get-message' +import styles from './styles' + +export type ArticlePaginationDoc = { + slug: string | null + name: string | null +} + +export type ArticlePaginationData = { + previousDoc: ArticlePaginationDoc + nextDoc: ArticlePaginationDoc +} + +export type ArticlePaginationProps = { + pagination: ArticlePaginationData + hidePaginationPrevious?: boolean + hidePaginationNext?: boolean +} + +const ArticlePagination = ({ + pagination, + hidePaginationNext = false, + hidePaginationPrevious = false, +}: ArticlePaginationProps) => { + const { locale } = useContext(LibraryContext) + const previousLabel = + messages[locale]['article_pagination.previous'] || 'Previous' + const nextLabel = messages[locale]['article_pagination.next'] || 'Next' + + const showPrevious = + !hidePaginationPrevious && + Boolean(pagination?.previousDoc?.slug) && + Boolean(pagination?.previousDoc?.name) + const showNext = + !hidePaginationNext && + Boolean(pagination?.nextDoc?.slug) && + Boolean(pagination?.nextDoc?.name) + + return ( + + + {showPrevious && ( + + + + {`« ${previousLabel}`} + + {pagination.previousDoc.name} + + + + + )} + + {showNext && ( + + + + {`${nextLabel} »`} + + {pagination.nextDoc.name} + + + + + )} + + + ) +} + +export default ArticlePagination diff --git a/src/components/article-pagination/styles.ts b/src/components/article-pagination/styles.ts new file mode 100644 index 0000000..8889b14 --- /dev/null +++ b/src/components/article-pagination/styles.ts @@ -0,0 +1,105 @@ +import { SxStyleProp } from '@vtex/brand-ui' +import { CSSProperties } from 'react' + +const mainContainer: SxStyleProp = { + width: '100%', + mt: ['20px', '32px'], + mb: ['24px', '52px'], + maxWidth: '100%', + minWidth: 0, + borderTop: '1px solid #E7E9EE', + pt: ['20px', '32px'], +} + +const flexContainer: SxStyleProp = { + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'stretch', + gap: ['16px', '16px'], + width: '100%', + minWidth: 0, +} + +const paginationBox: SxStyleProp = { + width: '100%', + minWidth: 0, + padding: ['0', '16px'], + borderRadius: ['0', '4px'], + border: ['none', '1px solid #E7E9EE'], + color: '#4A596B', + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + gap: '4px', + boxSizing: 'border-box', + ':hover': { + border: ['none', '1px solid #CCCED8'], + boxShadow: ['none', '0px 0px 16px rgba(0, 0, 0, 0.1)'], + color: '#000711', + }, +} + +const paginationBoxNext: SxStyleProp = { + ...paginationBox, + alignItems: 'flex-end', + textAlign: 'right', +} + +const paginationText: SxStyleProp = { + width: '100%', + minWidth: 0, + overflow: 'hidden', + textOverflow: 'ellipsis', + display: '-webkit-box', + '-webkit-line-clamp': '2', + '-webkit-box-orient': 'vertical', + overflowWrap: 'anywhere', + whiteSpace: 'normal', + fontSize: ['15px', '16px'], + lineHeight: ['20px', '22px'], + color: '#4A596B', +} + +const subTitle: SxStyleProp = { + color: '#A1A8B3', + fontSize: ['12px', '0.85em'], + lineHeight: '16px', + fontWeight: '500', + flexShrink: 0, +} + +const linkReset: CSSProperties = { + width: '100%', + minWidth: 0, + display: 'block', + textDecoration: 'none', + color: 'inherit', +} + +const paginationLinkPrevious: SxStyleProp = { + width: ['auto', '230px'], + maxWidth: ['none', '230px'], + minWidth: 0, + flex: ['1 1 0', '0 0 auto'], +} + +const paginationLinkNext: SxStyleProp = { + width: ['auto', '230px'], + maxWidth: ['none', '230px'], + minWidth: 0, + ml: 'auto', + flex: ['1 1 0', '0 0 auto'], +} + +export default { + mainContainer, + flexContainer, + linkReset, + paginationLinkNext, + paginationLinkPrevious, + paginationBox, + paginationBoxNext, + paginationText, + subTitle, +} diff --git a/src/components/article-render/ArticleRender.stories.tsx b/src/components/article-render/ArticleRender.stories.tsx new file mode 100644 index 0000000..6a9247d --- /dev/null +++ b/src/components/article-render/ArticleRender.stories.tsx @@ -0,0 +1,156 @@ +import type { ComponentProps } from 'react' +import type { Meta, StoryObj } from '@storybook/react' +import { ThemeProvider } from '@vtex/brand-ui' +import ArticleRender from './index' +import LibraryContextProvider from 'utils/context/libraryContext' +import { exampleContextProps } from 'utils/storybook-constants' +import { serialized as mdxSerialized } from 'utils/storybook-mdx' +import type { ContributorsType } from 'lib/contributors' +import type { Item } from 'lib/table-of-contents' + +type ArticleRenderStoryArgs = ComponentProps & { + locale?: 'en' | 'pt' | 'es' +} + +const avatar = (color: string, initial: string) => + `data:image/svg+xml;charset=utf-8,${encodeURIComponent( + ` + + ${initial} + ` + )}` + +const contributors: ContributorsType[] = [ + { + name: 'Carolina Menezes', + login: 'carolinamenezes', + avatar: avatar('#E31C58', 'C'), + userPage: 'https://github.com/carolinamenezes', + }, + { + name: 'Alex Rivera', + login: 'arivera', + avatar: avatar('#142032', 'A'), + userPage: 'https://github.com/arivera', + }, +] + +const headingList: Item[] = [ + { title: 'Clients', slug: 'clients', children: [] }, + { + title: 'Configuration', + slug: 'configuration', + children: [ + { title: 'Cache', slug: 'cache' }, + { title: 'Retries', slug: 'retries' }, + ], + }, +] + +const serialized = { + ...mdxSerialized, + frontmatter: { + ...mdxSerialized.frontmatter, + title: 'Clients', + excerpt: 'Abstract communication to other services with VTEX IO Clients.', + createdAt: '2024-03-12T12:00:00.000Z', + updatedAt: '2026-09-03T12:00:00.000Z', + readingTime: '4 min read', + }, +} + +const meta = { + title: 'Example/ArticleRender', + component: ArticleRender, + parameters: { + layout: 'fullscreen', + }, + tags: ['autodocs'], + argTypes: { + locale: { + control: 'select', + options: ['en', 'pt', 'es'], + description: 'Language used for article chrome', + }, + }, + args: { + locale: 'en', + serialized, + breadcrumbList: [ + { slug: '/docs/tutorials', name: 'Tutorials', type: 'category' }, + { slug: '/docs/tutorials/clients', name: 'Clients', type: 'markdown' }, + ], + slug: 'clients', + path: 'docs/tutorials/clients.md', + type: 'tutorials', + pageUrl: 'https://help.vtex.com/docs/tutorials/clients', + urlToEdit: + 'https://github.com/vtexdocs/help-center-content/edit/main/docs/tutorials/clients.md', + rawContentBaseUrl: + 'https://raw.githubusercontent.com/vtexdocs/help-center-content/main/', + contributors, + headingList, + headings: headingList, + pagination: { + previousDoc: { + slug: '/docs/tutorials/getting-started', + name: 'Getting started', + }, + nextDoc: { + slug: '/docs/tutorials/catalog', + name: 'Catalog', + }, + }, + }, + decorators: [ + (Story, { args }) => ( + + + + + + ), + ], + render: ({ locale, ...args }) => , +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = {} + +export const WithAuthor: Story = { + args: { + showAuthor: true, + showContributors: false, + showSuggestEdits: false, + }, +} + +export const WithoutDates: Story = { + args: { + showDateText: false, + }, +} + +export const HeaderExtra: Story = { + args: { + children:
Known issue ID: 123456
, + showSuggestEdits: false, + }, +} + +export const Spanish: Story = { + args: { + locale: 'es', + }, +} + +export const Portuguese: Story = { + args: { + locale: 'pt', + }, +} diff --git a/src/components/article-render/index.tsx b/src/components/article-render/index.tsx new file mode 100644 index 0000000..ae40f25 --- /dev/null +++ b/src/components/article-render/index.tsx @@ -0,0 +1,259 @@ +import type { ReactNode } from 'react' +import Head from 'next/head.js' +import { Box, Flex, Text } from '@vtex/brand-ui' +import type { MDXRemoteSerializeResult } from 'next-mdx-remote' + +import AskAIMenu from 'components/ask-ai' +import ArticlePagination from 'components/article-pagination' +import type { ArticlePaginationData } from 'components/article-pagination' +import Author from 'components/author' +import Breadcrumb from 'components/breadcrumb' +import type { BreadcrumbItem } from 'components/breadcrumb' +import CopyHeadingLink from 'components/copy-heading-link' +import DateText from 'components/date-text' +import FeedbackModal from 'components/feedback-modal' +import FeedbackSection from 'components/feedback-section' +import SuggestEdits from 'components/suggest-edits' +import TimeToRead from 'components/time-to-read' +import MarkdownRenderer from 'lib/markdown-renderer' +import type { MarkdownRendererProps } from 'lib/markdown-renderer/MarkdownRenderer.types' +import Contributors from 'lib/contributors' +import type { ContributorsType } from 'lib/contributors' +import OnThisPage from 'lib/on-this-page' +import TableOfContents from 'lib/table-of-contents' +import type { Item } from 'lib/table-of-contents' +import styles from './styles' + +export type ArticleRenderProps = { + serialized: MDXRemoteSerializeResult + breadcrumbList: BreadcrumbItem[] + slug: string + path: string + type: string + pageUrl: string + urlToEdit: string + rawContentBaseUrl: string + contributors?: ContributorsType[] + headings?: Item[] + headingList?: Item[] + pagination?: ArticlePaginationData + children?: ReactNode + seeAlso?: ReactNode + customComponents?: MarkdownRendererProps['customComponents'] + scope?: MarkdownRendererProps['scope'] + /** Wrap the markdown output without remounting it on parent re-renders. */ + renderMarkdown?: (markdown: ReactNode) => ReactNode + showReadingTime?: boolean + showAskAIMenu?: boolean + showAuthor?: boolean + showContributors?: boolean + showFeedbackSection?: boolean + showSuggestEdits?: boolean + showArticlePagination?: boolean + showTableOfContents?: boolean + showDateText?: boolean +} + +const readingTimeLabel = (readingTime: unknown) => { + if (readingTime == null || readingTime === '') return undefined + if ( + typeof readingTime === 'object' && + readingTime !== null && + 'text' in readingTime + ) { + const text = (readingTime as { text?: unknown }).text + return text != null ? String(text) : undefined + } + return String(readingTime) +} + +const ArticleRender = ({ + serialized, + headings = [], + headingList, + breadcrumbList, + contributors = [], + path, + pagination, + slug, + type, + pageUrl, + urlToEdit, + rawContentBaseUrl, + children, + seeAlso, + customComponents, + scope = {}, + renderMarkdown, + showReadingTime = true, + showAskAIMenu = true, + showAuthor = false, + showContributors = true, + showFeedbackSection = true, + showSuggestEdits = true, + showArticlePagination = true, + showTableOfContents = true, + showDateText = true, +}: ArticleRenderProps) => { + const tocHeadings = headingList?.length ? headingList : headings + const readingTime = readingTimeLabel(serialized?.frontmatter?.readingTime) + const showBottomSection = showContributors || showFeedbackSection + const showSidebar = showContributors || showTableOfContents + const markdown = ( + + ) + + return ( + <> + + <> + + {serialized?.frontmatter?.title && ( + {serialized?.frontmatter?.title as string} + )} + {serialized?.frontmatter?.title && ( + + )} + {serialized.frontmatter?.hidden && ( + + )} + {serialized.frontmatter?.excerpt && ( + + )} + + + + + + + + + +
+
+ <> + + {serialized.frontmatter?.title} + + + {children && ( + {children} + )} + {showAuthor && contributors[0]?.avatar && ( + + )} + {serialized.frontmatter?.excerpt && ( + + {serialized.frontmatter?.excerpt} + + )} + +
+ + + {(showDateText || (showReadingTime && readingTime)) && ( + + {showDateText && ( + + )} + {showReadingTime && readingTime && ( + + + + )} + + )} + + + {showAskAIMenu && ( + + )} + + + {renderMarkdown ? renderMarkdown(markdown) : markdown} +
+
+
+ + {showBottomSection && ( + + {showContributors && ( + + + + )} + {showFeedbackSection && ( + + )} + + )} + + {showArticlePagination && pagination && ( + + )} + {seeAlso} +
+ {showSidebar && ( + + {showContributors && } + {showTableOfContents && ( + + {(showFeedbackSection || showSuggestEdits) && ( + + {showFeedbackSection && ( + + )} + {showSuggestEdits && ( + + )} + + )} + + )} + + )} + {showTableOfContents && } +
+ + ) +} + +export default ArticleRender diff --git a/src/components/article-render/styles.ts b/src/components/article-render/styles.ts new file mode 100644 index 0000000..9acc277 --- /dev/null +++ b/src/components/article-render/styles.ts @@ -0,0 +1,323 @@ +import type { SxStyleProp } from '@vtex/brand-ui' + +const MUTED = '#5E6E84' + +const innerContainer: SxStyleProp = { + justifyContent: 'center', + width: '100%', + minWidth: 0, + boxSizing: 'border-box', + pt: ['24px', '32px', '3em'], + mx: 'auto', + px: ['18px', '24px', '32px', '40px', '48px', '64px', '20em'], + pb: ['48px', '64px', '72px'], +} + +const articleBox: SxStyleProp = { + fontSize: '1em', + lineHeight: '1.75em', + flex: '1 1 auto', + width: '100%', + minWidth: 0, + maxWidth: '100%', + color: 'rgb(51, 65, 85)', + overflowWrap: 'anywhere', + img: { + maxWidth: '100%', + height: 'auto', + }, + pre: { + maxWidth: '100%', + overflowX: 'auto', + }, + iframe: { + maxWidth: '100%', + }, + a: { + color: '#E31C58', + textDecoration: 'none', + fontWeight: '500', + }, + ul: { + pl: '1.5em', + mt: '1.25em', + mb: '1.25em', + li: { + mt: '0.5em', + mb: '0.5em', + }, + listStyleType: 'disc', + 'ul, ol': { + mt: '0.5em', + mb: '0.5em', + }, + }, + ol: { + pl: '1.5em', + mt: '1.25em', + mb: '1.25em', + li: { + mt: '0.5em', + mb: '0.5em', + }, + 'ul, ol': { + mt: '0.5em', + mb: '0.5em', + }, + }, + header: { + marginTop: ['8px', '16px'], + borderBottom: '1px solid #E7E9EE', + marginBottom: ['8px', '12px'], + pb: ['12px', '16px'], + }, + h2: { + fontSize: '1.375em', + lineHeight: '1.3em', + fontWeight: '700', + mt: ['1.5em', '2em'], + mb: ['0.75em', '1em'], + overflowWrap: 'anywhere', + color: 'rgb(15, 23, 42)', + }, + h3: { + fontSize: '1.125em', + fontWeight: '600', + lineHeight: '1.6em', + mt: '1.6em', + mb: '0.6em', + overflowWrap: 'anywhere', + }, + h4: { + fontSize: '1em', + fontWeight: '600', + lineHeight: '1.5em', + mt: '1.5em', + mb: '0.5em', + color: 'rgb(15, 23, 42)', + overflowWrap: 'anywhere', + }, + h5: { + fontSize: '0.9375em', + fontWeight: '600', + lineHeight: '1.5em', + mt: '1.25em', + mb: '0.5em', + color: 'rgb(71, 85, 105)', + overflowWrap: 'anywhere', + }, + h6: { + fontSize: '0.9375em', + fontWeight: '600', + lineHeight: '1.5em', + mt: '1.25em', + mb: '0.5em', + color: 'rgb(100, 116, 139)', + overflowWrap: 'anywhere', + }, + strong: { + fontWeight: '600', + overflowWrap: 'break-word', + }, + hr: { + border: '0.5px solid #E7E9EE', + my: ['2em', '3em'], + }, +} + +const contentContainer: SxStyleProp = { + width: '100%', + minWidth: 0, + maxWidth: '100%', +} + +const documentationTitle: SxStyleProp = { + marginTop: '16px', + fontSize: ['24px', '28px'], + lineHeight: ['32px', '36px'], + fontWeight: '400', + color: '#142032', + overflowWrap: 'anywhere', +} + +const documentationExcerpt: SxStyleProp = { + color: '#A1A8B3', + padding: ['8px 0 16px', '8px 0 24px'], + lineHeight: ['20px', '22px'], + fontWeight: '400', + overflowWrap: 'anywhere', +} + +const breadcrumbRow: SxStyleProp = { + justifyContent: 'space-between', + alignItems: 'flex-start', + flexWrap: 'wrap', + gap: '8px', + width: '100%', + minWidth: 0, +} + +const articleHeaderExtra: SxStyleProp = { + mt: ['8px', '10px'], + width: '100%', + minWidth: 0, +} + +const articleMeta: SxStyleProp = { + flexDirection: 'column-reverse', + justifyContent: 'flex-start', + alignItems: 'stretch', + gap: '10px', + marginBottom: ['16px', '20px'], + marginTop: '0', + width: '100%', + minWidth: 0, + '@media screen and (min-width: 40em)': { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'center', + flexWrap: 'wrap', + gap: '8px 16px', + }, +} + +const articleMetaInfo: SxStyleProp = { + flexDirection: 'column', + alignItems: 'flex-start', + justifyContent: 'flex-start', + gap: '2px', + minWidth: 0, + width: '100%', + flex: '0 0 auto', + '@media screen and (min-width: 40em)': { + width: 'auto', + flex: '1 1 auto', + }, +} + +const articleReadingTime: SxStyleProp = { + color: MUTED, + fontSize: '13px', + lineHeight: '20px', + '& > *': { + color: 'inherit !important', + fontSize: 'inherit !important', + lineHeight: 'inherit !important', + }, +} + +const articleActions: SxStyleProp = { + display: 'flex', + alignItems: 'center', + justifyContent: 'flex-start', + gap: '8px', + flexShrink: 0, + ml: 0, + width: '100%', + minWidth: 0, + '& > div': { + width: 'max-content', + flexShrink: 0, + }, + '& [role="menu"]': { + right: 0, + }, + '@media screen and (min-width: 40em)': { + justifyContent: 'flex-end', + ml: 'auto', + width: 'auto', + }, +} + +const bottomContributorsContainer: SxStyleProp = { + display: ['flex', 'flex', 'flex', 'flex', 'none'], + flexDirection: 'column', + alignItems: 'center', + width: '100%', + minWidth: 0, + pt: ['20px', '24px'], + gap: ['24px', '24px'], + '[data-cy="feedback-section"]': { + marginTop: '0', + marginBottom: '0', + gap: '12px', + '& > div:first-of-type': { + borderBottom: 'none', + paddingBottom: 0, + marginBottom: 0, + marginTop: 0, + }, + }, +} + +const bottomContributors: SxStyleProp = { + width: '100%', + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + '& > div': { + alignItems: 'center !important', + width: 'auto !important', + mb: '0 !important', + }, + '[data-cy="contributors-container"]': { + display: 'flex !important', + flexWrap: 'wrap', + justifyContent: 'center', + width: 'auto !important', + maxWidth: '232px', + }, +} + +const rightContainer: SxStyleProp = { + ml: [0, 0, 0, 0, '48px', '68px', '200px'], + display: [ + 'none !important', + 'none !important', + 'none !important', + 'none !important', + 'initial !important', + ], + flexShrink: 0, + width: [0, 0, 0, 0, '240px', '240px', '284px'], +} + +const divider: SxStyleProp = { + borderTop: '1px solid #E7E9EE', + pt: 4, + mt: 4, +} + +const textContainer: SxStyleProp = { + width: '100%', + minWidth: 0, + maxWidth: '100%', + gap: '8px', + pb: ['16px', '24px', '32px'], + mb: ['8px', '24px', '48px'], +} + +const editContainer: SxStyleProp = { + my: 3, + gap: 2, +} + +export default { + innerContainer, + articleBox, + contentContainer, + documentationTitle, + documentationExcerpt, + breadcrumbRow, + articleHeaderExtra, + articleMeta, + articleMetaInfo, + articleReadingTime, + articleActions, + bottomContributorsContainer, + bottomContributors, + rightContainer, + divider, + textContainer, + editContainer, +} diff --git a/src/components/date-text/DateText.stories.tsx b/src/components/date-text/DateText.stories.tsx new file mode 100644 index 0000000..24399f9 --- /dev/null +++ b/src/components/date-text/DateText.stories.tsx @@ -0,0 +1,71 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { ThemeProvider } from '@vtex/brand-ui' +import DateText from './index' +import LibraryContextProvider from 'utils/context/libraryContext' +import { exampleContextProps } from 'utils/storybook-constants' + +const sampleDates = { + createdAt: new Date('2024-03-12T12:00:00.000Z'), + updatedAt: new Date('2026-09-03T12:00:00.000Z'), +} + +const meta = { + title: 'Example/DateText', + component: DateText, + parameters: { + layout: 'centered', + }, + tags: ['autodocs'], + args: sampleDates, + decorators: [ + (Story) => ( + + +
+ +
+
+
+ ), + ], +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = {} + +export const SameDay: Story = { + args: { + createdAt: new Date('2026-09-03T12:00:00.000Z'), + updatedAt: new Date('2026-09-03T18:00:00.000Z'), + }, +} + +export const Spanish: Story = { + decorators: [ + (Story) => ( + + +
+ +
+
+
+ ), + ], +} + +export const Portuguese: Story = { + decorators: [ + (Story) => ( + + +
+ +
+
+
+ ), + ], +} diff --git a/src/components/date-text/index.tsx b/src/components/date-text/index.tsx new file mode 100644 index 0000000..402e905 --- /dev/null +++ b/src/components/date-text/index.tsx @@ -0,0 +1,41 @@ +import { useContext } from 'react' +import { Flex, Text } from '@vtex/brand-ui' + +import { LibraryContext } from 'utils/context/libraryContext' +import { messages } from 'utils/get-message' +import styles from './styles' + +export type DateTextProps = { + createdAt: Date + updatedAt: Date +} + +const formatDate = (date: Date, locale: string) => + new Intl.DateTimeFormat(locale).format(date) + +const DateText = ({ createdAt, updatedAt }: DateTextProps) => { + const { locale } = useContext(LibraryContext) + const createdLabel = messages[locale]['date_text.created'] || 'Published on' + const updatedLabel = + messages[locale]['date_text.updated'] || 'Last updated on' + + return ( + + + + {createdLabel} + + {formatDate(createdAt, locale)} + + + + + {updatedLabel} + + {formatDate(updatedAt, locale)} + + + ) +} + +export default DateText diff --git a/src/components/date-text/styles.ts b/src/components/date-text/styles.ts new file mode 100644 index 0000000..24b3fd6 --- /dev/null +++ b/src/components/date-text/styles.ts @@ -0,0 +1,31 @@ +import type { SxStyleProp } from '@vtex/brand-ui' + +const dateContainer: SxStyleProp = { + alignItems: 'center', + color: '#5E6E84', + fontSize: '13px', + lineHeight: '20px', + fontWeight: '400', + columnGap: '6px', + rowGap: '2px', + flexWrap: 'wrap', + width: '100%', +} + +const dateItem: SxStyleProp = { + color: 'inherit', + fontSize: 'inherit', + lineHeight: 'inherit', +} + +const dateLabel: SxStyleProp = { + fontWeight: '500', + paddingRight: '4px', +} + +const dateSeparator: SxStyleProp = { + color: '#8A94A3', + flexShrink: 0, +} + +export default { dateContainer, dateItem, dateLabel, dateSeparator } diff --git a/src/components/feedback-modal/FeedbackModal.stories.tsx b/src/components/feedback-modal/FeedbackModal.stories.tsx index ff897e6..f9905e3 100644 --- a/src/components/feedback-modal/FeedbackModal.stories.tsx +++ b/src/components/feedback-modal/FeedbackModal.stories.tsx @@ -1,5 +1,4 @@ import type { ComponentProps } from 'react' -import { useState } from 'react' import type { Meta, StoryObj } from '@storybook/react' import { ThemeProvider } from '@vtex/brand-ui' import FeedbackModal from './index' @@ -10,25 +9,6 @@ type FeedbackModalStoryArgs = ComponentProps & { locale?: 'en' | 'pt' | 'es' } -const InteractiveModal = (args: FeedbackModalStoryArgs) => { - const [isOpen, setIsOpen] = useState(false) - const { locale, ...rest } = args - - return ( - <> - - setIsOpen(false)} - /> - - ) -} - const meta = { title: 'Example/FeedbackModal', component: FeedbackModal, @@ -45,7 +25,6 @@ const meta = { }, args: { locale: 'en', - isOpen: true, pageUrl: 'https://developers.vtex.com/docs/guides/example', sendFeedback: async () => undefined, }, @@ -62,7 +41,7 @@ const meta = { ), ], render: ({ locale, ...args }) => ( - undefined} {...args} /> + ), } satisfies Meta @@ -71,21 +50,22 @@ type Story = StoryObj export const Default: Story = {} -export const Interactive: Story = { +export const Open: Story = { args: { - isOpen: false, + defaultOpen: true, }, - render: (args) => , } export const HelpCenter: Story = { args: { + defaultOpen: true, pageUrl: 'https://help.vtex.com/docs/tutorials/example', }, } export const ErrorState: Story = { args: { + defaultOpen: true, sendFeedback: async () => { throw new Error('Network error') }, @@ -95,11 +75,13 @@ export const ErrorState: Story = { export const Spanish: Story = { args: { locale: 'es', + defaultOpen: true, }, } export const Portuguese: Story = { args: { locale: 'pt', + defaultOpen: true, }, } diff --git a/src/components/feedback-modal/index.tsx b/src/components/feedback-modal/index.tsx index 1c16186..22a6a12 100644 --- a/src/components/feedback-modal/index.tsx +++ b/src/components/feedback-modal/index.tsx @@ -3,6 +3,7 @@ import { Box, Flex, Text } from '@vtex/brand-ui' import { LibraryContext } from 'utils/context/libraryContext' import { messages } from 'utils/get-message' import CheckIcon from 'components/icons/check-icon' +import CommentIcon from 'components/icons/comment-icon' import WarningIcon from 'components/icons/warning-icon' import Modal from './modal' import styles from './styles' @@ -41,8 +42,6 @@ export type FeedbackModalPayload = { } export interface FeedbackModalProps { - isOpen: boolean - onClose: () => void /** * Canonical page URL prefilled in the Article field. * Defaults to `window.location.href` so Help Center and Developer Portal @@ -57,6 +56,8 @@ export interface FeedbackModalProps { feedbackEndpoint?: string /** Override the default POST. */ sendFeedback?: (payload: FeedbackModalPayload) => Promise + /** Open the modal on first render. Useful for Storybook. */ + defaultOpen?: boolean } const postFeedback = async ( @@ -75,19 +76,21 @@ const postFeedback = async ( } const FeedbackModal = ({ - isOpen, - onClose, pageUrl, initialMessage, feedbackEndpoint = DEFAULT_FEEDBACK_ENDPOINT, sendFeedback, + defaultOpen = false, }: FeedbackModalProps) => { const { locale } = useContext(LibraryContext) const localizedMessages = messages[locale] ?? messages.en + const [isOpen, setIsOpen] = useState(defaultOpen) const [submitted, setSubmitted] = useState(false) const [submitting, setSubmitting] = useState(false) const [error, setError] = useState(false) + const handleClose = () => setIsOpen(false) + const articleUrl = pageUrl || initialMessage || @@ -132,41 +135,53 @@ const FeedbackModal = ({ } return ( - - {submitted ? ( - - - ) : ( - - - {error ? ( - - - {localizedMessages['feedback_modal.error']} - - ) : null} + ) : ( + + + {error ? ( + + + {localizedMessages['feedback_modal.error']} + + ) : null} @@ -270,7 +285,7 @@ const FeedbackModal = ({ {localizedMessages['feedback_modal.cancel']} @@ -286,10 +301,11 @@ const FeedbackModal = ({ : localizedMessages['feedback_modal.submit']} + - - )} - + )} + + ) } diff --git a/src/components/feedback-modal/styles.ts b/src/components/feedback-modal/styles.ts index 4030dc9..53235d0 100644 --- a/src/components/feedback-modal/styles.ts +++ b/src/components/feedback-modal/styles.ts @@ -1,5 +1,34 @@ import { SxStyleProp } from '@vtex/brand-ui' +const triggerWrap: SxStyleProp = { + display: 'inline-flex', + flexShrink: 0, + width: 'max-content', +} + +const triggerButton: SxStyleProp = { + mt: 0, + px: 3, + minHeight: 36, + background: '#fff', + borderRadius: '4px', + cursor: 'pointer', + fontSize: 12, + height: 'min-content', + textTransform: 'none', + display: 'inline-flex', + alignItems: 'center', + justifyContent: 'center', + gap: 3, + width: 'max-content', + maxWidth: '180px', + flexShrink: 0, + whiteSpace: 'nowrap', + color: 'muted.0', + border: '1px solid #E7E9EE', + '&:hover': { backgroundColor: '#F8F7FC', color: '#000711' }, +} + const wrapContainer: SxStyleProp = { position: 'fixed', inset: 0, @@ -292,6 +321,8 @@ const successTitle: SxStyleProp = { } export default { + triggerWrap, + triggerButton, wrapContainer, innerContainer, header, diff --git a/src/components/feedback-section/index.tsx b/src/components/feedback-section/index.tsx index 2db3473..3b641c9 100644 --- a/src/components/feedback-section/index.tsx +++ b/src/components/feedback-section/index.tsx @@ -1,5 +1,4 @@ -import { Flex, Text, Link } from '@vtex/brand-ui' -import EditIcon from 'components/icons/edit-icon' +import { Flex, Text } from '@vtex/brand-ui' import LikeIcon from 'components/icons/like-icon' import LikeSelectedIcon from 'components/icons/like-selected-icon' import { useContext, useEffect, useState } from 'react' @@ -7,6 +6,7 @@ import styles from './styles' import { LibraryContext } from 'utils/context/libraryContext' import { messages } from 'utils/get-message' import ShareButton from 'components/share-button' +import SuggestEdits from 'components/suggest-edits' const DEFAULT_FEEDBACK_ENDPOINT = '/api/feedback/' @@ -146,16 +146,8 @@ const FeedbackSection = ({ - {suggestEdits && ( - - - {messages[locale]['feedback_section.edit']} - + {suggestEdits && urlToEdit && ( + )} {shareButton && ( diff --git a/src/components/feedback-section/styles.ts b/src/components/feedback-section/styles.ts index bfde80c..cd89e4b 100644 --- a/src/components/feedback-section/styles.ts +++ b/src/components/feedback-section/styles.ts @@ -67,29 +67,10 @@ const selectedButton: SxStyleProp = { color: 'muted.1', } -const box: StyleFn = ({ small } = {}) => ({ - alignItems: 'center', - color: 'muted.0', - fontSize: small ? '12px' : '16px', - lineHeight: '22px', -}) - const disabled: SxStyleProp = { display: 'none !important', } -const editContainer: StyleFn = ({ small } = {}) => ({ - ...box({ small }), - ...button, - ':hover': { - color: '#000711 !important', - }, - color: '#4A596B !important', - display: 'flex', -}) - -const editIcon: SxStyleProp = { mr: '4px' } - const shareButton: SxStyleProp = {} export default { @@ -99,9 +80,6 @@ export default { likeContainer, likeIcon, dislikeIcon, - editContainer, - editIcon, - box, button, buttonActive, selectedButton, diff --git a/src/components/icons/comment-icon.tsx b/src/components/icons/comment-icon.tsx new file mode 100644 index 0000000..edfc91b --- /dev/null +++ b/src/components/icons/comment-icon.tsx @@ -0,0 +1,21 @@ +import type { IconProps } from '@vtex/brand-ui' +import { Icon } from '@vtex/brand-ui' + +const CommentIcon = (props: IconProps) => ( + + + +) + +export default CommentIcon diff --git a/src/components/icons/index.ts b/src/components/icons/index.ts index 5149430..0cc8171 100644 --- a/src/components/icons/index.ts +++ b/src/components/icons/index.ts @@ -86,3 +86,4 @@ export { default as VTEXLogoFooter } from './vtex-logo-footer' // Feedback Icons export { default as LikeIcon } from './like-icon' export { default as LikeSelectedIcon } from './like-selected-icon' +export { default as CommentIcon } from './comment-icon' diff --git a/src/components/insert-account-name/InsertAccountName.stories.tsx b/src/components/insert-account-name/InsertAccountName.stories.tsx new file mode 100644 index 0000000..f82c86e --- /dev/null +++ b/src/components/insert-account-name/InsertAccountName.stories.tsx @@ -0,0 +1,55 @@ +import type { Meta, StoryObj } from '@storybook/react' +import { ThemeProvider } from '@vtex/brand-ui' +import InsertAccountName from './index' +import LibraryContextProvider from 'utils/context/libraryContext' +import { exampleContextProps } from 'utils/storybook-constants' + +const meta = { + title: 'Example/InsertAccountName', + component: InsertAccountName, + parameters: { + layout: 'padded', + }, + tags: ['autodocs'], + args: { + id: 'getting-started', + }, + decorators: [ + (Story) => ( + + + + + + ), + ], +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = {} + +export const Spanish: Story = { + decorators: [ + (Story) => ( + + + + + + ), + ], +} + +export const Portuguese: Story = { + decorators: [ + (Story) => ( + + + + + + ), + ], +} diff --git a/src/components/insert-account-name/index.tsx b/src/components/insert-account-name/index.tsx new file mode 100644 index 0000000..a12e075 --- /dev/null +++ b/src/components/insert-account-name/index.tsx @@ -0,0 +1,84 @@ +import { useContext, useState, type ChangeEvent } from 'react' +import { Box, Text } from '@vtex/brand-ui' + +import Tooltip from 'components/tooltip' +import { LibraryContext } from 'utils/context/libraryContext' +import { messages } from 'utils/get-message' +import styles from './styles' + +export type InsertAccountNameProps = { + id: string +} + +const InsertAccountName = ({ id }: InsertAccountNameProps) => { + const { locale } = useContext(LibraryContext) + const [accountName, setAccountName] = useState('') + const [showError, setShowError] = useState(false) + const [hovered, setHovered] = useState(false) + + const handleNavigate = () => { + if (!accountName.trim()) { + setShowError(true) + return + } + window.open( + `https://${accountName.trim()}.myvtex.com/admin/docs/${id}`, + '_blank' + ) + } + + const handleChange = (e: ChangeEvent) => { + setAccountName(e.target.value) + if (showError) setShowError(false) + } + + return ( + + + { + if (e.key === 'Enter') handleNavigate() + }} + style={{ + ...styles.input, + ...(showError ? styles.inputError : {}), + }} + /> + + + + + {showError && ( + + {messages[locale]['insert_account_name.error'] || + 'Account name is required'} + + )} + + ) +} + +export default InsertAccountName diff --git a/src/components/insert-account-name/styles.ts b/src/components/insert-account-name/styles.ts new file mode 100644 index 0000000..f176383 --- /dev/null +++ b/src/components/insert-account-name/styles.ts @@ -0,0 +1,66 @@ +import type { SxStyleProp } from '@vtex/brand-ui' +import type { CSSProperties } from 'react' + +const wrapper: SxStyleProp = { + display: 'flex', + flexDirection: 'column', + gap: '4px', + my: '16px', +} + +const container: SxStyleProp = { + display: 'flex', + flexDirection: 'row', + alignItems: 'center', + gap: '8px', +} + +const input: CSSProperties = { + width: '280px', + height: '40px', + padding: '0 12px', + border: '1px solid #ccc', + borderRadius: '4px', + fontSize: '14px', + boxSizing: 'border-box', + transition: 'border-color 0.3s ease-out', +} + +const inputError: CSSProperties = { + borderColor: '#E31C58', + outline: 'none', +} + +const button: CSSProperties = { + height: '40px', + padding: '0 16px', + border: '1px solid #ccc', + borderRadius: '4px', + fontSize: '14px', + background: 'transparent', + cursor: 'pointer', + whiteSpace: 'nowrap', + boxSizing: 'border-box', + transition: 'all 0.3s ease-out', +} + +const buttonHover: CSSProperties = { + background: '#F8F7FC', + borderColor: '#5E6E84', + color: '#E31C58', +} + +const errorText: SxStyleProp = { + fontSize: '12px', + color: '#E31C58', +} + +export default { + wrapper, + container, + input, + inputError, + button, + buttonHover, + errorText, +} diff --git a/src/components/suggest-edits/SuggestEdits.stories.tsx b/src/components/suggest-edits/SuggestEdits.stories.tsx new file mode 100644 index 0000000..27253b2 --- /dev/null +++ b/src/components/suggest-edits/SuggestEdits.stories.tsx @@ -0,0 +1,68 @@ +import type { ComponentProps } from 'react' +import type { Meta, StoryObj } from '@storybook/react' +import { ThemeProvider } from '@vtex/brand-ui' +import SuggestEdits from './index' +import LibraryContextProvider from 'utils/context/libraryContext' +import { exampleContextProps } from 'utils/storybook-constants' + +type SuggestEditsStoryArgs = ComponentProps & { + locale?: 'en' | 'pt' | 'es' +} + +const meta = { + title: 'Example/SuggestEdits', + component: SuggestEdits, + parameters: { + layout: 'centered', + }, + tags: ['autodocs'], + argTypes: { + locale: { + control: 'select', + options: ['en', 'pt', 'es'], + description: 'Language used for the edit label', + }, + }, + args: { + locale: 'en', + urlToEdit: + 'https://github.com/vtexdocs/help-center-content/edit/main/docs/tutorials/example.md', + small: false, + }, + decorators: [ + (Story, { args }) => ( + + + + + + ), + ], + render: ({ locale, ...args }) => , +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = {} + +export const Small: Story = { + args: { + small: true, + }, +} + +export const Spanish: Story = { + args: { + locale: 'es', + }, +} + +export const Portuguese: Story = { + args: { + locale: 'pt', + }, +} diff --git a/src/components/suggest-edits/index.tsx b/src/components/suggest-edits/index.tsx new file mode 100644 index 0000000..fe87538 --- /dev/null +++ b/src/components/suggest-edits/index.tsx @@ -0,0 +1,40 @@ +import { useContext } from 'react' +import { Link, Text } from '@vtex/brand-ui' +import type { SxStyleProp } from '@vtex/brand-ui' + +import EditIcon from 'components/icons/edit-icon' +import { LibraryContext } from 'utils/context/libraryContext' +import { messages } from 'utils/get-message' +import styles from './styles' + +export type SuggestEditsProps = { + /** GitHub edit URL for the current documentation file. */ + urlToEdit: string + /** Compact size used next to the table of contents. */ + small?: boolean + sx?: SxStyleProp +} + +const SuggestEdits = ({ + urlToEdit, + small = false, + sx = {}, +}: SuggestEditsProps) => { + const { locale } = useContext(LibraryContext) + const label = + messages[locale]['feedback_section.edit'] || 'Suggest Edits (GitHub)' + + return ( + + + {label} + + ) +} + +export default SuggestEdits diff --git a/src/components/suggest-edits/styles.ts b/src/components/suggest-edits/styles.ts new file mode 100644 index 0000000..3d106ae --- /dev/null +++ b/src/components/suggest-edits/styles.ts @@ -0,0 +1,22 @@ +import type { SxStyleProp } from '@vtex/brand-ui' + +type StyleFn = (opts?: { small?: boolean }) => SxStyleProp + +const container: StyleFn = ({ small } = {}) => ({ + alignItems: 'center', + gap: '4px', + fontSize: small ? '12px' : '16px', + lineHeight: '22px', + color: '#4A596B !important', + display: 'flex', + ':hover': { + color: '#000711 !important', + cursor: 'pointer', + }, +}) + +const icon: SxStyleProp = { + flexShrink: 0, +} + +export default { container, icon } diff --git a/src/index.ts b/src/index.ts index 338744b..3aa8b4f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -32,6 +32,11 @@ export { Tooltip, Author, TimeToRead, + DateText, + ArticlePagination, + InsertAccountName, + SuggestEdits, + ArticleRender, TroubleshootingCard, filterTroubleshootingItems, collectTroubleshootingFilterOptions, @@ -50,6 +55,13 @@ export { type ChipFilterProps, type AuthorProps, type TimeToReadProps, + type DateTextProps, + type ArticlePaginationProps, + type ArticlePaginationData, + type ArticlePaginationDoc, + type InsertAccountNameProps, + type SuggestEditsProps, + type ArticleRenderProps, type TroubleshootingCardProps, type TroubleshootingCardVariant, type TroubleshootingItem, diff --git a/src/lib/index.ts b/src/lib/index.ts index 9775d78..aa75391 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -54,6 +54,11 @@ export { default as ChipFilter } from '../components/chip-filter' export { default as Tooltip } from '../components/tooltip' export { default as Author } from '../components/author' export { default as TimeToRead } from '../components/time-to-read' +export { default as DateText } from '../components/date-text' +export { default as ArticlePagination } from '../components/article-pagination' +export { default as InsertAccountName } from '../components/insert-account-name' +export { default as SuggestEdits } from '../components/suggest-edits' +export { default as ArticleRender } from '../components/article-render' export { default as TroubleshootingCard } from '../components/troubleshooting-card' export type { Item } from './table-of-contents' export type { OnThisPageProps } from './on-this-page' @@ -87,6 +92,15 @@ export type { } from '../components/chip-filter' export type { AuthorProps } from '../components/author' export type { TimeToReadProps } from '../components/time-to-read' +export type { DateTextProps } from '../components/date-text' +export type { + ArticlePaginationProps, + ArticlePaginationData, + ArticlePaginationDoc, +} from '../components/article-pagination' +export type { InsertAccountNameProps } from '../components/insert-account-name' +export type { SuggestEditsProps } from '../components/suggest-edits' +export type { ArticleRenderProps } from '../components/article-render' export type { TroubleshootingCardProps, TroubleshootingCardVariant, diff --git a/src/lib/markdown-renderer/MarkdownRenderer.stories.tsx b/src/lib/markdown-renderer/MarkdownRenderer.stories.tsx index 26f204b..b496701 100644 --- a/src/lib/markdown-renderer/MarkdownRenderer.stories.tsx +++ b/src/lib/markdown-renderer/MarkdownRenderer.stories.tsx @@ -3,7 +3,7 @@ import { ThemeProvider } from '@vtex/brand-ui' import MarkdownRenderer from './MarkdownRenderer' import LibraryContextProvider from 'utils/context/libraryContext' import { exampleContextProps } from 'utils/storybook-constants' -import { TestComponent, serialized } from 'utils/storybook-mdx' +import { serialized } from 'utils/storybook-mdx' const meta = { title: 'Example/MarkdownRenderer', @@ -25,8 +25,6 @@ type Story = StoryObj export const SimpleMarkdownRenderer: Story = { args: { - serialized: serialized, - customComponents: { TestComponent }, - scope: {}, + serialized, }, } diff --git a/src/lib/markdown-renderer/components.tsx b/src/lib/markdown-renderer/components.tsx index 09d0acc..10c9e4e 100644 --- a/src/lib/markdown-renderer/components.tsx +++ b/src/lib/markdown-renderer/components.tsx @@ -15,6 +15,7 @@ import YoutubeFrame from 'components/youtube-frame' import Steps from 'components/steps' import LightBox from 'components/lightbox' import WhatsNextCard from 'components/whats-next-card' +import InsertAccountName from 'components/insert-account-name' import { LibraryContext } from 'utils/context/libraryContext' import { childrenToString, slugify } from 'utils/string-utils' @@ -217,6 +218,7 @@ export default { WhatsNextCard, YoutubeFrame, Steps, + InsertAccountName, Flex: ({ node, ...props }: Component) => ( ), diff --git a/src/lib/sidebar/fixtures/navigation-data.js b/src/lib/sidebar/fixtures/navigation-data.js index c1bea85..a10c04c 100644 --- a/src/lib/sidebar/fixtures/navigation-data.js +++ b/src/lib/sidebar/fixtures/navigation-data.js @@ -1,5 +1,8 @@ +import developersNavigationData from './developers-navigation.json' +import helpNavigationData from './help-navigation.json' + /** Snapshot of https://developers.vtex.com/navigation.json (`navbar`). */ -module.exports.developersNavigation = require('./developers-navigation.json') +export const developersNavigation = developersNavigationData /** Snapshot of https://help.vtex.com/navigation.json (`navbar`). */ -module.exports.helpNavigation = require('./help-navigation.json') +export const helpNavigation = helpNavigationData diff --git a/src/messages/en.json b/src/messages/en.json index c2d09c0..3042abf 100644 --- a/src/messages/en.json +++ b/src/messages/en.json @@ -4,6 +4,7 @@ "feedback_section.positive": "Yes", "feedback_section.negative": "No", "feedback_section.edit": "Suggest Edits (GitHub)", + "feedback_modal.button": "Send feedback", "feedback_modal.title": "Send feedback", "feedback_modal.description": "Share suggestions, issues found, or ideas to improve our documentation.", "feedback_modal.success": "Thank you! Your feedback has been received.", @@ -78,6 +79,14 @@ "header.admin_tools": "Admin tools", "header.home_aria": "Go back to Home", "documentation_reading_time.text": "{minutes} min read", + "date_text.created": "Published on", + "date_text.updated": "Last updated on", + "article_pagination.previous": "Previous", + "article_pagination.next": "Next", + "insert_account_name.placeholder": "Account name", + "insert_account_name.button": "Go to documentation", + "insert_account_name.tooltip": "View documentation page on VTEX Admin", + "insert_account_name.error": "Account name is required", "ask_ai.copy": "Copy markdown", "ask_ai.view": "View markdown", "ask_ai.copied": "Copied", diff --git a/src/messages/es.json b/src/messages/es.json index 94cbe54..2ac76ee 100644 --- a/src/messages/es.json +++ b/src/messages/es.json @@ -4,6 +4,7 @@ "feedback_section.positive": "Sí", "feedback_section.negative": "No", "feedback_section.edit": "Sugerir cambios (GitHub)", + "feedback_modal.button": "Enviar feedback", "feedback_modal.title": "Enviar feedback", "feedback_modal.description": "Comparte sugerencias, problemas encontrados o ideas para mejorar nuestra documentación.", "feedback_modal.success": "¡Gracias! Hemos recibido tu feedback.", @@ -80,6 +81,14 @@ "copy_heading_link.copy": "Copiar enlace", "copy_heading_link.copied": "Copiado", "documentation_reading_time.text": "{minutes} min de lectura", + "date_text.created": "Publicado el", + "date_text.updated": "Última actualización el", + "article_pagination.previous": "Anterior", + "article_pagination.next": "Siguiente", + "insert_account_name.placeholder": "Nombre de cuenta", + "insert_account_name.button": "Ir a la documentación", + "insert_account_name.tooltip": "Ver página de documentación en VTEX Admin", + "insert_account_name.error": "El nombre de cuenta es obligatorio", "ask_ai.copy": "Copiar markdown", "ask_ai.view": "Ver markdown", "ask_ai.copied": "Copiado", diff --git a/src/messages/pt.json b/src/messages/pt.json index 66da54d..69d04cf 100644 --- a/src/messages/pt.json +++ b/src/messages/pt.json @@ -4,6 +4,7 @@ "feedback_section.positive": "Sim", "feedback_section.negative": "Não", "feedback_section.edit": "Sugerir edições (GitHub)", + "feedback_modal.button": "Enviar feedback", "feedback_modal.title": "Enviar feedback", "feedback_modal.description": "Compartilhe sugestões, problemas encontrados ou ideias para melhorar nossa documentação.", "feedback_modal.success": "Obrigado! Seu feedback foi recebido.", @@ -80,6 +81,14 @@ "copy_heading_link.copy": "Copiar link", "copy_heading_link.copied": "Copiado", "documentation_reading_time.text": "{minutes} min de leitura", + "date_text.created": "Publicado em", + "date_text.updated": "Última atualização em", + "article_pagination.previous": "Anterior", + "article_pagination.next": "Próximo", + "insert_account_name.placeholder": "Nome da conta", + "insert_account_name.button": "Acessar documentação", + "insert_account_name.tooltip": "Ver página de documentação no Admin VTEX", + "insert_account_name.error": "O nome da conta é obrigatório", "ask_ai.copy": "Copiar markdown", "ask_ai.view": "Ver markdown", "ask_ai.copied": "Copiado", diff --git a/src/utils/storybook-mdx.tsx b/src/utils/storybook-mdx.tsx index e7632eb..86d47a1 100644 --- a/src/utils/storybook-mdx.tsx +++ b/src/utils/storybook-mdx.tsx @@ -1,38 +1,3 @@ -import { Component } from 'lib/markdown-renderer/MarkdownRenderer.types' -import { serialize } from 'next-mdx-remote/serialize' +import serializedMdx from 'virtual:storybook-mdx' -const markdown_example = ` -# Clients - -Systems are meant to solve real problems by communicating to the needed services. A delivery app, for example, solves the issue of the desire to eat by communicating with a local restaurant service. - -On VTEX IO architecture, the communication made by a system to request a service is so crucial that a whole concept was built for it: **Clients**. - -In other words, Clients are configurations to be set up in a given system to **abstract its communications to the needed services**. - -When building software, you can tackle complexities by setting up clients and then optimizing your code. Some standard clients are already into the VTEX IO. Check them [here](https://github.com/vtex/node-vtex-api/blob/ccf4d8f8d3208007c4bfd558baf979df8d825af8/src/clients/IOClients.ts). - -These are some of the features built-in our clients infrastructure: - - - Cache; - - Native metrics support; - - Retry and timeout options; - - Billing tracking. - -![Clients on IO Services](https://imgur.com/i45O8MN.png) - - - -Learn how to create Clients of your own by accessing [Managing Clients](https://developers.vtex.com/vtex-developer-docs/docs/vtex-io-documentation-how-to-create-and-use-clients) documentation. -` - -// eslint-disable-next-line @typescript-eslint/no-unused-vars -export const TestComponent = ({ node, ...props }: Component) => { - return
{props.text}
-} - -export const serialized = await serialize(markdown_example, { - mdxOptions: { - development: true, - }, -}) +export const serialized = serializedMdx diff --git a/src/utils/typings/messages-types.ts b/src/utils/typings/messages-types.ts index d0c198d..93cc6da 100644 --- a/src/utils/typings/messages-types.ts +++ b/src/utils/typings/messages-types.ts @@ -4,6 +4,7 @@ export type MessagesType = { 'feedback_section.positive': string 'feedback_section.negative': string 'feedback_section.edit': string + 'feedback_modal.button': string 'feedback_modal.title': string 'feedback_modal.description': string 'feedback_modal.success': string @@ -78,6 +79,14 @@ export type MessagesType = { 'header.admin_tools': string 'header.home_aria': string 'documentation_reading_time.text': string + 'date_text.created': string + 'date_text.updated': string + 'article_pagination.previous': string + 'article_pagination.next': string + 'insert_account_name.placeholder': string + 'insert_account_name.button': string + 'insert_account_name.tooltip': string + 'insert_account_name.error': string 'ask_ai.copy': string 'ask_ai.view': string 'ask_ai.copied': string diff --git a/src/utils/typings/virtual-storybook-mdx.d.ts b/src/utils/typings/virtual-storybook-mdx.d.ts new file mode 100644 index 0000000..c7a4d2c --- /dev/null +++ b/src/utils/typings/virtual-storybook-mdx.d.ts @@ -0,0 +1,6 @@ +declare module 'virtual:storybook-mdx' { + import type { MDXRemoteSerializeResult } from 'next-mdx-remote' + + const serialized: MDXRemoteSerializeResult + export default serialized +}