From 14b55dbd2e3aee269df384fa81ebeeaca2bea743 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 4 Feb 2026 00:21:43 +0530 Subject: [PATCH 01/74] init test --- .../categories/PageSectionCategory.tsx | 3 + .../pageSections/SearchSection/Search.tsx | 209 ++++++++++++++++++ .../src/components/pageSections/index.ts | 1 + 3 files changed, 213 insertions(+) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx diff --git a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx index 7814ca7bf8..a0553b966e 100644 --- a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx +++ b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx @@ -64,6 +64,7 @@ import { ProfessionalHeroSection, ProfessionalHeroSectionProps, } from "../pageSections/ProfessionalHeroSection.tsx"; +import { SearchComponent, SearchProps } from "../pageSections/index.ts"; export interface PageSectionCategoryProps { AboutSection: AboutSectionProps; @@ -84,6 +85,7 @@ export interface PageSectionCategoryProps { TeamSection: TeamSectionProps; TestimonialSection: TestimonialSectionProps; VideoSection: VideoSectionProps; + SearchComponent: SearchProps; } export const PageSectionCategoryComponents = { @@ -105,6 +107,7 @@ export const PageSectionCategoryComponents = { TeamSection, TestimonialSection, VideoSection, + SearchComponent, }; export const PageSectionCategory = Object.keys( diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx new file mode 100644 index 0000000000..0857790c8b --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -0,0 +1,209 @@ +import { ComponentConfig, Fields, WithPuckProps } from "@puckeditor/core"; +import { + CloudRegion, + Environment, + provideHeadless, + SearchConfig, + SearchHeadlessProvider, +} from "@yext/search-headless-react"; +import { SearchBar, SearchI18nextProvider } from "@yext/search-ui-react"; +import React from "react"; +import { BasicSelector } from "../../../editor/BasicSelector.tsx"; +import { DynamicOptionsSelectorType } from "../../../editor/DynamicOptionsSelector.tsx"; +import { YextField } from "../../../editor/YextField.tsx"; +import { useDocument } from "../../../hooks/useDocument.tsx"; +import { msg } from "../../../utils/index.ts"; +import { + DEFAULT_LOCATOR_RESULT_CARD_PROPS, + LocatorResultCardFields, + LocatorResultCardProps, +} from "../../LocatorResultCard.tsx"; +export interface SearchProps { + /** + * The visual theme for the map tiles, chosen from a predefined list of Mapbox styles. + * @defaultValue 'mapbox://styles/mapbox/streets-v12' + */ + mapStyle?: string; + + /** + * Configuration for the filters available in the locator search experience. + */ + filters: { + /** + * If 'true', displays a button to filter for locations that are currently open. + * @defaultValue false + */ + openNowButton: boolean; + /** + * If 'true', displays several distance options to filter searches to only locations within + * a certain radius. + * @defaultValue false + */ + showDistanceOptions: boolean; + /** Which fields are facetable in the search experience */ + facetFields?: DynamicOptionsSelectorType; + }; + + /** + * The starting location for the map. + */ + mapStartingLocation?: { + latitude: string; + longitude: string; + }; + + /** + * Props to customize the locator result card component. + * Controls which fields are displayed and their styling. + */ + resultCard: LocatorResultCardProps; +} +const locatorFields: Fields = { + mapStyle: BasicSelector({ + label: msg("fields.mapStyle", "Map Style"), + options: [ + { + label: msg("fields.options.default", "Default"), + value: "mapbox://styles/mapbox/streets-v12", + }, + { + label: msg("fields.options.satellite", "Satellite"), + value: "mapbox://styles/mapbox/satellite-streets-v12", + }, + { + label: msg("fields.options.light", "Light"), + value: "mapbox://styles/mapbox/light-v11", + }, + { + label: msg("fields.options.dark", "Dark"), + value: "mapbox://styles/mapbox/dark-v11", + }, + { + label: msg("fields.options.navigationDay", "Navigation (Day)"), + value: "mapbox://styles/mapbox/navigation-day-v1", + }, + { + label: msg("fields.options.navigationNight", "Navigation (Night)"), + value: "mapbox://styles/mapbox/navigation-night-v1", + }, + ], + }), + filters: { + label: msg("fields.filters", "Filters"), + type: "object", + objectFields: { + openNowButton: YextField( + msg("fields.options.includeOpenNow", "Include Open Now Button"), + { + type: "radio", + options: [ + { label: msg("fields.options.yes", "Yes"), value: true }, + { label: msg("fields.options.no", "No"), value: false }, + ], + } + ), + showDistanceOptions: YextField( + msg("fields.options.showDistanceOptions", "Include Distance Options"), + { + type: "radio", + options: [ + { label: msg("fields.options.yes", "Yes"), value: true }, + { label: msg("fields.options.no", "No"), value: false }, + ], + } + ), + }, + }, + mapStartingLocation: YextField( + msg("fields.options.mapStartingLocation", "Map Starting Location"), + { + type: "object", + objectFields: { + latitude: YextField(msg("fields.latitude", "Latitude"), { + type: "text", + }), + longitude: YextField(msg("fields.longitude", "Longitude"), { + type: "text", + }), + }, + } + ), + resultCard: LocatorResultCardFields, +}; +const EXPERIENCE_VERSION = "PRODUCTION"; + +export const searchConfig: SearchConfig = { + apiKey: import.meta.env.YEXT_PUBLIC_SEARCH_API_KEY, + experienceKey: import.meta.env.YEXT_PUBLIC_SEARCH_EXP_KEY, + locale: "en", + experienceVersion: EXPERIENCE_VERSION, + cloudRegion: CloudRegion.US, + environment: Environment.PROD, +}; +const SearchWrapper = (props: WithPuckProps) => { + const streamDocument = useDocument(); + const { searchAnalyticsConfig, searcher } = React.useMemo(() => { + const searchHeadlessConfig = provideHeadless(searchConfig); + if (searchHeadlessConfig === undefined) { + return { searchAnalyticsConfig: undefined, searcher: undefined }; + } + + const searchAnalyticsConfig = provideHeadless(searchConfig); + return { + searchAnalyticsConfig, + searcher: provideHeadless(searchConfig), + }; + }, [streamDocument.id, streamDocument.locale]); + + if (searcher === undefined || searchAnalyticsConfig === undefined) { + console.warn( + "Could not create Locator component because Search Headless or Search Analytics config is undefined. Please check your environment variables." + ); + return <>; + } + searcher.setSessionTrackingEnabled(true); + return ( + + + {/* */} + + {/* */} + + + ); +}; + +const SearchInternal = (props: WithPuckProps) => { + console.log(props); + + return ( + <> + + + ); +}; +/** + * Available on Search templates. + */ +export const SearchComponent: ComponentConfig<{ props: SearchProps }> = { + fields: locatorFields, + defaultProps: { + filters: { + openNowButton: false, + showDistanceOptions: false, + }, + resultCard: DEFAULT_LOCATOR_RESULT_CARD_PROPS, + }, + label: msg("components.search", "Search"), + render: (props) => , +}; diff --git a/packages/visual-editor/src/components/pageSections/index.ts b/packages/visual-editor/src/components/pageSections/index.ts index a399c08613..2074e2df7b 100644 --- a/packages/visual-editor/src/components/pageSections/index.ts +++ b/packages/visual-editor/src/components/pageSections/index.ts @@ -86,3 +86,4 @@ export { type ProfessionalHeroSectionProps, type ProfessionalHeroStyles, } from "./ProfessionalHeroSection.tsx"; +export { SearchComponent, type SearchProps } from "./SearchSection/Search.tsx"; From 84e458ca093e67c882b64d6184a13695d6fc1e04 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 6 Feb 2026 00:14:38 +0530 Subject: [PATCH 02/74] working copy --- .../pageSections/SearchSection/Search.tsx | 209 -------------- .../SearchSectionClassic/Layout.tsx | 27 ++ .../SearchSectionClassic/Search.tsx | 261 ++++++++++++++++++ .../src/components/pageSections/index.ts | 5 +- 4 files changed, 292 insertions(+), 210 deletions(-) delete mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx create mode 100644 packages/visual-editor/src/components/pageSections/SearchSectionClassic/Layout.tsx create mode 100644 packages/visual-editor/src/components/pageSections/SearchSectionClassic/Search.tsx diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx deleted file mode 100644 index 0857790c8b..0000000000 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ /dev/null @@ -1,209 +0,0 @@ -import { ComponentConfig, Fields, WithPuckProps } from "@puckeditor/core"; -import { - CloudRegion, - Environment, - provideHeadless, - SearchConfig, - SearchHeadlessProvider, -} from "@yext/search-headless-react"; -import { SearchBar, SearchI18nextProvider } from "@yext/search-ui-react"; -import React from "react"; -import { BasicSelector } from "../../../editor/BasicSelector.tsx"; -import { DynamicOptionsSelectorType } from "../../../editor/DynamicOptionsSelector.tsx"; -import { YextField } from "../../../editor/YextField.tsx"; -import { useDocument } from "../../../hooks/useDocument.tsx"; -import { msg } from "../../../utils/index.ts"; -import { - DEFAULT_LOCATOR_RESULT_CARD_PROPS, - LocatorResultCardFields, - LocatorResultCardProps, -} from "../../LocatorResultCard.tsx"; -export interface SearchProps { - /** - * The visual theme for the map tiles, chosen from a predefined list of Mapbox styles. - * @defaultValue 'mapbox://styles/mapbox/streets-v12' - */ - mapStyle?: string; - - /** - * Configuration for the filters available in the locator search experience. - */ - filters: { - /** - * If 'true', displays a button to filter for locations that are currently open. - * @defaultValue false - */ - openNowButton: boolean; - /** - * If 'true', displays several distance options to filter searches to only locations within - * a certain radius. - * @defaultValue false - */ - showDistanceOptions: boolean; - /** Which fields are facetable in the search experience */ - facetFields?: DynamicOptionsSelectorType; - }; - - /** - * The starting location for the map. - */ - mapStartingLocation?: { - latitude: string; - longitude: string; - }; - - /** - * Props to customize the locator result card component. - * Controls which fields are displayed and their styling. - */ - resultCard: LocatorResultCardProps; -} -const locatorFields: Fields = { - mapStyle: BasicSelector({ - label: msg("fields.mapStyle", "Map Style"), - options: [ - { - label: msg("fields.options.default", "Default"), - value: "mapbox://styles/mapbox/streets-v12", - }, - { - label: msg("fields.options.satellite", "Satellite"), - value: "mapbox://styles/mapbox/satellite-streets-v12", - }, - { - label: msg("fields.options.light", "Light"), - value: "mapbox://styles/mapbox/light-v11", - }, - { - label: msg("fields.options.dark", "Dark"), - value: "mapbox://styles/mapbox/dark-v11", - }, - { - label: msg("fields.options.navigationDay", "Navigation (Day)"), - value: "mapbox://styles/mapbox/navigation-day-v1", - }, - { - label: msg("fields.options.navigationNight", "Navigation (Night)"), - value: "mapbox://styles/mapbox/navigation-night-v1", - }, - ], - }), - filters: { - label: msg("fields.filters", "Filters"), - type: "object", - objectFields: { - openNowButton: YextField( - msg("fields.options.includeOpenNow", "Include Open Now Button"), - { - type: "radio", - options: [ - { label: msg("fields.options.yes", "Yes"), value: true }, - { label: msg("fields.options.no", "No"), value: false }, - ], - } - ), - showDistanceOptions: YextField( - msg("fields.options.showDistanceOptions", "Include Distance Options"), - { - type: "radio", - options: [ - { label: msg("fields.options.yes", "Yes"), value: true }, - { label: msg("fields.options.no", "No"), value: false }, - ], - } - ), - }, - }, - mapStartingLocation: YextField( - msg("fields.options.mapStartingLocation", "Map Starting Location"), - { - type: "object", - objectFields: { - latitude: YextField(msg("fields.latitude", "Latitude"), { - type: "text", - }), - longitude: YextField(msg("fields.longitude", "Longitude"), { - type: "text", - }), - }, - } - ), - resultCard: LocatorResultCardFields, -}; -const EXPERIENCE_VERSION = "PRODUCTION"; - -export const searchConfig: SearchConfig = { - apiKey: import.meta.env.YEXT_PUBLIC_SEARCH_API_KEY, - experienceKey: import.meta.env.YEXT_PUBLIC_SEARCH_EXP_KEY, - locale: "en", - experienceVersion: EXPERIENCE_VERSION, - cloudRegion: CloudRegion.US, - environment: Environment.PROD, -}; -const SearchWrapper = (props: WithPuckProps) => { - const streamDocument = useDocument(); - const { searchAnalyticsConfig, searcher } = React.useMemo(() => { - const searchHeadlessConfig = provideHeadless(searchConfig); - if (searchHeadlessConfig === undefined) { - return { searchAnalyticsConfig: undefined, searcher: undefined }; - } - - const searchAnalyticsConfig = provideHeadless(searchConfig); - return { - searchAnalyticsConfig, - searcher: provideHeadless(searchConfig), - }; - }, [streamDocument.id, streamDocument.locale]); - - if (searcher === undefined || searchAnalyticsConfig === undefined) { - console.warn( - "Could not create Locator component because Search Headless or Search Analytics config is undefined. Please check your environment variables." - ); - return <>; - } - searcher.setSessionTrackingEnabled(true); - return ( - - - {/* */} - - {/* */} - - - ); -}; - -const SearchInternal = (props: WithPuckProps) => { - console.log(props); - - return ( - <> - - - ); -}; -/** - * Available on Search templates. - */ -export const SearchComponent: ComponentConfig<{ props: SearchProps }> = { - fields: locatorFields, - defaultProps: { - filters: { - openNowButton: false, - showDistanceOptions: false, - }, - resultCard: DEFAULT_LOCATOR_RESULT_CARD_PROPS, - }, - label: msg("components.search", "Search"), - render: (props) => , -}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Layout.tsx b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Layout.tsx new file mode 100644 index 0000000000..8c9a85eb5a --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Layout.tsx @@ -0,0 +1,27 @@ +import { SectionProps, DefaultRawDataType } from "@yext/search-ui-react"; + +// Define Props +interface LayoutProps { + layoutType?: "Grid" | "Flex"; + data: SectionProps; +} + +export const SearchLayout = ({ + layoutType = "Grid", + data: { results, header, CardComponent }, +}: LayoutProps) => { + console.log(header); + + if (!CardComponent) { + return
Missing Card Component
; + } + const classNames = + layoutType === "Grid" ? "grid grid-cols-3 gap-4 w-full" : "flex w-full"; + return ( +
+ {results.map((r: any, index: number) => ( + + ))} +
+ ); +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Search.tsx new file mode 100644 index 0000000000..f97fdcfe47 --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Search.tsx @@ -0,0 +1,261 @@ +import { ComponentConfig, Fields, WithPuckProps } from "@puckeditor/core"; +import { + CloudRegion, + Environment, + provideHeadless, + SearchConfig, + SearchHeadlessProvider, +} from "@yext/search-headless-react"; +import { + DefaultRawDataType, + SearchBar, + SearchI18nextProvider, + SectionProps, + StandardCard, + UniversalResults, +} from "@yext/search-ui-react"; +import React from "react"; +import { YextField } from "../../../editor/YextField.tsx"; +import { useDocument } from "../../../hooks/useDocument.tsx"; +import { msg } from "../../../utils/index.ts"; +import { + DEFAULT_LOCATOR_RESULT_CARD_PROPS, + LocatorResultCardFields, + LocatorResultCardProps, +} from "../../LocatorResultCard.tsx"; +import { PageSection } from "../../atoms/pageSection.tsx"; + +export type VerticalLayout = "Grid" | "Flex" | "Map"; + +export interface VerticalConfig { + label: string; + verticalKey: string; + layout: VerticalLayout; + universalLimit: number; + verticalLimit: number; +} + +export interface SearchProps { + verticals: VerticalConfig[]; + resultCard: LocatorResultCardProps; +} + +const locatorFields: Fields = { + verticals: { + label: msg("fields.verticals", "Verticals"), + type: "array", + arrayFields: { + label: YextField(msg("fields.label", "Label"), { type: "text" }), + + verticalKey: YextField(msg("fields.verticalKey", "Vertical Key"), { + type: "text", + }), + + layout: YextField(msg("fields.layout", "Layout"), { + type: "radio", + options: [ + { label: "Grid", value: "Grid" }, + { label: "Flex", value: "Flex" }, + { label: "Map", value: "Map" }, + ], + }), + + universalLimit: YextField( + msg("fields.universalLimit", "Universal Limit"), + { type: "number" } + ), + + verticalLimit: YextField(msg("fields.verticalLimit", "Vertical Limit"), { + type: "number", + }), + }, + getItemSummary: (item) => item?.label || "Vertical", + }, + resultCard: LocatorResultCardFields, +}; +const EXPERIENCE_VERSION = "PRODUCTION"; + +export const searchConfig: SearchConfig = { + apiKey: "fb73f1bf6a262bc3255bcb938088204f", + experienceKey: "ukg-fins", + locale: "en", + experienceVersion: EXPERIENCE_VERSION, + cloudRegion: CloudRegion.US, + environment: Environment.PROD, +}; +const SearchWrapper = (props: WithPuckProps) => { + const streamDocument = useDocument(); + const { searchAnalyticsConfig, searcher } = React.useMemo(() => { + const searchHeadlessConfig = provideHeadless(searchConfig); + if (searchHeadlessConfig === undefined) { + return { searchAnalyticsConfig: undefined, searcher: undefined }; + } + + const searchAnalyticsConfig = provideHeadless(searchConfig); + return { + searchAnalyticsConfig, + searcher: provideHeadless(searchConfig), + }; + }, [streamDocument.id, streamDocument.locale]); + + if (searcher === undefined || searchAnalyticsConfig === undefined) { + console.warn( + "Could not create Locator component because Search Headless or Search Analytics config is undefined. Please check your environment variables." + ); + return <>; + } + searcher.setSessionTrackingEnabled(true); + return ( + + + {/* */} + + {/* */} + + + ); +}; + +export const verticalConfigMap = { + faq: { + label: "FAQs", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + "financial-professional": { + label: "Professionals", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + locations: { + label: "Locations", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + jobs: { + label: "Jobs", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + events: { + label: "Events", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + product: { + label: "Products", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, +}; +const SearchInternal = ({ verticals }: WithPuckProps) => { + const verticalConfigMap = React.useMemo( + () => buildVerticalConfigMap(verticals), + [verticals] + ); + + return ( + + + + + ); +}; +const buildVerticalConfigMap = (verticals: VerticalConfig[]) => { + const map: Record = {}; + + verticals.forEach((v) => { + const Section = (props: SectionProps) => ( + + ); + + map[v.verticalKey] = { + label: v.label, + viewAllButton: true, + SectionComponent: Section, + CardComponent: StandardCard, + universalLimit: v.universalLimit, + verticalLimit: v.verticalLimit, + }; + }); + + return map; +}; + +const SearchLayout = ({ + layout, + data: { results, CardComponent }, +}: { + layout: VerticalLayout; + data: SectionProps; +}) => { + if (!CardComponent) return null; + + const className = + layout === "Grid" + ? "grid grid-cols-3 gap-4 w-full" + : layout === "Flex" + ? "flex flex-col gap-4 w-full" + : "flex flex-col w-full"; + + return ( +
+ {results.map((r, i) => ( + + ))} +
+ ); +}; + +export const SearchComponent: ComponentConfig<{ props: SearchProps }> = { + label: msg("components.search", "Search"), + fields: locatorFields, + + defaultProps: { + verticals: [ + { + label: "FAQs", + verticalKey: "faq", + layout: "Flex", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Products", + verticalKey: "product", + layout: "Grid", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Locations", + verticalKey: "locations", + layout: "Map", + universalLimit: 3, + verticalLimit: 5, + }, + ], + resultCard: DEFAULT_LOCATOR_RESULT_CARD_PROPS, + }, + + render: (props) => , +}; diff --git a/packages/visual-editor/src/components/pageSections/index.ts b/packages/visual-editor/src/components/pageSections/index.ts index 2074e2df7b..f7d995a3d4 100644 --- a/packages/visual-editor/src/components/pageSections/index.ts +++ b/packages/visual-editor/src/components/pageSections/index.ts @@ -86,4 +86,7 @@ export { type ProfessionalHeroSectionProps, type ProfessionalHeroStyles, } from "./ProfessionalHeroSection.tsx"; -export { SearchComponent, type SearchProps } from "./SearchSection/Search.tsx"; +export { + SearchComponent, + type SearchProps, +} from "./SearchSectionClassic/Search.tsx"; From 2d73be3d081b2dcc6f1a0e2bc72d0fdc9ed2e598 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 6 Feb 2026 13:29:55 +0530 Subject: [PATCH 03/74] code cleanup --- .../pageSections/SearchSectionClassic/Search.tsx | 8 -------- 1 file changed, 8 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Search.tsx index f97fdcfe47..bde12c7390 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Search.tsx @@ -18,11 +18,6 @@ import React from "react"; import { YextField } from "../../../editor/YextField.tsx"; import { useDocument } from "../../../hooks/useDocument.tsx"; import { msg } from "../../../utils/index.ts"; -import { - DEFAULT_LOCATOR_RESULT_CARD_PROPS, - LocatorResultCardFields, - LocatorResultCardProps, -} from "../../LocatorResultCard.tsx"; import { PageSection } from "../../atoms/pageSection.tsx"; export type VerticalLayout = "Grid" | "Flex" | "Map"; @@ -37,7 +32,6 @@ export interface VerticalConfig { export interface SearchProps { verticals: VerticalConfig[]; - resultCard: LocatorResultCardProps; } const locatorFields: Fields = { @@ -71,7 +65,6 @@ const locatorFields: Fields = { }, getItemSummary: (item) => item?.label || "Vertical", }, - resultCard: LocatorResultCardFields, }; const EXPERIENCE_VERSION = "PRODUCTION"; @@ -254,7 +247,6 @@ export const SearchComponent: ComponentConfig<{ props: SearchProps }> = { verticalLimit: 5, }, ], - resultCard: DEFAULT_LOCATOR_RESULT_CARD_PROPS, }, render: (props) => , From b5c0bb0d41c30cf9033edef05393e985ae7ae167 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 6 Feb 2026 13:39:41 +0530 Subject: [PATCH 04/74] nit updates --- .../categories/PageSectionCategory.tsx | 9 ++++++--- .../{Search.tsx => ClassicSearch.tsx} | 20 ++++++++++--------- .../src/components/pageSections/index.ts | 6 +++--- 3 files changed, 20 insertions(+), 15 deletions(-) rename packages/visual-editor/src/components/pageSections/SearchSectionClassic/{Search.tsx => ClassicSearch.tsx} (91%) diff --git a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx index a0553b966e..b349cf0af5 100644 --- a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx +++ b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx @@ -64,7 +64,10 @@ import { ProfessionalHeroSection, ProfessionalHeroSectionProps, } from "../pageSections/ProfessionalHeroSection.tsx"; -import { SearchComponent, SearchProps } from "../pageSections/index.ts"; +import { + ClassicSearchComponent, + ClassicSearchProps, +} from "../pageSections/index.ts"; export interface PageSectionCategoryProps { AboutSection: AboutSectionProps; @@ -85,7 +88,7 @@ export interface PageSectionCategoryProps { TeamSection: TeamSectionProps; TestimonialSection: TestimonialSectionProps; VideoSection: VideoSectionProps; - SearchComponent: SearchProps; + ClassicSearchComponent: ClassicSearchProps; } export const PageSectionCategoryComponents = { @@ -107,7 +110,7 @@ export const PageSectionCategoryComponents = { TeamSection, TestimonialSection, VideoSection, - SearchComponent, + ClassicSearchComponent, }; export const PageSectionCategory = Object.keys( diff --git a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/ClassicSearch.tsx similarity index 91% rename from packages/visual-editor/src/components/pageSections/SearchSectionClassic/Search.tsx rename to packages/visual-editor/src/components/pageSections/SearchSectionClassic/ClassicSearch.tsx index bde12c7390..870c4b069e 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/ClassicSearch.tsx @@ -20,9 +20,9 @@ import { useDocument } from "../../../hooks/useDocument.tsx"; import { msg } from "../../../utils/index.ts"; import { PageSection } from "../../atoms/pageSection.tsx"; -export type VerticalLayout = "Grid" | "Flex" | "Map"; +type VerticalLayout = "Grid" | "Flex" | "Map"; -export interface VerticalConfig { +interface VerticalConfig { label: string; verticalKey: string; layout: VerticalLayout; @@ -30,11 +30,11 @@ export interface VerticalConfig { verticalLimit: number; } -export interface SearchProps { +export interface ClassicSearchProps { verticals: VerticalConfig[]; } -const locatorFields: Fields = { +const locatorFields: Fields = { verticals: { label: msg("fields.verticals", "Verticals"), type: "array", @@ -76,7 +76,7 @@ export const searchConfig: SearchConfig = { cloudRegion: CloudRegion.US, environment: Environment.PROD, }; -const SearchWrapper = (props: WithPuckProps) => { +const ClassicSearchWrapper = (props: WithPuckProps) => { const streamDocument = useDocument(); const { searchAnalyticsConfig, searcher } = React.useMemo(() => { const searchHeadlessConfig = provideHeadless(searchConfig); @@ -160,7 +160,7 @@ export const verticalConfigMap = { verticalLimit: 5, }, }; -const SearchInternal = ({ verticals }: WithPuckProps) => { +const SearchInternal = ({ verticals }: WithPuckProps) => { const verticalConfigMap = React.useMemo( () => buildVerticalConfigMap(verticals), [verticals] @@ -219,8 +219,10 @@ const SearchLayout = ({ ); }; -export const SearchComponent: ComponentConfig<{ props: SearchProps }> = { - label: msg("components.search", "Search"), +export const ClassicSearchComponent: ComponentConfig<{ + props: ClassicSearchProps; +}> = { + label: msg("components.classicSearch", "Classic Search"), fields: locatorFields, defaultProps: { @@ -249,5 +251,5 @@ export const SearchComponent: ComponentConfig<{ props: SearchProps }> = { ], }, - render: (props) => , + render: (props) => , }; diff --git a/packages/visual-editor/src/components/pageSections/index.ts b/packages/visual-editor/src/components/pageSections/index.ts index f7d995a3d4..2c559d1b2d 100644 --- a/packages/visual-editor/src/components/pageSections/index.ts +++ b/packages/visual-editor/src/components/pageSections/index.ts @@ -87,6 +87,6 @@ export { type ProfessionalHeroStyles, } from "./ProfessionalHeroSection.tsx"; export { - SearchComponent, - type SearchProps, -} from "./SearchSectionClassic/Search.tsx"; + ClassicSearchComponent, + type ClassicSearchProps, +} from "./SearchSectionClassic/ClassicSearch.tsx"; From e516d7087b59d2b23ccaf1a524bb82726ad9e78f Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 6 Feb 2026 13:41:43 +0530 Subject: [PATCH 05/74] cleared keys --- .../pageSections/SearchSectionClassic/ClassicSearch.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/ClassicSearch.tsx b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/ClassicSearch.tsx index 870c4b069e..1c9a0458ba 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/ClassicSearch.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/ClassicSearch.tsx @@ -69,8 +69,8 @@ const locatorFields: Fields = { const EXPERIENCE_VERSION = "PRODUCTION"; export const searchConfig: SearchConfig = { - apiKey: "fb73f1bf6a262bc3255bcb938088204f", - experienceKey: "ukg-fins", + apiKey: "", + experienceKey: "", locale: "en", experienceVersion: EXPERIENCE_VERSION, cloudRegion: CloudRegion.US, From e657d79ee9007013b8c67972a7f623a780b589e9 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 6 Feb 2026 14:50:32 +0530 Subject: [PATCH 06/74] Init Search working template --- .../categories/PageSectionCategory.tsx | 6 + .../components/categories/SlotsCategory.tsx | 184 +++++------ .../pageSections/SearchSection/Search.tsx | 287 ++++++++++++++++++ .../SearchSection/SearchBarSlot.tsx | 50 +++ .../src/components/pageSections/index.ts | 4 + 5 files changed, 442 insertions(+), 89 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx diff --git a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx index b349cf0af5..7787ed72ab 100644 --- a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx +++ b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx @@ -68,6 +68,10 @@ import { ClassicSearchComponent, ClassicSearchProps, } from "../pageSections/index.ts"; +import { + SearchComponentProps, + SearchComponent, +} from "../pageSections/SearchSection/Search.tsx"; export interface PageSectionCategoryProps { AboutSection: AboutSectionProps; @@ -89,6 +93,7 @@ export interface PageSectionCategoryProps { TestimonialSection: TestimonialSectionProps; VideoSection: VideoSectionProps; ClassicSearchComponent: ClassicSearchProps; + SearchComponent: SearchComponentProps; } export const PageSectionCategoryComponents = { @@ -111,6 +116,7 @@ export const PageSectionCategoryComponents = { TestimonialSection, VideoSection, ClassicSearchComponent, + SearchComponent, }; export const PageSectionCategory = Object.keys( diff --git a/packages/visual-editor/src/components/categories/SlotsCategory.tsx b/packages/visual-editor/src/components/categories/SlotsCategory.tsx index 20978f37fc..5b7adfaa36 100644 --- a/packages/visual-editor/src/components/categories/SlotsCategory.tsx +++ b/packages/visual-editor/src/components/categories/SlotsCategory.tsx @@ -1,81 +1,53 @@ import { Address, AddressProps } from "../contentBlocks/Address.tsx"; +import { BodyText, BodyTextProps } from "../contentBlocks/BodyText.tsx"; +import { CTAWrapper, CTAWrapperProps } from "../contentBlocks/CtaWrapper.tsx"; +import { Emails, EmailsProps } from "../contentBlocks/Emails.tsx"; import { - AboutSectionDetailsColumn, - AboutSectionDetailsColumnProps, -} from "../pageSections/AboutSection/AboutSectionDetailsColumn.tsx"; -import { BodyTextProps, BodyText } from "../contentBlocks/BodyText.tsx"; -import { CTAWrapperProps, CTAWrapper } from "../contentBlocks/CtaWrapper.tsx"; -import { - HeadingTextProps, HeadingText, + HeadingTextProps, } from "../contentBlocks/HeadingText.tsx"; -import { HoursTable, HoursTableProps } from "../contentBlocks/HoursTable.tsx"; -import { - ImageWrapperProps, - ImageWrapper, -} from "../contentBlocks/image/Image.tsx"; -import { Video, VideoProps } from "../contentBlocks/Video.tsx"; -import { TextList, TextListProps } from "../contentBlocks/TextList.tsx"; -import { PhoneListProps, PhoneList } from "../contentBlocks/PhoneList.tsx"; -import { - ProductCardsWrapper, - ProductCardsWrapperProps, -} from "../pageSections/ProductSection/ProductCardsWrapper.tsx"; -import { - ProductCard, - ProductCardProps, -} from "../pageSections/ProductSection/ProductCard.tsx"; -import { - EventCardsWrapper, - EventCardsWrapperProps, -} from "../pageSections/EventSection/EventCardsWrapper.tsx"; -import { - EventCard, - EventCardProps, -} from "../pageSections/EventSection/EventCard.tsx"; -import { Emails, EmailsProps } from "../contentBlocks/Emails.tsx"; import { HoursStatus, HoursStatusProps, } from "../contentBlocks/HoursStatus.tsx"; +import { HoursTable, HoursTableProps } from "../contentBlocks/HoursTable.tsx"; import { HeroImage, HeroImageProps, } from "../contentBlocks/image/HeroImage.tsx"; -import { Timestamp, TimestampProps } from "../contentBlocks/Timestamp.tsx"; import { - NearbyLocationCardsWrapper, - NearbyLocationCardsWrapperProps, -} from "../pageSections/NearbyLocations/NearbyLocationsCardsWrapper.tsx"; -import { - InsightCardsWrapper, - InsightCardsWrapperProps, -} from "../pageSections/InsightSection/InsightCardsWrapper.tsx"; + ImageWrapper, + ImageWrapperProps, +} from "../contentBlocks/image/Image.tsx"; +import { Phone, PhoneProps } from "../contentBlocks/Phone.tsx"; +import { PhoneList, PhoneListProps } from "../contentBlocks/PhoneList.tsx"; +import { TextList, TextListProps } from "../contentBlocks/TextList.tsx"; +import { Timestamp, TimestampProps } from "../contentBlocks/Timestamp.tsx"; +import { Video, VideoProps } from "../contentBlocks/Video.tsx"; import { - InsightCard, - InsightCardProps, -} from "../pageSections/InsightSection/InsightCard.tsx"; + DirectoryCard, + DirectoryCardProps, +} from "../directory/DirectoryCard.tsx"; import { - PhotoGalleryWrapperProps, - PhotoGalleryWrapper, -} from "../pageSections/PhotoGallerySection/PhotoGalleryWrapper.tsx"; -import { FAQCard, FAQCardProps } from "../pageSections/FAQsSection/FAQCard.tsx"; + DirectoryGrid, + DirectoryGridProps, +} from "../directory/DirectoryWrapper.tsx"; import { - TeamCardsWrapper, - TeamCardsWrapperProps, -} from "../pageSections/TeamSection/TeamCardsWrapper.tsx"; + CopyrightMessageSlot, + CopyrightMessageSlotProps, +} from "../footer/CopyrightMessageSlot.tsx"; import { - TeamCard, - TeamCardProps, -} from "../pageSections/TeamSection/TeamCard.tsx"; + FooterExpandedLinkSectionSlot, + FooterExpandedLinkSectionSlotProps, +} from "../footer/FooterExpandedLinkSectionSlot.tsx"; import { - TestimonialCardsWrapper, - TestimonialCardsWrapperProps, -} from "../pageSections/TestimonialSection/TestimonialCardsWrapper.tsx"; + FooterExpandedLinksWrapper, + FooterExpandedLinksWrapperProps, +} from "../footer/FooterExpandedLinksWrapper.tsx"; import { - TestimonialCard, - TestimonialCardProps, -} from "../pageSections/TestimonialSection/TestimonialCard.tsx"; + FooterLinksSlot, + FooterLinksSlotProps, +} from "../footer/FooterLinksSlot.tsx"; import { FooterLogoSlot, FooterLogoSlotProps, @@ -88,39 +60,11 @@ import { FooterUtilityImagesSlot, FooterUtilityImagesSlotProps, } from "../footer/FooterUtilityImagesSlot.tsx"; -import { - FooterLinksSlot, - FooterLinksSlotProps, -} from "../footer/FooterLinksSlot.tsx"; -import { - FooterExpandedLinkSectionSlot, - FooterExpandedLinkSectionSlotProps, -} from "../footer/FooterExpandedLinkSectionSlot.tsx"; -import { - FooterExpandedLinksWrapper, - FooterExpandedLinksWrapperProps, -} from "../footer/FooterExpandedLinksWrapper.tsx"; -import { - CopyrightMessageSlot, - CopyrightMessageSlotProps, -} from "../footer/CopyrightMessageSlot.tsx"; import { SecondaryFooterSlot, SecondaryFooterSlotProps, } from "../footer/SecondaryFooterSlot.tsx"; -import { - DirectoryCard, - DirectoryCardProps, -} from "../directory/DirectoryCard.tsx"; -import { - DirectoryGrid, - DirectoryGridProps, -} from "../directory/DirectoryWrapper.tsx"; -import { Phone, PhoneProps } from "../contentBlocks/Phone.tsx"; -import { - BreadcrumbsSection, - BreadcrumbsSectionProps, -} from "../pageSections/Breadcrumbs.tsx"; +import { HeaderLinks, HeaderLinksProps } from "../header/HeaderLinks.tsx"; import { PrimaryHeaderSlot, PrimaryHeaderSlotProps, @@ -129,7 +73,67 @@ import { SecondaryHeaderSlot, SecondaryHeaderSlotProps, } from "../header/SecondaryHeaderSlot.tsx"; -import { HeaderLinks, HeaderLinksProps } from "../header/HeaderLinks.tsx"; +import { + AboutSectionDetailsColumn, + AboutSectionDetailsColumnProps, +} from "../pageSections/AboutSection/AboutSectionDetailsColumn.tsx"; +import { + BreadcrumbsSection, + BreadcrumbsSectionProps, +} from "../pageSections/Breadcrumbs.tsx"; +import { + EventCard, + EventCardProps, +} from "../pageSections/EventSection/EventCard.tsx"; +import { + EventCardsWrapper, + EventCardsWrapperProps, +} from "../pageSections/EventSection/EventCardsWrapper.tsx"; +import { FAQCard, FAQCardProps } from "../pageSections/FAQsSection/FAQCard.tsx"; +import { + InsightCard, + InsightCardProps, +} from "../pageSections/InsightSection/InsightCard.tsx"; +import { + InsightCardsWrapper, + InsightCardsWrapperProps, +} from "../pageSections/InsightSection/InsightCardsWrapper.tsx"; +import { + NearbyLocationCardsWrapper, + NearbyLocationCardsWrapperProps, +} from "../pageSections/NearbyLocations/NearbyLocationsCardsWrapper.tsx"; +import { + PhotoGalleryWrapper, + PhotoGalleryWrapperProps, +} from "../pageSections/PhotoGallerySection/PhotoGalleryWrapper.tsx"; +import { + ProductCard, + ProductCardProps, +} from "../pageSections/ProductSection/ProductCard.tsx"; +import { + ProductCardsWrapper, + ProductCardsWrapperProps, +} from "../pageSections/ProductSection/ProductCardsWrapper.tsx"; +import { + SearchBarSlot, + SearchBarSlotProps, +} from "../pageSections/SearchSection/SearchBarSlot.tsx"; +import { + TeamCard, + TeamCardProps, +} from "../pageSections/TeamSection/TeamCard.tsx"; +import { + TeamCardsWrapper, + TeamCardsWrapperProps, +} from "../pageSections/TeamSection/TeamCardsWrapper.tsx"; +import { + TestimonialCard, + TestimonialCardProps, +} from "../pageSections/TestimonialSection/TestimonialCard.tsx"; +import { + TestimonialCardsWrapper, + TestimonialCardsWrapperProps, +} from "../pageSections/TestimonialSection/TestimonialCardsWrapper.tsx"; export interface SlotsCategoryProps { AddressSlot: AddressProps; @@ -174,6 +178,7 @@ export interface SlotsCategoryProps { TextListSlot: TextListProps; Timestamp: TimestampProps; VideoSlot: VideoProps; + SearchBarSlot: SearchBarSlotProps; } const lockedPermissions = { @@ -269,6 +274,7 @@ export const SlotsCategoryComponents = { TextListSlot: { ...TextList, permissions: lockedPermissions }, Timestamp: { ...Timestamp, permissions: lockedPermissions }, VideoSlot: { ...Video, permissions: lockedPermissions }, + SearchBarSlot: { ...SearchBarSlot, permission: lockedPermissions }, }; export const SlotsCategory = Object.keys( diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx new file mode 100644 index 0000000000..158d2bd436 --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -0,0 +1,287 @@ +import { ComponentConfig, Fields, PuckComponent, Slot } from "@puckeditor/core"; +import { + CloudRegion, + Environment, + provideHeadless, + SearchConfig, + SearchHeadlessProvider, +} from "@yext/search-headless-react"; +import { + DefaultRawDataType, + SearchI18nextProvider, + SectionProps, + StandardCard, +} from "@yext/search-ui-react"; +import React from "react"; +import { YextField } from "../../../editor/YextField.tsx"; +import { useDocument } from "../../../hooks/useDocument.tsx"; +import { msg } from "../../../utils/index.ts"; +import { PageSection } from "../../atoms/pageSection.tsx"; +import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; + +type VerticalLayout = "Grid" | "Flex" | "Map"; + +interface VerticalConfig { + label: string; + verticalKey: string; + layout: VerticalLayout; + universalLimit: number; + verticalLimit: number; +} + +export interface SearchComponentProps { + verticals: VerticalConfig[]; + /** @internal */ + slots: { + SearchBarSlot: Slot; + }; +} + +const locatorFields: Fields = { + verticals: { + label: msg("fields.verticals", "Verticals"), + type: "array", + arrayFields: { + label: YextField(msg("fields.label", "Label"), { type: "text" }), + + verticalKey: YextField(msg("fields.verticalKey", "Vertical Key"), { + type: "text", + }), + + layout: YextField(msg("fields.layout", "Layout"), { + type: "radio", + options: [ + { label: "Grid", value: "Grid" }, + { label: "Flex", value: "Flex" }, + { label: "Map", value: "Map" }, + ], + }), + + universalLimit: YextField( + msg("fields.universalLimit", "Universal Limit"), + { type: "number" } + ), + + verticalLimit: YextField(msg("fields.verticalLimit", "Vertical Limit"), { + type: "number", + }), + }, + getItemSummary: (item) => item?.label || "Vertical", + }, + slots: { + type: "object", + visible: false, + objectFields: { + SearchBarSlot: { type: "slot" }, + }, + }, +}; +const EXPERIENCE_VERSION = "PRODUCTION"; + +export const searchConfig: SearchConfig = { + apiKey: "fb73f1bf6a262bc3255bcb938088204f", + experienceKey: "ukg-fins", + locale: "en", + experienceVersion: EXPERIENCE_VERSION, + cloudRegion: CloudRegion.US, + environment: Environment.PROD, +}; + +const SearchWrapper: PuckComponent = ({ + verticals, + slots, + puck, +}) => { + const verticalConfigMap = React.useMemo( + () => buildVerticalConfigMap(verticals), + [verticals] + ); + + console.log(verticalConfigMap); + + const streamDocument = useDocument(); + const { searchAnalyticsConfig, searcher } = React.useMemo(() => { + const searchHeadlessConfig = provideHeadless(searchConfig); + if (searchHeadlessConfig === undefined) { + return { searchAnalyticsConfig: undefined, searcher: undefined }; + } + + const searchAnalyticsConfig = provideHeadless(searchConfig); + return { + searchAnalyticsConfig, + searcher: provideHeadless(searchConfig), + }; + }, [streamDocument.id, streamDocument.locale]); + + if (searcher === undefined || searchAnalyticsConfig === undefined) { + console.warn( + "Could not create Locator component because Search Headless or Search Analytics config is undefined. Please check your environment variables." + ); + return <>; + } + searcher.setSessionTrackingEnabled(true); + return ( + + + + + + + + ); +}; + +export const verticalConfigMap = { + faq: { + label: "FAQs", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + "financial-professional": { + label: "Professionals", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + locations: { + label: "Locations", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + jobs: { + label: "Jobs", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + events: { + label: "Events", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + product: { + label: "Products", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, +}; + +// const SearchInternal = ({ verticals }: WithPuckProps) => { +// const verticalConfigMap = React.useMemo( +// () => buildVerticalConfigMap(verticals), +// [verticals] +// ); + +// return ( +// +// +// +// +// ); +// }; + +const buildVerticalConfigMap = (verticals: VerticalConfig[]) => { + const map: Record = {}; + + verticals.forEach((v) => { + const Section = (props: SectionProps) => ( + + ); + + map[v.verticalKey] = { + label: v.label, + viewAllButton: true, + SectionComponent: Section, + CardComponent: StandardCard, + universalLimit: v.universalLimit, + verticalLimit: v.verticalLimit, + }; + }); + + return map; +}; + +const SearchLayout = ({ + layout, + data: { results, CardComponent }, +}: { + layout: VerticalLayout; + data: SectionProps; +}) => { + if (!CardComponent) return null; + + const className = + layout === "Grid" + ? "grid grid-cols-3 gap-4 w-full" + : layout === "Flex" + ? "flex flex-col gap-4 w-full" + : "flex flex-col w-full"; + + return ( +
+ {results.map((r, i) => ( + + ))} +
+ ); +}; + +export const SearchComponent: ComponentConfig<{ + props: SearchComponentProps; +}> = { + label: msg("components.searchWithSlots", "Search with Slots"), + fields: locatorFields, + + defaultProps: { + verticals: [ + { + label: "FAQs", + verticalKey: "faq", + layout: "Flex", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Products", + verticalKey: "product", + layout: "Grid", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Locations", + verticalKey: "locations", + layout: "Map", + universalLimit: 3, + verticalLimit: 5, + }, + ], + slots: { + SearchBarSlot: [ + { + type: "SearchBarSlot", + props: { + styles: { + showIcon: false, + }, + } satisfies SearchBarSlotProps, + }, + ], + }, + }, + render: (props) => , +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx new file mode 100644 index 0000000000..f9ce445f1c --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -0,0 +1,50 @@ +import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; +import { YextField } from "../../../editor/YextField.tsx"; +import { msg } from "../../../utils/index.ts"; + +export interface SearchBarSlotProps { + styles: { showIcon: boolean }; +} +const defaultSearchBarProps: SearchBarSlotProps = { + styles: { + showIcon: false, + }, +}; + +const searchBarSlotFields: Fields = { + styles: YextField(msg("fields.styles", "Styles"), { + type: "object", + objectFields: { + showIcon: YextField(msg("fields.showIcon", "Show Icon"), { + type: "radio", + options: [ + { label: msg("fields.options.show", "Show"), value: true }, + { label: msg("fields.options.hide", "Hide"), value: false }, + ], + }), + }, + }), +}; + +const SearchBarSlotInternal: PuckComponent = (props) => { + const { + styles: { showIcon = false }, + puck, + } = props; + console.log(showIcon); + if (puck.isEditing) { + return ( +
+ Search Bar +
+ ); + } + return
Search Slot
; +}; + +export const SearchBarSlot: ComponentConfig<{ props: SearchBarSlotProps }> = { + label: msg("components.searchBarSlot", "SearchBar Slot"), + fields: searchBarSlotFields, + defaultProps: defaultSearchBarProps, + render: (props) => , +}; diff --git a/packages/visual-editor/src/components/pageSections/index.ts b/packages/visual-editor/src/components/pageSections/index.ts index 2c559d1b2d..b0d31df388 100644 --- a/packages/visual-editor/src/components/pageSections/index.ts +++ b/packages/visual-editor/src/components/pageSections/index.ts @@ -90,3 +90,7 @@ export { ClassicSearchComponent, type ClassicSearchProps, } from "./SearchSectionClassic/ClassicSearch.tsx"; +export { + SearchComponent, + type SearchComponentProps, +} from "./SearchSection/Search.tsx"; From 10a100a9e5a278dfc49ed34dd9db30fc301cd26c Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 6 Feb 2026 15:43:19 +0530 Subject: [PATCH 07/74] working code --- .../components/categories/SlotsCategory.tsx | 6 +++ .../pageSections/SearchSection/Search.tsx | 14 ++++- .../SearchSection/SearchResultsSlot.tsx | 54 +++++++++++++++++++ 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx diff --git a/packages/visual-editor/src/components/categories/SlotsCategory.tsx b/packages/visual-editor/src/components/categories/SlotsCategory.tsx index 5b7adfaa36..cb0fc26be7 100644 --- a/packages/visual-editor/src/components/categories/SlotsCategory.tsx +++ b/packages/visual-editor/src/components/categories/SlotsCategory.tsx @@ -118,6 +118,10 @@ import { SearchBarSlot, SearchBarSlotProps, } from "../pageSections/SearchSection/SearchBarSlot.tsx"; +import { + SearchResultsSlot, + SearchResultsSlotProps, +} from "../pageSections/SearchSection/SearchResultsSlot.tsx"; import { TeamCard, TeamCardProps, @@ -179,6 +183,7 @@ export interface SlotsCategoryProps { Timestamp: TimestampProps; VideoSlot: VideoProps; SearchBarSlot: SearchBarSlotProps; + SearchResultsSlot: SearchResultsSlotProps; } const lockedPermissions = { @@ -275,6 +280,7 @@ export const SlotsCategoryComponents = { Timestamp: { ...Timestamp, permissions: lockedPermissions }, VideoSlot: { ...Video, permissions: lockedPermissions }, SearchBarSlot: { ...SearchBarSlot, permission: lockedPermissions }, + SearchResultsSlot: { ...SearchResultsSlot, permission: lockedPermissions }, }; export const SlotsCategory = Object.keys( diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index 158d2bd436..e8d1bbf755 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -34,6 +34,7 @@ export interface SearchComponentProps { /** @internal */ slots: { SearchBarSlot: Slot; + SearchResultsSlot: Slot; }; } @@ -73,6 +74,7 @@ const locatorFields: Fields = { visible: false, objectFields: { SearchBarSlot: { type: "slot" }, + SearchResultsSlot: { type: "slot" }, }, }, }; @@ -96,7 +98,6 @@ const SearchWrapper: PuckComponent = ({ () => buildVerticalConfigMap(verticals), [verticals] ); - console.log(verticalConfigMap); const streamDocument = useDocument(); @@ -125,6 +126,7 @@ const SearchWrapper: PuckComponent = ({ + @@ -281,6 +283,16 @@ export const SearchComponent: ComponentConfig<{ } satisfies SearchBarSlotProps, }, ], + SearchResultsSlot: [ + { + type: "SearchBarSlot", + props: { + styles: { + showIcon: false, + }, + } satisfies SearchBarSlotProps, + }, + ], }, }, render: (props) => , diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx new file mode 100644 index 0000000000..e92128eb4d --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -0,0 +1,54 @@ +import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; +import { YextField } from "../../../editor/YextField.tsx"; +import { msg } from "../../../utils/index.ts"; + +export interface SearchResultsSlotProps { + styles: { showIcon: boolean }; +} +const defaultSearchResultsProps: SearchResultsSlotProps = { + styles: { + showIcon: false, + }, +}; + +const SearchResultsSlotFields: Fields = { + styles: YextField(msg("fields.styles", "Styles"), { + type: "object", + objectFields: { + showIcon: YextField(msg("fields.showIcon", "Show Icon"), { + type: "radio", + options: [ + { label: msg("fields.options.show", "Show"), value: true }, + { label: msg("fields.options.hide", "Hide"), value: false }, + ], + }), + }, + }), +}; + +const SearchResultsSlotInternal: PuckComponent = ( + props +) => { + const { + styles: { showIcon = false }, + puck, + } = props; + console.log(showIcon); + if (puck.isEditing) { + return ( +
+ Search Bar +
+ ); + } + return
Search Result
; +}; + +export const SearchResultsSlot: ComponentConfig<{ + props: SearchResultsSlotProps; +}> = { + label: msg("components.SearchResultsSlot", "Search Results Slot"), + fields: SearchResultsSlotFields, + defaultProps: defaultSearchResultsProps, + render: (props) => , +}; From c45dcb10abd085d050beda2cbb9495f7f4ace59e Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 6 Feb 2026 16:18:15 +0530 Subject: [PATCH 08/74] updated key --- .../visual-editor/src/components/categories/SlotsCategory.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/visual-editor/src/components/categories/SlotsCategory.tsx b/packages/visual-editor/src/components/categories/SlotsCategory.tsx index cb0fc26be7..7b62057c20 100644 --- a/packages/visual-editor/src/components/categories/SlotsCategory.tsx +++ b/packages/visual-editor/src/components/categories/SlotsCategory.tsx @@ -279,8 +279,8 @@ export const SlotsCategoryComponents = { TextListSlot: { ...TextList, permissions: lockedPermissions }, Timestamp: { ...Timestamp, permissions: lockedPermissions }, VideoSlot: { ...Video, permissions: lockedPermissions }, - SearchBarSlot: { ...SearchBarSlot, permission: lockedPermissions }, - SearchResultsSlot: { ...SearchResultsSlot, permission: lockedPermissions }, + SearchBarSlot: { ...SearchBarSlot, permissions: lockedPermissions }, + SearchResultsSlot: { ...SearchResultsSlot, permissions: lockedPermissions }, }; export const SlotsCategory = Object.keys( From ebcae760d7c8588334e680c1e3dbf7157534a7e0 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 10 Feb 2026 01:09:15 +0530 Subject: [PATCH 09/74] temp commit --- .../pageSections/SearchSection/Search.tsx | 11 ------ .../SearchSection/SearchResultsSlot.tsx | 35 +++++++++++++++++++ 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index e8d1bbf755..6ed9009ac8 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -19,18 +19,7 @@ import { msg } from "../../../utils/index.ts"; import { PageSection } from "../../atoms/pageSection.tsx"; import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; -type VerticalLayout = "Grid" | "Flex" | "Map"; - -interface VerticalConfig { - label: string; - verticalKey: string; - layout: VerticalLayout; - universalLimit: number; - verticalLimit: number; -} - export interface SearchComponentProps { - verticals: VerticalConfig[]; /** @internal */ slots: { SearchBarSlot: Slot; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index e92128eb4d..58446b7997 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -3,9 +3,44 @@ import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; export interface SearchResultsSlotProps { + data: { verticals: VerticalConfig[] }; styles: { showIcon: boolean }; } +type VerticalLayout = "Grid" | "Flex" | "Map"; + +interface VerticalConfig { + label: string; + verticalKey: string; + layout: VerticalLayout; + universalLimit: number; + verticalLimit: number; +} const defaultSearchResultsProps: SearchResultsSlotProps = { + data: { + verticals: [ + { + label: "FAQs", + verticalKey: "faq", + layout: "Flex", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Products", + verticalKey: "product", + layout: "Grid", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Locations", + verticalKey: "locations", + layout: "Map", + universalLimit: 3, + verticalLimit: 5, + }, + ], + }, styles: { showIcon: false, }, From d2f7bbddb6a0499ab693a298739473f897e99488 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 10 Feb 2026 14:19:25 +0530 Subject: [PATCH 10/74] temp push --- .../pageSections/SearchSection/Search.tsx | 208 ++---------- .../SearchSection/SearchResultsSlot.tsx | 144 ++++++++- .../components/pageSections/SearchSection/_bu | 299 ++++++++++++++++++ 3 files changed, 467 insertions(+), 184 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/_bu diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index 6ed9009ac8..e56167e793 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -6,18 +6,13 @@ import { SearchConfig, SearchHeadlessProvider, } from "@yext/search-headless-react"; -import { - DefaultRawDataType, - SearchI18nextProvider, - SectionProps, - StandardCard, -} from "@yext/search-ui-react"; +import { SearchI18nextProvider } from "@yext/search-ui-react"; import React from "react"; -import { YextField } from "../../../editor/YextField.tsx"; import { useDocument } from "../../../hooks/useDocument.tsx"; import { msg } from "../../../utils/index.ts"; import { PageSection } from "../../atoms/pageSection.tsx"; import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; +import { SearchResultsSlotProps } from "./SearchResultsSlot.tsx"; export interface SearchComponentProps { /** @internal */ @@ -28,36 +23,6 @@ export interface SearchComponentProps { } const locatorFields: Fields = { - verticals: { - label: msg("fields.verticals", "Verticals"), - type: "array", - arrayFields: { - label: YextField(msg("fields.label", "Label"), { type: "text" }), - - verticalKey: YextField(msg("fields.verticalKey", "Vertical Key"), { - type: "text", - }), - - layout: YextField(msg("fields.layout", "Layout"), { - type: "radio", - options: [ - { label: "Grid", value: "Grid" }, - { label: "Flex", value: "Flex" }, - { label: "Map", value: "Map" }, - ], - }), - - universalLimit: YextField( - msg("fields.universalLimit", "Universal Limit"), - { type: "number" } - ), - - verticalLimit: YextField(msg("fields.verticalLimit", "Vertical Limit"), { - type: "number", - }), - }, - getItemSummary: (item) => item?.label || "Vertical", - }, slots: { type: "object", visible: false, @@ -79,16 +44,9 @@ export const searchConfig: SearchConfig = { }; const SearchWrapper: PuckComponent = ({ - verticals, slots, puck, }) => { - const verticalConfigMap = React.useMemo( - () => buildVerticalConfigMap(verticals), - [verticals] - ); - console.log(verticalConfigMap); - const streamDocument = useDocument(); const { searchAnalyticsConfig, searcher } = React.useMemo(() => { const searchHeadlessConfig = provideHeadless(searchConfig); @@ -122,145 +80,12 @@ const SearchWrapper: PuckComponent = ({ ); }; -export const verticalConfigMap = { - faq: { - label: "FAQs", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - "financial-professional": { - label: "Professionals", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - locations: { - label: "Locations", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - jobs: { - label: "Jobs", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - events: { - label: "Events", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - product: { - label: "Products", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, -}; - -// const SearchInternal = ({ verticals }: WithPuckProps) => { -// const verticalConfigMap = React.useMemo( -// () => buildVerticalConfigMap(verticals), -// [verticals] -// ); - -// return ( -// -// -// -// -// ); -// }; - -const buildVerticalConfigMap = (verticals: VerticalConfig[]) => { - const map: Record = {}; - - verticals.forEach((v) => { - const Section = (props: SectionProps) => ( - - ); - - map[v.verticalKey] = { - label: v.label, - viewAllButton: true, - SectionComponent: Section, - CardComponent: StandardCard, - universalLimit: v.universalLimit, - verticalLimit: v.verticalLimit, - }; - }); - - return map; -}; - -const SearchLayout = ({ - layout, - data: { results, CardComponent }, -}: { - layout: VerticalLayout; - data: SectionProps; -}) => { - if (!CardComponent) return null; - - const className = - layout === "Grid" - ? "grid grid-cols-3 gap-4 w-full" - : layout === "Flex" - ? "flex flex-col gap-4 w-full" - : "flex flex-col w-full"; - - return ( -
- {results.map((r, i) => ( - - ))} -
- ); -}; - export const SearchComponent: ComponentConfig<{ props: SearchComponentProps; }> = { label: msg("components.searchWithSlots", "Search with Slots"), fields: locatorFields, - defaultProps: { - verticals: [ - { - label: "FAQs", - verticalKey: "faq", - layout: "Flex", - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Products", - verticalKey: "product", - layout: "Grid", - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Locations", - verticalKey: "locations", - layout: "Map", - universalLimit: 3, - verticalLimit: 5, - }, - ], slots: { SearchBarSlot: [ { @@ -274,12 +99,37 @@ export const SearchComponent: ComponentConfig<{ ], SearchResultsSlot: [ { - type: "SearchBarSlot", + type: "SearchResultsSlot", props: { + data: { + verticals: [ + { + label: "FAQs", + verticalKey: "faq", + layout: "Flex", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Products", + verticalKey: "product", + layout: "Grid", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Locations", + verticalKey: "locations", + layout: "Map", + universalLimit: 3, + verticalLimit: 5, + }, + ], + }, styles: { showIcon: false, }, - } satisfies SearchBarSlotProps, + } satisfies SearchResultsSlotProps, }, ], }, diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 58446b7997..82d7fba290 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -1,4 +1,5 @@ import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; +import { StandardCard } from "@yext/search-ui-react"; import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; @@ -15,6 +16,7 @@ interface VerticalConfig { universalLimit: number; verticalLimit: number; } + const defaultSearchResultsProps: SearchResultsSlotProps = { data: { verticals: [ @@ -45,8 +47,139 @@ const defaultSearchResultsProps: SearchResultsSlotProps = { showIcon: false, }, }; +export const verticalConfigMap = { + faq: { + label: "FAQs", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + "financial-professional": { + label: "Professionals", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + locations: { + label: "Locations", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + jobs: { + label: "Jobs", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + events: { + label: "Events", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + product: { + label: "Products", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, +}; +// const buildVerticalConfigMap = (verticals: VerticalConfig[]) => { +// const map: Record = {}; + +// verticals.forEach((v) => { +// const Section = (props: SectionProps) => ( +// +// ); + +// map[v.verticalKey] = { +// label: v.label, +// viewAllButton: true, +// SectionComponent: Section, +// CardComponent: StandardCard, +// universalLimit: v.universalLimit, +// verticalLimit: v.verticalLimit, +// }; +// }); + +// return map; +// }; + +// const SearchLayout = ({ +// layout, +// data: { results, CardComponent }, +// }: { +// layout: VerticalLayout; +// data: SectionProps; +// }) => { +// if (!CardComponent) return null; + +// const className = +// layout === "Grid" +// ? "grid grid-cols-3 gap-4 w-full" +// : layout === "Flex" +// ? "flex flex-col gap-4 w-full" +// : "flex flex-col w-full"; + +// return ( +//
+// {results.map((r, i) => ( +// +// ))} +//
+// ); +// }; const SearchResultsSlotFields: Fields = { + data: YextField(msg("fields.data", "Data"), { + type: "object", + objectFields: { + verticals: { + label: msg("fields.verticals", "Verticals"), + type: "array", + arrayFields: { + label: YextField(msg("fields.label", "Label"), { type: "text" }), + + verticalKey: YextField(msg("fields.verticalKey", "Vertical Key"), { + type: "text", + }), + + layout: YextField(msg("fields.layout", "Layout"), { + type: "radio", + options: [ + { label: "Grid", value: "Grid" }, + { label: "Flex", value: "Flex" }, + { label: "Map", value: "Map" }, + ], + }), + + universalLimit: YextField( + msg("fields.universalLimit", "Universal Limit"), + { type: "number" } + ), + + verticalLimit: YextField( + msg("fields.verticalLimit", "Vertical Limit"), + { + type: "number", + } + ), + }, + getItemSummary: (item) => item?.label || "Vertical", + }, + }, + }), styles: YextField(msg("fields.styles", "Styles"), { type: "object", objectFields: { @@ -64,11 +197,12 @@ const SearchResultsSlotFields: Fields = { const SearchResultsSlotInternal: PuckComponent = ( props ) => { - const { - styles: { showIcon = false }, - puck, - } = props; - console.log(showIcon); + const { puck } = props; + // const verticalConfigMap = React.useMemo( + // () => buildVerticalConfigMap(verticals), + // [verticals] + // ); + if (puck.isEditing) { return (
diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/_bu b/packages/visual-editor/src/components/pageSections/SearchSection/_bu new file mode 100644 index 0000000000..e8d1bbf755 --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/_bu @@ -0,0 +1,299 @@ +import { ComponentConfig, Fields, PuckComponent, Slot } from "@puckeditor/core"; +import { + CloudRegion, + Environment, + provideHeadless, + SearchConfig, + SearchHeadlessProvider, +} from "@yext/search-headless-react"; +import { + DefaultRawDataType, + SearchI18nextProvider, + SectionProps, + StandardCard, +} from "@yext/search-ui-react"; +import React from "react"; +import { YextField } from "../../../editor/YextField.tsx"; +import { useDocument } from "../../../hooks/useDocument.tsx"; +import { msg } from "../../../utils/index.ts"; +import { PageSection } from "../../atoms/pageSection.tsx"; +import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; + +type VerticalLayout = "Grid" | "Flex" | "Map"; + +interface VerticalConfig { + label: string; + verticalKey: string; + layout: VerticalLayout; + universalLimit: number; + verticalLimit: number; +} + +export interface SearchComponentProps { + verticals: VerticalConfig[]; + /** @internal */ + slots: { + SearchBarSlot: Slot; + SearchResultsSlot: Slot; + }; +} + +const locatorFields: Fields = { + verticals: { + label: msg("fields.verticals", "Verticals"), + type: "array", + arrayFields: { + label: YextField(msg("fields.label", "Label"), { type: "text" }), + + verticalKey: YextField(msg("fields.verticalKey", "Vertical Key"), { + type: "text", + }), + + layout: YextField(msg("fields.layout", "Layout"), { + type: "radio", + options: [ + { label: "Grid", value: "Grid" }, + { label: "Flex", value: "Flex" }, + { label: "Map", value: "Map" }, + ], + }), + + universalLimit: YextField( + msg("fields.universalLimit", "Universal Limit"), + { type: "number" } + ), + + verticalLimit: YextField(msg("fields.verticalLimit", "Vertical Limit"), { + type: "number", + }), + }, + getItemSummary: (item) => item?.label || "Vertical", + }, + slots: { + type: "object", + visible: false, + objectFields: { + SearchBarSlot: { type: "slot" }, + SearchResultsSlot: { type: "slot" }, + }, + }, +}; +const EXPERIENCE_VERSION = "PRODUCTION"; + +export const searchConfig: SearchConfig = { + apiKey: "fb73f1bf6a262bc3255bcb938088204f", + experienceKey: "ukg-fins", + locale: "en", + experienceVersion: EXPERIENCE_VERSION, + cloudRegion: CloudRegion.US, + environment: Environment.PROD, +}; + +const SearchWrapper: PuckComponent = ({ + verticals, + slots, + puck, +}) => { + const verticalConfigMap = React.useMemo( + () => buildVerticalConfigMap(verticals), + [verticals] + ); + console.log(verticalConfigMap); + + const streamDocument = useDocument(); + const { searchAnalyticsConfig, searcher } = React.useMemo(() => { + const searchHeadlessConfig = provideHeadless(searchConfig); + if (searchHeadlessConfig === undefined) { + return { searchAnalyticsConfig: undefined, searcher: undefined }; + } + + const searchAnalyticsConfig = provideHeadless(searchConfig); + return { + searchAnalyticsConfig, + searcher: provideHeadless(searchConfig), + }; + }, [streamDocument.id, streamDocument.locale]); + + if (searcher === undefined || searchAnalyticsConfig === undefined) { + console.warn( + "Could not create Locator component because Search Headless or Search Analytics config is undefined. Please check your environment variables." + ); + return <>; + } + searcher.setSessionTrackingEnabled(true); + return ( + + + + + + + + + ); +}; + +export const verticalConfigMap = { + faq: { + label: "FAQs", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + "financial-professional": { + label: "Professionals", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + locations: { + label: "Locations", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + jobs: { + label: "Jobs", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + events: { + label: "Events", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + + product: { + label: "Products", + viewAllButton: true, + CardComponent: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, +}; + +// const SearchInternal = ({ verticals }: WithPuckProps) => { +// const verticalConfigMap = React.useMemo( +// () => buildVerticalConfigMap(verticals), +// [verticals] +// ); + +// return ( +// +// +// +// +// ); +// }; + +const buildVerticalConfigMap = (verticals: VerticalConfig[]) => { + const map: Record = {}; + + verticals.forEach((v) => { + const Section = (props: SectionProps) => ( + + ); + + map[v.verticalKey] = { + label: v.label, + viewAllButton: true, + SectionComponent: Section, + CardComponent: StandardCard, + universalLimit: v.universalLimit, + verticalLimit: v.verticalLimit, + }; + }); + + return map; +}; + +const SearchLayout = ({ + layout, + data: { results, CardComponent }, +}: { + layout: VerticalLayout; + data: SectionProps; +}) => { + if (!CardComponent) return null; + + const className = + layout === "Grid" + ? "grid grid-cols-3 gap-4 w-full" + : layout === "Flex" + ? "flex flex-col gap-4 w-full" + : "flex flex-col w-full"; + + return ( +
+ {results.map((r, i) => ( + + ))} +
+ ); +}; + +export const SearchComponent: ComponentConfig<{ + props: SearchComponentProps; +}> = { + label: msg("components.searchWithSlots", "Search with Slots"), + fields: locatorFields, + + defaultProps: { + verticals: [ + { + label: "FAQs", + verticalKey: "faq", + layout: "Flex", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Products", + verticalKey: "product", + layout: "Grid", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Locations", + verticalKey: "locations", + layout: "Map", + universalLimit: 3, + verticalLimit: 5, + }, + ], + slots: { + SearchBarSlot: [ + { + type: "SearchBarSlot", + props: { + styles: { + showIcon: false, + }, + } satisfies SearchBarSlotProps, + }, + ], + SearchResultsSlot: [ + { + type: "SearchBarSlot", + props: { + styles: { + showIcon: false, + }, + } satisfies SearchBarSlotProps, + }, + ], + }, + }, + render: (props) => , +}; From 3ce11cbe4ae7067c728ffa0e7276f7f58513b690 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 10 Feb 2026 16:08:36 +0530 Subject: [PATCH 11/74] working search OOTB --- .../pageSections/SearchSection/Search.tsx | 3 +- .../SearchSection/SearchResultsSlot.tsx | 134 ++++++++++++++++-- 2 files changed, 123 insertions(+), 14 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index e56167e793..9c9abb7426 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -25,7 +25,6 @@ export interface SearchComponentProps { const locatorFields: Fields = { slots: { type: "object", - visible: false, objectFields: { SearchBarSlot: { type: "slot" }, SearchResultsSlot: { type: "slot" }, @@ -71,7 +70,7 @@ const SearchWrapper: PuckComponent = ({ return ( - + diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 82d7fba290..1bfc4c9cae 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -1,7 +1,16 @@ import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; -import { StandardCard } from "@yext/search-ui-react"; +import { + DefaultRawDataType, + StandardCard, + StandardSection, + UniversalResults, + VerticalConfigMap, +} from "@yext/search-ui-react"; import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; +import React from "react"; +import { useSearchActions } from "@yext/search-headless-react"; +import { FaEllipsisV } from "react-icons/fa"; export interface SearchResultsSlotProps { data: { verticals: VerticalConfig[] }; @@ -194,23 +203,124 @@ const SearchResultsSlotFields: Fields = { }), }; -const SearchResultsSlotInternal: PuckComponent = ( - props -) => { - const { puck } = props; +export const VerticalConfig = [ + { + label: "All", + pageType: "universal", + }, + { + label: "FAQs", + verticalKey: "faq", + pageType: "standard", + cardType: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Professionals", + verticalKey: "financial-professional", + pageType: "grid-cols-3", + cardType: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Locations", + verticalKey: "locations", + pageType: "map", + cardType: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Jobs", + verticalKey: "jobs", + pageType: "standard", + cardType: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Events", + verticalKey: "events", + pageType: "standard", + cardType: StandardCard, + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Products", + verticalKey: "product", + pageType: "grid-cols-3", + cardType: StandardCard, + universalLimit: 3, + verticalLimit: 5, + sortFields: ["name"], // ["fieldName, Ascending Label, Descending Label"] examples: ["name, Name (A-Z), Name (Z-A)"] or ["name, Name (A-Z), Name (Z-A)", "price.value, Price (Low - High), Price (High - Low)"] + }, +]; + +export const UniversalConfig: VerticalConfigMap< + Record +> = VerticalConfig.reduce( + (configMap, item) => { + if (item.verticalKey) { + configMap[item.verticalKey] = { + CardComponent: item.cardType, + SectionComponent: StandardSection, + label: item.label, + }; + } + return configMap; + }, + {} as VerticalConfigMap> +); + +const SearchResultsSlotInternal: PuckComponent = () => { + const searchActions = useSearchActions(); + React.useEffect(() => { + searchActions + .executeUniversalQuery() + .then((res) => console.log(JSON.stringify(res))); + }, []); + // const verticalConfigMap = React.useMemo( // () => buildVerticalConfigMap(verticals), // [verticals] // ); - if (puck.isEditing) { - return ( -
- Search Bar + return ( +
+
+ +
+ +
+
+
+
- ); - } - return
Search Result
; +
+ ); + // return
Search Result
; }; export const SearchResultsSlot: ComponentConfig<{ From 84e9c130eb352832b7c1158e179f8b27aa43ab24 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 11 Feb 2026 01:36:58 +0530 Subject: [PATCH 12/74] working model --- .../SearchSection/GridSection.tsx | 19 ++ .../pageSections/SearchSection/Search.tsx | 18 +- .../SearchSection/SearchResultsSlot.tsx | 289 ++++-------------- .../SearchSection/propsAndTypes.ts | 43 +++ .../pageSections/SearchSection/utils.tsx | 70 +++++ 5 files changed, 187 insertions(+), 252 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/GridSection.tsx create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/GridSection.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/GridSection.tsx new file mode 100644 index 0000000000..e18c9fa3c1 --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/GridSection.tsx @@ -0,0 +1,19 @@ +import React from "react"; +import { DefaultRawDataType, SectionProps } from "@yext/search-ui-react"; + +export const GridSection = ({ + results, + CardComponent, +}: SectionProps) => { + if (!results || !results.length || !CardComponent) { + return null; + } + + return ( +
+ {results.map((result, index) => ( + + ))} +
+ ); +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index 9c9abb7426..41a0efcc1e 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -102,6 +102,10 @@ export const SearchComponent: ComponentConfig<{ props: { data: { verticals: [ + { + label: "All", + pageType: "universal", + }, { label: "FAQs", verticalKey: "faq", @@ -109,20 +113,6 @@ export const SearchComponent: ComponentConfig<{ universalLimit: 3, verticalLimit: 5, }, - { - label: "Products", - verticalKey: "product", - layout: "Grid", - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Locations", - verticalKey: "locations", - layout: "Map", - universalLimit: 3, - verticalLimit: 5, - }, ], }, styles: { diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 1bfc4c9cae..6d95e85819 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -1,155 +1,20 @@ import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; -import { - DefaultRawDataType, - StandardCard, - StandardSection, - UniversalResults, - VerticalConfigMap, -} from "@yext/search-ui-react"; -import { YextField } from "../../../editor/YextField.tsx"; -import { msg } from "../../../utils/index.ts"; +import { useSearchActions, useSearchState } from "@yext/search-headless-react"; +import { UniversalResults } from "@yext/search-ui-react"; import React from "react"; -import { useSearchActions } from "@yext/search-headless-react"; import { FaEllipsisV } from "react-icons/fa"; - +import { YextField } from "../../../editor/YextField.tsx"; +import { msg } from "../../../utils/index.ts"; +import { defaultSearchResultsProps, VerticalConfig } from "./propsAndTypes.ts"; +import { + buildUniversalLimit, + buildVerticalConfigMap, + isValidVerticalConfig, +} from "./utils.tsx"; export interface SearchResultsSlotProps { data: { verticals: VerticalConfig[] }; styles: { showIcon: boolean }; } -type VerticalLayout = "Grid" | "Flex" | "Map"; - -interface VerticalConfig { - label: string; - verticalKey: string; - layout: VerticalLayout; - universalLimit: number; - verticalLimit: number; -} - -const defaultSearchResultsProps: SearchResultsSlotProps = { - data: { - verticals: [ - { - label: "FAQs", - verticalKey: "faq", - layout: "Flex", - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Products", - verticalKey: "product", - layout: "Grid", - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Locations", - verticalKey: "locations", - layout: "Map", - universalLimit: 3, - verticalLimit: 5, - }, - ], - }, - styles: { - showIcon: false, - }, -}; -export const verticalConfigMap = { - faq: { - label: "FAQs", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - "financial-professional": { - label: "Professionals", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - locations: { - label: "Locations", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - jobs: { - label: "Jobs", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - events: { - label: "Events", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - product: { - label: "Products", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, -}; -// const buildVerticalConfigMap = (verticals: VerticalConfig[]) => { -// const map: Record = {}; - -// verticals.forEach((v) => { -// const Section = (props: SectionProps) => ( -// -// ); - -// map[v.verticalKey] = { -// label: v.label, -// viewAllButton: true, -// SectionComponent: Section, -// CardComponent: StandardCard, -// universalLimit: v.universalLimit, -// verticalLimit: v.verticalLimit, -// }; -// }); - -// return map; -// }; - -// const SearchLayout = ({ -// layout, -// data: { results, CardComponent }, -// }: { -// layout: VerticalLayout; -// data: SectionProps; -// }) => { -// if (!CardComponent) return null; - -// const className = -// layout === "Grid" -// ? "grid grid-cols-3 gap-4 w-full" -// : layout === "Flex" -// ? "flex flex-col gap-4 w-full" -// : "flex flex-col w-full"; - -// return ( -//
-// {results.map((r, i) => ( -// -// ))} -//
-// ); -// }; - const SearchResultsSlotFields: Fields = { data: YextField(msg("fields.data", "Data"), { type: "object", @@ -203,104 +68,52 @@ const SearchResultsSlotFields: Fields = { }), }; -export const VerticalConfig = [ - { - label: "All", - pageType: "universal", - }, - { - label: "FAQs", - verticalKey: "faq", - pageType: "standard", - cardType: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Professionals", - verticalKey: "financial-professional", - pageType: "grid-cols-3", - cardType: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Locations", - verticalKey: "locations", - pageType: "map", - cardType: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Jobs", - verticalKey: "jobs", - pageType: "standard", - cardType: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Events", - verticalKey: "events", - pageType: "standard", - cardType: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Products", - verticalKey: "product", - pageType: "grid-cols-3", - cardType: StandardCard, - universalLimit: 3, - verticalLimit: 5, - sortFields: ["name"], // ["fieldName, Ascending Label, Descending Label"] examples: ["name, Name (A-Z), Name (Z-A)"] or ["name, Name (A-Z), Name (Z-A)", "price.value, Price (Low - High), Price (High - Low)"] - }, -]; +const SearchResultsSlotInternal: PuckComponent = ( + props +) => { + const { + data: { verticals }, + } = props; -export const UniversalConfig: VerticalConfigMap< - Record -> = VerticalConfig.reduce( - (configMap, item) => { - if (item.verticalKey) { - configMap[item.verticalKey] = { - CardComponent: item.cardType, - SectionComponent: StandardSection, - label: item.label, - }; - } - return configMap; - }, - {} as VerticalConfigMap> -); - -const SearchResultsSlotInternal: PuckComponent = () => { const searchActions = useSearchActions(); + const isLoading = useSearchState((s) => s.searchStatus.isLoading); + const searchTerm = useSearchState((s) => s.query.input) ?? " "; + const verticalConfigMap = React.useMemo( + () => buildVerticalConfigMap(verticals), + [verticals] + ); + + const universalLimit = React.useMemo( + () => buildUniversalLimit(verticals), + [verticals] + ); + React.useEffect(() => { - searchActions - .executeUniversalQuery() - .then((res) => console.log(JSON.stringify(res))); - }, []); + if (!isValidVerticalConfig(verticals)) { + console.warn("Skipping search: invalid vertical config", verticals); + return; + } - // const verticalConfigMap = React.useMemo( - // () => buildVerticalConfigMap(verticals), - // [verticals] - // ); + searchActions.setUniversal(); + searchActions.setQuery(searchTerm); + searchActions.setRestrictVerticals( + verticals.filter((v) => v.verticalKey).map((v) => v.verticalKey as string) + ); + searchActions.setUniversalLimit(universalLimit); + searchActions.executeUniversalQuery(); + }, [verticals, searchTerm, universalLimit, searchActions]); return (
-
+ + {!isLoading && ( -
+ )}
); - // return
Search Result
; }; export const SearchResultsSlot: ComponentConfig<{ diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts b/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts new file mode 100644 index 0000000000..e16e6f59ae --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts @@ -0,0 +1,43 @@ +import { SearchResultsSlotProps } from "./SearchResultsSlot.tsx"; + +export type VerticalLayout = "Grid" | "Flex" | "Map"; + +export interface VerticalConfig { + label: string; + verticalKey?: string; + layout?: VerticalLayout; + universalLimit?: number; + verticalLimit?: number; + pageType?: "universal" | "vertical"; +} + +export const defaultSearchResultsProps: SearchResultsSlotProps = { + data: { + verticals: [ + { + label: "FAQs", + verticalKey: "faq", + layout: "Flex", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Products", + verticalKey: "product", + layout: "Grid", + universalLimit: 3, + verticalLimit: 5, + }, + { + label: "Locations", + verticalKey: "locations", + layout: "Map", + universalLimit: 3, + verticalLimit: 5, + }, + ], + }, + styles: { + showIcon: false, + }, +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx new file mode 100644 index 0000000000..28e986bf0a --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx @@ -0,0 +1,70 @@ +import { UniversalLimit } from "@yext/search-headless-react"; +import { + DefaultRawDataType, + StandardCard, + StandardSection, + VerticalConfigMap, +} from "@yext/search-ui-react"; + +export const buildVerticalConfigMap = ( + verticals: { + label: string; + verticalKey?: string; + layout?: "Grid" | "Flex" | "Map"; + }[] +): VerticalConfigMap> => { + return verticals.reduce( + (acc, v) => { + if (!v.verticalKey) return acc; + + acc[v.verticalKey] = { + label: v.label, + viewAllButton: true, + SectionComponent: StandardSection, + CardComponent: StandardCard, + }; + + return acc; + }, + {} as VerticalConfigMap> + ); +}; + +export const buildUniversalLimit = ( + verticals: { + label: string; + verticalKey?: string; + universalLimit?: number; + }[] +): UniversalLimit => { + return verticals.reduce((acc, v) => { + if (!v.verticalKey || typeof v.universalLimit !== "number") { + return acc; + } + + acc[v.verticalKey] = v.universalLimit; + return acc; + }, {}); +}; + +const isValidVertical = (v: any): boolean => { + if (!v || typeof v !== "object") return false; + if (v.pageType === "universal") { + return typeof v.label === "string"; + } + return ( + typeof v.label === "string" && + typeof v.verticalKey === "string" && + (v.layout === "Grid" || v.layout === "Flex" || v.layout === "Map") && + typeof v.universalLimit === "number" && + typeof v.verticalLimit === "number" + ); +}; + +export const isValidVerticalConfig = (verticals: any[]): boolean => { + return ( + Array.isArray(verticals) && + verticals.length > 0 && + verticals.every(isValidVertical) + ); +}; From 43d446bec123871c638c9ab456809d1e968a2847 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 11 Feb 2026 02:01:56 +0530 Subject: [PATCH 13/74] working awesome --- .../pageSections/SearchSection/SearchResultsSlot.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 6d95e85819..01397de98c 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -95,10 +95,8 @@ const SearchResultsSlotInternal: PuckComponent = ( } searchActions.setUniversal(); - searchActions.setQuery(searchTerm); - searchActions.setRestrictVerticals( - verticals.filter((v) => v.verticalKey).map((v) => v.verticalKey as string) - ); + // searchActions.setQuery(searchTerm); + searchActions.setUniversalLimit(universalLimit); searchActions.executeUniversalQuery(); }, [verticals, searchTerm, universalLimit, searchActions]); From 96c80186d33567a3367f776c6c7bfca3962bcd6f Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 11 Feb 2026 15:34:25 +0530 Subject: [PATCH 14/74] dynamic layout --- .../SearchSection/LayoutSections.tsx | 32 +++++++++++++++++++ .../SearchSection/SearchResultsSlot.tsx | 30 +++++++++++++++-- .../pageSections/SearchSection/utils.tsx | 9 ++++-- 3 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx new file mode 100644 index 0000000000..d8f1e9293c --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -0,0 +1,32 @@ +import { SectionProps, DefaultRawDataType } from "@yext/search-ui-react"; +import { VerticalLayout } from "./propsAndTypes.ts"; + +interface LayoutSectionProps extends SectionProps { + layoutType: VerticalLayout; +} + +export const LayoutSection = ({ + layoutType, + results, + CardComponent, + header, +}: LayoutSectionProps) => { + if (!CardComponent) return null; + const layoutClasses = + layoutType === "Grid" + ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" + : "flex flex-col gap-4 w-full"; + return ( +
+

+ {header?.props.label.toUpperCase()} +

+ +
+ {results.map((result, index) => ( + + ))} +
+
+ ); +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 01397de98c..7ed356398d 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -1,4 +1,9 @@ -import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; +import { + ComponentConfig, + Fields, + PuckComponent, + // usePuck, +} from "@puckeditor/core"; import { useSearchActions, useSearchState } from "@yext/search-headless-react"; import { UniversalResults } from "@yext/search-ui-react"; import React from "react"; @@ -74,6 +79,27 @@ const SearchResultsSlotInternal: PuckComponent = ( const { data: { verticals }, } = props; + // const { appState } = usePuck(); + // const arrayState = appState.ui.arrayState; + + // const arrayKey = Object.keys(arrayState || {}).find((key) => + // key.includes("_object_data_verticals") + // ); + + // let selectedVerticalIndex: number | null = null; + + // if (arrayKey) { + // const verticalArrayState = arrayState[arrayKey]; + // const openId = verticalArrayState?.openId; + + // const selectedItem = verticalArrayState?.items?.find( + // (item) => item._arrayId === openId + // ); + + // selectedVerticalIndex = selectedItem?._currentIndex ?? null; + // } + + // console.log("Selected vertical index:", selectedVerticalIndex); const searchActions = useSearchActions(); const isLoading = useSearchState((s) => s.searchStatus.isLoading); @@ -95,8 +121,6 @@ const SearchResultsSlotInternal: PuckComponent = ( } searchActions.setUniversal(); - // searchActions.setQuery(searchTerm); - searchActions.setUniversalLimit(universalLimit); searchActions.executeUniversalQuery(); }, [verticals, searchTerm, universalLimit, searchActions]); diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx index 28e986bf0a..9481d51f58 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx @@ -2,15 +2,16 @@ import { UniversalLimit } from "@yext/search-headless-react"; import { DefaultRawDataType, StandardCard, - StandardSection, VerticalConfigMap, } from "@yext/search-ui-react"; +import { LayoutSection } from "./LayoutSections.tsx"; +import { VerticalLayout } from "./propsAndTypes.ts"; export const buildVerticalConfigMap = ( verticals: { label: string; verticalKey?: string; - layout?: "Grid" | "Flex" | "Map"; + layout?: VerticalLayout; }[] ): VerticalConfigMap> => { return verticals.reduce( @@ -20,7 +21,9 @@ export const buildVerticalConfigMap = ( acc[v.verticalKey] = { label: v.label, viewAllButton: true, - SectionComponent: StandardSection, + SectionComponent: (props) => ( + + ), CardComponent: StandardCard, }; From 82ec15b9d9c2f562cf2d08433c74943d1a161931 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 11 Feb 2026 17:51:03 +0530 Subject: [PATCH 15/74] added hide vertical on home --- .../pageSections/SearchSection/Cards.tsx | 19 +++++++ .../pageSections/SearchSection/Search.tsx | 1 + .../SearchSection/SearchBarSlot.tsx | 6 +- .../SearchSection/SearchResultsSlot.tsx | 28 ++++++---- .../SearchSection/propsAndTypes.ts | 7 +++ .../pageSections/SearchSection/search.css | 3 + .../pageSections/SearchSection/utils.tsx | 55 ++++++++++++++++--- 7 files changed, 95 insertions(+), 24 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/search.css diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx new file mode 100644 index 0000000000..3ac5a1589c --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx @@ -0,0 +1,19 @@ +import { CardProps, DefaultRawDataType } from "@yext/search-ui-react"; +import { CardTypeProp } from "./propsAndTypes.ts"; + +interface CardsProps extends CardProps { + cardType?: CardTypeProp; +} + +const Cards = ({ result, cardType = "Standard" }: CardsProps) => { + const name = + typeof result.rawData?.name === "string" ? result.rawData.name : ""; + + return ( +
+ {cardType} — {name} +
+ ); +}; + +export default Cards; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index 41a0efcc1e..f44c398e8c 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -13,6 +13,7 @@ import { msg } from "../../../utils/index.ts"; import { PageSection } from "../../atoms/pageSection.tsx"; import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; import { SearchResultsSlotProps } from "./SearchResultsSlot.tsx"; +import "./search.css"; export interface SearchComponentProps { /** @internal */ diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx index f9ce445f1c..4962ce4dc4 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -27,11 +27,7 @@ const searchBarSlotFields: Fields = { }; const SearchBarSlotInternal: PuckComponent = (props) => { - const { - styles: { showIcon = false }, - puck, - } = props; - console.log(showIcon); + const { puck } = props; if (puck.isEditing) { return (
diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 7ed356398d..809ed6249a 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -16,10 +16,12 @@ import { buildVerticalConfigMap, isValidVerticalConfig, } from "./utils.tsx"; + export interface SearchResultsSlotProps { data: { verticals: VerticalConfig[] }; styles: { showIcon: boolean }; } + const SearchResultsSlotFields: Fields = { data: YextField(msg("fields.data", "Data"), { type: "object", @@ -29,11 +31,9 @@ const SearchResultsSlotFields: Fields = { type: "array", arrayFields: { label: YextField(msg("fields.label", "Label"), { type: "text" }), - verticalKey: YextField(msg("fields.verticalKey", "Vertical Key"), { type: "text", }), - layout: YextField(msg("fields.layout", "Layout"), { type: "radio", options: [ @@ -42,12 +42,17 @@ const SearchResultsSlotFields: Fields = { { label: "Map", value: "Map" }, ], }), - + cardType: YextField(msg("fields.layout", "Layout"), { + type: "radio", + options: [ + { label: "Standard", value: "standard" }, + { label: "Accordion", value: "accordion" }, + ], + }), universalLimit: YextField( msg("fields.universalLimit", "Universal Limit"), { type: "number" } ), - verticalLimit: YextField( msg("fields.verticalLimit", "Vertical Limit"), { @@ -118,11 +123,11 @@ const SearchResultsSlotInternal: PuckComponent = ( if (!isValidVerticalConfig(verticals)) { console.warn("Skipping search: invalid vertical config", verticals); return; + } else { + searchActions.setUniversal(); + searchActions.setUniversalLimit(universalLimit); + searchActions.executeUniversalQuery(); } - - searchActions.setUniversal(); - searchActions.setUniversalLimit(universalLimit); - searchActions.executeUniversalQuery(); }, [verticals, searchTerm, universalLimit, searchActions]); return ( @@ -131,7 +136,10 @@ const SearchResultsSlotInternal: PuckComponent = (
- + {isLoading &&
Loading......
} {!isLoading && ( > => { return verticals.reduce( (acc, v) => { if (!v.verticalKey) return acc; - + const layoutType = v.layout ?? "Grid"; + const cardType = v.cardType ?? "Standard"; acc[v.verticalKey] = { label: v.label, viewAllButton: true, SectionComponent: (props) => ( - + ), - CardComponent: StandardCard, + CardComponent: (props) => , }; return acc; @@ -71,3 +70,41 @@ export const isValidVerticalConfig = (verticals: any[]): boolean => { verticals.every(isValidVertical) ); }; + +// export const buildVerticalConfigMap = ( +// verticals: { +// label: string; +// verticalKey?: string; +// layout?: VerticalLayout; +// cardType?: CardTypeProp; +// }[] +// ): VerticalConfigMap> => { +// return verticals.reduce( +// (acc, v) => { +// if (!v.verticalKey) return acc; + +// const layoutType = v.layout ?? "Grid"; +// const cardType = v.cardType ?? "Standard"; + +// // Stable Section component per vertical +// const SectionComponent: React.FC> = ( +// props +// ) => ; + +// // Stable Card component per vertical +// const CardComponent: React.FC> = ( +// props +// ) => ; + +// acc[v.verticalKey] = { +// label: v.label, +// viewAllButton: true, +// SectionComponent, +// CardComponent, +// }; + +// return acc; +// }, +// {} as VerticalConfigMap> +// ); +// }; From fdc722e5ae5dfe01d89541c7a9d35e826acbb7d3 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 11 Feb 2026 18:13:05 +0530 Subject: [PATCH 16/74] added native styling --- .../pageSections/SearchSection/Cards.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx index 3ac5a1589c..7875c99ec8 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx @@ -1,17 +1,25 @@ import { CardProps, DefaultRawDataType } from "@yext/search-ui-react"; import { CardTypeProp } from "./propsAndTypes.ts"; +import { Heading } from "../../atoms/heading.tsx"; +import { Body } from "../../atoms/body.tsx"; interface CardsProps extends CardProps { cardType?: CardTypeProp; } const Cards = ({ result, cardType = "Standard" }: CardsProps) => { - const name = - typeof result.rawData?.name === "string" ? result.rawData.name : ""; + // const name = + // typeof result.rawData?.name === "string" ? result.rawData.name : ""; return ( -
- {cardType} — {name} +
+
+
+
+ {(result.rawData?.name as any) ?? "name"} + {cardType} +
+
); }; From fb48567f5cf29ceee90e12edc1b027efd6bcda25 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 11 Feb 2026 23:13:14 +0530 Subject: [PATCH 17/74] nit updates --- .../SearchSection/GridSection.tsx | 19 ------------------ .../SearchSection/LayoutSections.tsx | 6 ++++++ .../SearchSection/SearchResultsSlot.tsx | 7 +++++-- .../SearchSection/propsAndTypes.ts | 2 +- .../pageSections/SearchSection/utils.tsx | 20 +++++++++---------- 5 files changed, 21 insertions(+), 33 deletions(-) delete mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/GridSection.tsx diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/GridSection.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/GridSection.tsx deleted file mode 100644 index e18c9fa3c1..0000000000 --- a/packages/visual-editor/src/components/pageSections/SearchSection/GridSection.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from "react"; -import { DefaultRawDataType, SectionProps } from "@yext/search-ui-react"; - -export const GridSection = ({ - results, - CardComponent, -}: SectionProps) => { - if (!results || !results.length || !CardComponent) { - return null; - } - - return ( -
- {results.map((result, index) => ( - - ))} -
- ); -}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx index d8f1e9293c..3f48fa862f 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -3,6 +3,7 @@ import { VerticalLayout } from "./propsAndTypes.ts"; interface LayoutSectionProps extends SectionProps { layoutType: VerticalLayout; + resultsCount: number; } export const LayoutSection = ({ @@ -10,12 +11,17 @@ export const LayoutSection = ({ results, CardComponent, header, + resultsCount = 4, }: LayoutSectionProps) => { if (!CardComponent) return null; const layoutClasses = layoutType === "Grid" ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" : "flex flex-col gap-4 w-full"; + console.log(resultsCount); + + // const filteredResults = results.slice(0, resultsCount); + return (

diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 809ed6249a..6f40733437 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -10,7 +10,10 @@ import React from "react"; import { FaEllipsisV } from "react-icons/fa"; import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; -import { defaultSearchResultsProps, VerticalConfig } from "./propsAndTypes.ts"; +import { + defaultSearchResultsProps, + VerticalConfigProps, +} from "./propsAndTypes.ts"; import { buildUniversalLimit, buildVerticalConfigMap, @@ -18,7 +21,7 @@ import { } from "./utils.tsx"; export interface SearchResultsSlotProps { - data: { verticals: VerticalConfig[] }; + data: { verticals: VerticalConfigProps[] }; styles: { showIcon: boolean }; } diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts b/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts index 018c70f47d..da277b5d00 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts @@ -3,7 +3,7 @@ import { SearchResultsSlotProps } from "./SearchResultsSlot.tsx"; export type VerticalLayout = "Grid" | "Flex" | "Map"; export type CardTypeProp = "Standard" | "accordion"; -export interface VerticalConfig { +export interface VerticalConfigProps { label: string; verticalKey?: string; layout?: VerticalLayout; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx index e632b08e4a..bfd050872b 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx @@ -1,16 +1,11 @@ import { UniversalLimit } from "@yext/search-headless-react"; -import { VerticalConfigMap, DefaultRawDataType } from "@yext/search-ui-react"; +import { DefaultRawDataType, VerticalConfigMap } from "@yext/search-ui-react"; import Cards from "./Cards.tsx"; import { LayoutSection } from "./LayoutSections.tsx"; -import { VerticalLayout, CardTypeProp } from "./propsAndTypes.ts"; +import { VerticalConfigProps } from "./propsAndTypes.ts"; export const buildVerticalConfigMap = ( - verticals: { - label: string; - verticalKey?: string; - layout?: VerticalLayout; - cardType?: CardTypeProp; - }[] + verticals: VerticalConfigProps[] ): VerticalConfigMap> => { return verticals.reduce( (acc, v) => { @@ -21,11 +16,14 @@ export const buildVerticalConfigMap = ( label: v.label, viewAllButton: true, SectionComponent: (props) => ( - + ), CardComponent: (props) => , }; - return acc; }, {} as VerticalConfigMap> @@ -43,8 +41,8 @@ export const buildUniversalLimit = ( if (!v.verticalKey || typeof v.universalLimit !== "number") { return acc; } - acc[v.verticalKey] = v.universalLimit; + // acc[v.verticalKey] = 50; return acc; }, {}); }; From 59c9141a8b4a40f0b41a0a9e169fbbb467b27942 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 12 Feb 2026 00:33:38 +0530 Subject: [PATCH 18/74] vertical limit and additional verticals added --- .../pageSections/SearchSection/Search.tsx | 9 +-- .../SearchSection/SearchResultsSlot.tsx | 65 +++++++++++-------- .../SearchSection/propsAndTypes.ts | 18 ----- .../pageSections/SearchSection/utils.tsx | 38 ----------- 4 files changed, 41 insertions(+), 89 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index f44c398e8c..da8ddb4112 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -14,6 +14,7 @@ import { PageSection } from "../../atoms/pageSection.tsx"; import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; import { SearchResultsSlotProps } from "./SearchResultsSlot.tsx"; import "./search.css"; +import { defaultSearchResultsProps } from "./propsAndTypes.ts"; export interface SearchComponentProps { /** @internal */ @@ -107,13 +108,7 @@ export const SearchComponent: ComponentConfig<{ label: "All", pageType: "universal", }, - { - label: "FAQs", - verticalKey: "faq", - layout: "Flex", - universalLimit: 3, - verticalLimit: 5, - }, + defaultSearchResultsProps.data.verticals[0], ], }, styles: { diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 6f40733437..0f3c2cd3c0 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -1,12 +1,11 @@ -import { - ComponentConfig, - Fields, - PuckComponent, - // usePuck, -} from "@puckeditor/core"; +import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; import { useSearchActions, useSearchState } from "@yext/search-headless-react"; -import { UniversalResults } from "@yext/search-ui-react"; -import React from "react"; +import { + StandardCard, + UniversalResults, + VerticalResults, +} from "@yext/search-ui-react"; +import React, { useState } from "react"; import { FaEllipsisV } from "react-icons/fa"; import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; @@ -45,11 +44,11 @@ const SearchResultsSlotFields: Fields = { { label: "Map", value: "Map" }, ], }), - cardType: YextField(msg("fields.layout", "Layout"), { + cardType: YextField(msg("fields.cardType", "Card Type"), { type: "radio", options: [ - { label: "Standard", value: "standard" }, - { label: "Accordion", value: "accordion" }, + { label: "Standard", value: "Standard" }, + { label: "Accordion", value: "Accordion" }, ], }), universalLimit: YextField( @@ -112,6 +111,8 @@ const SearchResultsSlotInternal: PuckComponent = ( const searchActions = useSearchActions(); const isLoading = useSearchState((s) => s.searchStatus.isLoading); const searchTerm = useSearchState((s) => s.query.input) ?? " "; + const [verticalKey, setVerticalKey] = useState(); + const verticalConfigMap = React.useMemo( () => buildVerticalConfigMap(verticals), [verticals] @@ -127,11 +128,20 @@ const SearchResultsSlotInternal: PuckComponent = ( console.warn("Skipping search: invalid vertical config", verticals); return; } else { - searchActions.setUniversal(); - searchActions.setUniversalLimit(universalLimit); - searchActions.executeUniversalQuery(); + if (verticalKey) { + const verticalLimit = verticals.find( + (item) => item.verticalKey === verticalKey + )?.verticalLimit; + searchActions.setVertical(verticalKey); + searchActions.setVerticalLimit(verticalLimit!); + searchActions.executeVerticalQuery(); + } else { + searchActions.setUniversal(); + searchActions.setUniversalLimit(universalLimit); + searchActions.executeUniversalQuery(); + } } - }, [verticals, searchTerm, universalLimit, searchActions]); + }, [verticals, searchTerm, universalLimit, searchActions, verticalKey]); return (
@@ -140,8 +150,8 @@ const SearchResultsSlotInternal: PuckComponent = ( {verticals.map((item) => (
  • console.log("clicked")} - className="px-5 pt-1.5 pb-1 tracking-[1.1px] mb-0" + onClick={() => setVerticalKey(item.verticalKey)} + className="px-5 pt-1.5 pb-1 tracking-[1.1px] mb-0 hover:cursor-pointer" > {item.label} @@ -156,15 +166,18 @@ const SearchResultsSlotInternal: PuckComponent = (
  • {isLoading &&
    Loading......
    } - {!isLoading && ( - - )} + {!isLoading && + (verticalKey ? ( + + ) : ( + + ))}
    ); }; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts b/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts index da277b5d00..42ac7e1153 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts @@ -24,24 +24,6 @@ export const defaultSearchResultsProps: SearchResultsSlotProps = { universalLimit: 3, verticalLimit: 5, }, - { - label: "Products", - verticalKey: "product", - layout: "Grid", - cardType: "Standard", - - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Locations", - verticalKey: "locations", - layout: "Map", - cardType: "Standard", - - universalLimit: 3, - verticalLimit: 5, - }, ], }, styles: { diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx index bfd050872b..3811d2eb45 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx @@ -68,41 +68,3 @@ export const isValidVerticalConfig = (verticals: any[]): boolean => { verticals.every(isValidVertical) ); }; - -// export const buildVerticalConfigMap = ( -// verticals: { -// label: string; -// verticalKey?: string; -// layout?: VerticalLayout; -// cardType?: CardTypeProp; -// }[] -// ): VerticalConfigMap> => { -// return verticals.reduce( -// (acc, v) => { -// if (!v.verticalKey) return acc; - -// const layoutType = v.layout ?? "Grid"; -// const cardType = v.cardType ?? "Standard"; - -// // Stable Section component per vertical -// const SectionComponent: React.FC> = ( -// props -// ) => ; - -// // Stable Card component per vertical -// const CardComponent: React.FC> = ( -// props -// ) => ; - -// acc[v.verticalKey] = { -// label: v.label, -// viewAllButton: true, -// SectionComponent, -// CardComponent, -// }; - -// return acc; -// }, -// {} as VerticalConfigMap> -// ); -// }; From 53206c5cb0b54a4f45216396981572b6c172c274 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 12 Feb 2026 02:06:48 +0530 Subject: [PATCH 19/74] awesome development --- .../pageSections/SearchSection/Cards.tsx | 44 +++++++++++++++---- .../SearchSection/LayoutSections.tsx | 13 +++--- 2 files changed, 42 insertions(+), 15 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx index 7875c99ec8..e7d6bfa79d 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx @@ -1,7 +1,5 @@ import { CardProps, DefaultRawDataType } from "@yext/search-ui-react"; import { CardTypeProp } from "./propsAndTypes.ts"; -import { Heading } from "../../atoms/heading.tsx"; -import { Body } from "../../atoms/body.tsx"; interface CardsProps extends CardProps { cardType?: CardTypeProp; @@ -12,12 +10,42 @@ const Cards = ({ result, cardType = "Standard" }: CardsProps) => { // typeof result.rawData?.name === "string" ? result.rawData.name : ""; return ( -
    -
    -
    -
    - {(result.rawData?.name as any) ?? "name"} - {cardType} +
    +
    +

    + {(result.rawData?.name as any) ?? "name"} +

    +
    +

    + Lorem ipsum dolor sit amet consectetur, adipisicing elit. Impedit + illo tenetur aut quas, dolor repudiandae dignissimos cumque + asperiores doloribus blanditiis molestiae omnis quo. Consequatur + accusamus distinctio sint alias dignissimos labore! Lorem ipsum + dolor sit amet consectetur, adipisicing elit. Impedit illo tenetur + aut quas, dolor repudiandae dignissimos cumque asperiores doloribus + blanditiis molestiae omnis quo. Consequatur accusamus distinctio + sint alias dignissimos labore! Lorem ipsum dolor sit amet + consectetur, adipisicing elit. Impedit illo tenetur aut quas, dolor + repudiandae dignissimos cumque asperiores doloribus blanditiis + molestiae omnis quo. Consequatur accusamus distinctio sint alias + dignissimos labore! Lorem ipsum dolor sit amet consectetur, + adipisicing elit. Impedit illo tenetur aut quas, dolor repudiandae + dignissimos cumque asperiores doloribus blanditiis molestiae omnis + quo. Consequatur accusamus distinctio sint alias dignissimos labore! + Lorem ipsum dolor sit amet consectetur, adipisicing elit. Impedit + illo tenetur aut quas, dolor repudiandae dignissimos cumque + asperiores doloribus blanditiis molestiae omnis quo. Consequatur + accusamus distinctio sint alias dignissimos labore! Lorem ipsum + dolor sit amet consectetur, adipisicing elit. Impedit illo tenetur + aut quas, dolor repudiandae dignissimos cumque asperiores doloribus + blanditiis molestiae omnis quo. Consequatur accusamus distinctio + sint alias dignissimos labore! +

    +
    diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx index 3f48fa862f..e7a1b72035 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -17,18 +17,17 @@ export const LayoutSection = ({ const layoutClasses = layoutType === "Grid" ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" - : "flex flex-col gap-4 w-full"; + : "flex flex-col w-full"; console.log(resultsCount); // const filteredResults = results.slice(0, resultsCount); return ( -
    -

    - {header?.props.label.toUpperCase()} -

    - -
    +
    +
    +

    {header?.props.label}

    +
    +
    {results.map((result, index) => ( ))} From 65c9b29326228fb3d08ee903ecbf9f1e926cacc3 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 12 Feb 2026 16:45:13 +0530 Subject: [PATCH 20/74] updated card forms --- .../pageSections/SearchSection/Cards.tsx | 99 +++++++++++-------- .../SearchSection/LayoutSections.tsx | 4 +- .../pageSections/SearchSection/Search.tsx | 9 +- .../SearchSection/SearchResultsSlot.tsx | 28 ++++-- 4 files changed, 88 insertions(+), 52 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx index e7d6bfa79d..c1beeb1c81 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx @@ -1,55 +1,76 @@ -import { CardProps, DefaultRawDataType } from "@yext/search-ui-react"; +import { CardProps } from "@yext/search-ui-react"; +import { MaybeRTF } from "@yext/visual-editor"; +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from "../../atoms/accordion.tsx"; import { CardTypeProp } from "./propsAndTypes.ts"; -interface CardsProps extends CardProps { +interface CardsProps extends CardProps { cardType?: CardTypeProp; } const Cards = ({ result, cardType = "Standard" }: CardsProps) => { // const name = // typeof result.rawData?.name === "string" ? result.rawData.name : ""; - return ( -
    -
    -

    - {(result.rawData?.name as any) ?? "name"} -

    -
    -

    - Lorem ipsum dolor sit amet consectetur, adipisicing elit. Impedit - illo tenetur aut quas, dolor repudiandae dignissimos cumque - asperiores doloribus blanditiis molestiae omnis quo. Consequatur - accusamus distinctio sint alias dignissimos labore! Lorem ipsum - dolor sit amet consectetur, adipisicing elit. Impedit illo tenetur - aut quas, dolor repudiandae dignissimos cumque asperiores doloribus - blanditiis molestiae omnis quo. Consequatur accusamus distinctio - sint alias dignissimos labore! Lorem ipsum dolor sit amet - consectetur, adipisicing elit. Impedit illo tenetur aut quas, dolor - repudiandae dignissimos cumque asperiores doloribus blanditiis - molestiae omnis quo. Consequatur accusamus distinctio sint alias - dignissimos labore! Lorem ipsum dolor sit amet consectetur, - adipisicing elit. Impedit illo tenetur aut quas, dolor repudiandae - dignissimos cumque asperiores doloribus blanditiis molestiae omnis - quo. Consequatur accusamus distinctio sint alias dignissimos labore! - Lorem ipsum dolor sit amet consectetur, adipisicing elit. Impedit - illo tenetur aut quas, dolor repudiandae dignissimos cumque - asperiores doloribus blanditiis molestiae omnis quo. Consequatur - accusamus distinctio sint alias dignissimos labore! Lorem ipsum - dolor sit amet consectetur, adipisicing elit. Impedit illo tenetur - aut quas, dolor repudiandae dignissimos cumque asperiores doloribus - blanditiis molestiae omnis quo. Consequatur accusamus distinctio - sint alias dignissimos labore! -

    -
    - - {cardType} - +
    + {cardType === "Standard" ? ( +
    +

    + {(result.rawData?.name as any) ?? "name"} +

    +
    -
    + ) : ( + + + +

    + {(result.rawData?.name as any) ?? "name"} +

    +
    + + + +
    +
    + )}
    ); }; export default Cards; + +// const isJsonRT = (data: any) => { +// ; +// }; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx index e7a1b72035..6dbf266596 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -14,10 +14,12 @@ export const LayoutSection = ({ resultsCount = 4, }: LayoutSectionProps) => { if (!CardComponent) return null; + const layoutClasses = layoutType === "Grid" ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" : "flex flex-col w-full"; + console.log(resultsCount); // const filteredResults = results.slice(0, resultsCount); @@ -25,7 +27,7 @@ export const LayoutSection = ({ return (
    -

    {header?.props.label}

    +

    {header?.props.label}

    {results.map((result, index) => ( diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index da8ddb4112..884092eef1 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -8,13 +8,14 @@ import { } from "@yext/search-headless-react"; import { SearchI18nextProvider } from "@yext/search-ui-react"; import React from "react"; -import { useDocument } from "../../../hooks/useDocument.tsx"; -import { msg } from "../../../utils/index.ts"; -import { PageSection } from "../../atoms/pageSection.tsx"; import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; import { SearchResultsSlotProps } from "./SearchResultsSlot.tsx"; +//@ts-ignore import "./search.css"; import { defaultSearchResultsProps } from "./propsAndTypes.ts"; +import { useDocument } from "../../../hooks/useDocument.tsx"; +import { PageSection } from "../../atoms/pageSection.tsx"; +import { msg } from "../../../utils/index.ts"; export interface SearchComponentProps { /** @internal */ @@ -37,7 +38,7 @@ const EXPERIENCE_VERSION = "PRODUCTION"; export const searchConfig: SearchConfig = { apiKey: "fb73f1bf6a262bc3255bcb938088204f", - experienceKey: "ukg-fins", + experienceKey: "ukg-fins-rk-test-dont-touch", locale: "en", experienceVersion: EXPERIENCE_VERSION, cloudRegion: CloudRegion.US, diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 0f3c2cd3c0..f7f8ae1a54 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -1,14 +1,9 @@ import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; import { useSearchActions, useSearchState } from "@yext/search-headless-react"; -import { - StandardCard, - UniversalResults, - VerticalResults, -} from "@yext/search-ui-react"; +import { UniversalResults, VerticalResults } from "@yext/search-ui-react"; import React, { useState } from "react"; import { FaEllipsisV } from "react-icons/fa"; -import { YextField } from "../../../editor/YextField.tsx"; -import { msg } from "../../../utils/index.ts"; +import Cards from "./Cards.tsx"; import { defaultSearchResultsProps, VerticalConfigProps, @@ -18,6 +13,8 @@ import { buildVerticalConfigMap, isValidVerticalConfig, } from "./utils.tsx"; +import { YextField } from "../../../editor/YextField.tsx"; +import { msg } from "../../../utils/index.ts"; export interface SearchResultsSlotProps { data: { verticals: VerticalConfigProps[] }; @@ -137,6 +134,7 @@ const SearchResultsSlotInternal: PuckComponent = ( searchActions.executeVerticalQuery(); } else { searchActions.setUniversal(); + // searchActions.setQuery("faq"); searchActions.setUniversalLimit(universalLimit); searchActions.executeUniversalQuery(); } @@ -168,7 +166,21 @@ const SearchResultsSlotInternal: PuckComponent = ( {isLoading &&
    Loading......
    } {!isLoading && (verticalKey ? ( - + ( + item.verticalKey === verticalKey) + ?.cardType + } + /> + )} + // CardComponent={ + // verticals.find((item) => item.verticalKey === verticalKey) + // ?.cardType + // } + /> ) : ( Date: Fri, 13 Feb 2026 18:47:01 +0530 Subject: [PATCH 21/74] added props to searchbar --- .../pageSections/SearchSection/Search.tsx | 1 + .../SearchSection/SearchBarSlot.tsx | 49 ++++++++++++++----- .../SearchSection/SearchResultsSlot.tsx | 2 +- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index 884092eef1..6486f6ff15 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -95,6 +95,7 @@ export const SearchComponent: ComponentConfig<{ props: { styles: { showIcon: false, + voiceSearch: false, }, } satisfies SearchBarSlotProps, }, diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx index 4962ce4dc4..de2d8d95a3 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -1,18 +1,21 @@ import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; +import { SearchBar } from "@yext/search-ui-react"; +import { FaMicrophone } from "react-icons/fa"; export interface SearchBarSlotProps { - styles: { showIcon: boolean }; + styles: { showIcon: boolean; voiceSearch: boolean }; } const defaultSearchBarProps: SearchBarSlotProps = { styles: { showIcon: false, + voiceSearch: false, }, }; const searchBarSlotFields: Fields = { - styles: YextField(msg("fields.styles", "Styles"), { + styles: { type: "object", objectFields: { showIcon: YextField(msg("fields.showIcon", "Show Icon"), { @@ -22,20 +25,40 @@ const searchBarSlotFields: Fields = { { label: msg("fields.options.hide", "Hide"), value: false }, ], }), + voiceSearch: YextField(msg("fields.voiceSearch", "Voice Search"), { + type: "radio", + options: [ + { label: msg("fields.options.show", "Show"), value: true }, + { label: msg("fields.options.hide", "Hide"), value: false }, + ], + }), }, - }), + }, }; -const SearchBarSlotInternal: PuckComponent = (props) => { - const { puck } = props; - if (puck.isEditing) { - return ( -
    - Search Bar -
    - ); - } - return
    Search Slot
    ; +const SearchBarSlotInternal: PuckComponent = ({ + styles: { showIcon = false, voiceSearch = false }, +}: SearchBarSlotProps) => { + console.log(showIcon); + + return ( +
    + div]:border [&>div]:border-[#137350] [&>div]:rounded-md !mb-0 relative", + searchButtonContainer: voiceSearch ? "ml-14 my-auto" : "", + searchButton: "h-8 w-8 ", + inputElement: + "text-lg h-14 outline-none focus:outline-none focus:ring-0 focus:border-none px-5 py-2.5", + }} + /> + {voiceSearch && ( + + )} +
    + ); }; export const SearchBarSlot: ComponentConfig<{ props: SearchBarSlotProps }> = { diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index f7f8ae1a54..809fb29954 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -142,7 +142,7 @@ const SearchResultsSlotInternal: PuckComponent = ( }, [verticals, searchTerm, universalLimit, searchActions, verticalKey]); return ( -
    +
      {verticals.map((item) => ( From 6ea2ed70f663644e4b197cf80bb410858d73162d Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Sat, 14 Feb 2026 01:12:53 +0530 Subject: [PATCH 22/74] searchbar updated --- .../pageSections/SearchSection/Cards.tsx | 6 +- .../pageSections/SearchSection/Search.tsx | 2 + .../SearchSection/SearchBarSlot.tsx | 105 ++++++++++++++++-- .../searchVisualAutoComplete.tsx | 89 +++++++++++++++ .../SearchSection/useTypeEffect.ts | 89 +++++++++++++++ .../pageSections/SearchSection/utils.tsx | 52 ++++++++- 6 files changed, 326 insertions(+), 17 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/searchVisualAutoComplete.tsx create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx index c1beeb1c81..010b2bb79b 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx @@ -50,11 +50,7 @@ const Cards = ({ result, cardType = "Standard" }: CardsProps) => {
      - +
      {cardType} diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index 6486f6ff15..ae120848ba 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -96,6 +96,8 @@ export const SearchComponent: ComponentConfig<{ styles: { showIcon: false, voiceSearch: false, + isTypingEffect: false, + enableVisualAutoComplete: false, }, } satisfies SearchBarSlotProps, }, diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx index de2d8d95a3..6520f28325 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -1,16 +1,34 @@ -import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; -import { YextField } from "../../../editor/YextField.tsx"; -import { msg } from "../../../utils/index.ts"; +import { + ComponentConfig, + Fields, + PuckComponent, + setDeep, +} from "@puckeditor/core"; import { SearchBar } from "@yext/search-ui-react"; import { FaMicrophone } from "react-icons/fa"; +import { resolveDataFromParent } from "../../../editor/ParentData.tsx"; +import { YextField } from "../../../editor/YextField.tsx"; +import { msg } from "../../../utils/index.ts"; +import { useTypingEffect } from "./useTypeEffect.ts"; +import { createVisualAutocompleteConfig } from "./utils.tsx"; export interface SearchBarSlotProps { - styles: { showIcon: boolean; voiceSearch: boolean }; + styles: { + showIcon: boolean; + voiceSearch: boolean; + isTypingEffect: boolean; + enableVisualAutoComplete: boolean; + visualAutoCompleteVerticalKey?: string; + limit?: number; + }; } const defaultSearchBarProps: SearchBarSlotProps = { styles: { showIcon: false, voiceSearch: false, + isTypingEffect: false, + enableVisualAutoComplete: false, + limit: 3, }, }; @@ -32,24 +50,76 @@ const searchBarSlotFields: Fields = { { label: msg("fields.options.hide", "Hide"), value: false }, ], }), + isTypingEffect: YextField(msg("fields.isTypingEffect", "Type Effect"), { + type: "radio", + options: [ + { label: msg("fields.options.show", "Show"), value: true }, + { label: msg("fields.options.hide", "Hide"), value: false }, + ], + }), + enableVisualAutoComplete: YextField( + msg("fields.enableVisualAutoComplete", "Enable Visual Autocomplete"), + { + type: "radio", + options: [ + { label: msg("fields.options.show", "Show"), value: true }, + { label: msg("fields.options.hide", "Hide"), value: false }, + ], + } + ), + visualAutoCompleteVerticalKey: YextField( + msg( + "fields.visualAutoCompleteVerticalKey", + "Visual Autocomplete Vertical Key" + ), + { + type: "text", + } + ), + limit: YextField(msg("fields.limit", "Limit"), { + type: "number", + min: 0, + max: 5, + }), }, }, }; const SearchBarSlotInternal: PuckComponent = ({ - styles: { showIcon = false, voiceSearch = false }, + styles: { + showIcon = false, + voiceSearch = false, + isTypingEffect = false, + enableVisualAutoComplete = false, + visualAutoCompleteVerticalKey = "products", + limit = 3, + }, }: SearchBarSlotProps) => { - console.log(showIcon); + const { placeholder } = useTypingEffect({ + env: "PRODUCTION", + }); + + const visualAutocompleteConfig = createVisualAutocompleteConfig( + enableVisualAutoComplete, + visualAutoCompleteVerticalKey, + limit + ); return (
      div]:border [&>div]:border-[#137350] [&>div]:rounded-md !mb-0 relative", - searchButtonContainer: voiceSearch ? "ml-14 my-auto" : "", - searchButton: "h-8 w-8 ", + "w-full h-14 rounded-md [&>div]:border [&>div]:rounded-md !mb-0 relative" + + +(isTypingEffect ? "isTypingEffect" : ""), + searchButtonContainer: voiceSearch + ? "ml-14 my-auto" + : showIcon + ? "" + : "none", + searchButton: showIcon ? "h-8 w-8" : "", inputElement: "text-lg h-14 outline-none focus:outline-none focus:ring-0 focus:border-none px-5 py-2.5", }} @@ -65,5 +135,20 @@ export const SearchBarSlot: ComponentConfig<{ props: SearchBarSlotProps }> = { label: msg("components.searchBarSlot", "SearchBar Slot"), fields: searchBarSlotFields, defaultProps: defaultSearchBarProps, + resolveFields: (data) => { + const updatedFields = resolveDataFromParent(searchBarSlotFields, data); + const isVisualAutoEnabled = data.props.styles.enableVisualAutoComplete; + setDeep( + updatedFields, + "styles.objectFields.visualAutoCompleteVerticalKey.visible", + isVisualAutoEnabled + ); + setDeep( + updatedFields, + "styles.objectFields.limit.visible", + isVisualAutoEnabled + ); + return updatedFields; + }, render: (props) => , }; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/searchVisualAutoComplete.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/searchVisualAutoComplete.tsx new file mode 100644 index 0000000000..ac19383eac --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/searchVisualAutoComplete.tsx @@ -0,0 +1,89 @@ +import { + provideHeadless, + VerticalResults as VerticalResultsData, +} from "@yext/search-headless-react"; +import { DropdownItem, FocusedItemData } from "@yext/search-ui-react"; +import { searchConfig } from "./Search.tsx"; + +export const entityPreviewSearcher = provideHeadless({ + ...searchConfig, + headlessId: "entity-preview-searcher", +}); + +export const renderImagePreview = ( + result: any, + imageField: any +): JSX.Element => { + const imageData = imageField?.image || imageField; + const numThumbnails = imageData?.thumbnails?.length || 0; + const imageThumbnail = + numThumbnails > 0 ? imageData.thumbnails[numThumbnails - 1] : imageData; + + return ( +
      + {imageThumbnail && ( + {`${result.name} + )} +
      {result.name}
      +
      + ); +}; + +export const renderEntityPreviews = ( + verticalKey: string, + autocompleteLoading: boolean, + verticalKeyToResults: Record, + dropdownItemProps: { + onClick: ( + value: string, + _index: number, + itemData?: FocusedItemData + ) => void; + ariaLabel: (value: string) => string; + } +): JSX.Element | null => { + if (!verticalKey || !(verticalKey in verticalKeyToResults)) { + return null; + } + + const results = verticalKeyToResults[verticalKey]?.results?.map( + (result) => result.rawData + ) as any[] | undefined; + + if (!results || results.length === 0) { + return null; + } + + return ( +
      +
      + {results.map((result) => ( + + history.pushState(null, "", `${result.landingPageUrl}`) + } + ariaLabel={dropdownItemProps.ariaLabel} + > + {renderImagePreview( + result, + result.primaryPhoto || + result.headshot || + result.photoGallery?.[0] || + null + )} + + ))} +
      +
      + ); +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts new file mode 100644 index 0000000000..928c08f314 --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts @@ -0,0 +1,89 @@ +import { useState, useEffect, useRef } from "react"; + +interface TypeEffectProps { + env: "PRODUCTION" | "SANDBOX"; +} + +export const useTypingEffect = ({ env }: TypeEffectProps) => { + const [queryPrompts, setQueryPrompts] = useState([]); + const [placeholder, setPlaceholder] = useState(""); + + const indexRef = useRef(0); + const charIndexRef = useRef(0); + const isDeletingRef = useRef(false); + const timerRef = useRef(null); + + // Fetch prompts + const fetchPrompts = async () => { + const base = env === "PRODUCTION" ? "cdn" : "sbx-cdn"; + + const url = `https://${base}.yextapis.com/v2/accounts/me/search/autocomplete?v=20190101&api_key=fb73f1bf6a262bc3255bcb938088204f&sessionTrackingEnabled=false&experienceKey=ukg-fins-rk-test-dont-touch&input=`; + + try { + const res = await fetch(url); + const data = await res.json(); + + const prompts = data.response.results.map((item: any) => item.value); + + setQueryPrompts(prompts); + } catch (err) { + console.error("TypingEffect fetch failed:", err); + } + }; + + // Typing loop + const runTyping = () => { + const currentWord = queryPrompts[indexRef.current]; + + if (!currentWord) return; + + if (!isDeletingRef.current) { + // typing forward + charIndexRef.current++; + setPlaceholder(currentWord.slice(0, charIndexRef.current)); + + if (charIndexRef.current === currentWord.length) { + isDeletingRef.current = true; + timerRef.current = window.setTimeout(runTyping, 1500); + return; + } + } else { + // deleting backward + charIndexRef.current--; + setPlaceholder(currentWord.slice(0, charIndexRef.current)); + + if (charIndexRef.current === 0) { + isDeletingRef.current = false; + indexRef.current = (indexRef.current + 1) % queryPrompts.length; + } + } + + timerRef.current = window.setTimeout( + runTyping, + isDeletingRef.current ? 50 : 100 + ); + }; + + // Fetch once + useEffect(() => { + fetchPrompts(); + }, [env]); + + // Start typing when prompts loaded + useEffect(() => { + if (queryPrompts.length > 0) { + runTyping(); + } + + return () => { + if (timerRef.current) { + clearTimeout(timerRef.current); + } + }; + }, [queryPrompts]); + + return { + placeholder, + queryPrompts, + }; +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx index 3811d2eb45..ae90474996 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx @@ -1,8 +1,16 @@ -import { UniversalLimit } from "@yext/search-headless-react"; -import { DefaultRawDataType, VerticalConfigMap } from "@yext/search-ui-react"; +import { UniversalLimit, VerticalResults } from "@yext/search-headless-react"; +import { + DefaultRawDataType, + FocusedItemData, + VerticalConfigMap, +} from "@yext/search-ui-react"; import Cards from "./Cards.tsx"; import { LayoutSection } from "./LayoutSections.tsx"; import { VerticalConfigProps } from "./propsAndTypes.ts"; +import { + entityPreviewSearcher, + renderEntityPreviews, +} from "./searchVisualAutoComplete.tsx"; export const buildVerticalConfigMap = ( verticals: VerticalConfigProps[] @@ -68,3 +76,43 @@ export const isValidVerticalConfig = (verticals: any[]): boolean => { verticals.every(isValidVertical) ); }; + +export const createPreviews = (verticalKey: string) => { + return ( + autocompleteLoading: boolean, + verticalKeyToResults: Record, + dropdownItemProps: { + onClick: ( + value: string, + _index: number, + itemData?: FocusedItemData + ) => void; + ariaLabel: (value: string) => string; + } + ) => { + return renderEntityPreviews( + verticalKey, + autocompleteLoading, + verticalKeyToResults, + dropdownItemProps + ); + }; +}; + +export const createVisualAutocompleteConfig = ( + enable: boolean, + verticalKey: string, + limit: number +) => { + if (!enable || !verticalKey || limit < 1) { + return undefined; + } + + return { + entityPreviewSearcher, + includedVerticals: [verticalKey], + renderEntityPreviews: createPreviews(verticalKey), + universalLimit: { [verticalKey]: limit }, + entityPreviewsDebouncingTime: 300, + }; +}; From 00bdb1099fa41cdc88ae4630d4bfa8b57f01e262 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Sat, 14 Feb 2026 02:16:51 +0530 Subject: [PATCH 23/74] nit changes --- .../pageSections/SearchSection/Cards.tsx | 20 +++++++++---------- .../SearchSection/SearchResultsSlot.tsx | 4 ---- .../pageSections/SearchSection/utils.tsx | 2 +- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx index 010b2bb79b..a3cc160ea9 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx @@ -13,23 +13,21 @@ interface CardsProps extends CardProps { } const Cards = ({ result, cardType = "Standard" }: CardsProps) => { - // const name = - // typeof result.rawData?.name === "string" ? result.rawData.name : ""; + const name = result.rawData.question || result.rawData.name; + const description = + result.rawData.answerV2 || + result.rawData.richTextDescriptionV2 || + result.rawData.bodyV2 || + result.rawData.description; return (
      {cardType === "Standard" ? (
      -

      - {(result.rawData?.name as any) ?? "name"} -

      +

      {name ?? "name"}

      - +
      {cardType} @@ -50,7 +48,7 @@ const Cards = ({ result, cardType = "Standard" }: CardsProps) => {
      - +
      {cardType} diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 809fb29954..74013b07d6 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -176,10 +176,6 @@ const SearchResultsSlotInternal: PuckComponent = ( } /> )} - // CardComponent={ - // verticals.find((item) => item.verticalKey === verticalKey) - // ?.cardType - // } /> ) : ( { if (!v.verticalKey) return acc; - const layoutType = v.layout ?? "Grid"; + const layoutType = v.layout ?? "Flex"; const cardType = v.cardType ?? "Standard"; acc[v.verticalKey] = { label: v.label, From f4d5b3194a0e6da014dc86a8b8ed29dd77e3ae2b Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 16 Feb 2026 14:14:10 +0530 Subject: [PATCH 24/74] updated vertical styles and cards --- .../components/pageSections/SearchSection/Cards.tsx | 12 ++++-------- .../pageSections/SearchSection/SearchResultsSlot.tsx | 4 ++++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx index a3cc160ea9..0ad6759fc8 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx @@ -1,12 +1,12 @@ import { CardProps } from "@yext/search-ui-react"; import { MaybeRTF } from "@yext/visual-editor"; +import { CardTypeProp } from "./propsAndTypes.ts"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from "../../atoms/accordion.tsx"; -import { CardTypeProp } from "./propsAndTypes.ts"; interface CardsProps extends CardProps { cardType?: CardTypeProp; @@ -24,11 +24,11 @@ const Cards = ({ result, cardType = "Standard" }: CardsProps) => { className={`flex items-center w-full ${cardType === "Standard" && `px-5 py-2.5`}`} > {cardType === "Standard" ? ( -
      +

      {name ?? "name"}

      -
      +
      {cardType} @@ -46,7 +46,7 @@ const Cards = ({ result, cardType = "Standard" }: CardsProps) => { {(result.rawData?.name as any) ?? "name"} - +
      @@ -64,7 +64,3 @@ const Cards = ({ result, cardType = "Standard" }: CardsProps) => { }; export default Cards; - -// const isJsonRT = (data: any) => { -// ; -// }; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 74013b07d6..a8d4cb6cc0 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -167,6 +167,10 @@ const SearchResultsSlotInternal: PuckComponent = ( {!isLoading && (verticalKey ? ( ( Date: Mon, 16 Feb 2026 14:27:50 +0530 Subject: [PATCH 25/74] Added GDA component --- .../pageSections/SearchSection/SourceCard.tsx | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/SourceCard.tsx diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SourceCard.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SourceCard.tsx new file mode 100644 index 0000000000..20a6ef1d9e --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SourceCard.tsx @@ -0,0 +1,30 @@ +import { CitationProps } from "@yext/search-ui-react"; + +interface RawData { + landingPageUrl?: string; + c_primaryCTA?: { + link?: string; + }; +} + +const SourceCard = (props: CitationProps) => { + let rawData: RawData = props.searchResult.rawData; + let link = rawData?.landingPageUrl || rawData?.c_primaryCTA?.link || ""; + const name = props.searchResult?.name; + + return ( +
      + {link ? ( + + {name} + + ) : ( +

      + {name} (no link available) +

      + )} +
      + ); +}; + +export default SourceCard; From f9505ab23fefe57149362308988ce1a53f8906d7 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 16 Feb 2026 14:34:17 +0530 Subject: [PATCH 26/74] added GDA prop --- .../pageSections/SearchSection/Search.tsx | 2 +- .../SearchSection/SearchResultsSlot.tsx | 19 +++++++++++-------- .../SearchSection/propsAndTypes.ts | 2 +- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index ae120848ba..b60bb9d188 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -116,7 +116,7 @@ export const SearchComponent: ComponentConfig<{ ], }, styles: { - showIcon: false, + enableGenerativeDirectAnswer: false, }, } satisfies SearchResultsSlotProps, }, diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index a8d4cb6cc0..6e07a8ad20 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -18,7 +18,7 @@ import { msg } from "../../../utils/index.ts"; export interface SearchResultsSlotProps { data: { verticals: VerticalConfigProps[] }; - styles: { showIcon: boolean }; + styles: { enableGenerativeDirectAnswer: boolean }; } const SearchResultsSlotFields: Fields = { @@ -66,13 +66,16 @@ const SearchResultsSlotFields: Fields = { styles: YextField(msg("fields.styles", "Styles"), { type: "object", objectFields: { - showIcon: YextField(msg("fields.showIcon", "Show Icon"), { - type: "radio", - options: [ - { label: msg("fields.options.show", "Show"), value: true }, - { label: msg("fields.options.hide", "Hide"), value: false }, - ], - }), + enableGenerativeDirectAnswer: YextField( + msg("fields.enableGenerativeDirectAnswer", "Generative Direct Answer"), + { + type: "radio", + options: [ + { label: msg("fields.options.show", "Show"), value: true }, + { label: msg("fields.options.hide", "Hide"), value: false }, + ], + } + ), }, }), }; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts b/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts index 42ac7e1153..6f5a17ec6a 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts @@ -27,6 +27,6 @@ export const defaultSearchResultsProps: SearchResultsSlotProps = { ], }, styles: { - showIcon: false, + enableGenerativeDirectAnswer: false, }, }; From 1e3607caa89d3d2b207ce720d6c6fffbddd6bc14 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 16 Feb 2026 14:51:38 +0530 Subject: [PATCH 27/74] fixed infinite calling and GDA --- .../SearchSection/SearchResultsSlot.tsx | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 6e07a8ad20..92efeea30c 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -1,6 +1,10 @@ import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; import { useSearchActions, useSearchState } from "@yext/search-headless-react"; -import { UniversalResults, VerticalResults } from "@yext/search-ui-react"; +import { + GenerativeDirectAnswer, + UniversalResults, + VerticalResults, +} from "@yext/search-ui-react"; import React, { useState } from "react"; import { FaEllipsisV } from "react-icons/fa"; import Cards from "./Cards.tsx"; @@ -15,6 +19,7 @@ import { } from "./utils.tsx"; import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; +import SourceCard from "./SourceCard.tsx"; export interface SearchResultsSlotProps { data: { verticals: VerticalConfigProps[] }; @@ -110,9 +115,10 @@ const SearchResultsSlotInternal: PuckComponent = ( const searchActions = useSearchActions(); const isLoading = useSearchState((s) => s.searchStatus.isLoading); - const searchTerm = useSearchState((s) => s.query.input) ?? " "; + const searchTerm = useSearchState((s) => s.query.input); const [verticalKey, setVerticalKey] = useState(); - + const gdaLoading = useSearchState((s) => s.generativeDirectAnswer.isLoading); + const gdaResponse = useSearchState((s) => s.generativeDirectAnswer.response); const verticalConfigMap = React.useMemo( () => buildVerticalConfigMap(verticals), [verticals] @@ -185,13 +191,27 @@ const SearchResultsSlotInternal: PuckComponent = ( )} /> ) : ( - + <> + {props.styles.enableGenerativeDirectAnswer && !!searchTerm && ( + <> + {gdaLoading &&
      Loading...
      } + + {gdaResponse && ( + + )} + + )} + + ))}
      ); From 3c24f33796861b26ebac9d0f64d4b871bfd673b7 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 16 Feb 2026 15:13:52 +0530 Subject: [PATCH 28/74] fixed GDA Styling --- .../SearchSection/SearchResultsSlot.tsx | 51 ++++++++++++++++--- .../pageSections/SearchSection/SourceCard.tsx | 6 +-- 2 files changed, 45 insertions(+), 12 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 92efeea30c..018992454f 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -118,7 +118,6 @@ const SearchResultsSlotInternal: PuckComponent = ( const searchTerm = useSearchState((s) => s.query.input); const [verticalKey, setVerticalKey] = useState(); const gdaLoading = useSearchState((s) => s.generativeDirectAnswer.isLoading); - const gdaResponse = useSearchState((s) => s.generativeDirectAnswer.response); const verticalConfigMap = React.useMemo( () => buildVerticalConfigMap(verticals), [verticals] @@ -194,14 +193,50 @@ const SearchResultsSlotInternal: PuckComponent = ( <> {props.styles.enableGenerativeDirectAnswer && !!searchTerm && ( <> - {gdaLoading &&
      Loading...
      } - - {gdaResponse && ( - + {gdaLoading && ( +
      +
      +
      + +
      +
      + + +
      + + + +
      +
      +
      +
      )} + )} { const name = props.searchResult?.name; return ( -
      +
      {link ? ( - - {name} - + {name} ) : (

      {name} (no link available) From ab45f2e341858b49df42949c7257e0a71913991a Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 16 Feb 2026 15:29:49 +0530 Subject: [PATCH 29/74] fixed search term input --- .../pageSections/SearchSection/SearchResultsSlot.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 018992454f..17bdef011a 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -133,6 +133,9 @@ const SearchResultsSlotInternal: PuckComponent = ( console.warn("Skipping search: invalid vertical config", verticals); return; } else { + if (searchTerm) { + searchActions.setQuery(searchTerm); + } if (verticalKey) { const verticalLimit = verticals.find( (item) => item.verticalKey === verticalKey @@ -142,7 +145,6 @@ const SearchResultsSlotInternal: PuckComponent = ( searchActions.executeVerticalQuery(); } else { searchActions.setUniversal(); - // searchActions.setQuery("faq"); searchActions.setUniversalLimit(universalLimit); searchActions.executeUniversalQuery(); } From 5cea8a2dca26d2e268869806f50d8b5d1bf6a93f Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 16 Feb 2026 22:39:44 +0530 Subject: [PATCH 30/74] updated init key --- .../components/pageSections/SearchSection/propsAndTypes.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts b/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts index 6f5a17ec6a..2586f423dd 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts @@ -17,11 +17,11 @@ export const defaultSearchResultsProps: SearchResultsSlotProps = { data: { verticals: [ { - label: "FAQs", - verticalKey: "faq", + label: "Locations", + verticalKey: "locations", layout: "Flex", cardType: "Standard", - universalLimit: 3, + universalLimit: 5, verticalLimit: 5, }, ], From af0ae5bbf6fd07da4d203617677dc950cda23664 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 17 Feb 2026 01:56:55 +0530 Subject: [PATCH 31/74] working map with vertical map and map pins --- .../SearchSection/LayoutSections.tsx | 97 ++++++++++++++++++- .../SearchSection/MapComponent.tsx | 66 +++++++++++++ .../SearchSection/SearchResultsSlot.tsx | 51 +++++++--- 3 files changed, 195 insertions(+), 19 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx index 6dbf266596..42bb7cc0e3 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -1,4 +1,16 @@ -import { SectionProps, DefaultRawDataType } from "@yext/search-ui-react"; +import { Result, useSearchState } from "@yext/search-headless-react"; +import { + DefaultRawDataType, + MapboxMap, + OnDragHandler, + PinComponent, + SectionProps, +} from "@yext/search-ui-react"; +import { MapPinIcon } from "lucide-react"; +import { MarkerOptions } from "mapbox-gl"; +import React from "react"; +import { useDocument } from "../../../hooks/useDocument.tsx"; +import { StreamDocument } from "../../../utils/index.ts"; import { VerticalLayout } from "./propsAndTypes.ts"; interface LayoutSectionProps extends SectionProps { @@ -14,14 +26,13 @@ export const LayoutSection = ({ resultsCount = 4, }: LayoutSectionProps) => { if (!CardComponent) return null; + console.log(resultsCount); const layoutClasses = layoutType === "Grid" ? "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" : "flex flex-col w-full"; - console.log(resultsCount); - // const filteredResults = results.slice(0, resultsCount); return ( @@ -29,6 +40,11 @@ export const LayoutSection = ({

      {header?.props.label}

      + {layoutType === "Map" && results.length > 0 && ( +
      + +
      + )}
      {results.map((result, index) => ( @@ -37,3 +53,78 @@ export const LayoutSection = ({
      ); }; + +interface MapProps { + mapStyle?: string; + centerCoords?: [number, number]; + onDragHandler?: OnDragHandler; + scrollToResult?: (result: Result | undefined) => void; + markerOptionsOverride?: (selected: boolean) => MarkerOptions; +} + +const Map: React.FC = ({ mapStyle, centerCoords }) => { + const entityDocument: StreamDocument = useDocument(); + + // THIS is the real results source MapboxMap uses + const results = useSearchState((s) => s.vertical.results) || []; + + const firstCoord: any = + results?.[0]?.rawData?.yextDisplayCoordinate ?? + results?.[0]?.rawData?.coordinate; + + const center: [number, number] = + centerCoords ?? + (firstCoord + ? [firstCoord.longitude, firstCoord.latitude] + : [-74.005371, 40.741611]); + + const mapboxOptions = { + style: mapStyle || "mapbox://styles/mapbox/streets-v12", + center, + zoom: 10, + }; + + const iframe = + typeof document === "undefined" + ? undefined + : (document.getElementById("preview-frame") as HTMLIFrameElement); + + const mapboxApiKey = entityDocument._env?.YEXT_MAPBOX_API_KEY; + + return ( + { + const coord = + result.rawData?.yextDisplayCoordinate ?? result.rawData?.coordinate; + + if (!coord) return undefined; + + return { + latitude: coord.latitude, + longitude: coord.longitude, + }; + }} + /> + ); +}; + +const LocatorMapPin: PinComponent = ({ selected }) => { + const size = selected + ? { height: 60, width: 40, color: "#0f766e" } + : { height: 40, width: 26, color: "#134e4a" }; + + return ( + + ); +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx new file mode 100644 index 0000000000..e3f42cddb4 --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx @@ -0,0 +1,66 @@ +import { useSearchState } from "@yext/search-headless-react"; +import { + PinComponent, + DefaultRawDataType, + MapboxMap, +} from "@yext/search-ui-react"; +import { MapPin } from "lucide-react"; +import { useDocument } from "../../../hooks/useDocument.tsx"; +import { StreamDocument } from "../../../utils/index.ts"; + +const LocatorPin: PinComponent = ({ selected }) => { + const size = selected ? 40 : 28; + const color = selected ? "#0f766e" : "#134e4a"; + + return ; +}; + +export const MapComponent = () => { + const results = useSearchState((s) => s.vertical.results); + const entityDocument: StreamDocument = useDocument(); + + const iframe = + typeof document === "undefined" + ? undefined + : (document.getElementById("preview-frame") as HTMLIFrameElement | null); + + if (!results || results.length === 0) { + return ( +
      + Loading map... +
      + ); + } + const mapboxApiKey = entityDocument._env?.YEXT_MAPBOX_API_KEY; + + const first: any = + results[0].rawData?.yextDisplayCoordinate ?? results[0].rawData?.coordinate; + + if (!first) return null; + + return ( + { + const coord = + result.rawData?.yextDisplayCoordinate ?? result.rawData?.coordinate; + + if (!coord) return undefined; + + return { + latitude: coord.latitude, + longitude: coord.longitude, + }; + }} + /> + ); +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 17bdef011a..886a52ca73 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -2,24 +2,26 @@ import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; import { useSearchActions, useSearchState } from "@yext/search-headless-react"; import { GenerativeDirectAnswer, + StandardCard, UniversalResults, VerticalResults, } from "@yext/search-ui-react"; import React, { useState } from "react"; import { FaEllipsisV } from "react-icons/fa"; +import { YextField } from "../../../editor/YextField.tsx"; +import { msg } from "../../../utils/index.ts"; import Cards from "./Cards.tsx"; import { defaultSearchResultsProps, VerticalConfigProps, } from "./propsAndTypes.ts"; +import SourceCard from "./SourceCard.tsx"; import { buildUniversalLimit, buildVerticalConfigMap, isValidVerticalConfig, } from "./utils.tsx"; -import { YextField } from "../../../editor/YextField.tsx"; -import { msg } from "../../../utils/index.ts"; -import SourceCard from "./SourceCard.tsx"; +import { MapComponent } from "./MapComponent.tsx"; export interface SearchResultsSlotProps { data: { verticals: VerticalConfigProps[] }; @@ -151,6 +153,11 @@ const SearchResultsSlotInternal: PuckComponent = ( } }, [verticals, searchTerm, universalLimit, searchActions, verticalKey]); + const currentVerticalConfig = React.useMemo(() => { + if (!verticalKey) return undefined; + return verticals.find((v) => v.verticalKey === verticalKey); + }, [verticals, verticalKey]); + return (
      @@ -176,21 +183,33 @@ const SearchResultsSlotInternal: PuckComponent = ( {isLoading &&
      Loading......
      } {!isLoading && (verticalKey ? ( - ( - item.verticalKey === verticalKey) - ?.cardType - } + <> + {currentVerticalConfig?.layout === "Map" ? ( + <> +
      + +
      + + + + ) : ( + ( + item.verticalKey === verticalKey) + ?.cardType + } + /> + )} /> )} - /> + ) : ( <> {props.styles.enableGenerativeDirectAnswer && !!searchTerm && ( From c9f54b62d451bcd556a7cfc613438d1579d991dc Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 17 Feb 2026 02:53:58 +0530 Subject: [PATCH 32/74] removed universal map --- .../SearchSection/LayoutSections.tsx | 93 +------------------ 1 file changed, 3 insertions(+), 90 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx index 42bb7cc0e3..940a6fe63f 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -1,16 +1,4 @@ -import { Result, useSearchState } from "@yext/search-headless-react"; -import { - DefaultRawDataType, - MapboxMap, - OnDragHandler, - PinComponent, - SectionProps, -} from "@yext/search-ui-react"; -import { MapPinIcon } from "lucide-react"; -import { MarkerOptions } from "mapbox-gl"; -import React from "react"; -import { useDocument } from "../../../hooks/useDocument.tsx"; -import { StreamDocument } from "../../../utils/index.ts"; +import { DefaultRawDataType, SectionProps } from "@yext/search-ui-react"; import { VerticalLayout } from "./propsAndTypes.ts"; interface LayoutSectionProps extends SectionProps { @@ -40,11 +28,11 @@ export const LayoutSection = ({

      {header?.props.label}

      - {layoutType === "Map" && results.length > 0 && ( + {/* {layoutType === "Map" && results.length > 0 && (
      - )} + )} */}
      {results.map((result, index) => ( @@ -53,78 +41,3 @@ export const LayoutSection = ({
      ); }; - -interface MapProps { - mapStyle?: string; - centerCoords?: [number, number]; - onDragHandler?: OnDragHandler; - scrollToResult?: (result: Result | undefined) => void; - markerOptionsOverride?: (selected: boolean) => MarkerOptions; -} - -const Map: React.FC = ({ mapStyle, centerCoords }) => { - const entityDocument: StreamDocument = useDocument(); - - // THIS is the real results source MapboxMap uses - const results = useSearchState((s) => s.vertical.results) || []; - - const firstCoord: any = - results?.[0]?.rawData?.yextDisplayCoordinate ?? - results?.[0]?.rawData?.coordinate; - - const center: [number, number] = - centerCoords ?? - (firstCoord - ? [firstCoord.longitude, firstCoord.latitude] - : [-74.005371, 40.741611]); - - const mapboxOptions = { - style: mapStyle || "mapbox://styles/mapbox/streets-v12", - center, - zoom: 10, - }; - - const iframe = - typeof document === "undefined" - ? undefined - : (document.getElementById("preview-frame") as HTMLIFrameElement); - - const mapboxApiKey = entityDocument._env?.YEXT_MAPBOX_API_KEY; - - return ( - { - const coord = - result.rawData?.yextDisplayCoordinate ?? result.rawData?.coordinate; - - if (!coord) return undefined; - - return { - latitude: coord.latitude, - longitude: coord.longitude, - }; - }} - /> - ); -}; - -const LocatorMapPin: PinComponent = ({ selected }) => { - const size = selected - ? { height: 60, width: 40, color: "#0f766e" } - : { height: 40, width: 26, color: "#134e4a" }; - - return ( - - ); -}; From bd2373d1f79fbac11716ddd443d382bb58f00b8e Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 17 Feb 2026 22:55:28 +0530 Subject: [PATCH 33/74] Fixed map in universal --- .../SearchSection/LayoutSections.tsx | 48 +++++++++++++++++-- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx index 940a6fe63f..cd11b235f6 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -1,4 +1,7 @@ +import { Coordinate, Map, MapboxMaps, Marker } from "@yext/pages-components"; import { DefaultRawDataType, SectionProps } from "@yext/search-ui-react"; +import { MapPin } from "lucide-react"; +import "mapbox-gl/dist/mapbox-gl.css"; import { VerticalLayout } from "./propsAndTypes.ts"; interface LayoutSectionProps extends SectionProps { @@ -23,16 +26,53 @@ export const LayoutSection = ({ // const filteredResults = results.slice(0, resultsCount); + const coordinates: Coordinate[] = results + .map((result) => result.rawData?.yextDisplayCoordinate) + .filter((coord): coord is Coordinate => Boolean(coord)); + + const coordinateResults = results.filter( + (r) => r.rawData?.yextDisplayCoordinate + ); + const firstCoord: any = + coordinateResults[0]?.rawData?.yextDisplayCoordinate ?? undefined; + return (

      {header?.props.label}

      - {/* {layoutType === "Map" && results.length > 0 && ( -
      - + {layoutType === "Map" && coordinateResults.length > 0 && firstCoord && ( +
      + + {results.map((result, index) => { + const coord: any = result.rawData?.yextDisplayCoordinate; + if (!coord) return null; + + return ( + + + + ); + })} +
      - )} */} + )} +
      {results.map((result, index) => ( From 87d71e2f5b58f1eedc25c86482a6177b1c6279b0 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 17 Feb 2026 23:17:22 +0530 Subject: [PATCH 34/74] reused pin --- .../pageSections/SearchSection/LayoutSections.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx index cd11b235f6..a7aae3cac1 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -51,21 +51,22 @@ export const LayoutSection = ({ iframeId="preview-frame" singleZoom={undefined} providerOptions={{ - maxZoom: 12, + center: [firstCoord.longitude, firstCoord.latitude], + zoom: 10, + style: "mapbox://styles/mapbox/streets-v12", }} className="w-full h-[300px]" > {results.map((result, index) => { const coord: any = result.rawData?.yextDisplayCoordinate; if (!coord) return null; - return ( - + ); })} @@ -81,3 +82,6 @@ export const LayoutSection = ({
      ); }; +const LocatorPin = () => { + return ; +}; From 3424039be477dbd9ecf7b7970987b94d673d4ad8 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 18 Feb 2026 00:11:40 +0530 Subject: [PATCH 35/74] updated search version --- packages/visual-editor/package.json | 2 +- .../SearchSection/SearchResultsSlot.tsx | 9 ++++++++- pnpm-lock.yaml | 16 +++++++++++++--- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/packages/visual-editor/package.json b/packages/visual-editor/package.json index fca19cb6b5..b1e1c93c12 100644 --- a/packages/visual-editor/package.json +++ b/packages/visual-editor/package.json @@ -160,7 +160,7 @@ "peerDependencies": { "@yext/pages-components": "^2.0.0", "@yext/search-headless-react": "^2.7.1", - "@yext/search-ui-react": "^2.0.2", + "@yext/search-ui-react": "^2.0.5", "mapbox-gl": "^2.9.2", "react": "^17.0.2 || ^18.2.0", "react-dom": "^17.0.2 || ^18.2.0" diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 886a52ca73..14122bbee3 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -35,6 +35,14 @@ const SearchResultsSlotFields: Fields = { verticals: { label: msg("fields.verticals", "Verticals"), type: "array", + defaultItemProps: { + label: "", + verticalKey: "", + layout: "Flex", + cardType: "Standard", + universalLimit: 5, + verticalLimit: 5, + }, arrayFields: { label: YextField(msg("fields.label", "Label"), { type: "text" }), verticalKey: YextField(msg("fields.verticalKey", "Vertical Key"), { @@ -189,7 +197,6 @@ const SearchResultsSlotInternal: PuckComponent = (
      - ) : ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4d8e8826a2..9d78e922bf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -143,8 +143,8 @@ importers: specifier: ^2.7.1 version: 2.7.1(encoding@0.1.13)(react@18.3.1) "@yext/search-ui-react": - specifier: ^2.0.2 - version: 2.0.2(@types/react@18.3.24)(@yext/search-headless-react@2.7.1(encoding@0.1.13)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.11)(typescript@5.9.2)))(typescript@5.9.2) + specifier: ^2.0.5 + version: 2.0.5(@types/react@18.3.24)(@yext/search-headless-react@2.7.1(encoding@0.1.13)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.11)(typescript@5.9.2)))(typescript@5.9.2) class-variance-authority: specifier: ^0.7.0 version: 0.7.1 @@ -5298,6 +5298,16 @@ packages: react: ^16.14 || ^17 || ^18 || ^19 react-dom: ^16.14 || ^17 || ^18 || ^19 + "@yext/search-ui-react@2.0.5": + resolution: + { + integrity: sha512-Bio5MserUCs9hp9a0lYK4dwrm1+lcY1SsY+7W9nUivLN4vVFlP0TCjOb6eyER65io7g0DkK94UTYhZTyXBGarQ==, + } + peerDependencies: + "@yext/search-headless-react": ^2.6.0 + react: ^16.14 || ^17 || ^18 || ^19 + react-dom: ^16.14 || ^17 || ^18 || ^19 + abbrev@3.0.1: resolution: { @@ -15982,7 +15992,7 @@ snapshots: - tailwindcss - typescript - "@yext/search-ui-react@2.0.2(@types/react@18.3.24)(@yext/search-headless-react@2.7.1(encoding@0.1.13)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.11)(typescript@5.9.2)))(typescript@5.9.2)": + "@yext/search-ui-react@2.0.5(@types/react@18.3.24)(@yext/search-headless-react@2.7.1(encoding@0.1.13)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.11)(typescript@5.9.2)))(typescript@5.9.2)": dependencies: "@restart/ui": 1.9.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@tailwindcss/forms": 0.5.10(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@20.19.11)(typescript@5.9.2))) From d4ff1c2bd2e5e62b03466f0472208ea3b61bd2ff Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 18 Feb 2026 01:01:47 +0530 Subject: [PATCH 36/74] removved dummy --- .../components/pageSections/SearchSection/_bu | 299 ------------------ 1 file changed, 299 deletions(-) delete mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/_bu diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/_bu b/packages/visual-editor/src/components/pageSections/SearchSection/_bu deleted file mode 100644 index e8d1bbf755..0000000000 --- a/packages/visual-editor/src/components/pageSections/SearchSection/_bu +++ /dev/null @@ -1,299 +0,0 @@ -import { ComponentConfig, Fields, PuckComponent, Slot } from "@puckeditor/core"; -import { - CloudRegion, - Environment, - provideHeadless, - SearchConfig, - SearchHeadlessProvider, -} from "@yext/search-headless-react"; -import { - DefaultRawDataType, - SearchI18nextProvider, - SectionProps, - StandardCard, -} from "@yext/search-ui-react"; -import React from "react"; -import { YextField } from "../../../editor/YextField.tsx"; -import { useDocument } from "../../../hooks/useDocument.tsx"; -import { msg } from "../../../utils/index.ts"; -import { PageSection } from "../../atoms/pageSection.tsx"; -import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; - -type VerticalLayout = "Grid" | "Flex" | "Map"; - -interface VerticalConfig { - label: string; - verticalKey: string; - layout: VerticalLayout; - universalLimit: number; - verticalLimit: number; -} - -export interface SearchComponentProps { - verticals: VerticalConfig[]; - /** @internal */ - slots: { - SearchBarSlot: Slot; - SearchResultsSlot: Slot; - }; -} - -const locatorFields: Fields = { - verticals: { - label: msg("fields.verticals", "Verticals"), - type: "array", - arrayFields: { - label: YextField(msg("fields.label", "Label"), { type: "text" }), - - verticalKey: YextField(msg("fields.verticalKey", "Vertical Key"), { - type: "text", - }), - - layout: YextField(msg("fields.layout", "Layout"), { - type: "radio", - options: [ - { label: "Grid", value: "Grid" }, - { label: "Flex", value: "Flex" }, - { label: "Map", value: "Map" }, - ], - }), - - universalLimit: YextField( - msg("fields.universalLimit", "Universal Limit"), - { type: "number" } - ), - - verticalLimit: YextField(msg("fields.verticalLimit", "Vertical Limit"), { - type: "number", - }), - }, - getItemSummary: (item) => item?.label || "Vertical", - }, - slots: { - type: "object", - visible: false, - objectFields: { - SearchBarSlot: { type: "slot" }, - SearchResultsSlot: { type: "slot" }, - }, - }, -}; -const EXPERIENCE_VERSION = "PRODUCTION"; - -export const searchConfig: SearchConfig = { - apiKey: "fb73f1bf6a262bc3255bcb938088204f", - experienceKey: "ukg-fins", - locale: "en", - experienceVersion: EXPERIENCE_VERSION, - cloudRegion: CloudRegion.US, - environment: Environment.PROD, -}; - -const SearchWrapper: PuckComponent = ({ - verticals, - slots, - puck, -}) => { - const verticalConfigMap = React.useMemo( - () => buildVerticalConfigMap(verticals), - [verticals] - ); - console.log(verticalConfigMap); - - const streamDocument = useDocument(); - const { searchAnalyticsConfig, searcher } = React.useMemo(() => { - const searchHeadlessConfig = provideHeadless(searchConfig); - if (searchHeadlessConfig === undefined) { - return { searchAnalyticsConfig: undefined, searcher: undefined }; - } - - const searchAnalyticsConfig = provideHeadless(searchConfig); - return { - searchAnalyticsConfig, - searcher: provideHeadless(searchConfig), - }; - }, [streamDocument.id, streamDocument.locale]); - - if (searcher === undefined || searchAnalyticsConfig === undefined) { - console.warn( - "Could not create Locator component because Search Headless or Search Analytics config is undefined. Please check your environment variables." - ); - return <>; - } - searcher.setSessionTrackingEnabled(true); - return ( - - - - - - - - - ); -}; - -export const verticalConfigMap = { - faq: { - label: "FAQs", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - "financial-professional": { - label: "Professionals", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - locations: { - label: "Locations", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - jobs: { - label: "Jobs", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - events: { - label: "Events", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - product: { - label: "Products", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, -}; - -// const SearchInternal = ({ verticals }: WithPuckProps) => { -// const verticalConfigMap = React.useMemo( -// () => buildVerticalConfigMap(verticals), -// [verticals] -// ); - -// return ( -// -// -// -// -// ); -// }; - -const buildVerticalConfigMap = (verticals: VerticalConfig[]) => { - const map: Record = {}; - - verticals.forEach((v) => { - const Section = (props: SectionProps) => ( - - ); - - map[v.verticalKey] = { - label: v.label, - viewAllButton: true, - SectionComponent: Section, - CardComponent: StandardCard, - universalLimit: v.universalLimit, - verticalLimit: v.verticalLimit, - }; - }); - - return map; -}; - -const SearchLayout = ({ - layout, - data: { results, CardComponent }, -}: { - layout: VerticalLayout; - data: SectionProps; -}) => { - if (!CardComponent) return null; - - const className = - layout === "Grid" - ? "grid grid-cols-3 gap-4 w-full" - : layout === "Flex" - ? "flex flex-col gap-4 w-full" - : "flex flex-col w-full"; - - return ( -
      - {results.map((r, i) => ( - - ))} -
      - ); -}; - -export const SearchComponent: ComponentConfig<{ - props: SearchComponentProps; -}> = { - label: msg("components.searchWithSlots", "Search with Slots"), - fields: locatorFields, - - defaultProps: { - verticals: [ - { - label: "FAQs", - verticalKey: "faq", - layout: "Flex", - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Products", - verticalKey: "product", - layout: "Grid", - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Locations", - verticalKey: "locations", - layout: "Map", - universalLimit: 3, - verticalLimit: 5, - }, - ], - slots: { - SearchBarSlot: [ - { - type: "SearchBarSlot", - props: { - styles: { - showIcon: false, - }, - } satisfies SearchBarSlotProps, - }, - ], - SearchResultsSlot: [ - { - type: "SearchBarSlot", - props: { - styles: { - showIcon: false, - }, - } satisfies SearchBarSlotProps, - }, - ], - }, - }, - render: (props) => , -}; From 421a503aa07cc6000c0820424809122c497177f2 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 18 Feb 2026 02:07:07 +0530 Subject: [PATCH 37/74] added custom directory --- .../categories/PageSectionCategory.tsx | 6 + .../CustomDirectory/CustomDirectory.tsx | 128 ++++++++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx diff --git a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx index 7787ed72ab..6a2af13808 100644 --- a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx +++ b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx @@ -72,6 +72,10 @@ import { SearchComponentProps, SearchComponent, } from "../pageSections/SearchSection/Search.tsx"; +import { + CustomDirectoryComponent, + CustomDirectoryProps, +} from "../pageSections/CustomDirectory/CustomDirectory.tsx"; export interface PageSectionCategoryProps { AboutSection: AboutSectionProps; @@ -94,6 +98,7 @@ export interface PageSectionCategoryProps { VideoSection: VideoSectionProps; ClassicSearchComponent: ClassicSearchProps; SearchComponent: SearchComponentProps; + CustomDirectoryComponent: CustomDirectoryProps; } export const PageSectionCategoryComponents = { @@ -117,6 +122,7 @@ export const PageSectionCategoryComponents = { VideoSection, ClassicSearchComponent, SearchComponent, + CustomDirectoryComponent, }; export const PageSectionCategory = Object.keys( diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx new file mode 100644 index 0000000000..8a899df28c --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx @@ -0,0 +1,128 @@ +import { WithPuckProps, Fields, ComponentConfig } from "@puckeditor/core"; +import React from "react"; +import { YextField } from "../../../editor/YextField.tsx"; +import { useTemplateProps } from "../../../hooks/useDocument.tsx"; +import { msg } from "../../../utils/index.ts"; +import { Body } from "../../atoms/body.tsx"; +import { MaybeRTF } from "../../atoms/maybeRTF.tsx"; +import { PageSection } from "../../atoms/pageSection.tsx"; +import { Heading } from "../../atoms/heading.tsx"; + +export interface CustomDirectoryProps { + data: { + title: string; + cardTitle: string; + cardDescription: string; + cardType: "Grid" | "Accordion"; + }; +} + +const CustomDirectory = ({ + data: { title, cardTitle, cardDescription, cardType }, +}: WithPuckProps) => { + const { document: streamDocument } = useTemplateProps(); + const [entities, setEntities] = React.useState([]); + + React.useEffect(() => { + const fetchEntities = async () => { + const childIds = streamDocument?.dm_childEntityIds; + console.log("childIds:", childIds); + + if (!childIds?.length) return; + + const apiKey = ""; + const v = ""; + + try { + const res = await fetch( + `https://cdn.yextapis.com/v2/accounts/me/entities` + + `?entityIds=${childIds.join(",")}` + + `&api_key=${apiKey}&v=${v}` + ); + + if (!res.ok) { + console.error("Failed to fetch entities:", res.status); + return; + } + + const json = await res.json(); + + console.log("Fetched entities:", json.response); + + setEntities(json.response?.entities ?? []); + } catch (error) { + console.error("Entity fetch error:", error); + } + }; + + fetchEntities(); + }, [streamDocument]); + + return ( + + + {title} + {cardTitle} + {cardType} + + + + + + + {/* Render hydrated entities */} +
      + {entities.map((entity) => ( +
      +

      {entity.name}

      +

      {entity.description}

      +
      + ))} +
      +
      + ); +}; + +const customDirectoryFields: Fields = { + data: YextField(msg("fields.data", "Data"), { + type: "object", + objectFields: { + title: YextField(msg("fields.title", "Title"), { + type: "entityField", + filter: { types: ["type.string"] }, + }), + cardTitle: YextField(msg("fields.cardTitle", "Card Title"), { + type: "entityField", + filter: { types: ["type.string"] }, + }), + cardDescription: YextField(msg("fields.description", "Description"), { + type: "entityField", + filter: { types: ["type.string"] }, + }), + cardType: { + label: msg("fields.cardType", "Card Type"), + type: "radio", + options: [ + { label: "Grid", value: "Grid" }, + { label: "Accordion", value: "Accordion" }, + ], + }, + }, + }), +}; + +export const CustomDirectoryComponent: ComponentConfig<{ + props: CustomDirectoryProps; +}> = { + label: msg("components.customDirectory", "Custom Directory"), + fields: customDirectoryFields, + defaultProps: { + data: { + title: "Test", + cardTitle: "Test Card", + cardDescription: "Test Descriptiom", + cardType: "Grid", + }, + }, + render: (props) => , +}; From dd6fbbdcc70ef6dff34209cb10a5242c209770df Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 19 Feb 2026 17:33:42 +0530 Subject: [PATCH 38/74] nit fixes --- .../src/components/categories/SlotsCategory.tsx | 8 ++++---- .../src/components/pageSections/SearchSection/Cards.tsx | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/visual-editor/src/components/categories/SlotsCategory.tsx b/packages/visual-editor/src/components/categories/SlotsCategory.tsx index 7b62057c20..b10f8a7b50 100644 --- a/packages/visual-editor/src/components/categories/SlotsCategory.tsx +++ b/packages/visual-editor/src/components/categories/SlotsCategory.tsx @@ -173,6 +173,8 @@ export interface SlotsCategoryProps { PrimaryHeaderSlot: PrimaryHeaderSlotProps; ProductCardsWrapper: ProductCardsWrapperProps; ProductCard: ProductCardProps; + SearchBarSlot: SearchBarSlotProps; + SearchResultsSlot: SearchResultsSlotProps; SecondaryFooterSlot: SecondaryFooterSlotProps; SecondaryHeaderSlot: SecondaryHeaderSlotProps; TeamCard: TeamCardProps; @@ -182,8 +184,6 @@ export interface SlotsCategoryProps { TextListSlot: TextListProps; Timestamp: TimestampProps; VideoSlot: VideoProps; - SearchBarSlot: SearchBarSlotProps; - SearchResultsSlot: SearchResultsSlotProps; } const lockedPermissions = { @@ -265,6 +265,8 @@ export const SlotsCategoryComponents = { permissions: lockedPermissions, }, ProductCard: { ...ProductCard, permissions: lockedPermissions }, + SearchBarSlot: { ...SearchBarSlot, permissions: lockedPermissions }, + SearchResultsSlot: { ...SearchResultsSlot, permissions: lockedPermissions }, SecondaryFooterSlot: { ...SecondaryFooterSlot, permissions: lockedPermissions, @@ -279,8 +281,6 @@ export const SlotsCategoryComponents = { TextListSlot: { ...TextList, permissions: lockedPermissions }, Timestamp: { ...Timestamp, permissions: lockedPermissions }, VideoSlot: { ...Video, permissions: lockedPermissions }, - SearchBarSlot: { ...SearchBarSlot, permissions: lockedPermissions }, - SearchResultsSlot: { ...SearchResultsSlot, permissions: lockedPermissions }, }; export const SlotsCategory = Object.keys( diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx index 0ad6759fc8..d4c48f356d 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx @@ -38,7 +38,7 @@ const Cards = ({ result, cardType = "Standard" }: CardsProps) => { ) : ( From 4cfbfdf1c32d78e539bcd1943848b29b1022750e Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 19 Feb 2026 17:36:21 +0530 Subject: [PATCH 39/74] working Custom directory --- .../categories/PageSectionCategory.tsx | 4 +- .../pageSections/CustomBreadcrumbs.tsx | 90 +++++++ .../CustomDirectory/CustomDirectory.tsx | 237 +++++++++++++----- 3 files changed, 261 insertions(+), 70 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx diff --git a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx index 6a2af13808..382e62f436 100644 --- a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx +++ b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx @@ -99,6 +99,7 @@ export interface PageSectionCategoryProps { ClassicSearchComponent: ClassicSearchProps; SearchComponent: SearchComponentProps; CustomDirectoryComponent: CustomDirectoryProps; + // CustomBreadcrumbs: CustomBreadcrumbsProps; } export const PageSectionCategoryComponents = { @@ -106,6 +107,8 @@ export const PageSectionCategoryComponents = { BannerSection, BreadcrumbsSection, CoreInfoSection, + // CustomBreadcrumbs, + CustomDirectoryComponent, EventSection, FAQSection, HeroSection, @@ -122,7 +125,6 @@ export const PageSectionCategoryComponents = { VideoSection, ClassicSearchComponent, SearchComponent, - CustomDirectoryComponent, }; export const PageSectionCategory = Object.keys( diff --git a/packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx new file mode 100644 index 0000000000..6cb80fe92e --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx @@ -0,0 +1,90 @@ +import React from "react"; +import { WithPuckProps } from "@puckeditor/core"; +import { BackgroundStyle } from "../../utils/themeConfigOptions.ts"; +import { MaybeLink } from "../atoms/maybeLink.tsx"; +import { PageSection } from "../atoms/pageSection.tsx"; +export interface BreadcrumbItem { + id: string; + name: string; + slug: string[]; +} + +export interface CustomBreadcrumbsProps { + breadcrumbs: BreadcrumbItem[]; + + onNavigate: (index: number) => void; + + styles?: { + backgroundColor?: BackgroundStyle; + }; +} + +export const CustomBreadcrumbs = ({ + breadcrumbs, + onNavigate, + styles, + puck, +}: WithPuckProps) => { + const separator = "/"; + + if (!breadcrumbs?.length) { + return ; + } + + return ( + +
        + {breadcrumbs.map((crumb, index) => { + const isRoot = index === 0; + const isLast = index === breadcrumbs.length - 1; + + return ( +
      1. + {!isRoot && ( + + {separator} + + )} + + + + {!isLast ? ( + { + if (puck?.isEditing) return; + + e.preventDefault(); + + onNavigate(index); + }} + > + + {crumb.name} + + + ) : ( + + {crumb.name} + + )} +
      2. + ); + })} +
      +
      + ); +}; diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx index 8a899df28c..b9be362036 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx @@ -1,85 +1,173 @@ -import { WithPuckProps, Fields, ComponentConfig } from "@puckeditor/core"; -import React from "react"; +import { ComponentConfig, Fields, WithPuckProps } from "@puckeditor/core"; +import React, { useState } from "react"; import { YextField } from "../../../editor/YextField.tsx"; import { useTemplateProps } from "../../../hooks/useDocument.tsx"; -import { msg } from "../../../utils/index.ts"; -import { Body } from "../../atoms/body.tsx"; -import { MaybeRTF } from "../../atoms/maybeRTF.tsx"; -import { PageSection } from "../../atoms/pageSection.tsx"; +import { + backgroundColors, + BackgroundStyle, + msg, +} from "../../../utils/index.ts"; +import { Background } from "../../atoms/background.tsx"; import { Heading } from "../../atoms/heading.tsx"; +import { MaybeLink } from "../../atoms/maybeLink.tsx"; +import { PageSection } from "../../atoms/pageSection.tsx"; +import { Body } from "../../atoms/body.tsx"; +import { BreadcrumbItem, CustomBreadcrumbs } from "../CustomBreadcrumbs.tsx"; export interface CustomDirectoryProps { data: { - title: string; + rootTitle: string; cardTitle: string; cardDescription: string; - cardType: "Grid" | "Accordion"; + }; + styles: { + backgroundColor: BackgroundStyle; }; } +const API_KEY = "d8016f96c913cc8b79931cef51b941f5"; +const API_VERSION = "20250101"; + const CustomDirectory = ({ - data: { title, cardTitle, cardDescription, cardType }, + data: { rootTitle = "FAQs", cardTitle, cardDescription }, + styles, + puck, }: WithPuckProps) => { const { document: streamDocument } = useTemplateProps(); + console.log(cardTitle, cardDescription); + const [entities, setEntities] = React.useState([]); + const [loading, setLoading] = React.useState(false); + const [pageTitle, setPageTitle] = useState(rootTitle); + const [breadcrumbs, setBreadcrumbs] = useState([]); + const fetchEntities = async (entityIds: string[]) => { + if (!entityIds?.length) return; + + setLoading(true); + + try { + const res = await fetch( + `https://cdn.yextapis.com/v2/accounts/me/entities` + + `?entityIds=${entityIds.join(",")}` + + `&api_key=${API_KEY}` + + `&v=${API_VERSION}` + ); + + if (!res.ok) { + console.error("Failed to fetch entities:", res.status); + return; + } - React.useEffect(() => { - const fetchEntities = async () => { - const childIds = streamDocument?.dm_childEntityIds; - console.log("childIds:", childIds); + const json = await res.json(); - if (!childIds?.length) return; + const fetchedEntities = json.response?.entities ?? []; - const apiKey = ""; - const v = ""; + console.log("Fetched entities:", fetchedEntities); - try { - const res = await fetch( - `https://cdn.yextapis.com/v2/accounts/me/entities` + - `?entityIds=${childIds.join(",")}` + - `&api_key=${apiKey}&v=${v}` - ); + setEntities(fetchedEntities); + } catch (error) { + console.error("Entity fetch error:", error); + } finally { + setLoading(false); + } + }; - if (!res.ok) { - console.error("Failed to fetch entities:", res.status); - return; - } + React.useEffect(() => { + const childIds = streamDocument?.dm_childEntityIds; + + if (childIds?.length) { + fetchEntities(childIds); + + setBreadcrumbs([ + { + id: streamDocument.meta?.id, + name: rootTitle, + slug: childIds, + }, + ]); + } + }, [streamDocument]); - const json = await res.json(); + const handleClick = (item: any) => { + const childIds = item.dm_childEntityIds; - console.log("Fetched entities:", json.response); + if (childIds?.length) { + fetchEntities(childIds); - setEntities(json.response?.entities ?? []); - } catch (error) { - console.error("Entity fetch error:", error); - } - }; + setPageTitle(item.name); - fetchEntities(); - }, [streamDocument]); + setBreadcrumbs((prev) => [ + ...prev, + { + id: item.meta?.id, + name: item.name, + slug: childIds, + }, + ]); + } + }; + const handleBreadcrumbClick = (index: number) => { + const crumb = breadcrumbs[index]; + + fetchEntities(crumb.slug!); + setPageTitle(crumb.name); + + setBreadcrumbs((prev) => prev.slice(0, index + 1)); + }; return ( - - - {title} - {cardTitle} - {cardType} - - - - - - - {/* Render hydrated entities */} -
      - {entities.map((entity) => ( -
      -

      {entity.name}

      -

      {entity.description}

      -
      - ))} -
      -
      + + {loading && <>} + + + {pageTitle} + +
        + {entities.map((item, index) => { + const hasChildren = item.dm_childEntityIds?.length > 0; + + return ( + +
      • + +
        { + if (hasChildren) { + e.preventDefault(); + handleClick(item); + setPageTitle(item.name); + } + }} + > + {item.name} +
        +
        +
      • +
        + ); + })} +
      +
      +
      +
      ); }; @@ -87,26 +175,32 @@ const customDirectoryFields: Fields = { data: YextField(msg("fields.data", "Data"), { type: "object", objectFields: { - title: YextField(msg("fields.title", "Title"), { + rootTitle: YextField(msg("fields.title", "Title"), { type: "entityField", filter: { types: ["type.string"] }, }), + cardTitle: YextField(msg("fields.cardTitle", "Card Title"), { type: "entityField", filter: { types: ["type.string"] }, }), + cardDescription: YextField(msg("fields.description", "Description"), { type: "entityField", filter: { types: ["type.string"] }, }), - cardType: { - label: msg("fields.cardType", "Card Type"), - type: "radio", - options: [ - { label: "Grid", value: "Grid" }, - { label: "Accordion", value: "Accordion" }, - ], - }, + }, + }), + styles: YextField(msg("fields.styles", "Styles"), { + type: "object", + objectFields: { + backgroundColor: YextField( + msg("fields.backgroundColor", "Background Color"), + { + type: "select", + options: "BACKGROUND_COLOR", + } + ), }, }), }; @@ -115,14 +209,19 @@ export const CustomDirectoryComponent: ComponentConfig<{ props: CustomDirectoryProps; }> = { label: msg("components.customDirectory", "Custom Directory"), + fields: customDirectoryFields, + defaultProps: { data: { - title: "Test", - cardTitle: "Test Card", - cardDescription: "Test Descriptiom", - cardType: "Grid", + rootTitle: "Directory", + cardTitle: "Card Title", + cardDescription: "Card Description", + }, + styles: { + backgroundColor: backgroundColors.background1.value, }, }, + render: (props) => , }; From 78c322b2ee802e8e0b122f73a99bcf6f61256c9b Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 19 Feb 2026 17:40:04 +0530 Subject: [PATCH 40/74] nit changes --- .../Breadcrumbs.tsx} | 12 ++++++------ .../pageSections/CustomDirectory/CustomDirectory.tsx | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) rename packages/visual-editor/src/components/pageSections/{CustomBreadcrumbs.tsx => CustomDirectory/Breadcrumbs.tsx} (87%) diff --git a/packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx similarity index 87% rename from packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx rename to packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx index 6cb80fe92e..cf9828b39f 100644 --- a/packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx @@ -1,15 +1,15 @@ import React from "react"; import { WithPuckProps } from "@puckeditor/core"; -import { BackgroundStyle } from "../../utils/themeConfigOptions.ts"; -import { MaybeLink } from "../atoms/maybeLink.tsx"; -import { PageSection } from "../atoms/pageSection.tsx"; +import { BackgroundStyle } from "../../../utils/themeConfigOptions.ts"; +import { MaybeLink } from "../../atoms/maybeLink.tsx"; +import { PageSection } from "../../atoms/pageSection.tsx"; export interface BreadcrumbItem { id: string; name: string; slug: string[]; } -export interface CustomBreadcrumbsProps { +export interface BreadcrumbsProps { breadcrumbs: BreadcrumbItem[]; onNavigate: (index: number) => void; @@ -19,12 +19,12 @@ export interface CustomBreadcrumbsProps { }; } -export const CustomBreadcrumbs = ({ +export const Breadcrumbs = ({ breadcrumbs, onNavigate, styles, puck, -}: WithPuckProps) => { +}: WithPuckProps) => { const separator = "/"; if (!breadcrumbs?.length) { diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx index b9be362036..72ab619860 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx @@ -12,7 +12,7 @@ import { Heading } from "../../atoms/heading.tsx"; import { MaybeLink } from "../../atoms/maybeLink.tsx"; import { PageSection } from "../../atoms/pageSection.tsx"; import { Body } from "../../atoms/body.tsx"; -import { BreadcrumbItem, CustomBreadcrumbs } from "../CustomBreadcrumbs.tsx"; +import { BreadcrumbItem, Breadcrumbs } from "./Breadcrumbs.tsx"; export interface CustomDirectoryProps { data: { @@ -119,7 +119,7 @@ const CustomDirectory = ({ {loading && <>} - Date: Thu, 19 Feb 2026 17:53:21 +0530 Subject: [PATCH 41/74] nit updates --- .../categories/PageSectionCategory.tsx | 8 +- .../pageSections/CustomBreadcrumbs.tsx | 227 ++++++++++++++++++ .../CustomDirectory/Breadcrumbs.tsx | 5 +- .../CustomDirectory/CustomDirectory.tsx | 18 +- 4 files changed, 236 insertions(+), 22 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx diff --git a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx index 382e62f436..4eb2a1eada 100644 --- a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx +++ b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx @@ -76,6 +76,10 @@ import { CustomDirectoryComponent, CustomDirectoryProps, } from "../pageSections/CustomDirectory/CustomDirectory.tsx"; +import { + CustomBreadcrumbs, + CustomBreadcrumbsProps, +} from "../pageSections/CustomBreadcrumbs.tsx"; export interface PageSectionCategoryProps { AboutSection: AboutSectionProps; @@ -99,7 +103,7 @@ export interface PageSectionCategoryProps { ClassicSearchComponent: ClassicSearchProps; SearchComponent: SearchComponentProps; CustomDirectoryComponent: CustomDirectoryProps; - // CustomBreadcrumbs: CustomBreadcrumbsProps; + CustomBreadcrumbs: CustomBreadcrumbsProps; } export const PageSectionCategoryComponents = { @@ -107,7 +111,7 @@ export const PageSectionCategoryComponents = { BannerSection, BreadcrumbsSection, CoreInfoSection, - // CustomBreadcrumbs, + CustomBreadcrumbs, CustomDirectoryComponent, EventSection, FAQSection, diff --git a/packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx new file mode 100644 index 0000000000..5acf2eb7ab --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx @@ -0,0 +1,227 @@ +import { ComponentConfig, Fields, WithPuckProps } from "@puckeditor/core"; +import { useDocument } from "../../hooks/useDocument.tsx"; +import { StreamDocument } from "../../utils/index.ts"; +import { MaybeLink } from "../atoms/maybeLink.tsx"; +import { PageSection } from "../atoms/pageSection.tsx"; +import { VisibilityWrapper } from "../atoms/visibilityWrapper.tsx"; +import { ComponentErrorBoundary } from "../../internal/components/ComponentErrorBoundary.tsx"; +import { AnalyticsScopeProvider } from "@yext/pages-components"; +import { YextField } from "../../editor/YextField.tsx"; +import { msg } from "../../utils/i18n/platform.ts"; +import { + BackgroundStyle, + backgroundColors, +} from "../../utils/themeConfigOptions.ts"; +import { useEffect, useState } from "react"; + +export interface CustomBreadcrumbItem { + id: string; + name: string; + slug: string[]; +} + +export interface CustomBreadcrumbsData {} + +export interface CustomBreadcrumbsStyles { + backgroundColor?: BackgroundStyle; +} + +export interface CustomBreadcrumbsProps { + data: CustomBreadcrumbsData; + styles: CustomBreadcrumbsStyles; + analytics: { + scope?: string; + }; + liveVisibility: boolean; + + /** Optional controlled breadcrumbs from parent slot */ + breadcrumbs?: CustomBreadcrumbItem[]; + + /** Optional navigation handler from parent */ + onNavigate?: (index: number) => void; +} + +const customBreadcrumbFields: Fields = { + data: YextField(msg("fields.data", "Data"), { + type: "object", + objectFields: {}, + }), + + styles: YextField(msg("fields.styles", "Styles"), { + type: "object", + objectFields: { + backgroundColor: YextField( + msg("fields.backgroundColor", "Background Color"), + { + type: "select", + options: "BACKGROUND_COLOR", + } + ), + }, + }), + + analytics: YextField(msg("fields.analytics", "Analytics"), { + type: "object", + visible: false, + objectFields: { + scope: YextField(msg("fields.scope", "Scope"), { + type: "text", + }), + }, + }), + + liveVisibility: YextField( + msg("fields.visibleOnLivePage", "Visible on Live Page"), + { + type: "radio", + options: [ + { label: msg("fields.options.show", "Show"), value: true }, + { label: msg("fields.options.hide", "Hide"), value: false }, + ], + } + ), +}; + +const API_KEY = "d8016f96c913cc8b79931cef51b941f5"; +const API_VERSION = "20250101"; +const contentEndpoint = "blog"; + +const CustomBreadcrumbsComponent = ({ + styles, + puck, + breadcrumbs, + onNavigate, +}: WithPuckProps) => { + const separator = "/"; + const document = useDocument() as StreamDocument; + console.log(onNavigate); + + const [fetchedBreadcrumbs, setFetchedBreadcrumbs] = useState< + CustomBreadcrumbItem[] + >([]); + + const hasControlledBreadcrumbs = + Array.isArray(breadcrumbs) && breadcrumbs.length > 0; + + const list = hasControlledBreadcrumbs ? breadcrumbs : fetchedBreadcrumbs; + + const hasChildren = + Array.isArray(document?.dm_childEntityIds) && + document.dm_childEntityIds.length > 0; + + useEffect(() => { + if (hasControlledBreadcrumbs) return; + if (hasChildren || !document?.uid) return; + + const fetchBreadcrumbs = async () => { + try { + const res = await fetch( + `https://cdn.yextapis.com/v2/accounts/me/content/${contentEndpoint}/${document.uid}?api_key=${API_KEY}&v=${API_VERSION}` + ); + + if (!res.ok) return; + + const json = await res.json(); + + const entities = + json.response?.docs?.[0]?.dm_directoryParents_directory ?? []; + + const mapped: CustomBreadcrumbItem[] = entities.map((entity: any) => ({ + id: entity.uid, + name: entity.name, + slug: entity.slug, + })); + + setFetchedBreadcrumbs(mapped); + } catch (error) { + console.error("Breadcrumb fetch failed:", error); + } + }; + + fetchBreadcrumbs(); + }, [document?.uid, hasChildren, hasControlledBreadcrumbs]); + + if (!list?.length) return null; + + return ( + +
        + {list.map((crumb, index) => { + const isRoot = index === 0; + const isLast = index === list.length - 1; + + return ( +
      1. + {!isRoot && ( + + {separator} + + )} + + + + {!isLast ? ( + + {crumb.name} + + ) : ( + {crumb.name} + )} +
      2. + ); + })} +
      +
      + ); +}; + +export const CustomBreadcrumbs: ComponentConfig<{ + props: CustomBreadcrumbsProps; +}> = { + label: "Custom Breadcrumbs", + + fields: customBreadcrumbFields, + + defaultProps: { + data: {}, + styles: { + backgroundColor: backgroundColors.background1.value, + }, + analytics: { + scope: "customBreadcrumbs", + }, + liveVisibility: true, + }, + + render: (props) => ( + + + + + + + + ), +}; diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx index cf9828b39f..b076f290cb 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx @@ -44,10 +44,7 @@ export const Breadcrumbs = ({ const isLast = index === breadcrumbs.length - 1; return ( -
    • +
    • {!isRoot && ( {separator} diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx index 72ab619860..0fe1cb7af1 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx @@ -17,8 +17,6 @@ import { BreadcrumbItem, Breadcrumbs } from "./Breadcrumbs.tsx"; export interface CustomDirectoryProps { data: { rootTitle: string; - cardTitle: string; - cardDescription: string; }; styles: { backgroundColor: BackgroundStyle; @@ -29,12 +27,11 @@ const API_KEY = "d8016f96c913cc8b79931cef51b941f5"; const API_VERSION = "20250101"; const CustomDirectory = ({ - data: { rootTitle = "FAQs", cardTitle, cardDescription }, + data: { rootTitle = "FAQs" }, styles, puck, }: WithPuckProps) => { const { document: streamDocument } = useTemplateProps(); - console.log(cardTitle, cardDescription); const [entities, setEntities] = React.useState([]); const [loading, setLoading] = React.useState(false); @@ -136,6 +133,7 @@ const CustomDirectory = ({ return ( @@ -179,16 +177,6 @@ const customDirectoryFields: Fields = { type: "entityField", filter: { types: ["type.string"] }, }), - - cardTitle: YextField(msg("fields.cardTitle", "Card Title"), { - type: "entityField", - filter: { types: ["type.string"] }, - }), - - cardDescription: YextField(msg("fields.description", "Description"), { - type: "entityField", - filter: { types: ["type.string"] }, - }), }, }), styles: YextField(msg("fields.styles", "Styles"), { @@ -215,8 +203,6 @@ export const CustomDirectoryComponent: ComponentConfig<{ defaultProps: { data: { rootTitle: "Directory", - cardTitle: "Card Title", - cardDescription: "Card Description", }, styles: { backgroundColor: backgroundColors.background1.value, From ae57f18583b977a7d709793f423f3061b5a87046 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 19 Feb 2026 18:05:52 +0530 Subject: [PATCH 42/74] nit updates --- .../pageSections/CustomDirectory/Breadcrumbs.tsx | 5 ++++- .../CustomDirectory/CustomDirectory.tsx | 13 ++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx index b076f290cb..cf9828b39f 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx @@ -44,7 +44,10 @@ export const Breadcrumbs = ({ const isLast = index === breadcrumbs.length - 1; return ( -
    • +
    • {!isRoot && ( {separator} diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx index 0fe1cb7af1..0a6a7a226e 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx @@ -77,7 +77,7 @@ const CustomDirectory = ({ setBreadcrumbs([ { - id: streamDocument.meta?.id, + id: streamDocument.meta?.uid, name: rootTitle, slug: childIds, }, @@ -96,22 +96,25 @@ const CustomDirectory = ({ setBreadcrumbs((prev) => [ ...prev, { - id: item.meta?.id, + id: item.meta?.uid, name: item.name, slug: childIds, }, ]); } }; + const handleBreadcrumbClick = (index: number) => { const crumb = breadcrumbs[index]; + if (!crumb) return; - fetchEntities(crumb.slug!); + fetchEntities(crumb.slug); setPageTitle(crumb.name); setBreadcrumbs((prev) => prev.slice(0, index + 1)); }; + return ( {loading && <>} @@ -133,11 +136,11 @@ const CustomDirectory = ({ return ( -
    • +
    • Date: Fri, 20 Feb 2026 15:47:01 +0530 Subject: [PATCH 43/74] updated custom directory path and bug fixes --- .../categories/PageSectionCategory.tsx | 6 +- .../CustomDirectory/Breadcrumbs.tsx | 90 ------------ .../CustomBreadcrumbs.tsx | 108 ++++++-------- .../CustomDirectory/CustomDirectory.tsx | 133 +++++++----------- 4 files changed, 96 insertions(+), 241 deletions(-) delete mode 100644 packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx rename packages/visual-editor/src/components/pageSections/{ => CustomDirectory}/CustomBreadcrumbs.tsx (63%) diff --git a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx index 4eb2a1eada..180d3b1bfb 100644 --- a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx +++ b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx @@ -79,13 +79,15 @@ import { import { CustomBreadcrumbs, CustomBreadcrumbsProps, -} from "../pageSections/CustomBreadcrumbs.tsx"; +} from "../pageSections/CustomDirectory/CustomBreadcrumbs.tsx"; export interface PageSectionCategoryProps { AboutSection: AboutSectionProps; BannerSection: BannerSectionProps; BreadcrumbsSection: BreadcrumbsSectionProps; CoreInfoSection: CoreInfoSectionProps; + CustomBreadcrumbs: CustomBreadcrumbsProps; + CustomDirectoryComponent: CustomDirectoryProps; EventSection: EventSectionProps; FAQSection: FAQSectionProps; HeroSection: HeroSectionProps; @@ -102,8 +104,6 @@ export interface PageSectionCategoryProps { VideoSection: VideoSectionProps; ClassicSearchComponent: ClassicSearchProps; SearchComponent: SearchComponentProps; - CustomDirectoryComponent: CustomDirectoryProps; - CustomBreadcrumbs: CustomBreadcrumbsProps; } export const PageSectionCategoryComponents = { diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx deleted file mode 100644 index cf9828b39f..0000000000 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/Breadcrumbs.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import React from "react"; -import { WithPuckProps } from "@puckeditor/core"; -import { BackgroundStyle } from "../../../utils/themeConfigOptions.ts"; -import { MaybeLink } from "../../atoms/maybeLink.tsx"; -import { PageSection } from "../../atoms/pageSection.tsx"; -export interface BreadcrumbItem { - id: string; - name: string; - slug: string[]; -} - -export interface BreadcrumbsProps { - breadcrumbs: BreadcrumbItem[]; - - onNavigate: (index: number) => void; - - styles?: { - backgroundColor?: BackgroundStyle; - }; -} - -export const Breadcrumbs = ({ - breadcrumbs, - onNavigate, - styles, - puck, -}: WithPuckProps) => { - const separator = "/"; - - if (!breadcrumbs?.length) { - return ; - } - - return ( - -
        - {breadcrumbs.map((crumb, index) => { - const isRoot = index === 0; - const isLast = index === breadcrumbs.length - 1; - - return ( -
      1. - {!isRoot && ( - - {separator} - - )} - - - - {!isLast ? ( - { - if (puck?.isEditing) return; - - e.preventDefault(); - - onNavigate(index); - }} - > - - {crumb.name} - - - ) : ( - - {crumb.name} - - )} -
      2. - ); - })} -
      -
      - ); -}; diff --git a/packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx similarity index 63% rename from packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx rename to packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx index 5acf2eb7ab..8125ce753d 100644 --- a/packages/visual-editor/src/components/pageSections/CustomBreadcrumbs.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx @@ -1,52 +1,36 @@ import { ComponentConfig, Fields, WithPuckProps } from "@puckeditor/core"; -import { useDocument } from "../../hooks/useDocument.tsx"; -import { StreamDocument } from "../../utils/index.ts"; -import { MaybeLink } from "../atoms/maybeLink.tsx"; -import { PageSection } from "../atoms/pageSection.tsx"; -import { VisibilityWrapper } from "../atoms/visibilityWrapper.tsx"; -import { ComponentErrorBoundary } from "../../internal/components/ComponentErrorBoundary.tsx"; import { AnalyticsScopeProvider } from "@yext/pages-components"; -import { YextField } from "../../editor/YextField.tsx"; -import { msg } from "../../utils/i18n/platform.ts"; +import { useEffect, useState } from "react"; +import { YextField } from "../../../editor/YextField.tsx"; +import { useDocument } from "../../../hooks/useDocument.tsx"; +import { ComponentErrorBoundary } from "../../../internal/components/ComponentErrorBoundary.tsx"; +import { msg } from "../../../utils/i18n/platform.ts"; +import { StreamDocument } from "../../../utils/index.ts"; import { BackgroundStyle, backgroundColors, -} from "../../utils/themeConfigOptions.ts"; -import { useEffect, useState } from "react"; +} from "../../../utils/themeConfigOptions.ts"; +import { MaybeLink } from "../../atoms/maybeLink.tsx"; +import { PageSection } from "../../atoms/pageSection.tsx"; +import { VisibilityWrapper } from "../../atoms/visibilityWrapper.tsx"; export interface CustomBreadcrumbItem { id: string; name: string; - slug: string[]; -} - -export interface CustomBreadcrumbsData {} - -export interface CustomBreadcrumbsStyles { - backgroundColor?: BackgroundStyle; + slug?: string[]; } export interface CustomBreadcrumbsProps { - data: CustomBreadcrumbsData; - styles: CustomBreadcrumbsStyles; + styles: { + backgroundColor?: BackgroundStyle; + }; analytics: { scope?: string; }; liveVisibility: boolean; - - /** Optional controlled breadcrumbs from parent slot */ - breadcrumbs?: CustomBreadcrumbItem[]; - - /** Optional navigation handler from parent */ - onNavigate?: (index: number) => void; } const customBreadcrumbFields: Fields = { - data: YextField(msg("fields.data", "Data"), { - type: "object", - objectFields: {}, - }), - styles: YextField(msg("fields.styles", "Styles"), { type: "object", objectFields: { @@ -88,31 +72,15 @@ const contentEndpoint = "blog"; const CustomBreadcrumbsComponent = ({ styles, - puck, - breadcrumbs, - onNavigate, }: WithPuckProps) => { const separator = "/"; const document = useDocument() as StreamDocument; - console.log(onNavigate); const [fetchedBreadcrumbs, setFetchedBreadcrumbs] = useState< CustomBreadcrumbItem[] >([]); - const hasControlledBreadcrumbs = - Array.isArray(breadcrumbs) && breadcrumbs.length > 0; - - const list = hasControlledBreadcrumbs ? breadcrumbs : fetchedBreadcrumbs; - - const hasChildren = - Array.isArray(document?.dm_childEntityIds) && - document.dm_childEntityIds.length > 0; - useEffect(() => { - if (hasControlledBreadcrumbs) return; - if (hasChildren || !document?.uid) return; - const fetchBreadcrumbs = async () => { try { const res = await fetch( @@ -132,16 +100,23 @@ const CustomBreadcrumbsComponent = ({ slug: entity.slug, })); - setFetchedBreadcrumbs(mapped); + const finalBC: CustomBreadcrumbItem[] = [ + ...mapped, + { + id: document.uid, + name: document.name, + slug: document.slug, + }, + ]; + + setFetchedBreadcrumbs(finalBC); } catch (error) { console.error("Breadcrumb fetch failed:", error); } }; fetchBreadcrumbs(); - }, [document?.uid, hasChildren, hasControlledBreadcrumbs]); - - if (!list?.length) return null; + }, []); return (
        - {list.map((crumb, index) => { + {fetchedBreadcrumbs.map((crumb, index) => { const isRoot = index === 0; - const isLast = index === list.length - 1; + const isLast = index === fetchedBreadcrumbs.length - 1; + !isRoot && ( + + {separator} + + ); return (
      1. )} - - - {!isLast ? ( - - {crumb.name} - - ) : ( - {crumb.name} - )} + + {crumb.name} +
      2. ); })} @@ -197,7 +170,6 @@ export const CustomBreadcrumbs: ComponentConfig<{ fields: customBreadcrumbFields, defaultProps: { - data: {}, styles: { backgroundColor: backgroundColors.background1.value, }, diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx index 0a6a7a226e..0751a0dcff 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx @@ -1,5 +1,5 @@ -import { ComponentConfig, Fields, WithPuckProps } from "@puckeditor/core"; -import React, { useState } from "react"; +import { ComponentConfig, Fields, PuckComponent, Slot } from "@puckeditor/core"; +import React from "react"; import { YextField } from "../../../editor/YextField.tsx"; import { useTemplateProps } from "../../../hooks/useDocument.tsx"; import { @@ -8,35 +8,54 @@ import { msg, } from "../../../utils/index.ts"; import { Background } from "../../atoms/background.tsx"; -import { Heading } from "../../atoms/heading.tsx"; +import { Body } from "../../atoms/body.tsx"; import { MaybeLink } from "../../atoms/maybeLink.tsx"; import { PageSection } from "../../atoms/pageSection.tsx"; -import { Body } from "../../atoms/body.tsx"; -import { BreadcrumbItem, Breadcrumbs } from "./Breadcrumbs.tsx"; +import { HeadingTextProps } from "../../contentBlocks/HeadingText.tsx"; export interface CustomDirectoryProps { - data: { - rootTitle: string; + slots: { + HeadingSlot: Slot; }; styles: { backgroundColor: BackgroundStyle; }; } +const CustomDirectoryFields: Fields = { + slots: { + type: "object", + objectFields: { + HeadingSlot: { type: "slot", allow: [] }, + }, + visible: false, + }, + styles: YextField(msg("fields.styles", "Styles"), { + type: "object", + objectFields: { + backgroundColor: YextField( + msg("fields.backgroundColor", "Background Color"), + { + type: "select", + options: "BACKGROUND_COLOR", + } + ), + }, + }), +}; + const API_KEY = "d8016f96c913cc8b79931cef51b941f5"; const API_VERSION = "20250101"; -const CustomDirectory = ({ - data: { rootTitle = "FAQs" }, +const CustomDirectory: PuckComponent = ({ styles, + slots, puck, -}: WithPuckProps) => { +}) => { const { document: streamDocument } = useTemplateProps(); const [entities, setEntities] = React.useState([]); const [loading, setLoading] = React.useState(false); - const [pageTitle, setPageTitle] = useState(rootTitle); - const [breadcrumbs, setBreadcrumbs] = useState([]); const fetchEntities = async (entityIds: string[]) => { if (!entityIds?.length) return; @@ -59,8 +78,6 @@ const CustomDirectory = ({ const fetchedEntities = json.response?.entities ?? []; - console.log("Fetched entities:", fetchedEntities); - setEntities(fetchedEntities); } catch (error) { console.error("Entity fetch error:", error); @@ -74,14 +91,6 @@ const CustomDirectory = ({ if (childIds?.length) { fetchEntities(childIds); - - setBreadcrumbs([ - { - id: streamDocument.meta?.uid, - name: rootTitle, - slug: childIds, - }, - ]); } }, [streamDocument]); @@ -90,41 +99,14 @@ const CustomDirectory = ({ if (childIds?.length) { fetchEntities(childIds); - - setPageTitle(item.name); - - setBreadcrumbs((prev) => [ - ...prev, - { - id: item.meta?.uid, - name: item.name, - slug: childIds, - }, - ]); } }; - const handleBreadcrumbClick = (index: number) => { - const crumb = breadcrumbs[index]; - if (!crumb) return; - - fetchEntities(crumb.slug); - - setPageTitle(crumb.name); - - setBreadcrumbs((prev) => prev.slice(0, index + 1)); - }; - return ( {loading && <>} - - {pageTitle} + @@ -172,45 +153,37 @@ const CustomDirectory = ({ ); }; -const customDirectoryFields: Fields = { - data: YextField(msg("fields.data", "Data"), { - type: "object", - objectFields: { - rootTitle: YextField(msg("fields.title", "Title"), { - type: "entityField", - filter: { types: ["type.string"] }, - }), - }, - }), - styles: YextField(msg("fields.styles", "Styles"), { - type: "object", - objectFields: { - backgroundColor: YextField( - msg("fields.backgroundColor", "Background Color"), - { - type: "select", - options: "BACKGROUND_COLOR", - } - ), - }, - }), -}; - export const CustomDirectoryComponent: ComponentConfig<{ props: CustomDirectoryProps; }> = { - label: msg("components.customDirectory", "Custom Directory"), + label: msg("components.CustomDirectory", "Custom Directory"), - fields: customDirectoryFields, + fields: CustomDirectoryFields, defaultProps: { - data: { - rootTitle: "Directory", + slots: { + HeadingSlot: [ + { + type: "HeadingTextSlot", + props: { + data: { + text: { + constantValue: { + en: "Directory", + hasLocalizedValue: "true", + }, + constantValueEnabled: true, + field: "", + }, + }, + styles: { level: 2, align: "center" }, + } satisfies HeadingTextProps, + }, + ], }, styles: { backgroundColor: backgroundColors.background1.value, }, }, - render: (props) => , }; From 8ccd1e82e719a59e1b518315ba1d067437fc9f5b Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 20 Feb 2026 16:42:47 +0530 Subject: [PATCH 44/74] Fixed breadcrumb --- .../CustomDirectory/CustomBreadcrumbs.tsx | 77 +++++++++++++------ 1 file changed, 53 insertions(+), 24 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx index 8125ce753d..c92d522b5e 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx @@ -1,14 +1,16 @@ import { ComponentConfig, Fields, WithPuckProps } from "@puckeditor/core"; import { AnalyticsScopeProvider } from "@yext/pages-components"; import { useEffect, useState } from "react"; +import { useTranslation } from "react-i18next"; import { YextField } from "../../../editor/YextField.tsx"; -import { useDocument } from "../../../hooks/useDocument.tsx"; +import { useTemplateProps } from "../../../hooks/useDocument.tsx"; import { ComponentErrorBoundary } from "../../../internal/components/ComponentErrorBoundary.tsx"; +import { TranslatableString } from "../../../types/types.ts"; import { msg } from "../../../utils/i18n/platform.ts"; -import { StreamDocument } from "../../../utils/index.ts"; +import { resolveComponentData } from "../../../utils/index.ts"; import { - BackgroundStyle, backgroundColors, + BackgroundStyle, } from "../../../utils/themeConfigOptions.ts"; import { MaybeLink } from "../../atoms/maybeLink.tsx"; import { PageSection } from "../../atoms/pageSection.tsx"; @@ -17,10 +19,13 @@ import { VisibilityWrapper } from "../../atoms/visibilityWrapper.tsx"; export interface CustomBreadcrumbItem { id: string; name: string; - slug?: string[]; + slug?: string; } export interface CustomBreadcrumbsProps { + data: { + directoryRoot: TranslatableString; + }; styles: { backgroundColor?: BackgroundStyle; }; @@ -31,6 +36,18 @@ export interface CustomBreadcrumbsProps { } const customBreadcrumbFields: Fields = { + data: YextField(msg("fields.data", "Data"), { + type: "object", + objectFields: { + directoryRoot: YextField( + msg("fields.directoryRootLinkLabel", "Directory Root Link Label"), + { + type: "translatableString", + filter: { types: ["type.string"] }, + } + ), + }, + }), styles: YextField(msg("fields.styles", "Styles"), { type: "object", objectFields: { @@ -72,10 +89,17 @@ const contentEndpoint = "blog"; const CustomBreadcrumbsComponent = ({ styles, + data, }: WithPuckProps) => { + const { t, i18n } = useTranslation(); const separator = "/"; - const document = useDocument() as StreamDocument; + const { document: streamDocument, relativePrefixToRoot } = useTemplateProps(); + const directoryRoot = resolveComponentData( + data.directoryRoot, + i18n.language, + streamDocument + ); const [fetchedBreadcrumbs, setFetchedBreadcrumbs] = useState< CustomBreadcrumbItem[] >([]); @@ -84,13 +108,10 @@ const CustomBreadcrumbsComponent = ({ const fetchBreadcrumbs = async () => { try { const res = await fetch( - `https://cdn.yextapis.com/v2/accounts/me/content/${contentEndpoint}/${document.uid}?api_key=${API_KEY}&v=${API_VERSION}` + `https://cdn.yextapis.com/v2/accounts/me/content/${contentEndpoint}/${streamDocument.uid}?api_key=${API_KEY}&v=${API_VERSION}` ); - if (!res.ok) return; - const json = await res.json(); - const entities = json.response?.docs?.[0]?.dm_directoryParents_directory ?? []; @@ -103,9 +124,9 @@ const CustomBreadcrumbsComponent = ({ const finalBC: CustomBreadcrumbItem[] = [ ...mapped, { - id: document.uid, - name: document.name, - slug: document.slug, + id: streamDocument.uid, + name: streamDocument.name, + slug: streamDocument.slug, }, ]; @@ -116,19 +137,26 @@ const CustomBreadcrumbsComponent = ({ }; fetchBreadcrumbs(); - }, []); + }, [streamDocument.uid]); + + if (!fetchedBreadcrumbs?.length) { + return ; + } return (
          - {fetchedBreadcrumbs.map((crumb, index) => { + {fetchedBreadcrumbs.map(({ name, slug, id }, index) => { const isRoot = index === 0; const isLast = index === fetchedBreadcrumbs.length - 1; + const href = relativePrefixToRoot + ? relativePrefixToRoot + slug + : slug; !isRoot && ( @@ -136,10 +164,7 @@ const CustomBreadcrumbsComponent = ({ ); return ( -
        1. +
        2. {!isRoot && ( {separator} @@ -147,12 +172,12 @@ const CustomBreadcrumbsComponent = ({ )} - {crumb.name} + {isRoot && directoryRoot ? directoryRoot : name}
        3. ); @@ -165,11 +190,15 @@ const CustomBreadcrumbsComponent = ({ export const CustomBreadcrumbs: ComponentConfig<{ props: CustomBreadcrumbsProps; }> = { - label: "Custom Breadcrumbs", - + label: msg("components.customBreadcrumbs", "Custom Breadcrumbs"), fields: customBreadcrumbFields, - defaultProps: { + data: { + directoryRoot: { + en: "Directory Root", + hasLocalizedValue: "true", + }, + }, styles: { backgroundColor: backgroundColors.background1.value, }, From 20576c159e6cbdf0fcf8512213a02a344c86aeda Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 20 Feb 2026 17:48:33 +0530 Subject: [PATCH 45/74] extracted calls to util --- .../CustomDirectory/CustomBreadcrumbs.tsx | 20 +++++----- .../CustomDirectory/CustomDirectory.tsx | 27 +++++-------- .../pageSections/CustomDirectory/utils.ts | 38 +++++++++++++++++++ 3 files changed, 58 insertions(+), 27 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/CustomDirectory/utils.ts diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx index c92d522b5e..b68f0c65b8 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx @@ -15,6 +15,7 @@ import { import { MaybeLink } from "../../atoms/maybeLink.tsx"; import { PageSection } from "../../atoms/pageSection.tsx"; import { VisibilityWrapper } from "../../atoms/visibilityWrapper.tsx"; +import { fetchData } from "./utils.ts"; export interface CustomBreadcrumbItem { id: string; @@ -84,7 +85,6 @@ const customBreadcrumbFields: Fields = { }; const API_KEY = "d8016f96c913cc8b79931cef51b941f5"; -const API_VERSION = "20250101"; const contentEndpoint = "blog"; const CustomBreadcrumbsComponent = ({ @@ -105,15 +105,17 @@ const CustomBreadcrumbsComponent = ({ >([]); useEffect(() => { + if (!streamDocument?.uid) return; + const fetchBreadcrumbs = async () => { try { - const res = await fetch( - `https://cdn.yextapis.com/v2/accounts/me/content/${contentEndpoint}/${streamDocument.uid}?api_key=${API_KEY}&v=${API_VERSION}` - ); - if (!res.ok) return; - const json = await res.json(); - const entities = - json.response?.docs?.[0]?.dm_directoryParents_directory ?? []; + const json = await fetchData({ + endpoint: `https://cdn.yextapis.com/v2/accounts/me/content/${contentEndpoint}/${streamDocument.uid}`, + apiKey: API_KEY, + }); + + if (!json) return; + const entities = json.docs?.[0]?.dm_directoryParents_directory ?? []; const mapped: CustomBreadcrumbItem[] = entities.map((entity: any) => ({ id: entity.uid, @@ -137,7 +139,7 @@ const CustomBreadcrumbsComponent = ({ }; fetchBreadcrumbs(); - }, [streamDocument.uid]); + }, [streamDocument?.uid, contentEndpoint]); if (!fetchedBreadcrumbs?.length) { return ; diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx index 0751a0dcff..0b75b29e3e 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx @@ -12,6 +12,7 @@ import { Body } from "../../atoms/body.tsx"; import { MaybeLink } from "../../atoms/maybeLink.tsx"; import { PageSection } from "../../atoms/pageSection.tsx"; import { HeadingTextProps } from "../../contentBlocks/HeadingText.tsx"; +import { fetchData } from "./utils.ts"; export interface CustomDirectoryProps { slots: { @@ -28,7 +29,6 @@ const CustomDirectoryFields: Fields = { objectFields: { HeadingSlot: { type: "slot", allow: [] }, }, - visible: false, }, styles: YextField(msg("fields.styles", "Styles"), { type: "object", @@ -45,7 +45,6 @@ const CustomDirectoryFields: Fields = { }; const API_KEY = "d8016f96c913cc8b79931cef51b941f5"; -const API_VERSION = "20250101"; const CustomDirectory: PuckComponent = ({ styles, @@ -62,21 +61,13 @@ const CustomDirectory: PuckComponent = ({ setLoading(true); try { - const res = await fetch( - `https://cdn.yextapis.com/v2/accounts/me/entities` + - `?entityIds=${entityIds.join(",")}` + - `&api_key=${API_KEY}` + - `&v=${API_VERSION}` - ); + const res = await fetchData({ + endpoint: "https://cdn.yextapis.com/v2/accounts/me/entities", + apiKey: API_KEY, + entityIds: entityIds.join(","), + }); - if (!res.ok) { - console.error("Failed to fetch entities:", res.status); - return; - } - - const json = await res.json(); - - const fetchedEntities = json.response?.entities ?? []; + const fetchedEntities = res?.entities ?? []; setEntities(fetchedEntities); } catch (error) { @@ -92,7 +83,7 @@ const CustomDirectory: PuckComponent = ({ if (childIds?.length) { fetchEntities(childIds); } - }, [streamDocument]); + }, [streamDocument?.dm_childEntityIds]); const handleClick = (item: any) => { const childIds = item.dm_childEntityIds; @@ -106,7 +97,7 @@ const CustomDirectory: PuckComponent = ({ {loading && <>} - + {slots?.HeadingSlot && }{" "} { + try { + const url = new URL(endpoint); + + url.searchParams.set("api_key", apiKey); + url.searchParams.set("v", "20250101"); + + if (entityIds?.length) { + url.searchParams.set( + "entityIds", + Array.isArray(entityIds) ? entityIds.join(",") : entityIds + ); + } + + const res = await fetch(url.toString()); + if (!res.ok) { + console.error("Failed to fetch entities:", res.status); + return; + } + + const json = await res.json(); + const fetchedEntities = json.response ?? []; + + return fetchedEntities; + } catch (error) { + console.error("Entity fetch error:", error); + } +}; From 777c8e7b5b0d47f86c207a776ee574bdf1213186 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 23 Feb 2026 14:01:13 +0530 Subject: [PATCH 46/74] moved keys to env vars --- .../CustomDirectory/CustomBreadcrumbs.tsx | 61 ++++++++++++-- .../CustomDirectory/CustomDirectory.tsx | 81 ++++++++++++------- 2 files changed, 106 insertions(+), 36 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx index b68f0c65b8..92cb12af68 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx @@ -6,8 +6,8 @@ import { YextField } from "../../../editor/YextField.tsx"; import { useTemplateProps } from "../../../hooks/useDocument.tsx"; import { ComponentErrorBoundary } from "../../../internal/components/ComponentErrorBoundary.tsx"; import { TranslatableString } from "../../../types/types.ts"; -import { msg } from "../../../utils/i18n/platform.ts"; -import { resolveComponentData } from "../../../utils/index.ts"; +import { msg, pt } from "../../../utils/i18n/platform.ts"; +import { resolveComponentData, themeManagerCn } from "../../../utils/index.ts"; import { backgroundColors, BackgroundStyle, @@ -16,6 +16,7 @@ import { MaybeLink } from "../../atoms/maybeLink.tsx"; import { PageSection } from "../../atoms/pageSection.tsx"; import { VisibilityWrapper } from "../../atoms/visibilityWrapper.tsx"; import { fetchData } from "./utils.ts"; +import { Body } from "../../atoms/body.tsx"; export interface CustomBreadcrumbItem { id: string; @@ -84,16 +85,60 @@ const customBreadcrumbFields: Fields = { ), }; -const API_KEY = "d8016f96c913cc8b79931cef51b941f5"; -const contentEndpoint = "blog"; - const CustomBreadcrumbsComponent = ({ styles, data, + puck, }: WithPuckProps) => { const { t, i18n } = useTranslation(); const separator = "/"; const { document: streamDocument, relativePrefixToRoot } = useTemplateProps(); + const apiKey = streamDocument?._env?.YEXT_PUBLIC_CUSTOM_CONTENT_API_KEY; + const customEndpointName = + streamDocument?._env?.YEXT_PUBLIC_CUSTOM_CONTENT_NAME; + + if (!apiKey || !customEndpointName) { + if (puck?.isEditing) { + const missingMessages: string[] = []; + if (!apiKey) { + missingMessages.push( + pt( + "missingCustomEndpointApiKey", + "Add your custom Content endpoint API key to view this section" + ) + ); + } + if (!customEndpointName) { + missingMessages.push( + pt( + "missingCustomEndpointName", + "Add your custom Content endpoint name to view this section" + ) + ); + } + return ( +
          + + {missingMessages.join("\n")} + +
          + ); + } + + console.warn("Missing required configuration for Custom Breadcrumbs", { + apiKey: !!apiKey, + customEndpointName: !!customEndpointName, + }); + + return <>; + } const directoryRoot = resolveComponentData( data.directoryRoot, @@ -110,8 +155,8 @@ const CustomBreadcrumbsComponent = ({ const fetchBreadcrumbs = async () => { try { const json = await fetchData({ - endpoint: `https://cdn.yextapis.com/v2/accounts/me/content/${contentEndpoint}/${streamDocument.uid}`, - apiKey: API_KEY, + endpoint: `https://cdn.yextapis.com/v2/accounts/me/content/${customEndpointName}/${streamDocument.uid}`, + apiKey: apiKey, }); if (!json) return; @@ -139,7 +184,7 @@ const CustomBreadcrumbsComponent = ({ }; fetchBreadcrumbs(); - }, [streamDocument?.uid, contentEndpoint]); + }, [streamDocument?.uid, customEndpointName]); if (!fetchedBreadcrumbs?.length) { return ; diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx index 0b75b29e3e..e1a6c4487f 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx @@ -1,11 +1,13 @@ import { ComponentConfig, Fields, PuckComponent, Slot } from "@puckeditor/core"; -import React from "react"; +import React, { useEffect, useState, useCallback } from "react"; import { YextField } from "../../../editor/YextField.tsx"; -import { useTemplateProps } from "../../../hooks/useDocument.tsx"; +import { useDocument, useTemplateProps } from "../../../hooks/useDocument.tsx"; import { backgroundColors, BackgroundStyle, msg, + pt, + themeManagerCn, } from "../../../utils/index.ts"; import { Background } from "../../atoms/background.tsx"; import { Body } from "../../atoms/body.tsx"; @@ -44,18 +46,45 @@ const CustomDirectoryFields: Fields = { }), }; -const API_KEY = "d8016f96c913cc8b79931cef51b941f5"; - const CustomDirectory: PuckComponent = ({ styles, slots, puck, }) => { const { document: streamDocument } = useTemplateProps(); + console.log(JSON.stringify(streamDocument)); + const nd = useDocument(); + console.log(JSON.stringify(nd._env)); + console.log(JSON.stringify(puck.metadata)); + + const apiKey = streamDocument?._env?.YEXT_PUBLIC_CUSTOM_CONTENT_API_KEY; + console.log(apiKey); + + const [entities, setEntities] = useState([]); + const [loading, setLoading] = useState(false); + + if (!apiKey) { + if (puck?.isEditing) { + return ( +
          + + {pt( + "missingCustomEndpointApiKey", + "Add you custom Content endpoint API key to view this sectiom" + )} + +
          + ); + } + console.warn("API Key is required for Custom Directory"); + return <>; + } - const [entities, setEntities] = React.useState([]); - const [loading, setLoading] = React.useState(false); - const fetchEntities = async (entityIds: string[]) => { + const fetchEntities = useCallback(async (entityIds: string[]) => { if (!entityIds?.length) return; setLoading(true); @@ -63,45 +92,43 @@ const CustomDirectory: PuckComponent = ({ try { const res = await fetchData({ endpoint: "https://cdn.yextapis.com/v2/accounts/me/entities", - apiKey: API_KEY, + apiKey: apiKey, entityIds: entityIds.join(","), }); const fetchedEntities = res?.entities ?? []; - setEntities(fetchedEntities); } catch (error) { console.error("Entity fetch error:", error); } finally { setLoading(false); } - }; + }, []); - React.useEffect(() => { + useEffect(() => { const childIds = streamDocument?.dm_childEntityIds; + if (childIds?.length) fetchEntities(childIds); + }, [streamDocument?.dm_childEntityIds, fetchEntities]); - if (childIds?.length) { - fetchEntities(childIds); - } - }, [streamDocument?.dm_childEntityIds]); - - const handleClick = (item: any) => { - const childIds = item.dm_childEntityIds; - - if (childIds?.length) { - fetchEntities(childIds); - } - }; + const handleClick = useCallback( + (item: any) => { + const childIds = item.dm_childEntityIds; + if (childIds?.length) fetchEntities(childIds); + }, + [fetchEntities] + ); return ( {loading && <>} + - {slots?.HeadingSlot && }{" "} + {slots?.HeadingSlot && } +
            {entities.map((item, index) => { @@ -130,7 +157,7 @@ const CustomDirectory: PuckComponent = ({ } }} > - {item.name} + {item.name}
    • @@ -148,9 +175,7 @@ export const CustomDirectoryComponent: ComponentConfig<{ props: CustomDirectoryProps; }> = { label: msg("components.CustomDirectory", "Custom Directory"), - fields: CustomDirectoryFields, - defaultProps: { slots: { HeadingSlot: [ From 011c2fcf66116f9ef6568bcb1fa5afe6d00fd796 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 23 Feb 2026 14:22:30 +0530 Subject: [PATCH 47/74] nit: removed classic search --- .../categories/PageSectionCategory.tsx | 6 - .../SearchSectionClassic/ClassicSearch.tsx | 255 ------------------ .../SearchSectionClassic/Layout.tsx | 27 -- .../src/components/pageSections/index.ts | 4 - 4 files changed, 292 deletions(-) delete mode 100644 packages/visual-editor/src/components/pageSections/SearchSectionClassic/ClassicSearch.tsx delete mode 100644 packages/visual-editor/src/components/pageSections/SearchSectionClassic/Layout.tsx diff --git a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx index 180d3b1bfb..bd0de8eaa3 100644 --- a/packages/visual-editor/src/components/categories/PageSectionCategory.tsx +++ b/packages/visual-editor/src/components/categories/PageSectionCategory.tsx @@ -64,10 +64,6 @@ import { ProfessionalHeroSection, ProfessionalHeroSectionProps, } from "../pageSections/ProfessionalHeroSection.tsx"; -import { - ClassicSearchComponent, - ClassicSearchProps, -} from "../pageSections/index.ts"; import { SearchComponentProps, SearchComponent, @@ -102,7 +98,6 @@ export interface PageSectionCategoryProps { TeamSection: TeamSectionProps; TestimonialSection: TestimonialSectionProps; VideoSection: VideoSectionProps; - ClassicSearchComponent: ClassicSearchProps; SearchComponent: SearchComponentProps; } @@ -127,7 +122,6 @@ export const PageSectionCategoryComponents = { TeamSection, TestimonialSection, VideoSection, - ClassicSearchComponent, SearchComponent, }; diff --git a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/ClassicSearch.tsx b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/ClassicSearch.tsx deleted file mode 100644 index 1c9a0458ba..0000000000 --- a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/ClassicSearch.tsx +++ /dev/null @@ -1,255 +0,0 @@ -import { ComponentConfig, Fields, WithPuckProps } from "@puckeditor/core"; -import { - CloudRegion, - Environment, - provideHeadless, - SearchConfig, - SearchHeadlessProvider, -} from "@yext/search-headless-react"; -import { - DefaultRawDataType, - SearchBar, - SearchI18nextProvider, - SectionProps, - StandardCard, - UniversalResults, -} from "@yext/search-ui-react"; -import React from "react"; -import { YextField } from "../../../editor/YextField.tsx"; -import { useDocument } from "../../../hooks/useDocument.tsx"; -import { msg } from "../../../utils/index.ts"; -import { PageSection } from "../../atoms/pageSection.tsx"; - -type VerticalLayout = "Grid" | "Flex" | "Map"; - -interface VerticalConfig { - label: string; - verticalKey: string; - layout: VerticalLayout; - universalLimit: number; - verticalLimit: number; -} - -export interface ClassicSearchProps { - verticals: VerticalConfig[]; -} - -const locatorFields: Fields = { - verticals: { - label: msg("fields.verticals", "Verticals"), - type: "array", - arrayFields: { - label: YextField(msg("fields.label", "Label"), { type: "text" }), - - verticalKey: YextField(msg("fields.verticalKey", "Vertical Key"), { - type: "text", - }), - - layout: YextField(msg("fields.layout", "Layout"), { - type: "radio", - options: [ - { label: "Grid", value: "Grid" }, - { label: "Flex", value: "Flex" }, - { label: "Map", value: "Map" }, - ], - }), - - universalLimit: YextField( - msg("fields.universalLimit", "Universal Limit"), - { type: "number" } - ), - - verticalLimit: YextField(msg("fields.verticalLimit", "Vertical Limit"), { - type: "number", - }), - }, - getItemSummary: (item) => item?.label || "Vertical", - }, -}; -const EXPERIENCE_VERSION = "PRODUCTION"; - -export const searchConfig: SearchConfig = { - apiKey: "", - experienceKey: "", - locale: "en", - experienceVersion: EXPERIENCE_VERSION, - cloudRegion: CloudRegion.US, - environment: Environment.PROD, -}; -const ClassicSearchWrapper = (props: WithPuckProps) => { - const streamDocument = useDocument(); - const { searchAnalyticsConfig, searcher } = React.useMemo(() => { - const searchHeadlessConfig = provideHeadless(searchConfig); - if (searchHeadlessConfig === undefined) { - return { searchAnalyticsConfig: undefined, searcher: undefined }; - } - - const searchAnalyticsConfig = provideHeadless(searchConfig); - return { - searchAnalyticsConfig, - searcher: provideHeadless(searchConfig), - }; - }, [streamDocument.id, streamDocument.locale]); - - if (searcher === undefined || searchAnalyticsConfig === undefined) { - console.warn( - "Could not create Locator component because Search Headless or Search Analytics config is undefined. Please check your environment variables." - ); - return <>; - } - searcher.setSessionTrackingEnabled(true); - return ( - - - {/* */} - - {/* */} - - - ); -}; - -export const verticalConfigMap = { - faq: { - label: "FAQs", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - "financial-professional": { - label: "Professionals", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - locations: { - label: "Locations", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - jobs: { - label: "Jobs", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - events: { - label: "Events", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, - - product: { - label: "Products", - viewAllButton: true, - CardComponent: StandardCard, - universalLimit: 3, - verticalLimit: 5, - }, -}; -const SearchInternal = ({ verticals }: WithPuckProps) => { - const verticalConfigMap = React.useMemo( - () => buildVerticalConfigMap(verticals), - [verticals] - ); - - return ( - - - - - ); -}; -const buildVerticalConfigMap = (verticals: VerticalConfig[]) => { - const map: Record = {}; - - verticals.forEach((v) => { - const Section = (props: SectionProps) => ( - - ); - - map[v.verticalKey] = { - label: v.label, - viewAllButton: true, - SectionComponent: Section, - CardComponent: StandardCard, - universalLimit: v.universalLimit, - verticalLimit: v.verticalLimit, - }; - }); - - return map; -}; - -const SearchLayout = ({ - layout, - data: { results, CardComponent }, -}: { - layout: VerticalLayout; - data: SectionProps; -}) => { - if (!CardComponent) return null; - - const className = - layout === "Grid" - ? "grid grid-cols-3 gap-4 w-full" - : layout === "Flex" - ? "flex flex-col gap-4 w-full" - : "flex flex-col w-full"; - - return ( -
      - {results.map((r, i) => ( - - ))} -
      - ); -}; - -export const ClassicSearchComponent: ComponentConfig<{ - props: ClassicSearchProps; -}> = { - label: msg("components.classicSearch", "Classic Search"), - fields: locatorFields, - - defaultProps: { - verticals: [ - { - label: "FAQs", - verticalKey: "faq", - layout: "Flex", - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Products", - verticalKey: "product", - layout: "Grid", - universalLimit: 3, - verticalLimit: 5, - }, - { - label: "Locations", - verticalKey: "locations", - layout: "Map", - universalLimit: 3, - verticalLimit: 5, - }, - ], - }, - - render: (props) => , -}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Layout.tsx b/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Layout.tsx deleted file mode 100644 index 8c9a85eb5a..0000000000 --- a/packages/visual-editor/src/components/pageSections/SearchSectionClassic/Layout.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import { SectionProps, DefaultRawDataType } from "@yext/search-ui-react"; - -// Define Props -interface LayoutProps { - layoutType?: "Grid" | "Flex"; - data: SectionProps; -} - -export const SearchLayout = ({ - layoutType = "Grid", - data: { results, header, CardComponent }, -}: LayoutProps) => { - console.log(header); - - if (!CardComponent) { - return
      Missing Card Component
      ; - } - const classNames = - layoutType === "Grid" ? "grid grid-cols-3 gap-4 w-full" : "flex w-full"; - return ( -
      - {results.map((r: any, index: number) => ( - - ))} -
      - ); -}; diff --git a/packages/visual-editor/src/components/pageSections/index.ts b/packages/visual-editor/src/components/pageSections/index.ts index b0d31df388..8db931e412 100644 --- a/packages/visual-editor/src/components/pageSections/index.ts +++ b/packages/visual-editor/src/components/pageSections/index.ts @@ -86,10 +86,6 @@ export { type ProfessionalHeroSectionProps, type ProfessionalHeroStyles, } from "./ProfessionalHeroSection.tsx"; -export { - ClassicSearchComponent, - type ClassicSearchProps, -} from "./SearchSectionClassic/ClassicSearch.tsx"; export { SearchComponent, type SearchComponentProps, From 060c088c89304a6567e2e7ab8ec88da97cd7c9a1 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 23 Feb 2026 22:17:00 +0530 Subject: [PATCH 48/74] Removed logs --- .../pageSections/CustomDirectory/CustomDirectory.tsx | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx index e1a6c4487f..bb30620d31 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomDirectory.tsx @@ -1,7 +1,7 @@ import { ComponentConfig, Fields, PuckComponent, Slot } from "@puckeditor/core"; -import React, { useEffect, useState, useCallback } from "react"; +import { useCallback, useEffect, useState } from "react"; import { YextField } from "../../../editor/YextField.tsx"; -import { useDocument, useTemplateProps } from "../../../hooks/useDocument.tsx"; +import { useTemplateProps } from "../../../hooks/useDocument.tsx"; import { backgroundColors, BackgroundStyle, @@ -52,13 +52,8 @@ const CustomDirectory: PuckComponent = ({ puck, }) => { const { document: streamDocument } = useTemplateProps(); - console.log(JSON.stringify(streamDocument)); - const nd = useDocument(); - console.log(JSON.stringify(nd._env)); - console.log(JSON.stringify(puck.metadata)); const apiKey = streamDocument?._env?.YEXT_PUBLIC_CUSTOM_CONTENT_API_KEY; - console.log(apiKey); const [entities, setEntities] = useState([]); const [loading, setLoading] = useState(false); From 7b853d24e5356a4656de6c05c29d459ca799a00d Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 23 Feb 2026 22:31:09 +0530 Subject: [PATCH 49/74] Interactive vertical clicks --- .../SearchSection/SearchResultsSlot.tsx | 137 ++++++++++++------ 1 file changed, 95 insertions(+), 42 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 14122bbee3..d487c18329 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -1,6 +1,12 @@ -import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; +import { + ComponentConfig, + Fields, + PuckComponent, + usePuck, +} from "@puckeditor/core"; import { useSearchActions, useSearchState } from "@yext/search-headless-react"; import { + Facets, GenerativeDirectAnswer, StandardCard, UniversalResults, @@ -100,34 +106,29 @@ const SearchResultsSlotInternal: PuckComponent = ( ) => { const { data: { verticals }, + puck, } = props; - // const { appState } = usePuck(); - // const arrayState = appState.ui.arrayState; - - // const arrayKey = Object.keys(arrayState || {}).find((key) => - // key.includes("_object_data_verticals") - // ); - - // let selectedVerticalIndex: number | null = null; - // if (arrayKey) { - // const verticalArrayState = arrayState[arrayKey]; - // const openId = verticalArrayState?.openId; - - // const selectedItem = verticalArrayState?.items?.find( - // (item) => item._arrayId === openId - // ); - - // selectedVerticalIndex = selectedItem?._currentIndex ?? null; - // } + const { + appState: { + ui: { arrayState }, + }, + } = usePuck(); - // console.log("Selected vertical index:", selectedVerticalIndex); + const arrayKey = React.useMemo(() => { + if (!arrayState) return undefined; + return Object.keys(arrayState).find((key) => + key.includes("_object_data_verticals") + ); + }, [arrayState]); const searchActions = useSearchActions(); const isLoading = useSearchState((s) => s.searchStatus.isLoading); const searchTerm = useSearchState((s) => s.query.input); - const [verticalKey, setVerticalKey] = useState(); const gdaLoading = useSearchState((s) => s.generativeDirectAnswer.isLoading); + + const [verticalKey, setVerticalKey] = useState(null); + const verticalConfigMap = React.useMemo( () => buildVerticalConfigMap(verticals), [verticals] @@ -138,6 +139,11 @@ const SearchResultsSlotInternal: PuckComponent = ( [verticals] ); + const currentVerticalConfig = React.useMemo( + () => verticals.find((v) => v.verticalKey === verticalKey), + [verticals, verticalKey] + ); + React.useEffect(() => { if (!isValidVerticalConfig(verticals)) { console.warn("Skipping search: invalid vertical config", verticals); @@ -161,20 +167,54 @@ const SearchResultsSlotInternal: PuckComponent = ( } }, [verticals, searchTerm, universalLimit, searchActions, verticalKey]); - const currentVerticalConfig = React.useMemo(() => { - if (!verticalKey) return undefined; - return verticals.find((v) => v.verticalKey === verticalKey); - }, [verticals, verticalKey]); + React.useEffect(() => { + if (!arrayKey || !puck.isEditing) return; + + const verticalArrayState = arrayState[arrayKey]; + const openId = verticalArrayState?.openId; + + const selectedItem = verticalArrayState?.items?.find( + (item) => item._arrayId === openId + ); + + const index = selectedItem?._currentIndex; + if (typeof index !== "number") return; + + const selectedConfig = verticals[index]; + + const nextKey = + selectedConfig?.pageType === "universal" + ? null + : (selectedConfig?.verticalKey ?? null); + + if (nextKey !== verticalKey) { + setVerticalKey(nextKey); + } + }, [arrayKey, arrayState, verticals, verticalKey, puck.isEditing]); return ( -
      +
        {verticals.map((item) => (
      • setVerticalKey(item.verticalKey)} - className="px-5 pt-1.5 pb-1 tracking-[1.1px] mb-0 hover:cursor-pointer" + onClick={() => + setVerticalKey( + item.pageType === "universal" + ? null + : (item.verticalKey ?? null) + ) + } + className={`px-5 pt-1.5 pb-3 tracking-[1.1px] mb-0 hover:cursor-pointer ${ + item.pageType === "universal" + ? verticalKey === null + ? "border-b-2 border-black" + : "" + : verticalKey === item.verticalKey + ? "border-b-2 border-black" + : "" + }`} > {item.label} @@ -200,21 +240,34 @@ const SearchResultsSlotInternal: PuckComponent = ( ) : ( - ( - item.verticalKey === verticalKey) - ?.cardType - } +
        +
        + - )} - /> +
        +
        + ( + item.verticalKey === verticalKey + )?.cardType + } + /> + )} + /> +
        +
        )} ) : ( From f78663501c384a1e8f4a3a098c1755af067ab0bd Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 23 Feb 2026 23:04:30 +0530 Subject: [PATCH 50/74] removed keys --- .../pageSections/SearchSection/Search.tsx | 49 ++++---- .../SearchSection/SearchBarSlot.tsx | 15 ++- .../SearchSection/useTypeEffect.ts | 119 ++++++++---------- 3 files changed, 94 insertions(+), 89 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index b60bb9d188..d15db3566a 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -36,40 +36,45 @@ const locatorFields: Fields = { }; const EXPERIENCE_VERSION = "PRODUCTION"; -export const searchConfig: SearchConfig = { - apiKey: "fb73f1bf6a262bc3255bcb938088204f", - experienceKey: "ukg-fins-rk-test-dont-touch", - locale: "en", - experienceVersion: EXPERIENCE_VERSION, - cloudRegion: CloudRegion.US, - environment: Environment.PROD, -}; - const SearchWrapper: PuckComponent = ({ slots, puck, }) => { const streamDocument = useDocument(); - const { searchAnalyticsConfig, searcher } = React.useMemo(() => { - const searchHeadlessConfig = provideHeadless(searchConfig); - if (searchHeadlessConfig === undefined) { - return { searchAnalyticsConfig: undefined, searcher: undefined }; + const searchConfig: SearchConfig = React.useMemo( + () => ({ + apiKey: streamDocument?._env?.YEXT_PUBLIC_ADV_SEARCH_API_KEY, + experienceKey: streamDocument?._env?.YEXT_PUBLIC_ADV_SEARCH_EXP_KEY, + locale: streamDocument?.locale ?? "en", + experienceVersion: EXPERIENCE_VERSION, + cloudRegion: CloudRegion.US, + environment: Environment.PROD, + }), + [ + streamDocument?._env?.YEXT_PUBLIC_ADV_SEARCH_API_KEY, + streamDocument?._env?.YEXT_PUBLIC_ADV_SEARCH_EXP_KEY, + streamDocument?.locale, + ] + ); + + const searcher = React.useMemo(() => { + if (!searchConfig.apiKey || !searchConfig.experienceKey) { + return undefined; } + return provideHeadless(searchConfig); + }, [searchConfig]); - const searchAnalyticsConfig = provideHeadless(searchConfig); - return { - searchAnalyticsConfig, - searcher: provideHeadless(searchConfig), - }; - }, [streamDocument.id, streamDocument.locale]); + React.useEffect(() => { + searcher?.setSessionTrackingEnabled(true); + }, [searcher]); - if (searcher === undefined || searchAnalyticsConfig === undefined) { + if (!searcher) { console.warn( - "Could not create Locator component because Search Headless or Search Analytics config is undefined. Please check your environment variables." + "Search Headless could not be initialized. Check API key / Experience key." ); return <>; } - searcher.setSessionTrackingEnabled(true); + return ( diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx index 6520f28325..33a608b1fc 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -11,8 +11,12 @@ import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; import { useTypingEffect } from "./useTypeEffect.ts"; import { createVisualAutocompleteConfig } from "./utils.tsx"; +import { Environment } from "@yext/search-headless-react"; export interface SearchBarSlotProps { + apiKey?: string; + experienceKey?: string; + environment?: Environment; styles: { showIcon: boolean; voiceSearch: boolean; @@ -86,6 +90,9 @@ const searchBarSlotFields: Fields = { }; const SearchBarSlotInternal: PuckComponent = ({ + apiKey, + experienceKey, + environment = Environment.PROD, styles: { showIcon = false, voiceSearch = false, @@ -96,7 +103,9 @@ const SearchBarSlotInternal: PuckComponent = ({ }, }: SearchBarSlotProps) => { const { placeholder } = useTypingEffect({ - env: "PRODUCTION", + apiKey, + experienceKey, + environment, }); const visualAutocompleteConfig = createVisualAutocompleteConfig( @@ -112,8 +121,8 @@ const SearchBarSlotInternal: PuckComponent = ({ placeholder={isTypingEffect ? placeholder : "Search here...."} customCssClasses={{ searchBarContainer: - "w-full h-14 rounded-md [&>div]:border [&>div]:rounded-md !mb-0 relative" + - +(isTypingEffect ? "isTypingEffect" : ""), + "w-full h-14 rounded-md [&>div]:border [&>div]:rounded-md !mb-0 relative " + + (isTypingEffect ? "isTypingEffect" : ""), searchButtonContainer: voiceSearch ? "ml-14 my-auto" : showIcon diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts index 928c08f314..5ea474eb81 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts @@ -1,10 +1,17 @@ import { useState, useEffect, useRef } from "react"; +import { Environment } from "@yext/search-headless-react"; -interface TypeEffectProps { - env: "PRODUCTION" | "SANDBOX"; +interface TypingEffectConfig { + apiKey?: string; + experienceKey?: string; + environment: Environment; } -export const useTypingEffect = ({ env }: TypeEffectProps) => { +export const useTypingEffect = ({ + apiKey, + experienceKey, + environment, +}: TypingEffectConfig) => { const [queryPrompts, setQueryPrompts] = useState([]); const [placeholder, setPlaceholder] = useState(""); @@ -13,77 +20,61 @@ export const useTypingEffect = ({ env }: TypeEffectProps) => { const isDeletingRef = useRef(false); const timerRef = useRef(null); - // Fetch prompts - const fetchPrompts = async () => { - const base = env === "PRODUCTION" ? "cdn" : "sbx-cdn"; - - const url = `https://${base}.yextapis.com/v2/accounts/me/search/autocomplete?v=20190101&api_key=fb73f1bf6a262bc3255bcb938088204f&sessionTrackingEnabled=false&experienceKey=ukg-fins-rk-test-dont-touch&input=`; - - try { - const res = await fetch(url); - const data = await res.json(); - - const prompts = data.response.results.map((item: any) => item.value); - - setQueryPrompts(prompts); - } catch (err) { - console.error("TypingEffect fetch failed:", err); - } - }; + useEffect(() => { + if (!apiKey || !experienceKey) return; - // Typing loop - const runTyping = () => { - const currentWord = queryPrompts[indexRef.current]; + const base = environment === Environment.PROD ? "cdn" : "sbx-cdn"; - if (!currentWord) return; + const url = `https://${base}.yextapis.com/v2/accounts/me/search/autocomplete?v=20190101&api_key=${apiKey}&sessionTrackingEnabled=false&experienceKey=${experienceKey}&input=`; - if (!isDeletingRef.current) { - // typing forward - charIndexRef.current++; - setPlaceholder(currentWord.slice(0, charIndexRef.current)); + fetch(url) + .then((res) => res.json()) + .then((data) => { + const prompts = + data?.response?.results?.map((item: any) => item.value) ?? []; + setQueryPrompts(prompts); + }) + .catch((err) => console.error("TypingEffect fetch failed:", err)); + }, [apiKey, experienceKey, environment]); - if (charIndexRef.current === currentWord.length) { - isDeletingRef.current = true; - timerRef.current = window.setTimeout(runTyping, 1500); - return; - } - } else { - // deleting backward - charIndexRef.current--; - setPlaceholder(currentWord.slice(0, charIndexRef.current)); - - if (charIndexRef.current === 0) { - isDeletingRef.current = false; - indexRef.current = (indexRef.current + 1) % queryPrompts.length; + useEffect(() => { + if (queryPrompts.length === 0) return; + + const runTyping = () => { + const currentWord = queryPrompts[indexRef.current]; + if (!currentWord) return; + + if (!isDeletingRef.current) { + charIndexRef.current++; + setPlaceholder(currentWord.slice(0, charIndexRef.current)); + + if (charIndexRef.current === currentWord.length) { + isDeletingRef.current = true; + timerRef.current = window.setTimeout(runTyping, 1500); + return; + } + } else { + charIndexRef.current--; + setPlaceholder(currentWord.slice(0, charIndexRef.current)); + + if (charIndexRef.current === 0) { + isDeletingRef.current = false; + indexRef.current = (indexRef.current + 1) % queryPrompts.length; + } } - } - - timerRef.current = window.setTimeout( - runTyping, - isDeletingRef.current ? 50 : 100 - ); - }; - // Fetch once - useEffect(() => { - fetchPrompts(); - }, [env]); + timerRef.current = window.setTimeout( + runTyping, + isDeletingRef.current ? 50 : 100 + ); + }; - // Start typing when prompts loaded - useEffect(() => { - if (queryPrompts.length > 0) { - runTyping(); - } + runTyping(); return () => { - if (timerRef.current) { - clearTimeout(timerRef.current); - } + if (timerRef.current) clearTimeout(timerRef.current); }; }, [queryPrompts]); - return { - placeholder, - queryPrompts, - }; + return { placeholder }; }; From 7acf1508c5e1e74e4e1ceca3017f3c4ed87cfad5 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 23 Feb 2026 23:29:35 +0530 Subject: [PATCH 51/74] keys back in --- .../pageSections/SearchSection/Search.tsx | 49 ++++---- .../SearchSection/SearchBarSlot.tsx | 15 +-- .../SearchSection/useTypeEffect.ts | 119 ++++++++++-------- 3 files changed, 89 insertions(+), 94 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index d15db3566a..b60bb9d188 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -36,45 +36,40 @@ const locatorFields: Fields = { }; const EXPERIENCE_VERSION = "PRODUCTION"; +export const searchConfig: SearchConfig = { + apiKey: "fb73f1bf6a262bc3255bcb938088204f", + experienceKey: "ukg-fins-rk-test-dont-touch", + locale: "en", + experienceVersion: EXPERIENCE_VERSION, + cloudRegion: CloudRegion.US, + environment: Environment.PROD, +}; + const SearchWrapper: PuckComponent = ({ slots, puck, }) => { const streamDocument = useDocument(); - const searchConfig: SearchConfig = React.useMemo( - () => ({ - apiKey: streamDocument?._env?.YEXT_PUBLIC_ADV_SEARCH_API_KEY, - experienceKey: streamDocument?._env?.YEXT_PUBLIC_ADV_SEARCH_EXP_KEY, - locale: streamDocument?.locale ?? "en", - experienceVersion: EXPERIENCE_VERSION, - cloudRegion: CloudRegion.US, - environment: Environment.PROD, - }), - [ - streamDocument?._env?.YEXT_PUBLIC_ADV_SEARCH_API_KEY, - streamDocument?._env?.YEXT_PUBLIC_ADV_SEARCH_EXP_KEY, - streamDocument?.locale, - ] - ); - - const searcher = React.useMemo(() => { - if (!searchConfig.apiKey || !searchConfig.experienceKey) { - return undefined; + const { searchAnalyticsConfig, searcher } = React.useMemo(() => { + const searchHeadlessConfig = provideHeadless(searchConfig); + if (searchHeadlessConfig === undefined) { + return { searchAnalyticsConfig: undefined, searcher: undefined }; } - return provideHeadless(searchConfig); - }, [searchConfig]); - React.useEffect(() => { - searcher?.setSessionTrackingEnabled(true); - }, [searcher]); + const searchAnalyticsConfig = provideHeadless(searchConfig); + return { + searchAnalyticsConfig, + searcher: provideHeadless(searchConfig), + }; + }, [streamDocument.id, streamDocument.locale]); - if (!searcher) { + if (searcher === undefined || searchAnalyticsConfig === undefined) { console.warn( - "Search Headless could not be initialized. Check API key / Experience key." + "Could not create Locator component because Search Headless or Search Analytics config is undefined. Please check your environment variables." ); return <>; } - + searcher.setSessionTrackingEnabled(true); return ( diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx index 33a608b1fc..6520f28325 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -11,12 +11,8 @@ import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; import { useTypingEffect } from "./useTypeEffect.ts"; import { createVisualAutocompleteConfig } from "./utils.tsx"; -import { Environment } from "@yext/search-headless-react"; export interface SearchBarSlotProps { - apiKey?: string; - experienceKey?: string; - environment?: Environment; styles: { showIcon: boolean; voiceSearch: boolean; @@ -90,9 +86,6 @@ const searchBarSlotFields: Fields = { }; const SearchBarSlotInternal: PuckComponent = ({ - apiKey, - experienceKey, - environment = Environment.PROD, styles: { showIcon = false, voiceSearch = false, @@ -103,9 +96,7 @@ const SearchBarSlotInternal: PuckComponent = ({ }, }: SearchBarSlotProps) => { const { placeholder } = useTypingEffect({ - apiKey, - experienceKey, - environment, + env: "PRODUCTION", }); const visualAutocompleteConfig = createVisualAutocompleteConfig( @@ -121,8 +112,8 @@ const SearchBarSlotInternal: PuckComponent = ({ placeholder={isTypingEffect ? placeholder : "Search here...."} customCssClasses={{ searchBarContainer: - "w-full h-14 rounded-md [&>div]:border [&>div]:rounded-md !mb-0 relative " + - (isTypingEffect ? "isTypingEffect" : ""), + "w-full h-14 rounded-md [&>div]:border [&>div]:rounded-md !mb-0 relative" + + +(isTypingEffect ? "isTypingEffect" : ""), searchButtonContainer: voiceSearch ? "ml-14 my-auto" : showIcon diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts index 5ea474eb81..928c08f314 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts @@ -1,17 +1,10 @@ import { useState, useEffect, useRef } from "react"; -import { Environment } from "@yext/search-headless-react"; -interface TypingEffectConfig { - apiKey?: string; - experienceKey?: string; - environment: Environment; +interface TypeEffectProps { + env: "PRODUCTION" | "SANDBOX"; } -export const useTypingEffect = ({ - apiKey, - experienceKey, - environment, -}: TypingEffectConfig) => { +export const useTypingEffect = ({ env }: TypeEffectProps) => { const [queryPrompts, setQueryPrompts] = useState([]); const [placeholder, setPlaceholder] = useState(""); @@ -20,61 +13,77 @@ export const useTypingEffect = ({ const isDeletingRef = useRef(false); const timerRef = useRef(null); - useEffect(() => { - if (!apiKey || !experienceKey) return; + // Fetch prompts + const fetchPrompts = async () => { + const base = env === "PRODUCTION" ? "cdn" : "sbx-cdn"; - const base = environment === Environment.PROD ? "cdn" : "sbx-cdn"; + const url = `https://${base}.yextapis.com/v2/accounts/me/search/autocomplete?v=20190101&api_key=fb73f1bf6a262bc3255bcb938088204f&sessionTrackingEnabled=false&experienceKey=ukg-fins-rk-test-dont-touch&input=`; - const url = `https://${base}.yextapis.com/v2/accounts/me/search/autocomplete?v=20190101&api_key=${apiKey}&sessionTrackingEnabled=false&experienceKey=${experienceKey}&input=`; + try { + const res = await fetch(url); + const data = await res.json(); - fetch(url) - .then((res) => res.json()) - .then((data) => { - const prompts = - data?.response?.results?.map((item: any) => item.value) ?? []; - setQueryPrompts(prompts); - }) - .catch((err) => console.error("TypingEffect fetch failed:", err)); - }, [apiKey, experienceKey, environment]); + const prompts = data.response.results.map((item: any) => item.value); - useEffect(() => { - if (queryPrompts.length === 0) return; - - const runTyping = () => { - const currentWord = queryPrompts[indexRef.current]; - if (!currentWord) return; - - if (!isDeletingRef.current) { - charIndexRef.current++; - setPlaceholder(currentWord.slice(0, charIndexRef.current)); - - if (charIndexRef.current === currentWord.length) { - isDeletingRef.current = true; - timerRef.current = window.setTimeout(runTyping, 1500); - return; - } - } else { - charIndexRef.current--; - setPlaceholder(currentWord.slice(0, charIndexRef.current)); - - if (charIndexRef.current === 0) { - isDeletingRef.current = false; - indexRef.current = (indexRef.current + 1) % queryPrompts.length; - } + setQueryPrompts(prompts); + } catch (err) { + console.error("TypingEffect fetch failed:", err); + } + }; + + // Typing loop + const runTyping = () => { + const currentWord = queryPrompts[indexRef.current]; + + if (!currentWord) return; + + if (!isDeletingRef.current) { + // typing forward + charIndexRef.current++; + setPlaceholder(currentWord.slice(0, charIndexRef.current)); + + if (charIndexRef.current === currentWord.length) { + isDeletingRef.current = true; + timerRef.current = window.setTimeout(runTyping, 1500); + return; } + } else { + // deleting backward + charIndexRef.current--; + setPlaceholder(currentWord.slice(0, charIndexRef.current)); + + if (charIndexRef.current === 0) { + isDeletingRef.current = false; + indexRef.current = (indexRef.current + 1) % queryPrompts.length; + } + } - timerRef.current = window.setTimeout( - runTyping, - isDeletingRef.current ? 50 : 100 - ); - }; + timerRef.current = window.setTimeout( + runTyping, + isDeletingRef.current ? 50 : 100 + ); + }; + + // Fetch once + useEffect(() => { + fetchPrompts(); + }, [env]); - runTyping(); + // Start typing when prompts loaded + useEffect(() => { + if (queryPrompts.length > 0) { + runTyping(); + } return () => { - if (timerRef.current) clearTimeout(timerRef.current); + if (timerRef.current) { + clearTimeout(timerRef.current); + } }; }, [queryPrompts]); - return { placeholder }; + return { + placeholder, + queryPrompts, + }; }; From 446d0f3e79bdc0ec30744fcedaa612dda34a1a28 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Mon, 23 Feb 2026 23:59:28 +0530 Subject: [PATCH 52/74] nit: typo --- .../components/pageSections/SearchSection/SearchBarSlot.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx index 6520f28325..e65cf00899 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -112,8 +112,8 @@ const SearchBarSlotInternal: PuckComponent = ({ placeholder={isTypingEffect ? placeholder : "Search here...."} customCssClasses={{ searchBarContainer: - "w-full h-14 rounded-md [&>div]:border [&>div]:rounded-md !mb-0 relative" + - +(isTypingEffect ? "isTypingEffect" : ""), + "w-full h-14 rounded-md [&>div]:border [&>div]:rounded-md !mb-0 relative " + + (isTypingEffect ? "isTypingEffect" : ""), searchButtonContainer: voiceSearch ? "ml-14 my-auto" : showIcon From d6d8edc4442047d88913ce1f86310139bd036857 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 24 Feb 2026 01:47:09 +0530 Subject: [PATCH 53/74] fixed facets width --- .../SearchSection/SearchResultsSlot.tsx | 70 ++++++++----------- 1 file changed, 31 insertions(+), 39 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index d487c18329..0c94907e17 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -1,9 +1,4 @@ -import { - ComponentConfig, - Fields, - PuckComponent, - usePuck, -} from "@puckeditor/core"; +import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; import { useSearchActions, useSearchState } from "@yext/search-headless-react"; import { Facets, @@ -17,6 +12,7 @@ import { FaEllipsisV } from "react-icons/fa"; import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; import Cards from "./Cards.tsx"; +import { MapComponent } from "./MapComponent.tsx"; import { defaultSearchResultsProps, VerticalConfigProps, @@ -27,7 +23,8 @@ import { buildVerticalConfigMap, isValidVerticalConfig, } from "./utils.tsx"; -import { MapComponent } from "./MapComponent.tsx"; +//@ts-ignore +import "./search.css"; export interface SearchResultsSlotProps { data: { verticals: VerticalConfigProps[] }; @@ -109,24 +106,19 @@ const SearchResultsSlotInternal: PuckComponent = ( puck, } = props; - const { - appState: { - ui: { arrayState }, - }, - } = usePuck(); + // React.useEffect(() => { + // if (!puck?.isEditing) return; - const arrayKey = React.useMemo(() => { - if (!arrayState) return undefined; - return Object.keys(arrayState).find((key) => - key.includes("_object_data_verticals") - ); - }, [arrayState]); + // const arrayState = puck.appState?.ui?.arrayState; + // if (!arrayState) return; + // // safe logic here + // }, [puck]); const searchActions = useSearchActions(); const isLoading = useSearchState((s) => s.searchStatus.isLoading); const searchTerm = useSearchState((s) => s.query.input); const gdaLoading = useSearchState((s) => s.generativeDirectAnswer.isLoading); - + const facetsLength = useSearchState((s) => s.filters.facets)?.length; const [verticalKey, setVerticalKey] = useState(null); const verticalConfigMap = React.useMemo( @@ -167,30 +159,30 @@ const SearchResultsSlotInternal: PuckComponent = ( } }, [verticals, searchTerm, universalLimit, searchActions, verticalKey]); - React.useEffect(() => { - if (!arrayKey || !puck.isEditing) return; + // React.useEffect(() => { + // if (!arrayKey || !puck.isEditing) return; - const verticalArrayState = arrayState[arrayKey]; - const openId = verticalArrayState?.openId; + // const verticalArrayState = arrayState[arrayKey]; + // const openId = verticalArrayState?.openId; - const selectedItem = verticalArrayState?.items?.find( - (item) => item._arrayId === openId - ); + // const selectedItem = verticalArrayState?.items?.find( + // (item) => item._arrayId === openId + // ); - const index = selectedItem?._currentIndex; - if (typeof index !== "number") return; + // const index = selectedItem?._currentIndex; + // if (typeof index !== "number") return; - const selectedConfig = verticals[index]; + // const selectedConfig = verticals[index]; - const nextKey = - selectedConfig?.pageType === "universal" - ? null - : (selectedConfig?.verticalKey ?? null); + // const nextKey = + // selectedConfig?.pageType === "universal" + // ? null + // : (selectedConfig?.verticalKey ?? null); - if (nextKey !== verticalKey) { - setVerticalKey(nextKey); - } - }, [arrayKey, arrayState, verticals, verticalKey, puck.isEditing]); + // if (nextKey !== verticalKey) { + // setVerticalKey(nextKey); + // } + // }, [arrayKey, arrayState, verticals, verticalKey, puck.isEditing]); return (
        @@ -242,10 +234,10 @@ const SearchResultsSlotInternal: PuckComponent = ( ) : (
        From b04fef7385e4dc4c4c01cf3db4b841d37acd9b46 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 24 Feb 2026 02:28:09 +0530 Subject: [PATCH 54/74] dynamic vertical props --- .../pageSections/SearchSection/Search.tsx | 3 +- .../SearchSection/SearchResultsSlot.tsx | 117 +++++++++++------- .../visual-editor/src/components/styles.css | 1 + 3 files changed, 71 insertions(+), 50 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index b60bb9d188..c76f390d96 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -1,3 +1,4 @@ +import "./search.css"; import { ComponentConfig, Fields, PuckComponent, Slot } from "@puckeditor/core"; import { CloudRegion, @@ -10,8 +11,6 @@ import { SearchI18nextProvider } from "@yext/search-ui-react"; import React from "react"; import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; import { SearchResultsSlotProps } from "./SearchResultsSlot.tsx"; -//@ts-ignore -import "./search.css"; import { defaultSearchResultsProps } from "./propsAndTypes.ts"; import { useDocument } from "../../../hooks/useDocument.tsx"; import { PageSection } from "../../atoms/pageSection.tsx"; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 0c94907e17..d14f2c8644 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -1,4 +1,9 @@ -import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; +import { + ComponentConfig, + Fields, + PuckComponent, + usePuck, +} from "@puckeditor/core"; import { useSearchActions, useSearchState } from "@yext/search-headless-react"; import { Facets, @@ -12,7 +17,6 @@ import { FaEllipsisV } from "react-icons/fa"; import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; import Cards from "./Cards.tsx"; -import { MapComponent } from "./MapComponent.tsx"; import { defaultSearchResultsProps, VerticalConfigProps, @@ -23,8 +27,7 @@ import { buildVerticalConfigMap, isValidVerticalConfig, } from "./utils.tsx"; -//@ts-ignore -import "./search.css"; +import { MapComponent } from "./MapComponent.tsx"; export interface SearchResultsSlotProps { data: { verticals: VerticalConfigProps[] }; @@ -105,22 +108,23 @@ const SearchResultsSlotInternal: PuckComponent = ( data: { verticals }, puck, } = props; + const puckStore = useOptionalPuckStore(); + const arrayState = puckStore?.appState?.ui?.arrayState; - // React.useEffect(() => { - // if (!puck?.isEditing) return; + const arrayKey = React.useMemo(() => { + if (!arrayState || !puck.isEditing) return undefined; - // const arrayState = puck.appState?.ui?.arrayState; - // if (!arrayState) return; + return Object.keys(arrayState).find((key) => + key.includes("_object_data_verticals") + ); + }, [arrayState, puck.isEditing]); - // // safe logic here - // }, [puck]); const searchActions = useSearchActions(); const isLoading = useSearchState((s) => s.searchStatus.isLoading); const searchTerm = useSearchState((s) => s.query.input); const gdaLoading = useSearchState((s) => s.generativeDirectAnswer.isLoading); - const facetsLength = useSearchState((s) => s.filters.facets)?.length; + const facetsLength = useSearchState((s) => s.filters.facets); const [verticalKey, setVerticalKey] = useState(null); - const verticalConfigMap = React.useMemo( () => buildVerticalConfigMap(verticals), [verticals] @@ -130,7 +134,6 @@ const SearchResultsSlotInternal: PuckComponent = ( () => buildUniversalLimit(verticals), [verticals] ); - const currentVerticalConfig = React.useMemo( () => verticals.find((v) => v.verticalKey === verticalKey), [verticals, verticalKey] @@ -140,49 +143,59 @@ const SearchResultsSlotInternal: PuckComponent = ( if (!isValidVerticalConfig(verticals)) { console.warn("Skipping search: invalid vertical config", verticals); return; - } else { - if (searchTerm) { - searchActions.setQuery(searchTerm); - } - if (verticalKey) { - const verticalLimit = verticals.find( - (item) => item.verticalKey === verticalKey - )?.verticalLimit; - searchActions.setVertical(verticalKey); - searchActions.setVerticalLimit(verticalLimit!); - searchActions.executeVerticalQuery(); - } else { - searchActions.setUniversal(); - searchActions.setUniversalLimit(universalLimit); - searchActions.executeUniversalQuery(); + } + + if (searchTerm) { + searchActions.setQuery(searchTerm); + } + + if (verticalKey && currentVerticalConfig) { + searchActions.setVertical(verticalKey); + + if (typeof currentVerticalConfig.verticalLimit === "number") { + searchActions.setVerticalLimit(currentVerticalConfig.verticalLimit); } + + searchActions.executeVerticalQuery(); + return; } - }, [verticals, searchTerm, universalLimit, searchActions, verticalKey]); - // React.useEffect(() => { - // if (!arrayKey || !puck.isEditing) return; + searchActions.setUniversal(); + searchActions.setUniversalLimit(universalLimit); + searchActions.executeUniversalQuery(); + }, [ + verticals, + searchTerm, + universalLimit, + verticalKey, + currentVerticalConfig, + searchActions, + ]); - // const verticalArrayState = arrayState[arrayKey]; - // const openId = verticalArrayState?.openId; + React.useEffect(() => { + if (!arrayKey || !puck.isEditing || !arrayState) return; - // const selectedItem = verticalArrayState?.items?.find( - // (item) => item._arrayId === openId - // ); + const verticalArrayState = arrayState[arrayKey]; + const openId = verticalArrayState?.openId; - // const index = selectedItem?._currentIndex; - // if (typeof index !== "number") return; + const selectedItem = verticalArrayState?.items?.find( + (item) => item._arrayId === openId + ); - // const selectedConfig = verticals[index]; + const index = selectedItem?._currentIndex; + if (typeof index !== "number") return; - // const nextKey = - // selectedConfig?.pageType === "universal" - // ? null - // : (selectedConfig?.verticalKey ?? null); + const selectedConfig = verticals[index]; - // if (nextKey !== verticalKey) { - // setVerticalKey(nextKey); - // } - // }, [arrayKey, arrayState, verticals, verticalKey, puck.isEditing]); + const nextKey = + selectedConfig?.pageType === "universal" + ? null + : (selectedConfig?.verticalKey ?? null); + + if (nextKey !== verticalKey) { + setVerticalKey(nextKey); + } + }, [arrayKey, arrayState, verticals, verticalKey, puck.isEditing]); return (
        @@ -234,7 +247,7 @@ const SearchResultsSlotInternal: PuckComponent = ( ) : (
        , }; + +const useOptionalPuckStore = () => { + try { + return usePuck(); + } catch { + return undefined; + } +}; diff --git a/packages/visual-editor/src/components/styles.css b/packages/visual-editor/src/components/styles.css index c6481d0c8b..2c0154c636 100644 --- a/packages/visual-editor/src/components/styles.css +++ b/packages/visual-editor/src/components/styles.css @@ -2,3 +2,4 @@ @import "@yext/pages-components/style.css"; @import "./atoms/hours.css"; @import "./atoms/maybeRTF.css"; +@import "./pageSections/SearchSection/search.css"; From 8255305a9e74f8ec4423c36e47b1fac749e8e60a Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 24 Feb 2026 14:23:26 +0530 Subject: [PATCH 55/74] updated key --- .../SearchSection/MapComponent.tsx | 2 +- .../SearchSection/useTypeEffect.ts | 99 +++++++------------ 2 files changed, 37 insertions(+), 64 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx index e3f42cddb4..b679e02e0a 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx @@ -9,7 +9,7 @@ import { useDocument } from "../../../hooks/useDocument.tsx"; import { StreamDocument } from "../../../utils/index.ts"; const LocatorPin: PinComponent = ({ selected }) => { - const size = selected ? 40 : 28; + const size = selected ? 42 : 30; const color = selected ? "#0f766e" : "#134e4a"; return ; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts index 928c08f314..18eddcfe46 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts @@ -11,79 +11,52 @@ export const useTypingEffect = ({ env }: TypeEffectProps) => { const indexRef = useRef(0); const charIndexRef = useRef(0); const isDeletingRef = useRef(false); - const timerRef = useRef(null); - // Fetch prompts - const fetchPrompts = async () => { - const base = env === "PRODUCTION" ? "cdn" : "sbx-cdn"; - - const url = `https://${base}.yextapis.com/v2/accounts/me/search/autocomplete?v=20190101&api_key=fb73f1bf6a262bc3255bcb938088204f&sessionTrackingEnabled=false&experienceKey=ukg-fins-rk-test-dont-touch&input=`; - - try { - const res = await fetch(url); - const data = await res.json(); - - const prompts = data.response.results.map((item: any) => item.value); - - setQueryPrompts(prompts); - } catch (err) { - console.error("TypingEffect fetch failed:", err); - } - }; - - // Typing loop - const runTyping = () => { - const currentWord = queryPrompts[indexRef.current]; - - if (!currentWord) return; + useEffect(() => { + const fetchPrompts = async () => { + const base = env === "PRODUCTION" ? "cdn" : "sbx-cdn"; - if (!isDeletingRef.current) { - // typing forward - charIndexRef.current++; - setPlaceholder(currentWord.slice(0, charIndexRef.current)); + const url = `https://${base}.yextapis.com/v2/accounts/me/search/autocomplete?v=20190101&api_key=fb73f1bf6a262bc3255bcb938088204f&sessionTrackingEnabled=false&experienceKey=ukg-fins-rk-test-dont-touch&input=`; - if (charIndexRef.current === currentWord.length) { - isDeletingRef.current = true; - timerRef.current = window.setTimeout(runTyping, 1500); - return; + try { + const res = await fetch(url); + const data = await res.json(); + setQueryPrompts(data.response.results.map((i: any) => i.value)); + } catch (err) { + console.error("TypingEffect fetch failed:", err); } - } else { - // deleting backward - charIndexRef.current--; - setPlaceholder(currentWord.slice(0, charIndexRef.current)); - - if (charIndexRef.current === 0) { - isDeletingRef.current = false; - indexRef.current = (indexRef.current + 1) % queryPrompts.length; - } - } - - timerRef.current = window.setTimeout( - runTyping, - isDeletingRef.current ? 50 : 100 - ); - }; + }; - // Fetch once - useEffect(() => { fetchPrompts(); }, [env]); - // Start typing when prompts loaded useEffect(() => { - if (queryPrompts.length > 0) { - runTyping(); - } - - return () => { - if (timerRef.current) { - clearTimeout(timerRef.current); + if (queryPrompts.length === 0) return; + + const interval = setInterval(() => { + const currentWord = queryPrompts[indexRef.current]; + if (!currentWord) return; + + if (!isDeletingRef.current) { + charIndexRef.current++; + setPlaceholder(currentWord.slice(0, charIndexRef.current)); + + if (charIndexRef.current === currentWord.length) { + isDeletingRef.current = true; + } + } else { + charIndexRef.current--; + setPlaceholder(currentWord.slice(0, charIndexRef.current)); + + if (charIndexRef.current === 0) { + isDeletingRef.current = false; + indexRef.current = (indexRef.current + 1) % queryPrompts.length; + } } - }; + }, 100); + + return () => clearInterval(interval); }, [queryPrompts]); - return { - placeholder, - queryPrompts, - }; + return { placeholder }; }; From f9118cf1807307df70a1cc904e26580180ef5658 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 24 Feb 2026 18:20:33 +0530 Subject: [PATCH 56/74] moved map to seperate component and keys to env --- .../SearchSection/LayoutSections.tsx | 50 +------ .../SearchSection/MapComponent.tsx | 128 +++++++++++++----- .../pageSections/SearchSection/Search.tsx | 96 +++++++++---- .../SearchSection/SearchBarSlot.tsx | 20 ++- .../SearchSection/searchConfig.ts | 33 +++++ .../searchVisualAutoComplete.tsx | 11 +- .../pageSections/SearchSection/utils.tsx | 10 +- 7 files changed, 221 insertions(+), 127 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx index a7aae3cac1..6a07431ab1 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -1,7 +1,5 @@ -import { Coordinate, Map, MapboxMaps, Marker } from "@yext/pages-components"; import { DefaultRawDataType, SectionProps } from "@yext/search-ui-react"; -import { MapPin } from "lucide-react"; -import "mapbox-gl/dist/mapbox-gl.css"; +import { MapComponent } from "./MapComponent.tsx"; import { VerticalLayout } from "./propsAndTypes.ts"; interface LayoutSectionProps extends SectionProps { @@ -26,52 +24,13 @@ export const LayoutSection = ({ // const filteredResults = results.slice(0, resultsCount); - const coordinates: Coordinate[] = results - .map((result) => result.rawData?.yextDisplayCoordinate) - .filter((coord): coord is Coordinate => Boolean(coord)); - - const coordinateResults = results.filter( - (r) => r.rawData?.yextDisplayCoordinate - ); - const firstCoord: any = - coordinateResults[0]?.rawData?.yextDisplayCoordinate ?? undefined; - return (

        {header?.props.label}

        - {layoutType === "Map" && coordinateResults.length > 0 && firstCoord && ( -
        - - {results.map((result, index) => { - const coord: any = result.rawData?.yextDisplayCoordinate; - if (!coord) return null; - return ( - - - - ); - })} - -
        + {layoutType === "Map" && ( + )}
        @@ -82,6 +41,3 @@ export const LayoutSection = ({
        ); }; -const LocatorPin = () => { - return ; -}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx index b679e02e0a..e2dd691e1f 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx @@ -4,63 +4,129 @@ import { DefaultRawDataType, MapboxMap, } from "@yext/search-ui-react"; +import { Coordinate, Map, MapboxMaps, Marker } from "@yext/pages-components"; import { MapPin } from "lucide-react"; import { useDocument } from "../../../hooks/useDocument.tsx"; import { StreamDocument } from "../../../utils/index.ts"; +import "mapbox-gl/dist/mapbox-gl.css"; + +interface MapComponentProps { + isUniversal?: boolean; + results?: any[]; +} const LocatorPin: PinComponent = ({ selected }) => { const size = selected ? 42 : 30; const color = selected ? "#0f766e" : "#134e4a"; - return ; }; -export const MapComponent = () => { - const results = useSearchState((s) => s.vertical.results); +export const MapComponent = ({ + isUniversal = false, + results = [], +}: MapComponentProps) => { + const verticalResults = useSearchState((s) => s.vertical.results) ?? []; + + const mapResults = isUniversal ? results : verticalResults; + const entityDocument: StreamDocument = useDocument(); + const mapboxApiKey = + entityDocument._env?.YEXT_EDIT_LAYOUT_MODE_MAPBOX_API_KEY; const iframe = typeof document === "undefined" ? undefined : (document.getElementById("preview-frame") as HTMLIFrameElement | null); - if (!results || results.length === 0) { + if (!mapResults || mapResults.length === 0) { return ( -
        +
        Loading map...
        ); } - const mapboxApiKey = entityDocument._env?.YEXT_MAPBOX_API_KEY; - const first: any = - results[0].rawData?.yextDisplayCoordinate ?? results[0].rawData?.coordinate; + if (!mapboxApiKey) { + return ( +
        + Missing Mapbox API Key +
        + ); + } + + const first = + mapResults[0].rawData?.yextDisplayCoordinate ?? + mapResults[0].rawData?.coordinate; if (!first) return null; + if (isUniversal) { + const coordinates: Coordinate[] = mapResults + .map((r) => r.rawData?.yextDisplayCoordinate) + .filter((coord): coord is Coordinate => Boolean(coord)); + + return ( +
        + + {mapResults.map((result, index) => { + const coord = + result.rawData?.yextDisplayCoordinate ?? + result.rawData?.coordinate; + + if (!coord) return null; + + return ( + + + + ); + })} + +
        + ); + } + return ( - { - const coord = - result.rawData?.yextDisplayCoordinate ?? result.rawData?.coordinate; - - if (!coord) return undefined; - - return { - latitude: coord.latitude, - longitude: coord.longitude, - }; - }} - /> +
        + { + const coord = + result.rawData?.yextDisplayCoordinate ?? result.rawData?.coordinate; + + if (!coord) return undefined; + + return { + latitude: coord.latitude, + longitude: coord.longitude, + }; + }} + /> +
        ); }; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index c76f390d96..a25afff581 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -1,20 +1,19 @@ -import "./search.css"; import { ComponentConfig, Fields, PuckComponent, Slot } from "@puckeditor/core"; import { - CloudRegion, - Environment, provideHeadless, - SearchConfig, SearchHeadlessProvider, } from "@yext/search-headless-react"; import { SearchI18nextProvider } from "@yext/search-ui-react"; import React from "react"; +import { useDocument } from "../../../hooks/useDocument.tsx"; +import { msg, pt, themeManagerCn } from "../../../utils/index.ts"; +import { Body } from "../../atoms/body.tsx"; +import { PageSection } from "../../atoms/pageSection.tsx"; import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; import { SearchResultsSlotProps } from "./SearchResultsSlot.tsx"; import { defaultSearchResultsProps } from "./propsAndTypes.ts"; -import { useDocument } from "../../../hooks/useDocument.tsx"; -import { PageSection } from "../../atoms/pageSection.tsx"; -import { msg } from "../../../utils/index.ts"; +import "./search.css"; +import { buildSearchConfigFromDocument } from "./searchConfig.ts"; export interface SearchComponentProps { /** @internal */ @@ -33,42 +32,79 @@ const locatorFields: Fields = { }, }, }; -const EXPERIENCE_VERSION = "PRODUCTION"; - -export const searchConfig: SearchConfig = { - apiKey: "fb73f1bf6a262bc3255bcb938088204f", - experienceKey: "ukg-fins-rk-test-dont-touch", - locale: "en", - experienceVersion: EXPERIENCE_VERSION, - cloudRegion: CloudRegion.US, - environment: Environment.PROD, -}; const SearchWrapper: PuckComponent = ({ slots, puck, }) => { const streamDocument = useDocument(); - const { searchAnalyticsConfig, searcher } = React.useMemo(() => { - const searchHeadlessConfig = provideHeadless(searchConfig); - if (searchHeadlessConfig === undefined) { - return { searchAnalyticsConfig: undefined, searcher: undefined }; + const apiKey = streamDocument?._env?.YEXT_PUBLIC_ADV_SEARCH_API_KEY; + const experienceKey = streamDocument?._env?.YEXT_PUBLIC_ADV_SEARCH_EXP_KEY; + if (!apiKey || !experienceKey) { + if (puck?.isEditing) { + const missingMessages: string[] = []; + + if (!apiKey) { + missingMessages.push( + pt( + "missingSearchApiKey", + "Add your Search API key to view this section" + ) + ); + } + if (!experienceKey) { + missingMessages.push( + pt( + "missingSearchExperienceKey", + "Add your Search Experience key to view this section" + ) + ); + } + return ( +
        + + {missingMessages.join("\n")} + +
        + ); } - const searchAnalyticsConfig = provideHeadless(searchConfig); - return { - searchAnalyticsConfig, - searcher: provideHeadless(searchConfig), - }; - }, [streamDocument.id, streamDocument.locale]); + console.warn("Missing required configuration for Search Component", { + apiKey: !!apiKey, + experienceKey: !!experienceKey, + }); - if (searcher === undefined || searchAnalyticsConfig === undefined) { + return <>; + } + + const searchConfig = React.useMemo( + () => buildSearchConfigFromDocument(streamDocument), + [streamDocument.id, streamDocument.locale] + ); + + const searcher = React.useMemo(() => { + return provideHeadless(searchConfig); + }, [searchConfig]); + + React.useEffect(() => { + if (!searcher) return; + searcher.setSessionTrackingEnabled(true); + }, [searcher]); + + if (!searcher) { console.warn( - "Could not create Locator component because Search Headless or Search Analytics config is undefined. Please check your environment variables." + "Could not create Search component because Search config is invalid." ); return <>; } - searcher.setSessionTrackingEnabled(true); + return ( diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx index e65cf00899..fcbf7e176c 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -11,6 +11,9 @@ import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; import { useTypingEffect } from "./useTypeEffect.ts"; import { createVisualAutocompleteConfig } from "./utils.tsx"; +import { useEntityPreviewSearcher } from "./searchConfig.ts"; +import React from "react"; +import { useDocument } from "../../../hooks/useDocument.tsx"; export interface SearchBarSlotProps { styles: { @@ -95,15 +98,26 @@ const SearchBarSlotInternal: PuckComponent = ({ limit = 3, }, }: SearchBarSlotProps) => { + const document = useDocument(); const { placeholder } = useTypingEffect({ env: "PRODUCTION", }); - const visualAutocompleteConfig = createVisualAutocompleteConfig( + const entityPreviewSearcher = useEntityPreviewSearcher(document); + + const visualAutocompleteConfig = React.useMemo(() => { + return createVisualAutocompleteConfig( + enableVisualAutoComplete, + visualAutoCompleteVerticalKey, + limit, + entityPreviewSearcher + ); + }, [ enableVisualAutoComplete, visualAutoCompleteVerticalKey, - limit - ); + limit, + entityPreviewSearcher, + ]); return (
        diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts b/packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts new file mode 100644 index 0000000000..a4dd9477f6 --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts @@ -0,0 +1,33 @@ +import { + CloudRegion, + Environment, + provideHeadless, + SearchConfig, +} from "@yext/search-headless-react"; +import React from "react"; + +export const buildSearchConfigFromDocument = (document: any): SearchConfig => { + return { + apiKey: document?._env?.YEXT_PUBLIC_ADV_SEARCH_API_KEY ?? "", + experienceKey: document?._env?.YEXT_PUBLIC_ADV_SEARCH_EXP_KEY ?? "", + locale: document?.locale ?? "en", + experienceVersion: "PRODUCTION", + cloudRegion: CloudRegion.US, + environment: Environment.PROD, + }; +}; + +export const useEntityPreviewSearcher = (document: any) => { + return React.useMemo(() => { + const config = buildSearchConfigFromDocument(document); + + if (!config.apiKey || !config.experienceKey) { + return undefined; + } + + return provideHeadless({ + ...config, + headlessId: "entity-preview-searcher", + }); + }, [document]); +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/searchVisualAutoComplete.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/searchVisualAutoComplete.tsx index ac19383eac..564f488490 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/searchVisualAutoComplete.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/searchVisualAutoComplete.tsx @@ -1,14 +1,5 @@ -import { - provideHeadless, - VerticalResults as VerticalResultsData, -} from "@yext/search-headless-react"; +import { VerticalResults as VerticalResultsData } from "@yext/search-headless-react"; import { DropdownItem, FocusedItemData } from "@yext/search-ui-react"; -import { searchConfig } from "./Search.tsx"; - -export const entityPreviewSearcher = provideHeadless({ - ...searchConfig, - headlessId: "entity-preview-searcher", -}); export const renderImagePreview = ( result: any, diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx index cb2f919fb6..b77655c42d 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx @@ -7,10 +7,7 @@ import { import Cards from "./Cards.tsx"; import { LayoutSection } from "./LayoutSections.tsx"; import { VerticalConfigProps } from "./propsAndTypes.ts"; -import { - entityPreviewSearcher, - renderEntityPreviews, -} from "./searchVisualAutoComplete.tsx"; +import { renderEntityPreviews } from "./searchVisualAutoComplete.tsx"; export const buildVerticalConfigMap = ( verticals: VerticalConfigProps[] @@ -102,9 +99,10 @@ export const createPreviews = (verticalKey: string) => { export const createVisualAutocompleteConfig = ( enable: boolean, verticalKey: string, - limit: number + limit: number, + entityPreviewSearcher: any ) => { - if (!enable || !verticalKey || limit < 1) { + if (!enable || !verticalKey || limit < 1 || !entityPreviewSearcher) { return undefined; } From 5fc733ab6373e154a790711e90ab8376e1846511 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Tue, 24 Feb 2026 23:17:40 +0530 Subject: [PATCH 57/74] map updated --- .../SearchSection/LayoutSections.tsx | 4 +- .../SearchSection/MapComponent.tsx | 99 +++++++------- .../SearchSection/SearchResultsSlot.tsx | 125 +++--------------- .../SearchSection/UniversalResultsSection.tsx | 46 +++++++ .../SearchSection/VerticalResultsSection.tsx | 66 +++++++++ .../SearchSection/searchConfig.ts | 4 +- .../SearchSection/useTypeEffect.ts | 5 +- 7 files changed, 183 insertions(+), 166 deletions(-) create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx create mode 100644 packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx index 6a07431ab1..f68203cc90 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -30,7 +30,9 @@ export const LayoutSection = ({

        {header?.props.label}

        {layoutType === "Map" && ( - +
        + +
        )}
        diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx index e2dd691e1f..8abe58fc99 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx @@ -66,67 +66,58 @@ export const MapComponent = ({ .filter((coord): coord is Coordinate => Boolean(coord)); return ( -
        - - {mapResults.map((result, index) => { - const coord = - result.rawData?.yextDisplayCoordinate ?? - result.rawData?.coordinate; - - if (!coord) return null; - - return ( - - - - ); - })} - -
        - ); - } - - return ( -
        - { + className="w-full h-full" + > + {mapResults.map((result, index) => { const coord = result.rawData?.yextDisplayCoordinate ?? result.rawData?.coordinate; - if (!coord) return undefined; + if (!coord) return null; - return { - latitude: coord.latitude, - longitude: coord.longitude, - }; - }} - /> -
        + return ( + + + + ); + })} + + ); + } + + return ( + { + const coord = + result.rawData?.yextDisplayCoordinate ?? result.rawData?.coordinate; + + if (!coord) return undefined; + + return { + latitude: coord.latitude, + longitude: coord.longitude, + }; + }} + /> ); }; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index d14f2c8644..fd16daa410 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -5,29 +5,21 @@ import { usePuck, } from "@puckeditor/core"; import { useSearchActions, useSearchState } from "@yext/search-headless-react"; -import { - Facets, - GenerativeDirectAnswer, - StandardCard, - UniversalResults, - VerticalResults, -} from "@yext/search-ui-react"; import React, { useState } from "react"; import { FaEllipsisV } from "react-icons/fa"; import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; -import Cards from "./Cards.tsx"; import { defaultSearchResultsProps, VerticalConfigProps, } from "./propsAndTypes.ts"; -import SourceCard from "./SourceCard.tsx"; +import { UniversalResultsSection } from "./UniversalResultsSection.tsx"; import { buildUniversalLimit, buildVerticalConfigMap, isValidVerticalConfig, } from "./utils.tsx"; -import { MapComponent } from "./MapComponent.tsx"; +import { VerticalResultsSection } from "./VerticalResultsSection.tsx"; export interface SearchResultsSlotProps { data: { verticals: VerticalConfigProps[] }; @@ -122,7 +114,8 @@ const SearchResultsSlotInternal: PuckComponent = ( const searchActions = useSearchActions(); const isLoading = useSearchState((s) => s.searchStatus.isLoading); const searchTerm = useSearchState((s) => s.query.input); - const gdaLoading = useSearchState((s) => s.generativeDirectAnswer.isLoading); + const gdaLoading = + useSearchState((s) => s.generativeDirectAnswer.isLoading) || false; const facetsLength = useSearchState((s) => s.filters.facets); const [verticalKey, setVerticalKey] = useState(null); const verticalConfigMap = React.useMemo( @@ -134,6 +127,7 @@ const SearchResultsSlotInternal: PuckComponent = ( () => buildUniversalLimit(verticals), [verticals] ); + const currentVerticalConfig = React.useMemo( () => verticals.find((v) => v.verticalKey === verticalKey), [verticals, verticalKey] @@ -236,103 +230,20 @@ const SearchResultsSlotInternal: PuckComponent = ( {isLoading &&
        Loading......
        } {!isLoading && (verticalKey ? ( - <> - {currentVerticalConfig?.layout === "Map" ? ( - <> -
        - -
        - - - ) : ( -
        -
        - -
        -
        - ( - item.verticalKey === verticalKey - )?.cardType - } - /> - )} - /> -
        -
        - )} - + ) : ( - <> - {props.styles.enableGenerativeDirectAnswer && !!searchTerm && ( - <> - {gdaLoading && ( -
        -
        -
        - -
        -
        - - -
        - - - -
        -
        -
        -
        - )} - - - )} - - + ))}
        ); diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx new file mode 100644 index 0000000000..5bf039eccf --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx @@ -0,0 +1,46 @@ +import { + GenerativeDirectAnswer, + UniversalResults, +} from "@yext/search-ui-react"; +import SourceCard from "./SourceCard.tsx"; + +interface UniversalResultsSectionProps { + enableGDA: boolean; + searchTerm?: string; + gdaLoading: boolean; + verticalConfigMap: any; +} + +export const UniversalResultsSection = ({ + enableGDA, + searchTerm, + gdaLoading, + verticalConfigMap, +}: UniversalResultsSectionProps) => { + return ( + <> + {enableGDA && !!searchTerm && ( + <> + {gdaLoading && ( +
        + Loading... +
        + )} + + + + )} + + + + ); +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx new file mode 100644 index 0000000000..e382414756 --- /dev/null +++ b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx @@ -0,0 +1,66 @@ +import { VerticalResults, StandardCard, Facets } from "@yext/search-ui-react"; +import Cards from "./Cards.tsx"; +import { MapComponent } from "./MapComponent.tsx"; +import { VerticalConfigProps } from "./propsAndTypes.ts"; + +interface VerticalResultsSectionProps { + verticalKey: string; + verticals: VerticalConfigProps[]; + currentVerticalConfig?: VerticalConfigProps; + puck: any; + facetsLength: any; +} + +export const VerticalResultsSection = ({ + verticalKey, + verticals, + currentVerticalConfig, + puck, + facetsLength, +}: VerticalResultsSectionProps) => { + if (currentVerticalConfig?.layout === "Map") { + return ( +
        +
        + +
        + +
        + +
        +
        + ); + } + + return ( +
        +
        + +
        + +
        + ( + v.verticalKey === verticalKey)?.cardType + } + /> + )} + /> +
        +
        + ); +}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts b/packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts index a4dd9477f6..bf766bff8c 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts @@ -8,8 +8,8 @@ import React from "react"; export const buildSearchConfigFromDocument = (document: any): SearchConfig => { return { - apiKey: document?._env?.YEXT_PUBLIC_ADV_SEARCH_API_KEY ?? "", - experienceKey: document?._env?.YEXT_PUBLIC_ADV_SEARCH_EXP_KEY ?? "", + apiKey: document?._env?.YEXT_PUBLIC_ADV_SEARCH_API_KEY, + experienceKey: document?._env?.YEXT_PUBLIC_ADV_SEARCH_EXP_KEY, locale: document?.locale ?? "en", experienceVersion: "PRODUCTION", cloudRegion: CloudRegion.US, diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts index 18eddcfe46..ec88d1765c 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts @@ -1,4 +1,5 @@ import { useState, useEffect, useRef } from "react"; +import { useDocument } from "../../../hooks/useDocument.tsx"; interface TypeEffectProps { env: "PRODUCTION" | "SANDBOX"; @@ -7,7 +8,7 @@ interface TypeEffectProps { export const useTypingEffect = ({ env }: TypeEffectProps) => { const [queryPrompts, setQueryPrompts] = useState([]); const [placeholder, setPlaceholder] = useState(""); - + const document = useDocument(); const indexRef = useRef(0); const charIndexRef = useRef(0); const isDeletingRef = useRef(false); @@ -16,7 +17,7 @@ export const useTypingEffect = ({ env }: TypeEffectProps) => { const fetchPrompts = async () => { const base = env === "PRODUCTION" ? "cdn" : "sbx-cdn"; - const url = `https://${base}.yextapis.com/v2/accounts/me/search/autocomplete?v=20190101&api_key=fb73f1bf6a262bc3255bcb938088204f&sessionTrackingEnabled=false&experienceKey=ukg-fins-rk-test-dont-touch&input=`; + const url = `https://${base}.yextapis.com/v2/accounts/me/search/autocomplete?v=20250101&api_key=${document?._env?.YEXT_PUBLIC_ADV_SEARCH_API_KEY}&sessionTrackingEnabled=false&experienceKey=${document?._env?.YEXT_PUBLIC_ADV_SEARCH_EXP_KEY}&input=`; try { const res = await fetch(url); From b40ea0316064ff8ced3fdb88eebfcac7f4392ba9 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 25 Feb 2026 00:40:31 +0530 Subject: [PATCH 58/74] updated facets for location --- .../SearchSection/VerticalResultsSection.tsx | 75 +++++++++++++++++-- .../SearchSection/searchConfig.ts | 4 +- 2 files changed, 71 insertions(+), 8 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx index e382414756..03b474d301 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx @@ -1,4 +1,8 @@ -import { VerticalResults, StandardCard, Facets } from "@yext/search-ui-react"; +import { Facets, StandardCard, VerticalResults } from "@yext/search-ui-react"; +import { t } from "i18next"; +import React from "react"; +import { FaSlidersH, FaTimes } from "react-icons/fa"; +import { Body } from "../../atoms/body.tsx"; import Cards from "./Cards.tsx"; import { MapComponent } from "./MapComponent.tsx"; import { VerticalConfigProps } from "./propsAndTypes.ts"; @@ -18,14 +22,73 @@ export const VerticalResultsSection = ({ puck, facetsLength, }: VerticalResultsSectionProps) => { + const popupRef = React.useRef(null); + const [showFilterModal, setShowFilterModal] = React.useState(false); + if (currentVerticalConfig?.layout === "Map") { return ( -
        -
        - -
        +
        +
        +
        +
        +
        + +
        +
        +
        + +
        + {facetsLength && showFilterModal && ( + +
        +
        diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts b/packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts index bf766bff8c..a4dd9477f6 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/searchConfig.ts @@ -8,8 +8,8 @@ import React from "react"; export const buildSearchConfigFromDocument = (document: any): SearchConfig => { return { - apiKey: document?._env?.YEXT_PUBLIC_ADV_SEARCH_API_KEY, - experienceKey: document?._env?.YEXT_PUBLIC_ADV_SEARCH_EXP_KEY, + apiKey: document?._env?.YEXT_PUBLIC_ADV_SEARCH_API_KEY ?? "", + experienceKey: document?._env?.YEXT_PUBLIC_ADV_SEARCH_EXP_KEY ?? "", locale: document?.locale ?? "en", experienceVersion: "PRODUCTION", cloudRegion: CloudRegion.US, From 17e70676ec4ddff19ffc907f0c00d918cb1ada40 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 25 Feb 2026 01:33:41 +0530 Subject: [PATCH 59/74] updated nit fixes --- .../SearchSection/SearchBarSlot.tsx | 1 + .../SearchSection/SearchResultsSlot.tsx | 37 +++++++++++++++++++ .../SearchSection/useTypeEffect.ts | 7 +++- 3 files changed, 44 insertions(+), 1 deletion(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx index fcbf7e176c..23bd22fe5c 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -101,6 +101,7 @@ const SearchBarSlotInternal: PuckComponent = ({ const document = useDocument(); const { placeholder } = useTypingEffect({ env: "PRODUCTION", + enabled: isTypingEffect, }); const entityPreviewSearcher = useEntityPreviewSearcher(document); diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index fd16daa410..1b2791dd19 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -255,6 +255,43 @@ export const SearchResultsSlot: ComponentConfig<{ label: msg("components.SearchResultsSlot", "Search Results Slot"), fields: SearchResultsSlotFields, defaultProps: defaultSearchResultsProps, + // resolveFields: (data) => { + // const updatedFields = resolveDataFromParent(SearchResultsSlotFields, data); + + // const verticals = data.props.data?.verticals ?? []; + + // const isUniversalSelected = verticals.some( + // (v) => v.pageType === "universal" + // ); + + // if (isUniversalSelected) { + // setDeep( + // updatedFields, + // "data.objectFields.verticals.arrayFields.verticalKey.visible", + // false + // ); + + // setDeep( + // updatedFields, + // "data.objectFields.verticals.arrayFields.layout.visible", + // false + // ); + + // setDeep( + // updatedFields, + // "data.objectFields.verticals.arrayFields.cardType.visible", + // false + // ); + + // setDeep( + // updatedFields, + // "data.objectFields.verticals.arrayFields.verticalLimit.visible", + // false + // ); + // } + + // return updatedFields; + // }, render: (props) => , }; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts index ec88d1765c..4a9845818d 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/useTypeEffect.ts @@ -3,12 +3,17 @@ import { useDocument } from "../../../hooks/useDocument.tsx"; interface TypeEffectProps { env: "PRODUCTION" | "SANDBOX"; + enabled?: boolean; } -export const useTypingEffect = ({ env }: TypeEffectProps) => { +export const useTypingEffect = ({ env, enabled = false }: TypeEffectProps) => { const [queryPrompts, setQueryPrompts] = useState([]); const [placeholder, setPlaceholder] = useState(""); const document = useDocument(); + useEffect(() => { + if (!enabled) return; + }, [enabled]); + const indexRef = useRef(0); const charIndexRef = useRef(0); const isDeletingRef = useRef(false); From e15e8f3caa972e58fecb8ccee6084d507cd80034 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Wed, 25 Feb 2026 17:21:16 +0530 Subject: [PATCH 60/74] fixed facet placing --- .../SearchSection/VerticalResultsSection.tsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx index 03b474d301..01bdb71489 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx @@ -1,4 +1,9 @@ -import { Facets, StandardCard, VerticalResults } from "@yext/search-ui-react"; +import { + Facets, + ResultsCount, + StandardCard, + VerticalResults, +} from "@yext/search-ui-react"; import { t } from "i18next"; import React from "react"; import { FaSlidersH, FaTimes } from "react-icons/fa"; @@ -27,11 +32,14 @@ export const VerticalResultsSection = ({ if (currentVerticalConfig?.layout === "Map") { return ( -
        +
        -
        -
        +
        +
        +
        -
        Date: Thu, 26 Feb 2026 16:32:38 +0530 Subject: [PATCH 61/74] nit: code cleanup --- .../SearchSection/SearchResultsSlot.tsx | 37 ------------------- 1 file changed, 37 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 1b2791dd19..fd16daa410 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -255,43 +255,6 @@ export const SearchResultsSlot: ComponentConfig<{ label: msg("components.SearchResultsSlot", "Search Results Slot"), fields: SearchResultsSlotFields, defaultProps: defaultSearchResultsProps, - // resolveFields: (data) => { - // const updatedFields = resolveDataFromParent(SearchResultsSlotFields, data); - - // const verticals = data.props.data?.verticals ?? []; - - // const isUniversalSelected = verticals.some( - // (v) => v.pageType === "universal" - // ); - - // if (isUniversalSelected) { - // setDeep( - // updatedFields, - // "data.objectFields.verticals.arrayFields.verticalKey.visible", - // false - // ); - - // setDeep( - // updatedFields, - // "data.objectFields.verticals.arrayFields.layout.visible", - // false - // ); - - // setDeep( - // updatedFields, - // "data.objectFields.verticals.arrayFields.cardType.visible", - // false - // ); - - // setDeep( - // updatedFields, - // "data.objectFields.verticals.arrayFields.verticalLimit.visible", - // false - // ); - // } - - // return updatedFields; - // }, render: (props) => , }; From f929b3f392b670fa883fefee92944f8314b6ea57 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 26 Feb 2026 16:35:35 +0530 Subject: [PATCH 62/74] updated key --- .../pageSections/CustomDirectory/CustomBreadcrumbs.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx index 92cb12af68..b94e434f40 100644 --- a/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx +++ b/packages/visual-editor/src/components/pageSections/CustomDirectory/CustomBreadcrumbs.tsx @@ -95,7 +95,7 @@ const CustomBreadcrumbsComponent = ({ const { document: streamDocument, relativePrefixToRoot } = useTemplateProps(); const apiKey = streamDocument?._env?.YEXT_PUBLIC_CUSTOM_CONTENT_API_KEY; const customEndpointName = - streamDocument?._env?.YEXT_PUBLIC_CUSTOM_CONTENT_NAME; + streamDocument?._env?.YEXT_PUBLIC_CUSTOM_CONTENT_URL; if (!apiKey || !customEndpointName) { if (puck?.isEditing) { From e98d56916aa8b3858c07891fe4f092886b03e90b Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 26 Feb 2026 16:41:10 +0530 Subject: [PATCH 63/74] added locales to texts --- .../components/pageSections/SearchSection/MapComponent.tsx | 3 ++- .../pageSections/SearchSection/SearchResultsSlot.tsx | 5 +++-- .../components/pageSections/SearchSection/SourceCard.tsx | 6 +++++- .../pageSections/SearchSection/UniversalResultsSection.tsx | 3 ++- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx index 8abe58fc99..7695421393 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx @@ -9,6 +9,7 @@ import { MapPin } from "lucide-react"; import { useDocument } from "../../../hooks/useDocument.tsx"; import { StreamDocument } from "../../../utils/index.ts"; import "mapbox-gl/dist/mapbox-gl.css"; +import { t } from "i18next"; interface MapComponentProps { isUniversal?: boolean; @@ -41,7 +42,7 @@ export const MapComponent = ({ if (!mapResults || mapResults.length === 0) { return (
        - Loading map... + {t("loadingMap", "Loading Map...")}
        ); } diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index fd16daa410..785189412b 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -20,6 +20,7 @@ import { isValidVerticalConfig, } from "./utils.tsx"; import { VerticalResultsSection } from "./VerticalResultsSection.tsx"; +import { t } from "i18next"; export interface SearchResultsSlotProps { data: { verticals: VerticalConfigProps[] }; @@ -223,11 +224,11 @@ const SearchResultsSlotInternal: PuckComponent = (
        - {isLoading &&
        Loading......
        } + {isLoading &&
        {t("loadingResults", "Loading Results...")}
        } {!isLoading && (verticalKey ? ( { {name} ) : (

        - {name} (no link available) + {name}{" "} + + ({t("noLinkAvailable", "no link available")}) +

        )}
        diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx index 5bf039eccf..6777bfda38 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx @@ -3,6 +3,7 @@ import { UniversalResults, } from "@yext/search-ui-react"; import SourceCard from "./SourceCard.tsx"; +import { t } from "i18next"; interface UniversalResultsSectionProps { enableGDA: boolean; @@ -23,7 +24,7 @@ export const UniversalResultsSection = ({ <> {gdaLoading && (
        - Loading... + {t("loadingResults", "Loading Results...")}
        )} From 151fac347119eeaadab4fe9ada10cd5f471ce502 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 26 Feb 2026 20:30:17 +0530 Subject: [PATCH 64/74] updated locales --- .../locales/components/cs/visual-editor.json | 4 ++++ .../locales/components/da/visual-editor.json | 4 ++++ .../locales/components/de/visual-editor.json | 4 ++++ .../components/en-GB/visual-editor.json | 4 ++++ .../locales/components/en/visual-editor.json | 4 ++++ .../locales/components/es/visual-editor.json | 4 ++++ .../locales/components/et/visual-editor.json | 4 ++++ .../locales/components/fi/visual-editor.json | 4 ++++ .../locales/components/fr/visual-editor.json | 4 ++++ .../locales/components/hr/visual-editor.json | 4 ++++ .../locales/components/hu/visual-editor.json | 4 ++++ .../locales/components/it/visual-editor.json | 4 ++++ .../locales/components/ja/visual-editor.json | 4 ++++ .../locales/components/lt/visual-editor.json | 4 ++++ .../locales/components/lv/visual-editor.json | 4 ++++ .../locales/components/nb/visual-editor.json | 4 ++++ .../locales/components/nl/visual-editor.json | 4 ++++ .../locales/components/pl/visual-editor.json | 4 ++++ .../locales/components/pt/visual-editor.json | 4 ++++ .../locales/components/ro/visual-editor.json | 4 ++++ .../locales/components/sk/visual-editor.json | 4 ++++ .../locales/components/sv/visual-editor.json | 4 ++++ .../locales/components/tr/visual-editor.json | 4 ++++ .../components/zh-TW/visual-editor.json | 4 ++++ .../locales/components/zh/visual-editor.json | 4 ++++ .../locales/platform/cs/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/da/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/de/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/en-GB/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/en/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/es/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/et/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/fi/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/fr/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/hr/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/hu/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/it/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/ja/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/lt/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/lv/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/nb/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/nl/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/pl/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/pt/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/ro/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/sk/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/sv/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/tr/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/zh-TW/visual-editor.json | 23 +++++++++++++++++++ .../locales/platform/zh/visual-editor.json | 23 +++++++++++++++++++ .../SearchSection/MapComponent.tsx | 16 +++++++++---- 51 files changed, 686 insertions(+), 5 deletions(-) diff --git a/packages/visual-editor/locales/components/cs/visual-editor.json b/packages/visual-editor/locales/components/cs/visual-editor.json index a95ddd4953..55315e940d 100644 --- a/packages/visual-editor/locales/components/cs/visual-editor.json +++ b/packages/visual-editor/locales/components/cs/visual-editor.json @@ -43,6 +43,7 @@ "kilometer_other": "kilometrů", "loadingMap": "Načítání mapy ...", "loadingNearbyLocations": "Načítání nedalekých míst ...", + "loadingResults": "Načítání výsledků...", "locationWithCount_few": "{{count}} míst", "locationWithCount_many": "{{count}} míst", "locationWithCount_one": "{{count}} umístění", @@ -63,6 +64,8 @@ "mile_one": "míle", "mile_other": "mil", "monday": "pondělí", + "more": "Více", + "noLinkAvailable": "není dostupný žádný odkaz", "noResultsFoundForThisArea": "Pro tuto oblast nebyly nalezeny žádné výsledky", "open24Hours": "Otevřeno 24 hodin", "openHeaderMenu": "Nabídka otevřených záhlaví", @@ -101,6 +104,7 @@ "xLink": "Sledujte nás na X (Twitter)", "youtube": "Přihlaste se k odběru našeho kanálu YouTube" }, + "staticMapEmptyStateAddApiKey": "Chcete-li zobrazit náhled mapy, přidejte klíč API", "sunday": "neděle", "temporarilyClosed": "Dočasně uzavřeno", "thursday": "čtvrtek", diff --git a/packages/visual-editor/locales/components/da/visual-editor.json b/packages/visual-editor/locales/components/da/visual-editor.json index 0f67eb1c75..55deddf9df 100644 --- a/packages/visual-editor/locales/components/da/visual-editor.json +++ b/packages/visual-editor/locales/components/da/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "kilometer", "loadingMap": "Indlæsningskort ...", "loadingNearbyLocations": "Indlæser placeringer i nærheden ...", + "loadingResults": "Indlæser resultater...", "locationWithCount_one": "{{count}} placering", "locationWithCount_other": "{{count}} placeringer", "locationsNear_one": "{{count}} placering i nærheden af ​​\"{{name}}\"", @@ -53,6 +54,8 @@ "mile_one": "mil", "mile_other": "mil", "monday": "mandag", + "more": "Mere", + "noLinkAvailable": "intet link tilgængeligt", "noResultsFoundForThisArea": "Ingen resultater fundet for dette område", "open24Hours": "Åben 24 timer", "openHeaderMenu": "Åben header -menu", @@ -91,6 +94,7 @@ "xLink": "Følg os på X (Twitter)", "youtube": "Abonner på vores YouTube-kanal" }, + "staticMapEmptyStateAddApiKey": "Tilføj en API-nøgle for at få vist dit kort", "sunday": "søndag", "temporarilyClosed": "Midlertidigt lukket", "thursday": "torsdag", diff --git a/packages/visual-editor/locales/components/de/visual-editor.json b/packages/visual-editor/locales/components/de/visual-editor.json index 2c78ba6595..c9b67c9f38 100644 --- a/packages/visual-editor/locales/components/de/visual-editor.json +++ b/packages/visual-editor/locales/components/de/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "Kilometer", "loadingMap": "Karte wird geladen...", "loadingNearbyLocations": "Standorte in der Nähe werden geladen...", + "loadingResults": "Ergebnisse werden geladen...", "locationWithCount_one": "{{count}} Standort", "locationWithCount_other": "{{count}} Standorte", "locationsNear_one": "{{count}} Standort in der Nähe von „{{name}}“", @@ -53,6 +54,8 @@ "mile_one": "Meile", "mile_other": "Meilen", "monday": "Montag", + "more": "Mehr", + "noLinkAvailable": "kein Link vorhanden", "noResultsFoundForThisArea": "Keine Ergebnisse für diesen Bereich gefunden", "open24Hours": "24 Stunden geöffnet", "openHeaderMenu": "Header-Menü öffnen", @@ -91,6 +94,7 @@ "xLink": "Folgen Sie uns auf X (Twitter)", "youtube": "Abonnieren Sie unseren YouTube-Kanal" }, + "staticMapEmptyStateAddApiKey": "Fügen Sie einen API-Key hinzu, um die Karte anzuzeigen", "sunday": "Sonntag", "temporarilyClosed": "Vorübergehend geschlossen", "thursday": "Donnerstag", diff --git a/packages/visual-editor/locales/components/en-GB/visual-editor.json b/packages/visual-editor/locales/components/en-GB/visual-editor.json index 59a46bf167..66e0c235a9 100644 --- a/packages/visual-editor/locales/components/en-GB/visual-editor.json +++ b/packages/visual-editor/locales/components/en-GB/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "kilometres", "loadingMap": "Loading Map...", "loadingNearbyLocations": "Loading nearby locations...", + "loadingResults": "Loading Results...", "locationWithCount_one": "{{count}} location", "locationWithCount_other": "{{count}} locations", "locationsNear_one": "{{count}} location near \"{{name}}\"", @@ -53,6 +54,8 @@ "mile_one": "mile", "mile_other": "miles", "monday": "Monday", + "more": "More", + "noLinkAvailable": "no link available", "noResultsFoundForThisArea": "No results found for this area", "open24Hours": "Open 24 Hours", "openHeaderMenu": "Open header menu", @@ -91,6 +94,7 @@ "xLink": "Follow us on X (Twitter)", "youtube": "Subscribe to our YouTube channel" }, + "staticMapEmptyStateAddApiKey": "Add an API key to preview your map", "sunday": "Sunday", "temporarilyClosed": "Temporarily Closed", "thursday": "Thursday", diff --git a/packages/visual-editor/locales/components/en/visual-editor.json b/packages/visual-editor/locales/components/en/visual-editor.json index a721714c4f..f2debfb78c 100644 --- a/packages/visual-editor/locales/components/en/visual-editor.json +++ b/packages/visual-editor/locales/components/en/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "kilometers", "loadingMap": "Loading Map...", "loadingNearbyLocations": "Loading nearby locations...", + "loadingResults": "Loading Results...", "locationWithCount_one": "{{count}} location", "locationWithCount_other": "{{count}} locations", "locationsNear_one": "{{count}} location near \"{{name}}\"", @@ -53,6 +54,8 @@ "mile_one": "mile", "mile_other": "miles", "monday": "Monday", + "more": "More", + "noLinkAvailable": "no link available", "noResultsFoundForThisArea": "No results found for this area", "open24Hours": "Open 24 Hours", "openHeaderMenu": "Open header menu", @@ -91,6 +94,7 @@ "xLink": "Follow us on X (Twitter)", "youtube": "Subscribe to our YouTube channel" }, + "staticMapEmptyStateAddApiKey": "Add an API key to preview your map", "sunday": "Sunday", "temporarilyClosed": "Temporarily Closed", "thursday": "Thursday", diff --git a/packages/visual-editor/locales/components/es/visual-editor.json b/packages/visual-editor/locales/components/es/visual-editor.json index 813582ff10..1b9580d0a7 100644 --- a/packages/visual-editor/locales/components/es/visual-editor.json +++ b/packages/visual-editor/locales/components/es/visual-editor.json @@ -42,6 +42,7 @@ "kilometer_other": "kilómetros", "loadingMap": "Mapa de carga ...", "loadingNearbyLocations": "Cargando ubicaciones cercanas ...", + "loadingResults": "Cargando resultados...", "locationWithCount_many": "{{count}} ubicaciones", "locationWithCount_one": "{{count}} ubicación", "locationWithCount_other": "{{count}} ubicaciones", @@ -58,6 +59,8 @@ "mile_one": "milla", "mile_other": "millas", "monday": "Lunes", + "more": "Más", + "noLinkAvailable": "no hay enlace disponible", "noResultsFoundForThisArea": "No se encontraron resultados para esta área", "open24Hours": "Abierto 24 horas", "openHeaderMenu": "Abrir menú de encabezado", @@ -96,6 +99,7 @@ "xLink": "Síguenos en X (Twitter)", "youtube": "Suscríbete a nuestro canal de YouTube" }, + "staticMapEmptyStateAddApiKey": "Agregue una clave API para obtener una vista previa de su mapa", "sunday": "Domingo", "temporarilyClosed": "Temporalmente cerrado", "thursday": "Jueves", diff --git a/packages/visual-editor/locales/components/et/visual-editor.json b/packages/visual-editor/locales/components/et/visual-editor.json index 5e41d305a8..8d95985f8d 100644 --- a/packages/visual-editor/locales/components/et/visual-editor.json +++ b/packages/visual-editor/locales/components/et/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "kilomeetrit", "loadingMap": "Kaardi laadimine ...", "loadingNearbyLocations": "Lähedal asuvate asukohtade laadimine ...", + "loadingResults": "Tulemuste laadimine...", "locationWithCount_one": "{{count}} asukoht", "locationWithCount_other": "{{count}} asukohad", "locationsNear_one": "{{count}} asukoht \"{{name}}\" lähedal", @@ -53,6 +54,8 @@ "mile_one": "miil", "mile_other": "miili", "monday": "Esmaspäev", + "more": "Rohkem", + "noLinkAvailable": "linki pole saadaval", "noResultsFoundForThisArea": "Selle piirkonna kohta tulemusi ei leitud", "open24Hours": "Avatud 24 tundi", "openHeaderMenu": "Avatud päisemenüü", @@ -91,6 +94,7 @@ "xLink": "Jälgi meid X-is (Twitter)", "youtube": "Tellige meie YouTube'i kanal" }, + "staticMapEmptyStateAddApiKey": "Lisage oma kaardi eelvaate kuvamiseks API-võti", "sunday": "Pühapäev", "temporarilyClosed": "Ajutiselt suletud", "thursday": "Neljapäev", diff --git a/packages/visual-editor/locales/components/fi/visual-editor.json b/packages/visual-editor/locales/components/fi/visual-editor.json index 66bc8bd6ab..679d47d7e2 100644 --- a/packages/visual-editor/locales/components/fi/visual-editor.json +++ b/packages/visual-editor/locales/components/fi/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "kilometriä", "loadingMap": "Latauskartta ...", "loadingNearbyLocations": "Lataaminen lähellä olevia paikkoja ...", + "loadingResults": "Ladataan tuloksia...", "locationWithCount_one": "{{count}} sijainti", "locationWithCount_other": "{{count}} sijaintia", "locationsNear_one": "{{count}} sijainti lähellä \"{{name}}\"", @@ -53,6 +54,8 @@ "mile_one": "maili", "mile_other": "mailia", "monday": "maanantai", + "more": "Lisää", + "noLinkAvailable": "linkkiä ei ole saatavilla", "noResultsFoundForThisArea": "Tälle alueelle ei löydy tuloksia", "open24Hours": "Avoinna 24 tuntia", "openHeaderMenu": "Avaa otsikkovalikko", @@ -91,6 +94,7 @@ "xLink": "Seuraa meitä X:ssä (Twitter)", "youtube": "Tilaa YouTube-kanavamme" }, + "staticMapEmptyStateAddApiKey": "Lisää API-avain esikatsellaksesi karttaasi", "sunday": "sunnuntai", "temporarilyClosed": "Väliaikaisesti suljettu", "thursday": "torstai", diff --git a/packages/visual-editor/locales/components/fr/visual-editor.json b/packages/visual-editor/locales/components/fr/visual-editor.json index 7317188588..b478f25536 100644 --- a/packages/visual-editor/locales/components/fr/visual-editor.json +++ b/packages/visual-editor/locales/components/fr/visual-editor.json @@ -42,6 +42,7 @@ "kilometer_other": "kilomètres", "loadingMap": "Chargement de la carte ...", "loadingNearbyLocations": "Chargement des emplacements à proximité ...", + "loadingResults": "Chargement des résultats...", "locationWithCount_many": "{{count}} emplacements", "locationWithCount_one": "{{count}} emplacement", "locationWithCount_other": "{{count}} emplacements", @@ -58,6 +59,8 @@ "mile_one": "mile", "mile_other": "miles", "monday": "Lundi", + "more": "Plus", + "noLinkAvailable": "aucun lien disponible", "noResultsFoundForThisArea": "Aucun résultat trouvé pour cette zone", "open24Hours": "Ouvrir 24 heures", "openHeaderMenu": "Ouvrir le menu d'en-tête", @@ -96,6 +99,7 @@ "xLink": "Suivez-nous sur X (Twitter)", "youtube": "Abonnez-vous à notre chaîne YouTube" }, + "staticMapEmptyStateAddApiKey": "Ajoutez une clé API pour prévisualiser votre carte", "sunday": "Dimanche", "temporarilyClosed": "Temporairement fermé", "thursday": "Jeudi", diff --git a/packages/visual-editor/locales/components/hr/visual-editor.json b/packages/visual-editor/locales/components/hr/visual-editor.json index a6b10e8013..e22be3af4c 100644 --- a/packages/visual-editor/locales/components/hr/visual-editor.json +++ b/packages/visual-editor/locales/components/hr/visual-editor.json @@ -42,6 +42,7 @@ "kilometer_other": "kilometara", "loadingMap": "Učitavanje karte ...", "loadingNearbyLocations": "Učitavanje lokacija u blizini ...", + "loadingResults": "Učitavanje rezultata...", "locationWithCount_few": "{{count}} lokacije", "locationWithCount_one": "{{count}} lokacija", "locationWithCount_other": "{{count}} lokacija", @@ -58,6 +59,8 @@ "mile_one": "milja", "mile_other": "milja", "monday": "ponedjeljak", + "more": "Više", + "noLinkAvailable": "nema dostupne veze", "noResultsFoundForThisArea": "Nisu pronađeni rezultati za ovo područje", "open24Hours": "Otvoreno 24 sata", "openHeaderMenu": "Izbornik otvorenog zaglavlja", @@ -96,6 +99,7 @@ "xLink": "Pratite nas na X (Twitter)", "youtube": "Pretplatite se na naš YouTube kanal" }, + "staticMapEmptyStateAddApiKey": "Dodajte API ključ za pregled svoje karte", "sunday": "nedjelja", "temporarilyClosed": "Privremeno zatvoren", "thursday": "četvrtak", diff --git a/packages/visual-editor/locales/components/hu/visual-editor.json b/packages/visual-editor/locales/components/hu/visual-editor.json index 205c317d93..0be631f482 100644 --- a/packages/visual-editor/locales/components/hu/visual-editor.json +++ b/packages/visual-editor/locales/components/hu/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "kilométer", "loadingMap": "Betöltési térkép ...", "loadingNearbyLocations": "A közeli helyek betöltése ...", + "loadingResults": "Eredmények betöltése...", "locationWithCount_one": "{{count}} hely", "locationWithCount_other": "{{count}} helyek", "locationsNear_one": "{{count}} hely közelében \"{{name}}\"", @@ -53,6 +54,8 @@ "mile_one": "mérföld", "mile_other": "mérföld", "monday": "hétfő", + "more": "Több", + "noLinkAvailable": "nincs elérhető hivatkozás", "noResultsFoundForThisArea": "Nincs eredmény erre a területre", "open24Hours": "Nyitva 24 órát", "openHeaderMenu": "Nyissa meg a fejléc menüjét", @@ -91,6 +94,7 @@ "xLink": "Kövess minket az X-en (Twitter)", "youtube": "Iratkozz fel YouTube csatornánkra" }, + "staticMapEmptyStateAddApiKey": "Adjon hozzá egy API-kulcsot a térkép előnézetéhez", "sunday": "vasárnap", "temporarilyClosed": "Ideiglenesen bezárt", "thursday": "csütörtök", diff --git a/packages/visual-editor/locales/components/it/visual-editor.json b/packages/visual-editor/locales/components/it/visual-editor.json index 9483df31ae..aef2bfaf7b 100644 --- a/packages/visual-editor/locales/components/it/visual-editor.json +++ b/packages/visual-editor/locales/components/it/visual-editor.json @@ -42,6 +42,7 @@ "kilometer_other": "chilometri", "loadingMap": "Mappa di caricamento ...", "loadingNearbyLocations": "Caricamento di luoghi vicini ...", + "loadingResults": "Caricamento risultati...", "locationWithCount_many": "{{count}} posizioni", "locationWithCount_one": "{{count}} posizione", "locationWithCount_other": "{{count}} località", @@ -58,6 +59,8 @@ "mile_one": "miglio", "mile_other": "miglia", "monday": "Lunedi", + "more": "Di più", + "noLinkAvailable": "nessun collegamento disponibile", "noResultsFoundForThisArea": "Nessun risultato trovato per quest'area", "open24Hours": "Aperto 24 ore", "openHeaderMenu": "Menu di intestazione aperta", @@ -96,6 +99,7 @@ "xLink": "Seguici su X (Twitter)", "youtube": "Iscriviti al nostro canale YouTube" }, + "staticMapEmptyStateAddApiKey": "Aggiungi una chiave API per visualizzare l'anteprima della mappa", "sunday": "Domenica", "temporarilyClosed": "Temporaneamente chiuso", "thursday": "Giovedì", diff --git a/packages/visual-editor/locales/components/ja/visual-editor.json b/packages/visual-editor/locales/components/ja/visual-editor.json index e6e36244e7..90711c2a54 100644 --- a/packages/visual-editor/locales/components/ja/visual-editor.json +++ b/packages/visual-editor/locales/components/ja/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "キロメートル", "loadingMap": "マップの読み込み...", "loadingNearbyLocations": "近くの場所を読み込む...", + "loadingResults": "結果を読み込んでいます...", "locationWithCount_one": "{{count}} 件の場所", "locationWithCount_other": "{{count}} 件の場所", "locationsNear_one": "「{{name}}」付近の {{count}} 件の場所", @@ -53,6 +54,8 @@ "mile_one": "マイル", "mile_other": "マイル", "monday": "月曜日", + "more": "もっと", + "noLinkAvailable": "利用可能なリンクはありません", "noResultsFoundForThisArea": "この領域の結果は見つかりませんでした", "open24Hours": "24時間営業", "openHeaderMenu": "ヘッダーを開くメニュー", @@ -91,6 +94,7 @@ "xLink": "X (Twitter) でフォローしてください", "youtube": "YouTube チャンネルを購読してください" }, + "staticMapEmptyStateAddApiKey": "API キーを追加してマップをプレビューする", "sunday": "日曜日", "temporarilyClosed": "一時休業中", "thursday": "木曜日", diff --git a/packages/visual-editor/locales/components/lt/visual-editor.json b/packages/visual-editor/locales/components/lt/visual-editor.json index 87934731ee..5d7ca06b95 100644 --- a/packages/visual-editor/locales/components/lt/visual-editor.json +++ b/packages/visual-editor/locales/components/lt/visual-editor.json @@ -43,6 +43,7 @@ "kilometer_other": "kilometrų", "loadingMap": "Krovimo žemėlapis ...", "loadingNearbyLocations": "Pakraunama netoliese esančias vietas ...", + "loadingResults": "Įkeliami rezultatai...", "locationWithCount_few": "{{count}} vietos", "locationWithCount_many": "{{count}} vietos", "locationWithCount_one": "{{count}} vieta", @@ -63,6 +64,8 @@ "mile_one": "mylia", "mile_other": "mylių", "monday": "Pirmadienis", + "more": "Daugiau", + "noLinkAvailable": "jokios nuorodos nėra", "noResultsFoundForThisArea": "Nerasta šios srities rezultatų", "open24Hours": "Atidarykite 24 valandas", "openHeaderMenu": "Atidarykite antraštės meniu", @@ -101,6 +104,7 @@ "xLink": "Sekite mus X („Twitter“)", "youtube": "Prenumeruokite mūsų YouTube kanalą" }, + "staticMapEmptyStateAddApiKey": "Pridėkite API raktą, kad peržiūrėtumėte žemėlapį", "sunday": "Sekmadienis", "temporarilyClosed": "Laikinai uždarytas", "thursday": "Ketvirtadienis", diff --git a/packages/visual-editor/locales/components/lv/visual-editor.json b/packages/visual-editor/locales/components/lv/visual-editor.json index e398df4955..977296e7ef 100644 --- a/packages/visual-editor/locales/components/lv/visual-editor.json +++ b/packages/visual-editor/locales/components/lv/visual-editor.json @@ -42,6 +42,7 @@ "kilometer_zero": "kilometri", "loadingMap": "Kartes ielāde ...", "loadingNearbyLocations": "Iekraušana tuvējo vietu ...", + "loadingResults": "Notiek rezultātu ielāde...", "locationWithCount_one": "{{count}} atrašanās vieta", "locationWithCount_other": "{{count}} vietas", "locationWithCount_zero": "{{count}} atrašanās vietas", @@ -58,6 +59,8 @@ "mile_other": "jūdzes", "mile_zero": "jūdzes", "monday": "Pirmdiena", + "more": "Vairāk", + "noLinkAvailable": "nav pieejama saite", "noResultsFoundForThisArea": "Šajā apgabalā nav atrasti rezultāti", "open24Hours": "Atveriet 24 stundas", "openHeaderMenu": "Atveriet galvenes izvēlni", @@ -96,6 +99,7 @@ "xLink": "Sekojiet mums X (Twitter)", "youtube": "Abonējiet mūsu YouTube kanālu" }, + "staticMapEmptyStateAddApiKey": "Pievienojiet API atslēgu, lai priekšskatītu karti", "sunday": "Svētdiena", "temporarilyClosed": "Īslaicīgi slēgts", "thursday": "Ceturtdiena", diff --git a/packages/visual-editor/locales/components/nb/visual-editor.json b/packages/visual-editor/locales/components/nb/visual-editor.json index 06c19927df..c5bfafba3c 100644 --- a/packages/visual-editor/locales/components/nb/visual-editor.json +++ b/packages/visual-editor/locales/components/nb/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "kilometer", "loadingMap": "Laster inn kart ...", "loadingNearbyLocations": "Laster inn nærliggende steder ...", + "loadingResults": "Laster inn resultater...", "locationWithCount_one": "{{count}} plassering", "locationWithCount_other": "{{count}} lokasjoner", "locationsNear_one": "{{count}} plassering i nærheten \"{{name}}\"", @@ -53,6 +54,8 @@ "mile_one": "mil", "mile_other": "mil", "monday": "mandag", + "more": "Flere", + "noLinkAvailable": "ingen lenke tilgjengelig", "noResultsFoundForThisArea": "Ingen resultater funnet for dette området", "open24Hours": "Åpent 24 timer", "openHeaderMenu": "Åpne headermeny", @@ -91,6 +94,7 @@ "xLink": "Følg oss på X (Twitter)", "youtube": "Abonner på vår YouTube-kanal" }, + "staticMapEmptyStateAddApiKey": "Legg til en API-nøkkel for å forhåndsvise kartet ditt", "sunday": "søndag", "temporarilyClosed": "Midlertidig stengt", "thursday": "torsdag", diff --git a/packages/visual-editor/locales/components/nl/visual-editor.json b/packages/visual-editor/locales/components/nl/visual-editor.json index 620810d79c..bbdc0ec194 100644 --- a/packages/visual-editor/locales/components/nl/visual-editor.json +++ b/packages/visual-editor/locales/components/nl/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "kilometers", "loadingMap": "Kaart laden ...", "loadingNearbyLocations": "Nabijgelegen locaties laden ...", + "loadingResults": "Resultaten laden...", "locationWithCount_one": "{{count}} locatie", "locationWithCount_other": "{{count}} locaties", "locationsNear_one": "{{count}} locatie nabij \"{{name}}\"", @@ -53,6 +54,8 @@ "mile_one": "mijl", "mile_other": "mijlen", "monday": "Maandag", + "more": "Meer", + "noLinkAvailable": "geen koppeling beschikbaar", "noResultsFoundForThisArea": "Geen resultaten gevonden voor dit gebied", "open24Hours": "24 uur open", "openHeaderMenu": "Open koptekstmenu", @@ -91,6 +94,7 @@ "xLink": "Volg ons op X (Twitter)", "youtube": "Abonneer je op ons YouTube-kanaal" }, + "staticMapEmptyStateAddApiKey": "Voeg een API-sleutel toe om een ​​voorbeeld van uw kaart te bekijken", "sunday": "Zondag", "temporarilyClosed": "Tijdelijk gesloten", "thursday": "Donderdag", diff --git a/packages/visual-editor/locales/components/pl/visual-editor.json b/packages/visual-editor/locales/components/pl/visual-editor.json index 5b393f0aab..a3a82342fe 100644 --- a/packages/visual-editor/locales/components/pl/visual-editor.json +++ b/packages/visual-editor/locales/components/pl/visual-editor.json @@ -43,6 +43,7 @@ "kilometer_other": "kilometry", "loadingMap": "Ładowanie mapy ...", "loadingNearbyLocations": "Ładowanie pobliskich lokalizacji ...", + "loadingResults": "Ładowanie wyników...", "locationWithCount_few": "{{count}} lokalizacje", "locationWithCount_many": "{{count}} lokalizacji", "locationWithCount_one": "{{count}} lokalizacja", @@ -63,6 +64,8 @@ "mile_one": "mila", "mile_other": "mili", "monday": "Poniedziałek", + "more": "Więcej", + "noLinkAvailable": "brak dostępnego linku", "noResultsFoundForThisArea": "Nie znaleziono wyników dla tego obszaru", "open24Hours": "Otwarte 24 godziny", "openHeaderMenu": "Otwórz menu nagłówka", @@ -101,6 +104,7 @@ "xLink": "Śledź nas na X (Twitter)", "youtube": "Subskrybuj nasz kanał YouTube" }, + "staticMapEmptyStateAddApiKey": "Dodaj klucz API, aby wyświetlić podgląd mapy", "sunday": "Niedziela", "temporarilyClosed": "Tymczasowo zamknięte", "thursday": "Czwartek", diff --git a/packages/visual-editor/locales/components/pt/visual-editor.json b/packages/visual-editor/locales/components/pt/visual-editor.json index 64a4026c80..2975a0292a 100644 --- a/packages/visual-editor/locales/components/pt/visual-editor.json +++ b/packages/visual-editor/locales/components/pt/visual-editor.json @@ -42,6 +42,7 @@ "kilometer_other": "quilômetros", "loadingMap": "Carregando mapa ...", "loadingNearbyLocations": "Carregando locais próximos ...", + "loadingResults": "Carregando resultados...", "locationWithCount_many": "{{count}} locais", "locationWithCount_one": "{{count}} localização", "locationWithCount_other": "{{count}} localizações", @@ -58,6 +59,8 @@ "mile_one": "milha", "mile_other": "milhas", "monday": "Segunda-feira", + "more": "Mais", + "noLinkAvailable": "nenhum link disponível", "noResultsFoundForThisArea": "Nenhum resultado encontrado para esta área", "open24Hours": "Aberto 24 horas", "openHeaderMenu": "Menu de cabeçalho aberto", @@ -96,6 +99,7 @@ "xLink": "Siga-nos no X (Twitter)", "youtube": "Inscreva-se em nosso canal no YouTube" }, + "staticMapEmptyStateAddApiKey": "Adicione uma chave de API para visualizar seu mapa", "sunday": "Domingo", "temporarilyClosed": "Temporariamente fechado", "thursday": "Quinta-feira", diff --git a/packages/visual-editor/locales/components/ro/visual-editor.json b/packages/visual-editor/locales/components/ro/visual-editor.json index faa3bad5b7..a6ff30f1f2 100644 --- a/packages/visual-editor/locales/components/ro/visual-editor.json +++ b/packages/visual-editor/locales/components/ro/visual-editor.json @@ -42,6 +42,7 @@ "kilometer_other": "kilometri", "loadingMap": "Harta de încărcare ...", "loadingNearbyLocations": "Încărcarea locațiilor din apropiere ...", + "loadingResults": "Se încarcă rezultatele...", "locationWithCount_few": "{{count}} locații", "locationWithCount_one": "{{count}} locație", "locationWithCount_other": "{{count}} locații", @@ -58,6 +59,8 @@ "mile_one": "milă", "mile_other": "mile", "monday": "luni", + "more": "Mai mult", + "noLinkAvailable": "nici un link disponibil", "noResultsFoundForThisArea": "Nu s -au găsit rezultate pentru acest domeniu", "open24Hours": "Deschis 24 de ore", "openHeaderMenu": "Deschideți meniul antetului", @@ -96,6 +99,7 @@ "xLink": "Urmărește-ne pe X (Twitter)", "youtube": "Abonați-vă la canalul nostru YouTube" }, + "staticMapEmptyStateAddApiKey": "Adăugați o cheie API pentru a vă previzualiza harta", "sunday": "duminică", "temporarilyClosed": "Închis temporar", "thursday": "joi", diff --git a/packages/visual-editor/locales/components/sk/visual-editor.json b/packages/visual-editor/locales/components/sk/visual-editor.json index 5403778b96..c680356ffb 100644 --- a/packages/visual-editor/locales/components/sk/visual-editor.json +++ b/packages/visual-editor/locales/components/sk/visual-editor.json @@ -43,6 +43,7 @@ "kilometer_other": "kilometrov", "loadingMap": "Načítava mapa ...", "loadingNearbyLocations": "Načítavanie miest v okolí ...", + "loadingResults": "Načítavajú sa výsledky...", "locationWithCount_few": "{{count}} miest", "locationWithCount_many": "{{count}} miest", "locationWithCount_one": "{{count}} lokácia", @@ -63,6 +64,8 @@ "mile_one": "míľa", "mile_other": "míľ", "monday": "Pondelok", + "more": "Viac", + "noLinkAvailable": "nie je dostupný žiadny odkaz", "noResultsFoundForThisArea": "Pre túto oblasť sa nenašli žiadne výsledky", "open24Hours": "Otvorené 24 hodín", "openHeaderMenu": "Otvoriť ponuku hlavičky", @@ -101,6 +104,7 @@ "xLink": "Sledujte nás na X (Twitter)", "youtube": "Prihláste sa na odber nášho kanála YouTube" }, + "staticMapEmptyStateAddApiKey": "Ak chcete zobraziť ukážku mapy, pridajte kľúč API", "sunday": "Nedeľa", "temporarilyClosed": "Dočasne zatvorené", "thursday": "Štvrtok", diff --git a/packages/visual-editor/locales/components/sv/visual-editor.json b/packages/visual-editor/locales/components/sv/visual-editor.json index 54e327b499..f524e90a84 100644 --- a/packages/visual-editor/locales/components/sv/visual-editor.json +++ b/packages/visual-editor/locales/components/sv/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "kilometer", "loadingMap": "Laddar karta ...", "loadingNearbyLocations": "Laddar närliggande platser ...", + "loadingResults": "Laddar resultat...", "locationWithCount_one": "{{count}} Plats", "locationWithCount_other": "{{count}} Platser", "locationsNear_one": "{{count}} Plats nära \"{{name}}\"", @@ -53,6 +54,8 @@ "mile_one": "mil", "mile_other": "mil", "monday": "Måndag", + "more": "Mer", + "noLinkAvailable": "ingen länk tillgänglig", "noResultsFoundForThisArea": "Inga resultat hittades för detta område", "open24Hours": "Öppet 24 timmar", "openHeaderMenu": "Öppen rubrikmeny", @@ -91,6 +94,7 @@ "xLink": "Följ oss på X (Twitter)", "youtube": "Prenumerera på vår YouTube-kanal" }, + "staticMapEmptyStateAddApiKey": "Lägg till en API-nyckel för att förhandsgranska din karta", "sunday": "Söndag", "temporarilyClosed": "Tillfälligt stängd", "thursday": "Torsdag", diff --git a/packages/visual-editor/locales/components/tr/visual-editor.json b/packages/visual-editor/locales/components/tr/visual-editor.json index 7b4702e0a5..f96eae494a 100644 --- a/packages/visual-editor/locales/components/tr/visual-editor.json +++ b/packages/visual-editor/locales/components/tr/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "kilometre", "loadingMap": "Yükleme haritası ...", "loadingNearbyLocations": "Yakındaki yerleri yükleme ...", + "loadingResults": "Sonuçlar Yükleniyor...", "locationWithCount_one": "{{count}} Konum", "locationWithCount_other": "{{count}} konumlar", "locationsNear_one": "{{count}} konum \"{{name}}\" yakınında yer", @@ -53,6 +54,8 @@ "mile_one": "mil", "mile_other": "mil", "monday": "Pazartesi", + "more": "Daha", + "noLinkAvailable": "bağlantı mevcut değil", "noResultsFoundForThisArea": "Bu alan için sonuç bulunamadı", "open24Hours": "24 saat açık", "openHeaderMenu": "Başlık Menüsünü Aç", @@ -91,6 +94,7 @@ "xLink": "Bizi X'te takip edin (Twitter)", "youtube": "YouTube kanalımıza abone olun" }, + "staticMapEmptyStateAddApiKey": "Haritanızı önizlemek için bir API anahtarı ekleyin", "sunday": "Pazar", "temporarilyClosed": "Geçici olarak kapalı", "thursday": "Perşembe", diff --git a/packages/visual-editor/locales/components/zh-TW/visual-editor.json b/packages/visual-editor/locales/components/zh-TW/visual-editor.json index 0acc63fcb5..80f3a69c87 100644 --- a/packages/visual-editor/locales/components/zh-TW/visual-editor.json +++ b/packages/visual-editor/locales/components/zh-TW/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "公里", "loadingMap": "加載地圖...", "loadingNearbyLocations": "在附近的位置加載...", + "loadingResults": "加載結果...", "locationWithCount_one": "{{count}} 個位置", "locationWithCount_other": "{{count}} 個位置", "locationsNear_one": "“{{name}}”附近有 {{count}} 個位置", @@ -53,6 +54,8 @@ "mile_one": "英里", "mile_other": "英里", "monday": "週一", + "more": "更多的", + "noLinkAvailable": "沒有可用的連結", "noResultsFoundForThisArea": "該區域找不到結果", "open24Hours": "打開24小時", "openHeaderMenu": "打開標題菜單", @@ -91,6 +94,7 @@ "xLink": "在 X (Twitter) 上關注我們", "youtube": "訂閱我們的 YouTube 頻道" }, + "staticMapEmptyStateAddApiKey": "添加 API 密鑰以預覽地圖", "sunday": "星期日", "temporarilyClosed": "暫時關閉", "thursday": "週四", diff --git a/packages/visual-editor/locales/components/zh/visual-editor.json b/packages/visual-editor/locales/components/zh/visual-editor.json index a868152709..17e5de4acb 100644 --- a/packages/visual-editor/locales/components/zh/visual-editor.json +++ b/packages/visual-editor/locales/components/zh/visual-editor.json @@ -41,6 +41,7 @@ "kilometer_other": "公里", "loadingMap": "加载地图...", "loadingNearbyLocations": "在附近的位置加载...", + "loadingResults": "加载结果...", "locationWithCount_one": "{{count}} 个位置", "locationWithCount_other": "{{count}} 个位置", "locationsNear_one": "“{{name}}”附近有 {{count}} 个位置", @@ -53,6 +54,8 @@ "mile_one": "英里", "mile_other": "英里", "monday": "周一", + "more": "更多的", + "noLinkAvailable": "没有可用的链接", "noResultsFoundForThisArea": "该区域找不到结果", "open24Hours": "打开24小时", "openHeaderMenu": "打开标题菜单", @@ -91,6 +94,7 @@ "xLink": "在 X (Twitter) 上关注我们", "youtube": "订阅我们的 YouTube 频道" }, + "staticMapEmptyStateAddApiKey": "添加 API 密钥以预览地图", "sunday": "星期日", "temporarilyClosed": "暂时关闭", "thursday": "周四", diff --git a/packages/visual-editor/locales/platform/cs/visual-editor.json b/packages/visual-editor/locales/platform/cs/visual-editor.json index 2d65cb42dc..90dd268fcf 100644 --- a/packages/visual-editor/locales/platform/cs/visual-editor.json +++ b/packages/visual-editor/locales/platform/cs/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Zpráva o autorských právech", "coreInfoSection": "Sekce hlavních informací", "ctaGroup": "Skupina CTA", + "customBreadcrumbs": "Vlastní strouhanka", "customCodeSection": "Vlastní sekce kódu", + "CustomDirectory": "Vlastní adresář", "directory": "Adresář", "directoryGrid": "Adresářová mřížka", "emails": "E -maily", @@ -107,6 +109,9 @@ "promoSection": "Promo sekce", "reviewsSection": "Sekce recenzí", "richText": "RTF", + "searchBarSlot": "Slot pro vyhledávací lištu", + "SearchResultsSlot": "Slot výsledků vyhledávání", + "searchWithSlots": "Vyhledávání pomocí slotů", "secondaryFooter": "Sekundární zápatí", "secondaryHeader": "Sekundární záhlaví", "staticMapSection": "Sekce statické mapy", @@ -176,6 +181,7 @@ "buttons": "Tlačítka", "buttonText": "Text tlačítka", "cardTitleColor": "Barva názvu karty", + "cardType": "Typ karty", "cardVariant": "Varianta karty", "carouselImageCount": "Počet obrázků kolotoče", "collapseDays": "Dny kolapsu", @@ -210,7 +216,9 @@ "email": "E-mail", "emailList": "Seznam e -mailů", "emails": "E -maily", + "enableGenerativeDirectAnswer": "Generativní přímá odpověď", "enableLanguageSelector": "Povolit volič jazyků", + "enableVisualAutoComplete": "Povolit vizuální automatické dokončování", "endDate": "Datum ukončení", "expandedFooterLinks": "Rozšířené odkazy zápatí", "expandFooter": "Rozbalte zápatí", @@ -240,11 +248,13 @@ "includeTime": "Zahrnout čas", "insights": "Poznatky", "instagramLink": "Instagram odkaz", + "isTypingEffect": "Typový efekt", "javascript": "JavaScript", "justifyContent": "Ospravedlnit obsah", "key": "Klíč", "label": "Označení", "latitude": "Zeměpisná šířka", + "layout": "Rozložení", "limit": "Omezit", "link": "Odkaz", "linkedInLink": "LinkedIn Link", @@ -458,13 +468,19 @@ "timeFormat": "Formát času", "title": "Titul", "truncateDescription": "Zkrácení popisu", + "universalLimit": "Univerzální limit", "utilityImages": "Užitkové obrázky", "value": "Hodnota", "values": "Hodnoty", "variant": "Varianta", + "verticalKey": "Vertikální klíč", + "verticalLimit": "Vertikální limit", "verticalPadding": "Vycpávání horní/dolní", + "verticals": "Vertikály", "video": "Video", "visibleOnLivePage": "Viditelné na živé stránce", + "visualAutoCompleteVerticalKey": "Vertikální klíč vizuálního automatického doplňování", + "voiceSearch": "Hlasové vyhledávání", "weight": "Hmotnost", "wrap": "Zabalit", "xLink": "X odkaz", @@ -509,6 +525,7 @@ }, "loadingMap": "Načítání mapy ...", "loadingNearbyLocations": "Načítání nedalekých míst ...", + "loadingResults": "Načítání výsledků...", "loadingVE": "Načítání vizuálního editoru ...", "locationsNear_one": "{{count}} umístění poblíž „{{name}}“", "locationsNear_few": "{{count}} míst poblíž „{{name}}“", @@ -531,12 +548,18 @@ "mile_few": "míle", "mile_many": "mil", "mile_other": "mil", + "missingCustomEndpointApiKey": "Chcete-li zobrazit tuto část, přidejte svůj vlastní klíč API koncového bodu obsahu", + "missingCustomEndpointName": "Chcete-li zobrazit tuto sekci, přidejte svůj vlastní název koncového bodu obsahu", "missingHtmlWidget": "Přidejte HTML pro zobrazení komponenty", + "missingSearchApiKey": "Chcete-li zobrazit tuto sekci, přidejte klíč Search API", + "missingSearchExperienceKey": "Chcete-li zobrazit tuto sekci, přidejte klíč pro vyhledávání", "monday": "pondělí", + "more": "Více", "nearbyLocationsEmptyState": "Žádná {{entityType}} v okruhu {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Sekce skrytá pro tuto {{entityType}}", "noAvailableFields": "Žádná dostupná pole", "noAvailableTypes": "Žádné dostupné typy", + "noLinkAvailable": "není dostupný žádný odkaz", "noMatchesFound": "Nebyly nalezeny žádné zápasy.", "noResultsFoundForThisArea": "Pro tuto oblast nebyly nalezeny žádné výsledky", "noTypesFoundMsg": "Nebyly nalezeny žádné typy. Zkontrolujte prosím svou konfiguraci.", diff --git a/packages/visual-editor/locales/platform/da/visual-editor.json b/packages/visual-editor/locales/platform/da/visual-editor.json index 66eae96cde..19650915fe 100644 --- a/packages/visual-editor/locales/platform/da/visual-editor.json +++ b/packages/visual-editor/locales/platform/da/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Ophavsretsmeddelelse", "coreInfoSection": "Kerneinfo -sektion", "ctaGroup": "CTA gruppe", + "customBreadcrumbs": "Brugerdefinerede brødkrummer", "customCodeSection": "Brugerdefineret kodesektion", + "CustomDirectory": "Brugerdefineret bibliotek", "directory": "Vejviser", "directoryGrid": "Kataloggitter", "emails": "E -mails", @@ -107,6 +109,9 @@ "promoSection": "Promo -sektion", "reviewsSection": "Afsnittet", "richText": "Rich Text", + "searchBarSlot": "SearchBar Slot", + "SearchResultsSlot": "Søgeresultater Slot", + "searchWithSlots": "Søg med Slots", "secondaryFooter": "Sekundær sidefod", "secondaryHeader": "Sekundær overskrift", "staticMapSection": "Statisk kortafsnit", @@ -176,6 +181,7 @@ "buttons": "Knapper", "buttonText": "Knaptekst", "cardTitleColor": "Kortets titelfarve", + "cardType": "Korttype", "cardVariant": "Kortvariant", "carouselImageCount": "Antal karruselbilleder", "collapseDays": "Kollaps dage", @@ -210,7 +216,9 @@ "email": "E -mail", "emailList": "E -mail -liste", "emails": "E -mails", + "enableGenerativeDirectAnswer": "Generativt direkte svar", "enableLanguageSelector": "Aktivér sprogvælger", + "enableVisualAutoComplete": "Aktiver visuel autofuldførelse", "endDate": "Slutdato", "expandedFooterLinks": "Udvidede sidefodslink", "expandFooter": "Udvid sidefod", @@ -240,11 +248,13 @@ "includeTime": "Medtag tid", "insights": "Indsigt", "instagramLink": "Instagram -link", + "isTypingEffect": "Type effekt", "javascript": "JavaScript", "justifyContent": "Retfærdiggøre indhold", "key": "Nøgle", "label": "Mærke", "latitude": "Breddegrad", + "layout": "Layout", "limit": "Begrænse", "link": "Forbindelse", "linkedInLink": "LinkedIn -link", @@ -458,13 +468,19 @@ "timeFormat": "Tidsformat", "title": "Titel", "truncateDescription": "Trunkeringsbeskrivelse", + "universalLimit": "Universal grænse", "utilityImages": "Hjælpebilleder", "value": "Værdi", "values": "Værdier", "variant": "Variant", + "verticalKey": "Lodret nøgle", + "verticalLimit": "Lodret grænse", "verticalPadding": "Top/bund polstring", + "verticals": "Lodrette", "video": "Video", "visibleOnLivePage": "Synlig på live side", + "visualAutoCompleteVerticalKey": "Visuel Autofuldførelse Lodret nøgle", + "voiceSearch": "Stemmesøgning", "weight": "Vægt", "wrap": "Wrap", "xLink": "X link", @@ -507,6 +523,7 @@ }, "loadingMap": "Indlæsningskort ...", "loadingNearbyLocations": "Indlæser placeringer i nærheden ...", + "loadingResults": "Indlæser resultater...", "loadingVE": "Indlæser visuel redaktør ...", "locationsNear_one": "{{count}} placering i nærheden af ​​\"{{name}}\"", "locationsNear_other": "{{count}} steder i nærheden af ​​\"{{name}}\"", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "Metatitel mangler for lokalitet(er): {{locales}}", "mile_one": "mil", "mile_other": "mil", + "missingCustomEndpointApiKey": "Tilføj din tilpassede Content endpoint API-nøgle for at se denne sektion", + "missingCustomEndpointName": "Tilføj dit tilpassede indholdsslutpunktnavn for at se dette afsnit", "missingHtmlWidget": "Tilføj HTML for at se komponent", + "missingSearchApiKey": "Tilføj din søge-API-nøgle for at se dette afsnit", + "missingSearchExperienceKey": "Tilføj din søgeoplevelsesnøgle for at se dette afsnit", "monday": "mandag", + "more": "Mere", "nearbyLocationsEmptyState": "Ingen {{entityType}} inden for {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Sektion skjult for denne {{entityType}}", "noAvailableFields": "Ingen tilgængelige felter", "noAvailableTypes": "Ingen tilgængelige typer", + "noLinkAvailable": "intet link tilgængeligt", "noMatchesFound": "Ingen kampe fundet.", "noResultsFoundForThisArea": "Ingen resultater fundet for dette område", "noTypesFoundMsg": "Ingen typer fundet. Kontroller din konfiguration.", diff --git a/packages/visual-editor/locales/platform/de/visual-editor.json b/packages/visual-editor/locales/platform/de/visual-editor.json index 540413c7df..cc43ce3881 100644 --- a/packages/visual-editor/locales/platform/de/visual-editor.json +++ b/packages/visual-editor/locales/platform/de/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Copyright-Hinweis", "coreInfoSection": "Basisinfo-Modul", "ctaGroup": "CTA-Gruppe", + "customBreadcrumbs": "Benutzerdefinierte Semmelbrösel", "customCodeSection": "Custom-Code-Bereich", + "CustomDirectory": "Benutzerdefiniertes Verzeichnis", "directory": "Verzeichnis", "directoryGrid": "Verzeichnis-Grid", "emails": "E-Mails", @@ -107,6 +109,9 @@ "promoSection": "Promo-Modul", "reviewsSection": "Bewertungs Modul", "richText": "Rich-Text", + "searchBarSlot": "SearchBar-Slot", + "SearchResultsSlot": "Suchergebnis-Slot", + "searchWithSlots": "Suche mit Slots", "secondaryFooter": "Sekundärer Footer", "secondaryHeader": "Sekundärer Header", "staticMapSection": "Statisches Karten-Modul", @@ -176,6 +181,7 @@ "buttons": "Buttons", "buttonText": "Schaltflächentext", "cardTitleColor": "Farbe des Kartentitels", + "cardType": "Kartentyp", "cardVariant": "Karten-Variante", "carouselImageCount": "Anzahl der Karussell-Bilder", "collapseDays": "Tage einklappen", @@ -210,7 +216,9 @@ "email": "E-Mail", "emailList": "E-Mail-Liste", "emails": "E-Mails", + "enableGenerativeDirectAnswer": "Generative direkte Antwort", "enableLanguageSelector": "Sprachauswahl aktivieren", + "enableVisualAutoComplete": "Aktivieren Sie die visuelle Autovervollständigung", "endDate": "Enddatum", "expandedFooterLinks": "Erweiterte Footer-Links", "expandFooter": "Footer erweitern", @@ -240,11 +248,13 @@ "includeTime": "Uhrzeit anzeigen", "insights": "Insights", "instagramLink": "Instagram-Link", + "isTypingEffect": "Typeffekt", "javascript": "JavaScript", "justifyContent": "Inhalt ausrichten", "key": "Schlüssel", "label": "Bezeichnung", "latitude": "Breitengrad", + "layout": "Layout", "limit": "Limit", "link": "Link", "linkedInLink": "LinkedIn-Link", @@ -458,13 +468,19 @@ "timeFormat": "Zeitformat", "title": "Titel", "truncateDescription": "Beschreibung kürzen", + "universalLimit": "Universelle Grenze", "utilityImages": "Utility-Bilder", "value": "Wert", "values": "Werte", "variant": "Variante", + "verticalKey": "Vertikaler Schlüssel", + "verticalLimit": "Vertikale Grenze", "verticalPadding": "Vertikales Padding", + "verticals": "Vertikale", "video": "Video", "visibleOnLivePage": "Auf der Live-Seite sichtbar", + "visualAutoCompleteVerticalKey": "Vertikaler Schlüssel zur visuellen automatischen Vervollständigung", + "voiceSearch": "Sprachsuche", "weight": "Gewicht", "wrap": "Zeilenumbruch", "xLink": "X-Link", @@ -507,6 +523,7 @@ }, "loadingMap": "Karte wird geladen...", "loadingNearbyLocations": "Standorte in der Nähe werden geladen...", + "loadingResults": "Ergebnisse werden geladen...", "loadingVE": "Visual Editor wird geladen...", "locationsNear_one": "{{count}} Standort in der Nähe von „{{name}}“", "locationsNear_other": "{{count}} Standorte in der Nähe von „{{name}}“", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "Für Gebietsschema(s) fehlt der Metatitel: {{locales}}", "mile_one": "Meile", "mile_other": "Meilen", + "missingCustomEndpointApiKey": "Fügen Sie Ihren benutzerdefinierten Content-Endpunkt-API-Schlüssel hinzu, um diesen Abschnitt anzuzeigen", + "missingCustomEndpointName": "Fügen Sie den Namen Ihres benutzerdefinierten Inhaltsendpunkts hinzu, um diesen Abschnitt anzuzeigen", "missingHtmlWidget": "HTML hinzufügen, um Komponente anzuzeigen", + "missingSearchApiKey": "Fügen Sie Ihren Such-API-Schlüssel hinzu, um diesen Abschnitt anzuzeigen", + "missingSearchExperienceKey": "Fügen Sie Ihren Search Experience-Schlüssel hinzu, um diesen Abschnitt anzuzeigen", "monday": "Montag", + "more": "Mehr", "nearbyLocationsEmptyState": "Kein {{entityType}} im Umkreis von {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Modul für diesen {{entityType}} ausgeblendet", "noAvailableFields": "Keine verfügbaren Felder", "noAvailableTypes": "Keine verfügbaren Typen", + "noLinkAvailable": "kein Link vorhanden", "noMatchesFound": "Keine Übereinstimmungen gefunden.", "noResultsFoundForThisArea": "Keine Ergebnisse für diesen Bereich gefunden", "noTypesFoundMsg": "Keine Typen gefunden. Bitte überprüfen Sie Ihre Konfiguration.", diff --git a/packages/visual-editor/locales/platform/en-GB/visual-editor.json b/packages/visual-editor/locales/platform/en-GB/visual-editor.json index b4827b64d1..b421060745 100644 --- a/packages/visual-editor/locales/platform/en-GB/visual-editor.json +++ b/packages/visual-editor/locales/platform/en-GB/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Copyright Message", "coreInfoSection": "Core Info Section", "ctaGroup": "CTA Group", + "customBreadcrumbs": "Custom Breadcrumbs", "customCodeSection": "Custom Code Section", + "CustomDirectory": "Custom Directory", "directory": "Directory", "directoryGrid": "Directory Grid", "emails": "Emails", @@ -107,6 +109,9 @@ "promoSection": "Promo Section", "reviewsSection": "Reviews Section", "richText": "Rich Text", + "searchBarSlot": "SearchBar Slot", + "SearchResultsSlot": "Search Results Slot", + "searchWithSlots": "Search with Slots", "secondaryFooter": "Secondary Footer", "secondaryHeader": "Secondary Header", "staticMapSection": "Static Map Section", @@ -176,6 +181,7 @@ "buttons": "Buttons", "buttonText": "Button Text", "cardTitleColor": "Card Title Color", + "cardType": "Card Type", "cardVariant": "Card Variant", "carouselImageCount": "Carousel Image Count", "collapseDays": "Collapse Days", @@ -210,7 +216,9 @@ "email": "Email", "emailList": "Email List", "emails": "Emails", + "enableGenerativeDirectAnswer": "Generative Direct Answer", "enableLanguageSelector": "Enable Language Selector", + "enableVisualAutoComplete": "Enable Visual Autocomplete", "endDate": "End Date", "expandedFooterLinks": "Expanded Footer Links", "expandFooter": "Expand Footer", @@ -240,11 +248,13 @@ "includeTime": "Include Time", "insights": "Insights", "instagramLink": "Instagram Link", + "isTypingEffect": "Type Effect", "javascript": "JavaScript", "justifyContent": "Justify Content", "key": "Key", "label": "Label", "latitude": "Latitude", + "layout": "Layout", "limit": "Limit", "link": "Link", "linkedInLink": "LinkedIn Link", @@ -458,13 +468,19 @@ "timeFormat": "Time Format", "title": "Title", "truncateDescription": "Truncate Description", + "universalLimit": "Universal Limit", "utilityImages": "Utility Images", "value": "Value", "values": "Values", "variant": "Variant", + "verticalKey": "Vertical Key", + "verticalLimit": "Vertical Limit", "verticalPadding": "Top/Bottom Padding", + "verticals": "Verticals", "video": "Video", "visibleOnLivePage": "Visible on Live Page", + "visualAutoCompleteVerticalKey": "Visual Autocomplete Vertical Key", + "voiceSearch": "Voice Search", "weight": "Weight", "wrap": "Wrap", "xLink": "X Link", @@ -507,6 +523,7 @@ }, "loadingMap": "Loading Map...", "loadingNearbyLocations": "Loading nearby locations...", + "loadingResults": "Loading Results...", "loadingVE": "Loading Visual Editor...", "locationsNear_one": "{{count}} location near \"{{name}}\"", "locationsNear_other": "{{count}} locations near \"{{name}}\"", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "Meta title is missing for locale(s): {{locales}}", "mile_one": "mile", "mile_other": "miles", + "missingCustomEndpointApiKey": "Add you custom Content endpoint API key to view this sectiom", + "missingCustomEndpointName": "Add your custom Content endpoint name to view this section", "missingHtmlWidget": "Add HTML to view component", + "missingSearchApiKey": "Add your Search API key to view this section", + "missingSearchExperienceKey": "Add your Search Experience key to view this section", "monday": "Monday", + "more": "More", "nearbyLocationsEmptyState": "No {{entityType}} within {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Section hidden for this {{entityType}}", "noAvailableFields": "No available fields", "noAvailableTypes": "No available types", + "noLinkAvailable": "no link available", "noMatchesFound": "No matches found.", "noResultsFoundForThisArea": "No results found for this area", "noTypesFoundMsg": "No types found. Please check your configuration.", diff --git a/packages/visual-editor/locales/platform/en/visual-editor.json b/packages/visual-editor/locales/platform/en/visual-editor.json index 79c90dbcca..c9a6ee1efc 100644 --- a/packages/visual-editor/locales/platform/en/visual-editor.json +++ b/packages/visual-editor/locales/platform/en/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Copyright Message", "coreInfoSection": "Core Info Section", "ctaGroup": "CTA Group", + "customBreadcrumbs": "Custom Breadcrumbs", "customCodeSection": "Custom Code Section", + "CustomDirectory": "Custom Directory", "directory": "Directory", "directoryGrid": "Directory Grid", "emails": "Emails", @@ -107,6 +109,9 @@ "promoSection": "Promo Section", "reviewsSection": "Reviews Section", "richText": "Rich Text", + "searchBarSlot": "SearchBar Slot", + "SearchResultsSlot": "Search Results Slot", + "searchWithSlots": "Search with Slots", "secondaryFooter": "Secondary Footer", "secondaryHeader": "Secondary Header", "staticMapSection": "Static Map Section", @@ -176,6 +181,7 @@ "buttons": "Buttons", "buttonText": "Button Text", "cardTitleColor": "Card Title Color", + "cardType": "Card Type", "cardVariant": "Card Variant", "carouselImageCount": "Carousel Image Count", "collapseDays": "Collapse Days", @@ -210,7 +216,9 @@ "email": "Email", "emailList": "Email List", "emails": "Emails", + "enableGenerativeDirectAnswer": "Generative Direct Answer", "enableLanguageSelector": "Enable Language Selector", + "enableVisualAutoComplete": "Enable Visual Autocomplete", "endDate": "End Date", "expandedFooterLinks": "Expanded Footer Links", "expandFooter": "Expand Footer", @@ -240,11 +248,13 @@ "includeTime": "Include Time", "insights": "Insights", "instagramLink": "Instagram Link", + "isTypingEffect": "Type Effect", "javascript": "JavaScript", "justifyContent": "Justify Content", "key": "Key", "label": "Label", "latitude": "Latitude", + "layout": "Layout", "limit": "Limit", "link": "Link", "linkedInLink": "LinkedIn Link", @@ -458,13 +468,19 @@ "timeFormat": "Time Format", "title": "Title", "truncateDescription": "Truncate Description", + "universalLimit": "Universal Limit", "utilityImages": "Utility Images", "value": "Value", "values": "Values", "variant": "Variant", + "verticalKey": "Vertical Key", + "verticalLimit": "Vertical Limit", "verticalPadding": "Top/Bottom Padding", + "verticals": "Verticals", "video": "Video", "visibleOnLivePage": "Visible on Live Page", + "visualAutoCompleteVerticalKey": "Visual Autocomplete Vertical Key", + "voiceSearch": "Voice Search", "weight": "Weight", "wrap": "Wrap", "xLink": "X Link", @@ -507,6 +523,7 @@ }, "loadingMap": "Loading Map...", "loadingNearbyLocations": "Loading nearby locations...", + "loadingResults": "Loading Results...", "loadingVE": "Loading Visual Editor...", "locationsNear_one": "{{count}} location near \"{{name}}\"", "locationsNear_other": "{{count}} locations near \"{{name}}\"", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "Meta title is missing for locale(s): {{locales}}", "mile_one": "mile", "mile_other": "miles", + "missingCustomEndpointApiKey": "Add you custom Content endpoint API key to view this sectiom", + "missingCustomEndpointName": "Add your custom Content endpoint name to view this section", "missingHtmlWidget": "Add HTML to view component", + "missingSearchApiKey": "Add your Search API key to view this section", + "missingSearchExperienceKey": "Add your Search Experience key to view this section", "monday": "Monday", + "more": "More", "nearbyLocationsEmptyState": "No {{entityType}} within {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Section hidden for this {{entityType}}", "noAvailableFields": "No available fields", "noAvailableTypes": "No available types", + "noLinkAvailable": "no link available", "noMatchesFound": "No matches found.", "noResultsFoundForThisArea": "No results found for this area", "noTypesFoundMsg": "No types found. Please check your configuration.", diff --git a/packages/visual-editor/locales/platform/es/visual-editor.json b/packages/visual-editor/locales/platform/es/visual-editor.json index 8bee9b4b1c..311fa9b3ad 100644 --- a/packages/visual-editor/locales/platform/es/visual-editor.json +++ b/packages/visual-editor/locales/platform/es/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Mensaje de derechos de autor", "coreInfoSection": "Sección de información central", "ctaGroup": "Grupo CTA", + "customBreadcrumbs": "Migas de pan personalizadas", "customCodeSection": "Sección de código personalizado", + "CustomDirectory": "Directorio personalizado", "directory": "Directorio", "directoryGrid": "Cuadrícula de directorio", "emails": "Correos electrónicos", @@ -107,6 +109,9 @@ "promoSection": "Sección promocional", "reviewsSection": "Sección de revisiones", "richText": "Texto enriquecido", + "searchBarSlot": "Ranura de la barra de búsqueda", + "SearchResultsSlot": "Ranura de resultados de búsqueda", + "searchWithSlots": "Buscar con ranuras", "secondaryFooter": "Pie de página secundario", "secondaryHeader": "Encabezado secundario", "staticMapSection": "Sección de mapa estático", @@ -176,6 +181,7 @@ "buttons": "Botones", "buttonText": "Texto del botón", "cardTitleColor": "Color del título de la tarjeta", + "cardType": "Tipo de tarjeta", "cardVariant": "Variante de tarjeta", "carouselImageCount": "Recuento de imágenes del carrusel", "collapseDays": "Días de colapso", @@ -210,7 +216,9 @@ "email": "Correo electrónico", "emailList": "Lista de correo electrónico", "emails": "Correos electrónicos", + "enableGenerativeDirectAnswer": "Respuesta directa generativa", "enableLanguageSelector": "Habilitar el selector de idiomas", + "enableVisualAutoComplete": "Habilitar autocompletar visual", "endDate": "Fecha de finalización", "expandedFooterLinks": "Enlaces de pie de página expandidos", "expandFooter": "Expandir el pie de página", @@ -240,11 +248,13 @@ "includeTime": "Incluir tiempo", "insights": "Perspectivas", "instagramLink": "Enlace de Instagram", + "isTypingEffect": "Tipo Efecto", "javascript": "JavaScript", "justifyContent": "Justificar contenido", "key": "Clave", "label": "Etiqueta", "latitude": "Latitud", + "layout": "Disposición", "limit": "Límite", "link": "Enlace", "linkedInLink": "LinkedIn Link", @@ -458,13 +468,19 @@ "timeFormat": "Formato de tiempo", "title": "Título", "truncateDescription": "Descripción truncada", + "universalLimit": "Límite universal", "utilityImages": "Imágenes de utilidad", "value": "Valor", "values": "Valores", "variant": "Variante", + "verticalKey": "Tecla vertical", + "verticalLimit": "Límite vertical", "verticalPadding": "Relleno superior/inferior", + "verticals": "Verticales", "video": "Video", "visibleOnLivePage": "Visible en la página en vivo", + "visualAutoCompleteVerticalKey": "Tecla vertical de autocompletar visual", + "voiceSearch": "Búsqueda por voz", "weight": "Peso", "wrap": "Envoltura", "xLink": "X enlace", @@ -508,6 +524,7 @@ }, "loadingMap": "Mapa de carga ...", "loadingNearbyLocations": "Cargando ubicaciones cercanas ...", + "loadingResults": "Cargando resultados...", "loadingVE": "Cargando editor visual ...", "locationsNear_one": "{{count}} ubicación cerca de \"{{name}}\"", "locationsNear_many": "{{count}} ubicaciones cerca de \"{{name}}\"", @@ -526,12 +543,18 @@ "mile_one": "milla", "mile_many": "millas", "mile_other": "millas", + "missingCustomEndpointApiKey": "Agregue su clave API de punto final de contenido personalizada para ver esta sección", + "missingCustomEndpointName": "Agregue su nombre de extremo de contenido personalizado para ver esta sección", "missingHtmlWidget": "Agregue HTML para ver el componente", + "missingSearchApiKey": "Agregue su clave de API de búsqueda para ver esta sección", + "missingSearchExperienceKey": "Agregue su clave de experiencia de búsqueda para ver esta sección", "monday": "Lunes", + "more": "Más", "nearbyLocationsEmptyState": "No hay {{entityType}} dentro de {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Sección oculta para este {{entityType}}", "noAvailableFields": "No hay campos disponibles", "noAvailableTypes": "No hay tipos disponibles", + "noLinkAvailable": "no hay enlace disponible", "noMatchesFound": "No se encontraron coincidencias.", "noResultsFoundForThisArea": "No se encontraron resultados para esta área", "noTypesFoundMsg": "No se encontraron tipos. Verifique su configuración.", diff --git a/packages/visual-editor/locales/platform/et/visual-editor.json b/packages/visual-editor/locales/platform/et/visual-editor.json index 8bd0859e07..0ec3092407 100644 --- a/packages/visual-editor/locales/platform/et/visual-editor.json +++ b/packages/visual-editor/locales/platform/et/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Autoriõiguse sõnum", "coreInfoSection": "Põhiteabe jaotis", "ctaGroup": "CTA rühm", + "customBreadcrumbs": "Kohandatud leivapuru", "customCodeSection": "Kohandatud koodisektsioon", + "CustomDirectory": "Kohandatud kataloog", "directory": "Kataloog", "directoryGrid": "Kataloogivõrk", "emails": "E -kirjad", @@ -107,6 +109,9 @@ "promoSection": "Promo osakond", "reviewsSection": "Arvustuste jaotis", "richText": "Rikastekst", + "searchBarSlot": "Otsinguriba pesa", + "SearchResultsSlot": "Otsingutulemuste pesa", + "searchWithSlots": "Otsige teenindusaegadega", "secondaryFooter": "Teisene jalus", "secondaryHeader": "Sekundaarne päis", "staticMapSection": "Staatiline kaardiosa", @@ -176,6 +181,7 @@ "buttons": "Nupud", "buttonText": "Nupu tekst", "cardTitleColor": "Kaardi pealkirja värv", + "cardType": "Kaardi tüüp", "cardVariant": "Kaardi variant", "carouselImageCount": "Karusselli piltide arv", "collapseDays": "Varisevad päevad", @@ -210,7 +216,9 @@ "email": "E -kiri", "emailList": "E -posti nimekiri", "emails": "E -kirjad", + "enableGenerativeDirectAnswer": "Generatiivne otsene vastus", "enableLanguageSelector": "Luba keelevalija", + "enableVisualAutoComplete": "Visuaalse automaatse täitmise lubamine", "endDate": "Lõppkuupäev", "expandedFooterLinks": "Laiendatud jaluse lingid", "expandFooter": "Laiendage jalus", @@ -240,11 +248,13 @@ "includeTime": "Kaasake aeg", "insights": "Teadmised", "instagramLink": "Instagrami link", + "isTypingEffect": "Tüüp Efekt", "javascript": "JavaScript", "justifyContent": "Õigustage sisu", "key": "Võti", "label": "Silt", "latitude": "Laius", + "layout": "Paigutus", "limit": "Piiranguid", "link": "Link", "linkedInLink": "LinkedIn Link", @@ -458,13 +468,19 @@ "timeFormat": "Ajavorm", "title": "Pealkiri", "truncateDescription": "Kärbige kirjeldus", + "universalLimit": "Universaalne limiit", "utilityImages": "Kasulikud pildid", "value": "Väärtus", "values": "Väärtused", "variant": "Variant", + "verticalKey": "Vertikaalne võti", + "verticalLimit": "Vertikaalne piirang", "verticalPadding": "Ülemine/alumine polster", + "verticals": "Vertikaalid", "video": "Video", "visibleOnLivePage": "Nähtav live -lehel", + "visualAutoCompleteVerticalKey": "Visuaalne automaatse täitmise vertikaalne võti", + "voiceSearch": "Häälotsing", "weight": "Kaal", "wrap": "Mähis", "xLink": "X Link", @@ -507,6 +523,7 @@ }, "loadingMap": "Kaardi laadimine ...", "loadingNearbyLocations": "Lähedal asuvate asukohtade laadimine ...", + "loadingResults": "Tulemuste laadimine...", "loadingVE": "Visuaalse toimetaja laadimine ...", "locationsNear_one": "{{count}} asukoht \"{{name}}\" lähedal", "locationsNear_other": "{{count}} asukohta \"{{name}}\" läheduses", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "Metapealkiri puudub järgmiste lokaatide jaoks: {{locales}}", "mile_one": "miil", "mile_other": "miili", + "missingCustomEndpointApiKey": "Selle jaotise vaatamiseks lisage kohandatud sisu lõpp-punkti API võti", + "missingCustomEndpointName": "Selle jaotise vaatamiseks lisage oma kohandatud sisu lõpp-punkti nimi", "missingHtmlWidget": "Komponendi kuvamiseks lisage HTML", + "missingSearchApiKey": "Selle jaotise vaatamiseks lisage oma Search API võti", + "missingSearchExperienceKey": "Selle jaotise vaatamiseks lisage oma otsingukogemuse võti", "monday": "Esmaspäev", + "more": "Rohkem", "nearbyLocationsEmptyState": "{{entityType}} pole {{radius}} {{unit}} raadiuses", "nearbyLocationsEmptyStateSectionHidden": "Selle {{entityType}} jaoks peidetud jaotis", "noAvailableFields": "Pole saadaval väljad", "noAvailableTypes": "Pole saadaval tüüpe", + "noLinkAvailable": "linki pole saadaval", "noMatchesFound": "Matše pole leitud.", "noResultsFoundForThisArea": "Selle piirkonna kohta tulemusi ei leitud", "noTypesFoundMsg": "Tüüpe pole leitud. Kontrollige oma konfiguratsiooni.", diff --git a/packages/visual-editor/locales/platform/fi/visual-editor.json b/packages/visual-editor/locales/platform/fi/visual-editor.json index 14cca51c44..002be1e109 100644 --- a/packages/visual-editor/locales/platform/fi/visual-editor.json +++ b/packages/visual-editor/locales/platform/fi/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Tekijänoikeusviesti", "coreInfoSection": "Ydintiedot -osio", "ctaGroup": "CTA -ryhmä", + "customBreadcrumbs": "Mukautetut murut", "customCodeSection": "Mukautettu koodiosa", + "CustomDirectory": "Mukautettu hakemisto", "directory": "Hakemisto", "directoryGrid": "Hakemistoruudukko", "emails": "Sähköpostit", @@ -107,6 +109,9 @@ "promoSection": "Promoosio", "reviewsSection": "Arvosteluosa", "richText": "Muotoiltu teksti", + "searchBarSlot": "Hakupalkin paikka", + "SearchResultsSlot": "Hakutulosten paikka", + "searchWithSlots": "Hae Slotsilla", "secondaryFooter": "Toissijainen alatunniste", "secondaryHeader": "Toissijainen otsikko", "staticMapSection": "Staattinen karttaosa", @@ -176,6 +181,7 @@ "buttons": "Painikkeet", "buttonText": "Painikkeen teksti", "cardTitleColor": "Kortin otsikon väri", + "cardType": "Kortin tyyppi", "cardVariant": "Kortin variantti", "carouselImageCount": "Karuselli kuvien määrä", "collapseDays": "Romahduspäivät", @@ -210,7 +216,9 @@ "email": "Sähköposti", "emailList": "Sähköpostiluettelo", "emails": "Sähköpostit", + "enableGenerativeDirectAnswer": "Generatiivinen suora vastaus", "enableLanguageSelector": "Ota kielenvalitsin käyttöön", + "enableVisualAutoComplete": "Ota visuaalinen automaattinen täydennys käyttöön", "endDate": "Päättymispäivämäärä", "expandedFooterLinks": "Laajennetut alatunnislinkit", "expandFooter": "Laajentaa alatunnistetta", @@ -240,11 +248,13 @@ "includeTime": "Sisällytä aika", "insights": "Oivallukset", "instagramLink": "Instagram -linkki", + "isTypingEffect": "Kirjoita tehoste", "javascript": "JavaScript", "justifyContent": "Perustele sisältöä", "key": "Avain", "label": "Merkitä", "latitude": "Leveysaste", + "layout": "Layout", "limit": "Rajoittaa", "link": "Linkki", "linkedInLink": "LinkedIn -linkki", @@ -458,13 +468,19 @@ "timeFormat": "Aikamuoto", "title": "Otsikko", "truncateDescription": "Katkaisukuvaus", + "universalLimit": "Universal Limit", "utilityImages": "Hyödyllisyyskuvat", "value": "Arvo", "values": "Arvot", "variant": "Variantti", + "verticalKey": "Pysty avain", + "verticalLimit": "Pystysuuntainen raja", "verticalPadding": "Ylä-/alahyllytys", + "verticals": "Pystysuorat", "video": "Video", "visibleOnLivePage": "Näkyvissä live -sivulla", + "visualAutoCompleteVerticalKey": "Visuaalinen automaattinen täydennys pystyavain", + "voiceSearch": "Äänihaku", "weight": "Paino", "wrap": "Kääriä", "xLink": "X -linkki", @@ -507,6 +523,7 @@ }, "loadingMap": "Latauskartta ...", "loadingNearbyLocations": "Lataaminen lähellä olevia paikkoja ...", + "loadingResults": "Ladataan tuloksia...", "loadingVE": "Visuaalisen editorin lataaminen ...", "locationsNear_one": "{{count}} sijainti lähellä \"{{name}}\"", "locationsNear_other": "{{count}} sijaintia lähellä kohdetta {{name}}", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "Metaotsikko puuttuu lokaaleilta: {{locales}}", "mile_one": "maili", "mile_other": "mailia", + "missingCustomEndpointApiKey": "Lisää mukautettu sisällön päätepisteen API-avain nähdäksesi tämän osion", + "missingCustomEndpointName": "Lisää mukautettu sisällön päätepisteen nimi nähdäksesi tämän osion", "missingHtmlWidget": "Lisää HTML katsomaan komponenttia", + "missingSearchApiKey": "Lisää Search API -avain nähdäksesi tämän osion", + "missingSearchExperienceKey": "Lisää hakukokemusavaimesi nähdäksesi tämän osion", "monday": "maanantai", + "more": "Lisää", "nearbyLocationsEmptyState": "Ei {{entityType}} {{radius}} {{unit}} sisällä", "nearbyLocationsEmptyStateSectionHidden": "Osio piilotettu tälle {{entityType}}", "noAvailableFields": "Ei käytettävissä olevia kenttiä", "noAvailableTypes": "Ei käytettävissä olevia tyyppejä", + "noLinkAvailable": "linkkiä ei ole saatavilla", "noMatchesFound": "Ei otteluita löydy.", "noResultsFoundForThisArea": "Tälle alueelle ei löydy tuloksia", "noTypesFoundMsg": "Ei löydy tyyppejä. Tarkista kokoonpanosi.", diff --git a/packages/visual-editor/locales/platform/fr/visual-editor.json b/packages/visual-editor/locales/platform/fr/visual-editor.json index bf3feabd72..70ed902d4c 100644 --- a/packages/visual-editor/locales/platform/fr/visual-editor.json +++ b/packages/visual-editor/locales/platform/fr/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Message de droit d'auteur", "coreInfoSection": "Section d'informations de base", "ctaGroup": "Groupe CTA", + "customBreadcrumbs": "Fil d'Ariane personnalisé", "customCodeSection": "Section de code personnalisé", + "CustomDirectory": "Répertoire personnalisé", "directory": "Annuaire", "directoryGrid": "Grille de répertoire", "emails": "E-mails", @@ -107,6 +109,9 @@ "promoSection": "Section promotionnelle", "reviewsSection": "Section des avis", "richText": "Texte enrichi", + "searchBarSlot": "Emplacement de la barre de recherche", + "SearchResultsSlot": "Emplacement des résultats de recherche", + "searchWithSlots": "Rechercher avec des machines à sous", "secondaryFooter": "Pied de page secondaire", "secondaryHeader": "En-tête secondaire", "staticMapSection": "Section de carte statique", @@ -176,6 +181,7 @@ "buttons": "Boutons", "buttonText": "Texte du bouton", "cardTitleColor": "Couleur du titre de la carte", + "cardType": "Type de carte", "cardVariant": "Variante de carte", "carouselImageCount": "Nombre d'images du carrousel", "collapseDays": "Jours d'effondrement", @@ -210,7 +216,9 @@ "email": "E-mail", "emailList": "Liste de diffusion", "emails": "E-mails", + "enableGenerativeDirectAnswer": "Réponse directe générative", "enableLanguageSelector": "Activer le sélecteur de langue", + "enableVisualAutoComplete": "Activer la saisie semi-automatique visuelle", "endDate": "Date de fin", "expandedFooterLinks": "Liens de pied de page élargis", "expandFooter": "Développer le pied de page", @@ -240,11 +248,13 @@ "includeTime": "Inclure le temps", "insights": "Connaissances", "instagramLink": "Lien Instagram", + "isTypingEffect": "Effet de type", "javascript": "JavaScript", "justifyContent": "Justifier le contenu", "key": "Clé", "label": "Étiquette", "latitude": "Latitude", + "layout": "Mise en page", "limit": "Limite", "link": "Lien", "linkedInLink": "Lien linkedin", @@ -458,13 +468,19 @@ "timeFormat": "Format de temps", "title": "Titre", "truncateDescription": "Description tronquée", + "universalLimit": "Limite universelle", "utilityImages": "Images utilitaires", "value": "Valeur", "values": "Valeurs", "variant": "Variante", + "verticalKey": "Clé verticale", + "verticalLimit": "Limite verticale", "verticalPadding": "Rembourrage supérieur / inférieur", + "verticals": "Verticales", "video": "Vidéo", "visibleOnLivePage": "Visible sur la page en direct", + "visualAutoCompleteVerticalKey": "Clé verticale de saisie semi-automatique visuelle", + "voiceSearch": "Recherche vocale", "weight": "Poids", "wrap": "Envelopper", "xLink": "X lien", @@ -508,6 +524,7 @@ }, "loadingMap": "Chargement de la carte ...", "loadingNearbyLocations": "Chargement des emplacements à proximité ...", + "loadingResults": "Chargement des résultats...", "loadingVE": "Chargement de l'éditeur visuel ...", "locationsNear_one": "{{count}} emplacement près de \"{{name}}\"", "locationsNear_many": "{{count}} emplacements à proximité de \"{{name}}\"", @@ -526,12 +543,18 @@ "mile_one": "mile", "mile_many": "miles", "mile_other": "miles", + "missingCustomEndpointApiKey": "Ajoutez votre clé API de point de terminaison de contenu personnalisée pour afficher cette section", + "missingCustomEndpointName": "Ajoutez votre nom de point de terminaison de contenu personnalisé pour afficher cette section", "missingHtmlWidget": "Ajouter HTML pour afficher le composant", + "missingSearchApiKey": "Ajoutez votre clé API de recherche pour afficher cette section", + "missingSearchExperienceKey": "Ajoutez votre clé d'expérience de recherche pour afficher cette section", "monday": "Lundi", + "more": "Plus", "nearbyLocationsEmptyState": "Aucun {{entityType}} dans un rayon de {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Section masquée pour ce {{entityType}}", "noAvailableFields": "Pas de champs disponibles", "noAvailableTypes": "Pas de types disponibles", + "noLinkAvailable": "aucun lien disponible", "noMatchesFound": "Aucune correspondance trouvée.", "noResultsFoundForThisArea": "Aucun résultat trouvé pour cette zone", "noTypesFoundMsg": "Aucun type trouvé. Veuillez vérifier votre configuration.", diff --git a/packages/visual-editor/locales/platform/hr/visual-editor.json b/packages/visual-editor/locales/platform/hr/visual-editor.json index be50762b9d..8f21824b94 100644 --- a/packages/visual-editor/locales/platform/hr/visual-editor.json +++ b/packages/visual-editor/locales/platform/hr/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Poruka o autorskim pravima", "coreInfoSection": "Odjeljak jezgrenih informacija", "ctaGroup": "CTA grupa", + "customBreadcrumbs": "Custom Breadcrumbs", "customCodeSection": "Odjeljak prilagođenog koda", + "CustomDirectory": "Prilagođeni imenik", "directory": "Imenik", "directoryGrid": "Rešetka imenika", "emails": "E -mailovi", @@ -107,6 +109,9 @@ "promoSection": "Promotivni dio", "reviewsSection": "Odjeljak za preglede", "richText": "Obogaćeni tekst", + "searchBarSlot": "Traka za pretraživanje utor", + "SearchResultsSlot": "Utor za rezultate pretraživanja", + "searchWithSlots": "Pretraživanje s utorima", "secondaryFooter": "Sekundarno podnožje", "secondaryHeader": "Sekundarno zaglavlje", "staticMapSection": "Odjeljak statičke karte", @@ -176,6 +181,7 @@ "buttons": "Gumbi", "buttonText": "Tekst gumba", "cardTitleColor": "Boja naslova kartice", + "cardType": "Vrsta kartice", "cardVariant": "Varijanta kartice", "carouselImageCount": "Broj slika vrtuljka", "collapseDays": "Dani kolapsa", @@ -210,7 +216,9 @@ "email": "E -pošta", "emailList": "Popis e -pošte", "emails": "E -mailovi", + "enableGenerativeDirectAnswer": "Generativni izravni odgovor", "enableLanguageSelector": "Omogući selektor jezika", + "enableVisualAutoComplete": "Omogući vizualno automatsko dovršavanje", "endDate": "Datum završetka", "expandedFooterLinks": "Proširene veze podnožja", "expandFooter": "Proširiti podnožje", @@ -240,11 +248,13 @@ "includeTime": "Uključi vrijeme", "insights": "Uvidi", "instagramLink": "Instagram veza", + "isTypingEffect": "Učinak tipa", "javascript": "JavaScript", "justifyContent": "Opravdati sadržaj", "key": "Ključ", "label": "Označiti", "latitude": "Širina", + "layout": "Raspored", "limit": "Ograničiti", "link": "Link", "linkedInLink": "LinkedIn veza", @@ -458,13 +468,19 @@ "timeFormat": "Format vremena", "title": "Titula", "truncateDescription": "Opis skraćenja", + "universalLimit": "Univerzalno ograničenje", "utilityImages": "Korisne slike", "value": "Vrijednost", "values": "Vrijednosti", "variant": "Varijanta", + "verticalKey": "Vertikalni ključ", + "verticalLimit": "Okomito ograničenje", "verticalPadding": "Gornji/donji oblog", + "verticals": "Vertikale", "video": "Video", "visibleOnLivePage": "Vidljivo na stranici uživo", + "visualAutoCompleteVerticalKey": "Visual AutoComplete Vertical Key", + "voiceSearch": "Glasovno pretraživanje", "weight": "Težina", "wrap": "Zamotati", "xLink": "X Link", @@ -508,6 +524,7 @@ }, "loadingMap": "Učitavanje karte ...", "loadingNearbyLocations": "Učitavanje lokacija u blizini ...", + "loadingResults": "Učitavanje rezultata...", "loadingVE": "Učitavanje vizualnog uređivača ...", "locationsNear_one": "{{count}} lokacija u blizini \"{{name}}\"", "locationsNear_few": "{{count}} lokacije u blizini \"{{name}}\"", @@ -526,12 +543,18 @@ "mile_one": "milja", "mile_few": "milje", "mile_other": "milja", + "missingCustomEndpointApiKey": "Dodajte prilagođeni API ključ krajnje točke sadržaja da biste vidjeli ovaj odjeljak", + "missingCustomEndpointName": "Dodajte svoj prilagođeni naziv krajnje točke sadržaja da biste vidjeli ovaj odjeljak", "missingHtmlWidget": "Dodajte HTML za pregled komponente", + "missingSearchApiKey": "Dodajte svoj API ključ pretraživanja da biste vidjeli ovaj odjeljak", + "missingSearchExperienceKey": "Dodajte svoj ključ iskustva pretraživanja da biste vidjeli ovaj odjeljak", "monday": "ponedjeljak", + "more": "Više", "nearbyLocationsEmptyState": "Nema {{entityType}} unutar {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Odjeljak skriven za ovaj {{entityType}}", "noAvailableFields": "Nema dostupnih polja", "noAvailableTypes": "Nema dostupnih vrsta", + "noLinkAvailable": "nema dostupne veze", "noMatchesFound": "Nijedna meč nije pronađena.", "noResultsFoundForThisArea": "Nisu pronađeni rezultati za ovo područje", "noTypesFoundMsg": "Nisu pronađeni tipovi. Molimo provjerite svoju konfiguraciju.", diff --git a/packages/visual-editor/locales/platform/hu/visual-editor.json b/packages/visual-editor/locales/platform/hu/visual-editor.json index 40db34d54b..8f5497decf 100644 --- a/packages/visual-editor/locales/platform/hu/visual-editor.json +++ b/packages/visual-editor/locales/platform/hu/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Copyright Message", "coreInfoSection": "Alapvető információ szakasz", "ctaGroup": "CTA -csoport", + "customBreadcrumbs": "Egyedi kenyérmorzsa", "customCodeSection": "Egyedi kód szakasz", + "CustomDirectory": "Egyéni címtár", "directory": "Könyvtár", "directoryGrid": "Címtárrács", "emails": "E -mailek", @@ -107,6 +109,9 @@ "promoSection": "Promóciós szakasz", "reviewsSection": "Áttekintési szakasz", "richText": "Gazdag szöveg", + "searchBarSlot": "SearchBar Slot", + "SearchResultsSlot": "Keresési eredmények Slot", + "searchWithSlots": "Keresés a Slots segítségével", "secondaryFooter": "Másodlagos lábléc", "secondaryHeader": "Másodlagos fejléc", "staticMapSection": "Statikus térképszakasz", @@ -176,6 +181,7 @@ "buttons": "Gombok", "buttonText": "Gomb szövege", "cardTitleColor": "Kártya cím színe", + "cardType": "Kártya típusa", "cardVariant": "Kártya változat", "carouselImageCount": "Forgóképek száma", "collapseDays": "Összeomlás napjai", @@ -210,7 +216,9 @@ "email": "Email", "emailList": "E -mail lista", "emails": "E -mailek", + "enableGenerativeDirectAnswer": "Generatív közvetlen válasz", "enableLanguageSelector": "Engedélyezze a nyelvválasztót", + "enableVisualAutoComplete": "Vizuális automatikus kiegészítés engedélyezése", "endDate": "Befejezés dátuma", "expandedFooterLinks": "Bővített lábléc linkek", "expandFooter": "Bontsa ki a láblécet", @@ -240,11 +248,13 @@ "includeTime": "Tartalmazza az időt", "insights": "Betekintés", "instagramLink": "Instagram link", + "isTypingEffect": "Hatás típusa", "javascript": "JavaScript", "justifyContent": "Igazolja a tartalmat", "key": "Kulcsfontosságú", "label": "Címke", "latitude": "Szélesség", + "layout": "Elrendezés", "limit": "Határ", "link": "Link", "linkedInLink": "LinkedIn Link", @@ -458,13 +468,19 @@ "timeFormat": "Időformátum", "title": "Cím", "truncateDescription": "Csonka leírás", + "universalLimit": "Univerzális limit", "utilityImages": "Hasznos képek", "value": "Érték", "values": "Értékek", "variant": "Változat", + "verticalKey": "Függőleges kulcs", + "verticalLimit": "Függőleges határ", "verticalPadding": "Felső/alsó párnás", + "verticals": "Függőlegesek", "video": "Videó", "visibleOnLivePage": "Látható az élő oldalon", + "visualAutoCompleteVerticalKey": "Vizuális automatikus kiegészítés függőleges kulcs", + "voiceSearch": "Hangalapú keresés", "weight": "Súly", "wrap": "Betakar", "xLink": "X link", @@ -507,6 +523,7 @@ }, "loadingMap": "Betöltési térkép ...", "loadingNearbyLocations": "A közeli helyek betöltése ...", + "loadingResults": "Eredmények betöltése...", "loadingVE": "Vizuális szerkesztő betöltése ...", "locationsNear_one": "{{count}} hely közelében \"{{name}}\"", "locationsNear_other": "{{count}} hely a(z) \"{{name}}\" közelében", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "Hiányzik a metacím a nyelvi beállításokhoz: {{locales}}", "mile_one": "mérföld", "mile_other": "mérföld", + "missingCustomEndpointApiKey": "Adjon hozzá egyéni tartalomvégpont API-kulcsot a szakasz megtekintéséhez", + "missingCustomEndpointName": "Adja hozzá az egyéni tartalomvégpont nevét a szakasz megtekintéséhez", "missingHtmlWidget": "Adjon hozzá HTML -t az összetevő megtekintéséhez", + "missingSearchApiKey": "Ennek a szakasznak a megtekintéséhez adja hozzá Search API-kulcsát", + "missingSearchExperienceKey": "A szakasz megtekintéséhez adja hozzá a Search Experience kulcsát", "monday": "hétfő", + "more": "Több", "nearbyLocationsEmptyState": "Nincs {{entityType}} {{radius}} {{unit}} belül", "nearbyLocationsEmptyStateSectionHidden": "A szakasz elrejtve ehhez a(z) {{entityType}}", "noAvailableFields": "Nincs elérhető mezők", "noAvailableTypes": "Nincs elérhető típus", + "noLinkAvailable": "nincs elérhető hivatkozás", "noMatchesFound": "Nincsenek mérkőzések.", "noResultsFoundForThisArea": "Nincs eredmény erre a területre", "noTypesFoundMsg": "Nincsenek típusok. Kérjük, ellenőrizze a konfigurációját.", diff --git a/packages/visual-editor/locales/platform/it/visual-editor.json b/packages/visual-editor/locales/platform/it/visual-editor.json index 4928602f9b..4697309722 100644 --- a/packages/visual-editor/locales/platform/it/visual-editor.json +++ b/packages/visual-editor/locales/platform/it/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Messaggio sul diritto d'autore", "coreInfoSection": "Sezione Informazioni fondamentali", "ctaGroup": "Gruppo CTA", + "customBreadcrumbs": "Pangrattato personalizzato", "customCodeSection": "Sezione di codice personalizzato", + "CustomDirectory": "Directory personalizzata", "directory": "Directory", "directoryGrid": "Griglia delle directory", "emails": "E -mail", @@ -107,6 +109,9 @@ "promoSection": "Sezione promozionale", "reviewsSection": "Sezione Recensioni", "richText": "Testo ricco", + "searchBarSlot": "Slot della barra di ricerca", + "SearchResultsSlot": "Slot dei risultati di ricerca", + "searchWithSlots": "Cerca con gli slot", "secondaryFooter": "Piè di pagina secondario", "secondaryHeader": "Intestazione secondaria", "staticMapSection": "Sezione mappa statica", @@ -176,6 +181,7 @@ "buttons": "Pulsanti", "buttonText": "Testo del pulsante", "cardTitleColor": "Colore del titolo della carta", + "cardType": "Tipo di carta", "cardVariant": "Variante della carta", "carouselImageCount": "Conteggio immagini carosello", "collapseDays": "Giorni di collasso", @@ -210,7 +216,9 @@ "email": "E-mail", "emailList": "Elenco e -mail", "emails": "E -mail", + "enableGenerativeDirectAnswer": "Risposta diretta generativa", "enableLanguageSelector": "Abilita selettore di lingue", + "enableVisualAutoComplete": "Abilita il completamento automatico visivo", "endDate": "Data di fine", "expandedFooterLinks": "Collegamenti a piè di pagina espansi", "expandFooter": "Espandere il piè di pagina", @@ -240,11 +248,13 @@ "includeTime": "Includi tempo", "insights": "Intuizioni", "instagramLink": "Link Instagram", + "isTypingEffect": "Tipo Effetto", "javascript": "JavaScript", "justifyContent": "Giustifica il contenuto", "key": "Chiave", "label": "Etichetta", "latitude": "Latitudine", + "layout": "Disposizione", "limit": "Limite", "link": "Collegamento", "linkedInLink": "LinkedIn Link", @@ -458,13 +468,19 @@ "timeFormat": "Formato tempo", "title": "Titolo", "truncateDescription": "Descrizione del troncato", + "universalLimit": "Limite universale", "utilityImages": "Immagini di utilità", "value": "Valore", "values": "Valori", "variant": "Variante", + "verticalKey": "Chiave verticale", + "verticalLimit": "Limite verticale", "verticalPadding": "Imbottitura superiore/inferiore", + "verticals": "Verticali", "video": "Video", "visibleOnLivePage": "Visibile sulla pagina live", + "visualAutoCompleteVerticalKey": "Tasto verticale di completamento automatico visivo", + "voiceSearch": "Ricerca vocale", "weight": "Peso", "wrap": "Avvolgere", "xLink": "X link", @@ -508,6 +524,7 @@ }, "loadingMap": "Mappa di caricamento ...", "loadingNearbyLocations": "Caricamento di luoghi vicini ...", + "loadingResults": "Caricamento risultati...", "loadingVE": "Caricamento dell'editor visivo ...", "locationsNear_one": "{{count}} posizione vicino a \"{{name}}\"", "locationsNear_many": "{{count}} luoghi vicino a \"{{name}}\"", @@ -526,12 +543,18 @@ "mile_one": "miglio", "mile_many": "miglia", "mile_other": "miglia", + "missingCustomEndpointApiKey": "Aggiungi la chiave API dell'endpoint di contenuto personalizzata per visualizzare questa sezione", + "missingCustomEndpointName": "Aggiungi il nome dell'endpoint di contenuto personalizzato per visualizzare questa sezione", "missingHtmlWidget": "Aggiungi HTML al componente Visualizza", + "missingSearchApiKey": "Aggiungi la tua chiave API di ricerca per visualizzare questa sezione", + "missingSearchExperienceKey": "Aggiungi la tua chiave di esperienza di ricerca per visualizzare questa sezione", "monday": "Lunedi", + "more": "Di più", "nearbyLocationsEmptyState": "Nessun {{entityType}} entro {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Sezione nascosta per questo {{entityType}}", "noAvailableFields": "Nessun campo disponibile", "noAvailableTypes": "Nessun tipo disponibile", + "noLinkAvailable": "nessun collegamento disponibile", "noMatchesFound": "Nessuna corrispondenza trovata.", "noResultsFoundForThisArea": "Nessun risultato trovato per quest'area", "noTypesFoundMsg": "Nessun tipo trovato. Si prega di controllare la configurazione.", diff --git a/packages/visual-editor/locales/platform/ja/visual-editor.json b/packages/visual-editor/locales/platform/ja/visual-editor.json index 8e056681b0..b3c812f8b4 100644 --- a/packages/visual-editor/locales/platform/ja/visual-editor.json +++ b/packages/visual-editor/locales/platform/ja/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "著作権メッセージ", "coreInfoSection": "コア情報セクション", "ctaGroup": "CTAグループ", + "customBreadcrumbs": "カスタムブレッドクラム", "customCodeSection": "カスタムコードセクション", + "CustomDirectory": "カスタムディレクトリ", "directory": "ディレクトリ", "directoryGrid": "ディレクトリグリッド", "emails": "メール", @@ -107,6 +109,9 @@ "promoSection": "プロモーションセクション", "reviewsSection": "レビューセクション", "richText": "リッチテキスト", + "searchBarSlot": "サーチバースロット", + "SearchResultsSlot": "検索結果スロット", + "searchWithSlots": "スロットで検索", "secondaryFooter": "セカンダリフッター", "secondaryHeader": "二次ヘッダー", "staticMapSection": "静的マップセクション", @@ -176,6 +181,7 @@ "buttons": "ボタン", "buttonText": "ボタンのテキスト", "cardTitleColor": "カードタイトルの色", + "cardType": "カードの種類", "cardVariant": "カードのバリエーション", "carouselImageCount": "カルーセル画像数", "collapseDays": "崩壊日", @@ -210,7 +216,9 @@ "email": "メール", "emailList": "メーリングリスト", "emails": "メール", + "enableGenerativeDirectAnswer": "生成的な直接回答", "enableLanguageSelector": "言語セレクターを有効にします", + "enableVisualAutoComplete": "ビジュアルオートコンプリートを有効にする", "endDate": "終了日", "expandedFooterLinks": "拡張フッターリンク", "expandFooter": "フッターを拡張します", @@ -240,11 +248,13 @@ "includeTime": "時間を含む", "insights": "洞察", "instagramLink": "Instagramリンク", + "isTypingEffect": "タイプ効果", "javascript": "JavaScript", "justifyContent": "コンテンツを正当化します", "key": "キー", "label": "ラベル", "latitude": "緯度", + "layout": "レイアウト", "limit": "制限", "link": "リンク", "linkedInLink": "LinkedInリンク", @@ -458,13 +468,19 @@ "timeFormat": "時間形式", "title": "タイトル", "truncateDescription": "説明の切り捨て", + "universalLimit": "普遍的な制限", "utilityImages": "ユーティリティ画像", "value": "値", "values": "値", "variant": "変異体", + "verticalKey": "垂直キー", + "verticalLimit": "垂直限界", "verticalPadding": "上/下のパディング", + "verticals": "垂直方向", "video": "ビデオ", "visibleOnLivePage": "ライブページに表示されます", + "visualAutoCompleteVerticalKey": "ビジュアルオートコンプリート垂直キー", + "voiceSearch": "音声検索", "weight": "太さ", "wrap": "包む", "xLink": "Xリンク", @@ -507,6 +523,7 @@ }, "loadingMap": "マップの読み込み...", "loadingNearbyLocations": "近くの場所を読み込む...", + "loadingResults": "結果を読み込んでいます...", "loadingVE": "ビジュアルエディターの読み込み...", "locationsNear_one": "「{{name}}」付近の {{count}} 件の場所", "locationsNear_other": "「{{name}}」付近の {{count}} 件の場所", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "ロケールのメタ タイトルがありません: {{locales}}", "mile_one": "マイル", "mile_other": "マイル", + "missingCustomEndpointApiKey": "このセクションを表示するには、カスタム コンテンツ エンドポイント API キーを追加してください", + "missingCustomEndpointName": "このセクションを表示するには、カスタム コンテンツ エンドポイント名を追加します", "missingHtmlWidget": "HTMLを追加してコンポーネントを表示します", + "missingSearchApiKey": "このセクションを表示するには、検索 API キーを追加してください", + "missingSearchExperienceKey": "このセクションを表示するには、検索エクスペリエンス キーを追加してください", "monday": "月曜日", + "more": "もっと", "nearbyLocationsEmptyState": "{{radius}} {{unit}} 以内に {{entityType}} はありません", "nearbyLocationsEmptyStateSectionHidden": "この {{entityType}} に対して非表示のセクション", "noAvailableFields": "利用可能なフィールドはありません", "noAvailableTypes": "利用可能なタイプはありません", + "noLinkAvailable": "利用可能なリンクはありません", "noMatchesFound": "一致が見つかりません。", "noResultsFoundForThisArea": "この領域の結果は見つかりませんでした", "noTypesFoundMsg": "タイプは見つかりません。構成を確認してください。", diff --git a/packages/visual-editor/locales/platform/lt/visual-editor.json b/packages/visual-editor/locales/platform/lt/visual-editor.json index dbf0bdc65b..d9863e6a4d 100644 --- a/packages/visual-editor/locales/platform/lt/visual-editor.json +++ b/packages/visual-editor/locales/platform/lt/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Autorių teisių žinutė", "coreInfoSection": "Pagrindinės informacijos skyrius", "ctaGroup": "CTA grupė", + "customBreadcrumbs": "Individualūs duonos trupiniai", "customCodeSection": "Pasirinktinio kodo skyrius", + "CustomDirectory": "Pasirinktinis katalogas", "directory": "Katalogas", "directoryGrid": "Katalogų tinklelis", "emails": "El. El. laiškai", @@ -107,6 +109,9 @@ "promoSection": "Promo skyrius", "reviewsSection": "Apžvalgų skyrius", "richText": "Turtingas tekstas", + "searchBarSlot": "Paieškos juostos lizdas", + "SearchResultsSlot": "Paieškos rezultatų lizdas", + "searchWithSlots": "Ieškokite su Slots", "secondaryFooter": "Antrinė poraštė", "secondaryHeader": "Antrinė antraštė", "staticMapSection": "Statinio žemėlapio skyrius", @@ -176,6 +181,7 @@ "buttons": "Mygtukai", "buttonText": "Mygtuko tekstas", "cardTitleColor": "Kortelės pavadinimo spalva", + "cardType": "Kortelės tipas", "cardVariant": "Kortelės variantas", "carouselImageCount": "Karuselės vaizdų skaičius", "collapseDays": "Griūties dienos", @@ -210,7 +216,9 @@ "email": "El. Paštas", "emailList": "El. Pašto sąrašas", "emails": "El. El. laiškai", + "enableGenerativeDirectAnswer": "Generatyvus tiesioginis atsakymas", "enableLanguageSelector": "Įgalinti kalbos parinkiklį", + "enableVisualAutoComplete": "Įgalinti vaizdinį automatinį užbaigimą", "endDate": "Pabaigos data", "expandedFooterLinks": "Išplėstos poraštės nuorodos", "expandFooter": "Išplėskite poraštę", @@ -240,11 +248,13 @@ "includeTime": "Įtraukti laiką", "insights": "Įžvalgos", "instagramLink": "„Instagram“ nuoroda", + "isTypingEffect": "Tipo efektas", "javascript": "„JavaScript“", "justifyContent": "Pateisinkite turinį", "key": "Raktas", "label": "Etiketė", "latitude": "Platuma", + "layout": "Išdėstymas", "limit": "Limit", "link": "Nuoroda", "linkedInLink": "„LinkedIn“ nuoroda", @@ -458,13 +468,19 @@ "timeFormat": "Laiko formatas", "title": "Pavadinimas", "truncateDescription": "TRUNCATE APRAŠYMAS", + "universalLimit": "Universalus limitas", "utilityImages": "Naudingi vaizdai", "value": "Vertė", "values": "Vertės", "variant": "Variantas", + "verticalKey": "Vertikalus raktas", + "verticalLimit": "Vertikali riba", "verticalPadding": "Viršutinė/apatinė paminkštinimas", + "verticals": "Vertikalės", "video": "Vaizdo įrašas", "visibleOnLivePage": "Matomas tiesioginiame puslapyje", + "visualAutoCompleteVerticalKey": "Vaizdinis automatinio užbaigimo vertikalus raktas", + "voiceSearch": "Balso paieška", "weight": "Svoris", "wrap": "Apvynioti", "xLink": "X nuoroda", @@ -509,6 +525,7 @@ }, "loadingMap": "Krovimo žemėlapis ...", "loadingNearbyLocations": "Pakraunama netoliese esančias vietas ...", + "loadingResults": "Įkeliami rezultatai...", "loadingVE": "Įkeliamas vaizdinis redaktorius ...", "locationsNear_one": "{{count}} vieta šalia „{{name}}“", "locationsNear_few": "{{count}} vietos šalia „{{name}}“", @@ -531,12 +548,18 @@ "mile_few": "mylios", "mile_many": "mylios", "mile_other": "mylių", + "missingCustomEndpointApiKey": "Pridėkite tinkintą turinio galutinio taško API raktą, kad peržiūrėtumėte šį skyrių", + "missingCustomEndpointName": "Norėdami peržiūrėti šį skyrių, pridėkite pasirinktinį turinio pabaigos taško pavadinimą", "missingHtmlWidget": "Pridėkite HTML, kad peržiūrėtumėte komponentą", + "missingSearchApiKey": "Norėdami peržiūrėti šią skiltį, pridėkite paieškos API raktą", + "missingSearchExperienceKey": "Norėdami peržiūrėti šią skiltį, pridėkite paieškos patirties raktą", "monday": "Pirmadienis", + "more": "Daugiau", "nearbyLocationsEmptyState": "Nėra {{entityType}} per {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Šio {{entityType}} skyrius paslėptas", "noAvailableFields": "Jokių laukų", "noAvailableTypes": "Nėra prieinamų tipų", + "noLinkAvailable": "jokios nuorodos nėra", "noMatchesFound": "Nerasta rungtynių.", "noResultsFoundForThisArea": "Nerasta šios srities rezultatų", "noTypesFoundMsg": "Jokių tipų nerasta. Patikrinkite savo konfigūraciją.", diff --git a/packages/visual-editor/locales/platform/lv/visual-editor.json b/packages/visual-editor/locales/platform/lv/visual-editor.json index 8d9a17351b..89e5bf70ab 100644 --- a/packages/visual-editor/locales/platform/lv/visual-editor.json +++ b/packages/visual-editor/locales/platform/lv/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Autortiesību ziņojums", "coreInfoSection": "Pamatinformācija", "ctaGroup": "CTA grupa", + "customBreadcrumbs": "Pielāgotas rīvmaizes", "customCodeSection": "Pielāgota koda sadaļa", + "CustomDirectory": "Pielāgots direktorijs", "directory": "Direktors", "directoryGrid": "Direktoriju režģis", "emails": "E -pasti", @@ -107,6 +109,9 @@ "promoSection": "Promo sadaļa", "reviewsSection": "Atsauksmju sadaļa", "richText": "Bagātināts teksts", + "searchBarSlot": "SearchBar Slot", + "SearchResultsSlot": "Meklēšanas rezultātu slots", + "searchWithSlots": "Meklēt ar slotiem", "secondaryFooter": "Sekundārā kājene", "secondaryHeader": "Sekundārā galvene", "staticMapSection": "Statiskās kartes sadaļa", @@ -176,6 +181,7 @@ "buttons": "Pogas", "buttonText": "Pogas teksts", "cardTitleColor": "Kartes nosaukuma krāsa", + "cardType": "Kartes veids", "cardVariant": "Kartes variants", "carouselImageCount": "Karuseļa attēlu skaits", "collapseDays": "Sabrukšanas dienas", @@ -210,7 +216,9 @@ "email": "E -pasts", "emailList": "E -pasta saraksts", "emails": "E -pasti", + "enableGenerativeDirectAnswer": "Ģeneratīva tieša atbilde", "enableLanguageSelector": "Iespējot valodas atlasītāju", + "enableVisualAutoComplete": "Iespējot vizuālo automātisko pabeigšanu", "endDate": "Beigu datums", "expandedFooterLinks": "Paplašinātas kājenes saites", "expandFooter": "Paplašināt kājeni", @@ -240,11 +248,13 @@ "includeTime": "Iekļaut laiku", "insights": "Ieskats", "instagramLink": "Instagram saite", + "isTypingEffect": "Tipa efekts", "javascript": "JavaScript", "justifyContent": "Pamatot saturu", "key": "Atslēga", "label": "Etiķete", "latitude": "Platums", + "layout": "Izkārtojums", "limit": "Ierobežot", "link": "Saite", "linkedInLink": "LinkedIn saite", @@ -458,13 +468,19 @@ "timeFormat": "Laika formāts", "title": "Nosaukums", "truncateDescription": "Saīsināts apraksts", + "universalLimit": "Universālais ierobežojums", "utilityImages": "Lietderīgie attēli", "value": "Vērtība", "values": "Vērtības", "variant": "Variants", + "verticalKey": "Vertikālā atslēga", + "verticalLimit": "Vertikālais ierobežojums", "verticalPadding": "Augšējais/apakšējais polsterējums", + "verticals": "Vertikāles", "video": "Video", "visibleOnLivePage": "Redzams tiešraides lapā", + "visualAutoCompleteVerticalKey": "Vizuālā automātiskās pabeigšanas vertikālā atslēga", + "voiceSearch": "Balss meklēšana", "weight": "Svars", "wrap": "Ietīt", "xLink": "X saite", @@ -508,6 +524,7 @@ }, "loadingMap": "Kartes ielāde ...", "loadingNearbyLocations": "Iekraušana tuvējo vietu ...", + "loadingResults": "Notiek rezultātu ielāde...", "loadingVE": "Vizuālā redaktora ielāde ...", "locationsNear_zero": "{{count}} atrašanās vietas netālu no \"{{name}}\"", "locationsNear_one": "{{count}} atrašanās vieta netālu no \"{{name}}\"", @@ -526,12 +543,18 @@ "mile_zero": "jūdzes", "mile_one": "jūdze", "mile_other": "jūdzes", + "missingCustomEndpointApiKey": "Pievienojiet pielāgotu satura galapunkta API atslēgu, lai skatītu šo sadaļu", + "missingCustomEndpointName": "Lai skatītu šo sadaļu, pievienojiet pielāgotā satura galapunkta nosaukumu", "missingHtmlWidget": "Pievienojiet HTML, lai skatītu komponentu", + "missingSearchApiKey": "Pievienojiet savu Search API atslēgu, lai skatītu šo sadaļu", + "missingSearchExperienceKey": "Pievienojiet savu meklēšanas pieredzes atslēgu, lai skatītu šo sadaļu", "monday": "Pirmdiena", + "more": "Vairāk", "nearbyLocationsEmptyState": "Nav {{entityType}} {{radius}} {{unit}} rādiusā", "nearbyLocationsEmptyStateSectionHidden": "Sadaļa paslēpta šim {{entityType}}", "noAvailableFields": "Nav pieejamu lauku", "noAvailableTypes": "Nav pieejamo tipu", + "noLinkAvailable": "nav pieejama saite", "noMatchesFound": "Nav atrasta mača.", "noResultsFoundForThisArea": "Šajā apgabalā nav atrasti rezultāti", "noTypesFoundMsg": "Nav atrasti tipi. Lūdzu, pārbaudiet savu konfigurāciju.", diff --git a/packages/visual-editor/locales/platform/nb/visual-editor.json b/packages/visual-editor/locales/platform/nb/visual-editor.json index 0e9ea5e18d..7b61bde523 100644 --- a/packages/visual-editor/locales/platform/nb/visual-editor.json +++ b/packages/visual-editor/locales/platform/nb/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Opphavsrettsmelding", "coreInfoSection": "Kjerneinfo -seksjon", "ctaGroup": "CTA gruppe", + "customBreadcrumbs": "Egendefinerte brødsmuler", "customCodeSection": "Tilpasset kodeseksjon", + "CustomDirectory": "Egendefinert katalog", "directory": "Katalog", "directoryGrid": "Katalognett", "emails": "E-post", @@ -107,6 +109,9 @@ "promoSection": "Promo -seksjon", "reviewsSection": "Anmeldelser", "richText": "Rik tekst", + "searchBarSlot": "SearchBar-spor", + "SearchResultsSlot": "Spor for søkeresultater", + "searchWithSlots": "Søk med spilleautomater", "secondaryFooter": "Sekundær bunntekst", "secondaryHeader": "Sekundær overskrift", "staticMapSection": "Statisk kartseksjon", @@ -176,6 +181,7 @@ "buttons": "Knapper", "buttonText": "Knappetekst", "cardTitleColor": "Korttittelfarge", + "cardType": "Korttype", "cardVariant": "Kortvariant", "carouselImageCount": "Antall karusellbilder", "collapseDays": "Kollaps dager", @@ -210,7 +216,9 @@ "email": "E-post", "emailList": "E-postliste", "emails": "E-post", + "enableGenerativeDirectAnswer": "Generativt direkte svar", "enableLanguageSelector": "Aktiver språkvelger", + "enableVisualAutoComplete": "Aktiver visuell autofullføring", "endDate": "Sluttdato", "expandedFooterLinks": "Utvidede bunntekstlenker", "expandFooter": "Utvide bunnteksten", @@ -240,11 +248,13 @@ "includeTime": "Inkluder tid", "insights": "Innsikt", "instagramLink": "Instagram -lenke", + "isTypingEffect": "Type effekt", "javascript": "JavaScript", "justifyContent": "Rettferdiggjøre innhold", "key": "Nøkkel", "label": "Merkelapp", "latitude": "Breddegrad", + "layout": "Oppsett", "limit": "Begrense", "link": "Lenke", "linkedInLink": "LinkedIn Link", @@ -458,13 +468,19 @@ "timeFormat": "Tidsformat", "title": "Tittel", "truncateDescription": "Avkortbeskrivelse", + "universalLimit": "Universell grense", "utilityImages": "Verktøybilder", "value": "Verdi", "values": "Verdier", "variant": "Variant", + "verticalKey": "Vertikal nøkkel", + "verticalLimit": "Vertikal grense", "verticalPadding": "Topp/nedre polstring", + "verticals": "Vertikaler", "video": "Video", "visibleOnLivePage": "Synlig på live side", + "visualAutoCompleteVerticalKey": "Visuell autofullfør vertikal nøkkel", + "voiceSearch": "Stemmesøk", "weight": "Vekt", "wrap": "Pakk", "xLink": "X lenke", @@ -507,6 +523,7 @@ }, "loadingMap": "Laster inn kart ...", "loadingNearbyLocations": "Laster inn nærliggende steder ...", + "loadingResults": "Laster inn resultater...", "loadingVE": "Laster inn visuell redaktør ...", "locationsNear_one": "{{count}} plassering i nærheten \"{{name}}\"", "locationsNear_other": "{{count}} steder i nærheten av «{{name}}»", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "Metatittel mangler for lokal(er): {{locales}}", "mile_one": "mil", "mile_other": "mil", + "missingCustomEndpointApiKey": "Legg til din egendefinerte Content Endpoint API-nøkkel for å se denne seksjonen", + "missingCustomEndpointName": "Legg til ditt egendefinerte innholdsendepunktnavn for å se denne delen", "missingHtmlWidget": "Legg til HTML for å se komponent", + "missingSearchApiKey": "Legg til søke-API-nøkkelen din for å se denne delen", + "missingSearchExperienceKey": "Legg til søkeopplevelsesnøkkelen din for å se denne delen", "monday": "mandag", + "more": "Flere", "nearbyLocationsEmptyState": "Ingen {{entityType}} innenfor {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Seksjon skjult for denne {{entityType}}", "noAvailableFields": "Ingen tilgjengelige felt", "noAvailableTypes": "Ingen tilgjengelige typer", + "noLinkAvailable": "ingen lenke tilgjengelig", "noMatchesFound": "Ingen kamper funnet.", "noResultsFoundForThisArea": "Ingen resultater funnet for dette området", "noTypesFoundMsg": "Ingen typer funnet. Vennligst sjekk konfigurasjonen din.", diff --git a/packages/visual-editor/locales/platform/nl/visual-editor.json b/packages/visual-editor/locales/platform/nl/visual-editor.json index 4bdb0ea119..2741e8e293 100644 --- a/packages/visual-editor/locales/platform/nl/visual-editor.json +++ b/packages/visual-editor/locales/platform/nl/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Auteursrechtbericht", "coreInfoSection": "Core Info -sectie", "ctaGroup": "CTA -groep", + "customBreadcrumbs": "Aangepaste broodkruimels", "customCodeSection": "Aangepaste codesectie", + "CustomDirectory": "Aangepaste map", "directory": "Directory", "directoryGrid": "Directoryraster", "emails": "E -mails", @@ -107,6 +109,9 @@ "promoSection": "Promotectie", "reviewsSection": "Beoordelingen sectie", "richText": "Rijke tekst", + "searchBarSlot": "Zoekbalkslot", + "SearchResultsSlot": "Zoekresultaten Slot", + "searchWithSlots": "Zoeken met slots", "secondaryFooter": "Secundaire voettekst", "secondaryHeader": "Secundaire kop", "staticMapSection": "Statische kaartsectie", @@ -176,6 +181,7 @@ "buttons": "Knoppen", "buttonText": "Knoptekst", "cardTitleColor": "Kleur kaarttitel", + "cardType": "Kaarttype", "cardVariant": "Kaartvariant", "carouselImageCount": "Aantal carrouselafbeeldingen", "collapseDays": "Instortdagen", @@ -210,7 +216,9 @@ "email": "E -mail", "emailList": "E -maillijst", "emails": "E -mails", + "enableGenerativeDirectAnswer": "Generatief direct antwoord", "enableLanguageSelector": "Schakel taalselector in", + "enableVisualAutoComplete": "Schakel Visueel automatisch aanvullen in", "endDate": "Einddatum", "expandedFooterLinks": "Uitgebreide voettekst links", "expandFooter": "Footer uitbreiden", @@ -240,11 +248,13 @@ "includeTime": "Inclusief tijd", "insights": "Inzichten", "instagramLink": "Instagram -link", + "isTypingEffect": "Type-effect", "javascript": "JavaScript", "justifyContent": "Richt inhoud", "key": "Sleutel", "label": "Label", "latitude": "Breedte", + "layout": "Indeling", "limit": "Beperken", "link": "Link", "linkedInLink": "LinkedIn -link", @@ -458,13 +468,19 @@ "timeFormat": "Tijdformaat", "title": "Titel", "truncateDescription": "Omgekeerde beschrijving", + "universalLimit": "Universele limiet", "utilityImages": "Hulpprogramma-afbeeldingen", "value": "Waarde", "values": "Waarden", "variant": "Variant", + "verticalKey": "Verticale sleutel", + "verticalLimit": "Verticale limiet", "verticalPadding": "Bovenste/onderste vulling", + "verticals": "Verticalen", "video": "Video", "visibleOnLivePage": "Zichtbaar op live pagina", + "visualAutoCompleteVerticalKey": "Visuele verticale sleutel voor automatisch aanvullen", + "voiceSearch": "Gesproken zoekopdracht", "weight": "Gewicht", "wrap": "Wrap", "xLink": "X Link", @@ -507,6 +523,7 @@ }, "loadingMap": "Kaart laden ...", "loadingNearbyLocations": "Nabijgelegen locaties laden ...", + "loadingResults": "Resultaten laden...", "loadingVE": "Visuele editor laden ...", "locationsNear_one": "{{count}} locatie nabij \"{{name}}\"", "locationsNear_other": "{{count}} locaties in de buurt van \"{{name}}\"", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "Metatitel ontbreekt voor taalinstelling(en): {{locales}}", "mile_one": "mijl", "mile_other": "mijlen", + "missingCustomEndpointApiKey": "Voeg uw aangepaste Content-eindpunt-API-sleutel toe om deze sectie te bekijken", + "missingCustomEndpointName": "Voeg uw aangepaste inhoudseindpuntnaam toe om deze sectie te bekijken", "missingHtmlWidget": "Voeg HTML toe om component te bekijken", + "missingSearchApiKey": "Voeg uw zoek-API-sleutel toe om deze sectie te bekijken", + "missingSearchExperienceKey": "Voeg uw zoekervaringsleutel toe om deze sectie te bekijken", "monday": "Maandag", + "more": "Meer", "nearbyLocationsEmptyState": "Geen {{entityType}} binnen {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Sectie verborgen voor deze {{entityType}}", "noAvailableFields": "Geen beschikbare velden", "noAvailableTypes": "Geen beschikbare types", + "noLinkAvailable": "geen koppeling beschikbaar", "noMatchesFound": "Geen overeenkomsten gevonden.", "noResultsFoundForThisArea": "Geen resultaten gevonden voor dit gebied", "noTypesFoundMsg": "Geen types gevonden. Controleer uw configuratie.", diff --git a/packages/visual-editor/locales/platform/pl/visual-editor.json b/packages/visual-editor/locales/platform/pl/visual-editor.json index 6cca82a48b..1b054b02cf 100644 --- a/packages/visual-editor/locales/platform/pl/visual-editor.json +++ b/packages/visual-editor/locales/platform/pl/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Wiadomość o prawach autorskich", "coreInfoSection": "Sekcja informacji podstawowych", "ctaGroup": "Grupa CTA", + "customBreadcrumbs": "Niestandardowe bułki tartej", "customCodeSection": "Sekcja kodu niestandardowego", + "CustomDirectory": "Katalog niestandardowy", "directory": "Informator", "directoryGrid": "Siatka katalogów", "emails": "E -maile", @@ -107,6 +109,9 @@ "promoSection": "Sekcja promocyjna", "reviewsSection": "Sekcja recenzji", "richText": "Bogaty tekst", + "searchBarSlot": "Pasek wyszukiwania", + "SearchResultsSlot": "Wyniki wyszukiwania", + "searchWithSlots": "Szukaj za pomocą automatów", "secondaryFooter": "Stopka pomocnicza", "secondaryHeader": "Nagłówek dodatkowy", "staticMapSection": "Sekcja mapy statycznej", @@ -176,6 +181,7 @@ "buttons": "Pikolak", "buttonText": "Tekst przycisku", "cardTitleColor": "Kolor tytułu karty", + "cardType": "Typ karty", "cardVariant": "Wariant karty", "carouselImageCount": "Liczba obrazów w karuzeli", "collapseDays": "Dni upadku", @@ -210,7 +216,9 @@ "email": "E-mail", "emailList": "Lista e -mail", "emails": "E -maile", + "enableGenerativeDirectAnswer": "Generatywna odpowiedź bezpośrednia", "enableLanguageSelector": "Włącz wybór języka", + "enableVisualAutoComplete": "Włącz autouzupełnianie wizualne", "endDate": "Data zakończenia", "expandedFooterLinks": "Rozszerzone łącza stopki", "expandFooter": "Rozwiń stopkę", @@ -240,11 +248,13 @@ "includeTime": "Uwzględnij czas", "insights": "Spostrzeżenia", "instagramLink": "Link Instagram", + "isTypingEffect": "Efekt typu", "javascript": "JavaScript", "justifyContent": "Uzasadnić treść", "key": "Klucz", "label": "Etykieta", "latitude": "Szerokość", + "layout": "Układ", "limit": "Limit", "link": "Link", "linkedInLink": "Link LinkedIn", @@ -458,13 +468,19 @@ "timeFormat": "Format czasu", "title": "Tytuł", "truncateDescription": "Obcięty opis", + "universalLimit": "Limit uniwersalny", "utilityImages": "Obrazy użytkowe", "value": "Wartość", "values": "Wartości", "variant": "Wariant", + "verticalKey": "Klucz pionowy", + "verticalLimit": "Limit pionowy", "verticalPadding": "Wyściełku górna/dolna", + "verticals": "Pionowe", "video": "Wideo", "visibleOnLivePage": "Widoczne na stronie na żywo", + "visualAutoCompleteVerticalKey": "Wizualny klucz pionowy autouzupełniania", + "voiceSearch": "Wyszukiwanie głosowe", "weight": "Waga", "wrap": "Zawinąć", "xLink": "X link", @@ -509,6 +525,7 @@ }, "loadingMap": "Ładowanie mapy ...", "loadingNearbyLocations": "Ładowanie pobliskich lokalizacji ...", + "loadingResults": "Ładowanie wyników...", "loadingVE": "Ładowanie edytora wizualnego ...", "locationsNear_one": "{{count}} lokalizacja w pobliżu „{{name}}”", "locationsNear_few": "{{count}} lokalizacje w pobliżu „{{name}}”", @@ -531,12 +548,18 @@ "mile_few": "mile", "mile_many": "mil", "mile_other": "mili", + "missingCustomEndpointApiKey": "Dodaj niestandardowy klucz API punktu końcowego treści, aby wyświetlić tę sekcję", + "missingCustomEndpointName": "Dodaj niestandardową nazwę punktu końcowego treści, aby wyświetlić tę sekcję", "missingHtmlWidget": "Dodaj HTML, aby wyświetlić komponent", + "missingSearchApiKey": "Dodaj klucz API wyszukiwania, aby wyświetlić tę sekcję", + "missingSearchExperienceKey": "Dodaj klucz do wyszukiwania, aby wyświetlić tę sekcję", "monday": "Poniedziałek", + "more": "Więcej", "nearbyLocationsEmptyState": "Brak {{entityType}} w promieniu {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Sekcja ukryta dla tego elementu {{entityType}}", "noAvailableFields": "Brak dostępnych pól", "noAvailableTypes": "Brak dostępnych rodzajów", + "noLinkAvailable": "brak dostępnego linku", "noMatchesFound": "Nie znaleziono dopasowań.", "noResultsFoundForThisArea": "Nie znaleziono wyników dla tego obszaru", "noTypesFoundMsg": "Nie znaleziono żadnych rodzajów. Sprawdź swoją konfigurację.", diff --git a/packages/visual-editor/locales/platform/pt/visual-editor.json b/packages/visual-editor/locales/platform/pt/visual-editor.json index 9d695f21cd..c24cb7b8c5 100644 --- a/packages/visual-editor/locales/platform/pt/visual-editor.json +++ b/packages/visual-editor/locales/platform/pt/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Mensagem de direitos autorais", "coreInfoSection": "Seção de informações principais", "ctaGroup": "Grupo CTA", + "customBreadcrumbs": "Pão ralado personalizado", "customCodeSection": "Seção de código personalizado", + "CustomDirectory": "Diretório personalizado", "directory": "Diretório", "directoryGrid": "Grade de diretório", "emails": "E -mails", @@ -107,6 +109,9 @@ "promoSection": "Seção promocional", "reviewsSection": "Seção de revisões", "richText": "Texto rico", + "searchBarSlot": "Slot da barra de pesquisa", + "SearchResultsSlot": "Espaço de resultados de pesquisa", + "searchWithSlots": "Pesquise com caça-níqueis", "secondaryFooter": "Rodapé Secundário", "secondaryHeader": "Cabeçalho secundário", "staticMapSection": "Seção de mapa estático", @@ -176,6 +181,7 @@ "buttons": "Botões", "buttonText": "Texto do botão", "cardTitleColor": "Cor do título do cartão", + "cardType": "Tipo de cartão", "cardVariant": "Variante de cartão", "carouselImageCount": "Contagem de imagens do carrossel", "collapseDays": "Dias de colapso", @@ -210,7 +216,9 @@ "email": "E-mail", "emailList": "Lista de e -mails", "emails": "E -mails", + "enableGenerativeDirectAnswer": "Resposta direta generativa", "enableLanguageSelector": "Ativar seletor de linguagem", + "enableVisualAutoComplete": "Ativar preenchimento automático visual", "endDate": "Data de término", "expandedFooterLinks": "Links expandidos do rodapé", "expandFooter": "Expandir rodapé", @@ -240,11 +248,13 @@ "includeTime": "Incluir tempo", "insights": "Percepções", "instagramLink": "Link do Instagram", + "isTypingEffect": "Efeito de tipo", "javascript": "JavaScript", "justifyContent": "Justificar conteúdo", "key": "Chave", "label": "Rótulo", "latitude": "Latitude", + "layout": "Disposição", "limit": "Limite", "link": "Link", "linkedInLink": "Link LinkedIn", @@ -458,13 +468,19 @@ "timeFormat": "Formato de tempo", "title": "Título", "truncateDescription": "Descrição truncada", + "universalLimit": "Limite universal", "utilityImages": "Imagens utilitárias", "value": "Valor", "values": "Valores", "variant": "Variante", + "verticalKey": "Chave vertical", + "verticalLimit": "Limite vertical", "verticalPadding": "Preenchimento superior/inferior", + "verticals": "Verticais", "video": "Vídeo", "visibleOnLivePage": "Visível na página ao vivo", + "visualAutoCompleteVerticalKey": "Chave vertical de preenchimento automático visual", + "voiceSearch": "Pesquisa por voz", "weight": "Peso", "wrap": "Enrolar", "xLink": "X link", @@ -508,6 +524,7 @@ }, "loadingMap": "Carregando mapa ...", "loadingNearbyLocations": "Carregando locais próximos ...", + "loadingResults": "Carregando resultados...", "loadingVE": "Carregando Editor Visual ...", "locationsNear_one": "{{count}} localização próxima a \"{{name}}\"", "locationsNear_many": "{{count}} locais próximos a \"{{name}}\"", @@ -526,12 +543,18 @@ "mile_one": "milha", "mile_many": "milhas", "mile_other": "milhas", + "missingCustomEndpointApiKey": "Adicione sua chave de API de endpoint de conteúdo personalizada para visualizar esta seção", + "missingCustomEndpointName": "Adicione seu nome de endpoint de conteúdo personalizado para visualizar esta seção", "missingHtmlWidget": "Adicione HTML para visualizar o componente", + "missingSearchApiKey": "Adicione sua chave da API de pesquisa para visualizar esta seção", + "missingSearchExperienceKey": "Adicione sua chave de experiência de pesquisa para visualizar esta seção", "monday": "Segunda-feira", + "more": "Mais", "nearbyLocationsEmptyState": "Nenhum {{entityType}} num raio de {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Seção oculta para este {{entityType}}", "noAvailableFields": "Sem campos disponíveis", "noAvailableTypes": "Sem tipos disponíveis", + "noLinkAvailable": "nenhum link disponível", "noMatchesFound": "Nenhuma correspondência encontrada.", "noResultsFoundForThisArea": "Nenhum resultado encontrado para esta área", "noTypesFoundMsg": "Não há tipos encontrados. Por favor, verifique sua configuração.", diff --git a/packages/visual-editor/locales/platform/ro/visual-editor.json b/packages/visual-editor/locales/platform/ro/visual-editor.json index beb0f5c844..ad12931fe5 100644 --- a/packages/visual-editor/locales/platform/ro/visual-editor.json +++ b/packages/visual-editor/locales/platform/ro/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Mesaj privind drepturile de autor", "coreInfoSection": "Secțiunea de informații de bază", "ctaGroup": "Grup CTA", + "customBreadcrumbs": "Pesmet personalizat", "customCodeSection": "Secțiune de cod personalizat", + "CustomDirectory": "Director personalizat", "directory": "Director", "directoryGrid": "Director Grid", "emails": "E -mailuri", @@ -107,6 +109,9 @@ "promoSection": "Secțiunea promo", "reviewsSection": "Secțiunea de recenzii", "richText": "Text bogat", + "searchBarSlot": "Slot pentru bara de căutare", + "SearchResultsSlot": "Slot pentru rezultatele căutării", + "searchWithSlots": "Căutați cu sloturi", "secondaryFooter": "Subsol secundar", "secondaryHeader": "Antet secundar", "staticMapSection": "Secțiunea hărții statice", @@ -176,6 +181,7 @@ "buttons": "Butoane", "buttonText": "Text buton", "cardTitleColor": "Culoarea titlului cardului", + "cardType": "Tip card", "cardVariant": "Varianta card", "carouselImageCount": "Număr de imagini carusel", "collapseDays": "Zile de prăbușire", @@ -210,7 +216,9 @@ "email": "E-mail", "emailList": "Lista de e -mailuri", "emails": "E -mailuri", + "enableGenerativeDirectAnswer": "Răspuns direct generativ", "enableLanguageSelector": "Activați selectorul de limbă", + "enableVisualAutoComplete": "Activați completarea automată vizuală", "endDate": "Data de încheiere", "expandedFooterLinks": "Legături de subsol extinse", "expandFooter": "Extinde subsolul", @@ -240,11 +248,13 @@ "includeTime": "Includeți timpul", "insights": "Perspective", "instagramLink": "Link Instagram", + "isTypingEffect": "Efect de tip", "javascript": "JavaScript", "justifyContent": "Justifică conținutul", "key": "Cheie", "label": "Eticheta", "latitude": "Latitudine", + "layout": "Aspect", "limit": "Limită", "link": "Legătură", "linkedInLink": "LinkedIn Link", @@ -458,13 +468,19 @@ "timeFormat": "Format de timp", "title": "Titlu", "truncateDescription": "Descrierea trunchiei", + "universalLimit": "Limită universală", "utilityImages": "Imagini utilitare", "value": "Valoare", "values": "Valori", "variant": "Variantă", + "verticalKey": "Cheie verticală", + "verticalLimit": "Limită verticală", "verticalPadding": "Padding superior/inferior", + "verticals": "Verticale", "video": "Video", "visibleOnLivePage": "Vizibil pe pagina live", + "visualAutoCompleteVerticalKey": "Tasta verticală de completare automată vizuală", + "voiceSearch": "Căutare vocală", "weight": "Greutate", "wrap": "Înveliș", "xLink": "X Link", @@ -508,6 +524,7 @@ }, "loadingMap": "Harta de încărcare ...", "loadingNearbyLocations": "Încărcarea locațiilor din apropiere ...", + "loadingResults": "Se încarcă rezultatele...", "loadingVE": "Încărcarea editorului vizual ...", "locationsNear_one": "{{count}} locație lângă \"{{name}}\"", "locationsNear_few": "{{count}} locații lângă „{{name}}”", @@ -526,12 +543,18 @@ "mile_one": "milă", "mile_few": "mile", "mile_other": "mile", + "missingCustomEndpointApiKey": "Adăugați-vă cheia API pentru punctul final de conținut pentru a vedea această secțiune", + "missingCustomEndpointName": "Adăugați numele personalizat al punctului final de conținut pentru a vedea această secțiune", "missingHtmlWidget": "Adăugați HTML pentru a vizualiza componenta", + "missingSearchApiKey": "Adăugați cheia API de căutare pentru a vedea această secțiune", + "missingSearchExperienceKey": "Adăugați cheia dvs. de experiență de căutare pentru a vedea această secțiune", "monday": "luni", + "more": "Mai mult", "nearbyLocationsEmptyState": "Nu există {{entityType}} în {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Secțiune ascunsă pentru acest {{entityType}}", "noAvailableFields": "Nu există câmpuri disponibile", "noAvailableTypes": "Nu există tipuri disponibile", + "noLinkAvailable": "nici un link disponibil", "noMatchesFound": "Nu s -au găsit chibrituri.", "noResultsFoundForThisArea": "Nu s -au găsit rezultate pentru acest domeniu", "noTypesFoundMsg": "Nu s -a găsit tipuri. Vă rugăm să verificați configurația.", diff --git a/packages/visual-editor/locales/platform/sk/visual-editor.json b/packages/visual-editor/locales/platform/sk/visual-editor.json index 7f6c3770a0..afe1df539e 100644 --- a/packages/visual-editor/locales/platform/sk/visual-editor.json +++ b/packages/visual-editor/locales/platform/sk/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Správa o autorských právach", "coreInfoSection": "Sekcia", "ctaGroup": "Skupina CTA", + "customBreadcrumbs": "Vlastná strúhanka", "customCodeSection": "Vlastná sekcia kódu", + "CustomDirectory": "Vlastný adresár", "directory": "Adresár", "directoryGrid": "Mriežka adresára", "emails": "E-maily", @@ -107,6 +109,9 @@ "promoSection": "Promo sekcia", "reviewsSection": "Sekcia recenzií", "richText": "RTF", + "searchBarSlot": "Slot SearchBar", + "SearchResultsSlot": "Slot výsledkov vyhľadávania", + "searchWithSlots": "Hľadajte pomocou slotov", "secondaryFooter": "Sekundárna päta", "secondaryHeader": "Sekundárna hlavička", "staticMapSection": "Sekcia statickej mapy", @@ -176,6 +181,7 @@ "buttons": "Gombíky", "buttonText": "Text tlačidla", "cardTitleColor": "Farba názvu karty", + "cardType": "Typ karty", "cardVariant": "Variant karty", "carouselImageCount": "Počet obrázkov na kolotoči", "collapseDays": "Dni kolapsu", @@ -210,7 +216,9 @@ "email": "E-mail", "emailList": "Zoznam e-mailov", "emails": "E-maily", + "enableGenerativeDirectAnswer": "Generatívna priama odpoveď", "enableLanguageSelector": "Povoliť výber jazyka", + "enableVisualAutoComplete": "Povoliť vizuálne automatické dopĺňanie", "endDate": "Dátum ukončenia", "expandedFooterLinks": "Rozšírené odkazy na päty", "expandFooter": "Rozširovať pätu", @@ -240,11 +248,13 @@ "includeTime": "Zahrnúť čas", "insights": "Postrehy", "instagramLink": "Odkaz na Instagram", + "isTypingEffect": "Typový efekt", "javascript": "JavaScript", "justifyContent": "Zdôvodniť obsah", "key": "kľúč", "label": "Štítok", "latitude": "Šírka", + "layout": "Rozloženie", "limit": "Obmedzenie", "link": "Prepojiť", "linkedInLink": "LinkedIn link", @@ -458,13 +468,19 @@ "timeFormat": "Časový formát", "title": "Názov", "truncateDescription": "Skrátený popis", + "universalLimit": "Univerzálny limit", "utilityImages": "Úžitkové obrázky", "value": "Hodnota", "values": "Hodnota", "variant": "Variant", + "verticalKey": "Vertikálny kľúč", + "verticalLimit": "Vertikálny limit", "verticalPadding": "Vypchávka zhora/spodnej časti", + "verticals": "Vertikálne", "video": "Video", "visibleOnLivePage": "Viditeľné na živej stránke", + "visualAutoCompleteVerticalKey": "Vertikálny kľúč vizuálneho automatického dopĺňania", + "voiceSearch": "Hlasové vyhľadávanie", "weight": "Hmotnosť", "wrap": "Zabaliť", "xLink": "X Link", @@ -509,6 +525,7 @@ }, "loadingMap": "Načítava mapa ...", "loadingNearbyLocations": "Načítavanie miest v okolí ...", + "loadingResults": "Načítavajú sa výsledky...", "loadingVE": "Načítava sa vizuálny editor ...", "locationsNear_one": "{{count}} umiestnenie blízko „{{name}}“", "locationsNear_few": "{{count}} miest v blízkosti „{{name}}“", @@ -531,12 +548,18 @@ "mile_few": "míle", "mile_many": "míľ", "mile_other": "míľ", + "missingCustomEndpointApiKey": "Ak chcete zobraziť túto časť, pridajte si vlastný kľúč API koncového bodu obsahu", + "missingCustomEndpointName": "Ak chcete zobraziť túto sekciu, pridajte svoj vlastný názov koncového bodu obsahu", "missingHtmlWidget": "Pridajte HTML na Zobraziť komponent", + "missingSearchApiKey": "Ak chcete zobraziť túto sekciu, pridajte kľúč rozhrania Search API", + "missingSearchExperienceKey": "Ak chcete zobraziť túto sekciu, pridajte svoj kľúč vyhľadávania", "monday": "Pondelok", + "more": "Viac", "nearbyLocationsEmptyState": "Žiadna {{entityType}} v okruhu {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Sekcia skrytá pre túto {{entityType}}", "noAvailableFields": "Žiadne dostupné polia", "noAvailableTypes": "Žiadne dostupné typy", + "noLinkAvailable": "nie je dostupný žiadny odkaz", "noMatchesFound": "Nenašli sa žiadne zhody.", "noResultsFoundForThisArea": "Pre túto oblasť sa nenašli žiadne výsledky", "noTypesFoundMsg": "Nenašli sa žiadne typy. Skontrolujte svoju konfiguráciu.", diff --git a/packages/visual-editor/locales/platform/sv/visual-editor.json b/packages/visual-editor/locales/platform/sv/visual-editor.json index fb97c8d834..82dbc03d69 100644 --- a/packages/visual-editor/locales/platform/sv/visual-editor.json +++ b/packages/visual-editor/locales/platform/sv/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Upphovsrättsmeddelande", "coreInfoSection": "Kärninfo -sektionen", "ctaGroup": "CTA -grupp", + "customBreadcrumbs": "Anpassade brödsmulor", "customCodeSection": "Anpassad kodavsnitt", + "CustomDirectory": "Anpassad katalog", "directory": "Katalog", "directoryGrid": "Katalogrutnät", "emails": "E -postmeddelanden", @@ -107,6 +109,9 @@ "promoSection": "Promo -sektion", "reviewsSection": "Recensionsavsnitt", "richText": "Rich Text", + "searchBarSlot": "Sökbar Slot", + "SearchResultsSlot": "Sökresultat Slot", + "searchWithSlots": "Sök med Slots", "secondaryFooter": "Sekundär sidfot", "secondaryHeader": "Sekundär rubrik", "staticMapSection": "Statisk kartavsnitt", @@ -176,6 +181,7 @@ "buttons": "Knappar", "buttonText": "Knapptext", "cardTitleColor": "Kortets titelfärg", + "cardType": "Korttyp", "cardVariant": "Kortvariant", "carouselImageCount": "Antal karusellbilder", "collapseDays": "Kollapsdagar", @@ -210,7 +216,9 @@ "email": "E-post", "emailList": "E -postlista", "emails": "E -postmeddelanden", + "enableGenerativeDirectAnswer": "Generativt direktsvar", "enableLanguageSelector": "Aktivera språkväljare", + "enableVisualAutoComplete": "Aktivera Visual Autocomplete", "endDate": "Slutdatum", "expandedFooterLinks": "Utvidgade sidlänkar", "expandFooter": "Expandera sidfot", @@ -240,11 +248,13 @@ "includeTime": "Inkludera tid", "insights": "Insikt", "instagramLink": "Instagram -länk", + "isTypingEffect": "Typ Effekt", "javascript": "JavaScript", "justifyContent": "Motivera innehåll", "key": "Nyckel", "label": "Märka", "latitude": "Latitud", + "layout": "Layout", "limit": "Begränsa", "link": "Länk", "linkedInLink": "LinkedIn -länk", @@ -458,13 +468,19 @@ "timeFormat": "Tidsformat", "title": "Titel", "truncateDescription": "Avkunna beskrivning", + "universalLimit": "Universell gräns", "utilityImages": "Verktygsbilder", "value": "Värde", "values": "Värderingar", "variant": "Variant", + "verticalKey": "Vertikal nyckel", + "verticalLimit": "Vertikal gräns", "verticalPadding": "Topp/bottenstoppning", + "verticals": "Vertikala", "video": "Video", "visibleOnLivePage": "Synlig på live -sidan", + "visualAutoCompleteVerticalKey": "Visual Autocomplete Vertical Key", + "voiceSearch": "Röstsökning", "weight": "Vikt", "wrap": "Sjal", "xLink": "X -länk", @@ -507,6 +523,7 @@ }, "loadingMap": "Laddar karta ...", "loadingNearbyLocations": "Laddar närliggande platser ...", + "loadingResults": "Laddar resultat...", "loadingVE": "Laddar visuell redaktör ...", "locationsNear_one": "{{count}} Plats nära \"{{name}}\"", "locationsNear_other": "{{count}} platser nära \"{{name}}\"", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "Metatitel saknas för lokal(er): {{locales}}", "mile_one": "mil", "mile_other": "mil", + "missingCustomEndpointApiKey": "Lägg till din anpassade Content endpoint API-nyckel för att se det här avsnittet", + "missingCustomEndpointName": "Lägg till ditt anpassade innehållsändpunktsnamn för att se det här avsnittet", "missingHtmlWidget": "Lägg till HTML för att visa komponent", + "missingSearchApiKey": "Lägg till din sök-API-nyckel för att se det här avsnittet", + "missingSearchExperienceKey": "Lägg till din sökupplevelsenyckel för att se det här avsnittet", "monday": "Måndag", + "more": "Mer", "nearbyLocationsEmptyState": "Ingen {{entityType}} inom {{radius}} {{unit}}", "nearbyLocationsEmptyStateSectionHidden": "Avsnittet är dolt för denna {{entityType}}", "noAvailableFields": "Inga tillgängliga fält", "noAvailableTypes": "Inga tillgängliga typer", + "noLinkAvailable": "ingen länk tillgänglig", "noMatchesFound": "Inga matcher hittades.", "noResultsFoundForThisArea": "Inga resultat hittades för detta område", "noTypesFoundMsg": "Inga typer hittades. Kontrollera din konfiguration.", diff --git a/packages/visual-editor/locales/platform/tr/visual-editor.json b/packages/visual-editor/locales/platform/tr/visual-editor.json index 7ec127d08f..ddb63c204a 100644 --- a/packages/visual-editor/locales/platform/tr/visual-editor.json +++ b/packages/visual-editor/locales/platform/tr/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "Telif Hakkı Mesajı", "coreInfoSection": "Çekirdek Bilgi Bölümü", "ctaGroup": "CTA grubu", + "customBreadcrumbs": "Özel İçerik Kırıntıları", "customCodeSection": "Özel Kod Bölümü", + "CustomDirectory": "Özel Dizin", "directory": "Dizin", "directoryGrid": "Dizin Izgarası", "emails": "E -postalar", @@ -107,6 +109,9 @@ "promoSection": "Promosyon bölümü", "reviewsSection": "İncelemeler Bölümü", "richText": "Zengin Metin", + "searchBarSlot": "Arama Çubuğu Yuvası", + "SearchResultsSlot": "Arama Sonuçları Yuvası", + "searchWithSlots": "Slotlarla Ara", "secondaryFooter": "İkincil Altbilgi", "secondaryHeader": "İkincil Başlık", "staticMapSection": "Statik Harita Bölümü", @@ -176,6 +181,7 @@ "buttons": "Düğmeler", "buttonText": "Düğme Metni", "cardTitleColor": "Kart Başlığı Rengi", + "cardType": "Kart Türü", "cardVariant": "Kart Varyantı", "carouselImageCount": "Atlıkarınca Resim Sayısı", "collapseDays": "Çökme günleri", @@ -210,7 +216,9 @@ "email": "E -posta", "emailList": "E -posta Listesi", "emails": "E -postalar", + "enableGenerativeDirectAnswer": "Üretken Doğrudan Cevap", "enableLanguageSelector": "Dil seçicisini etkinleştir", + "enableVisualAutoComplete": "Görsel Otomatik Tamamlamayı Etkinleştir", "endDate": "Bitiş Tarihi", "expandedFooterLinks": "Genişletilmiş altbilgi bağlantıları", "expandFooter": "Altbilgi genişlet", @@ -240,11 +248,13 @@ "includeTime": "Zamanı Dahil Et", "insights": "İçgörü", "instagramLink": "Instagram bağlantısı", + "isTypingEffect": "Tip Efekti", "javascript": "JavaScript", "justifyContent": "İçeriği haklı çıkar", "key": "Anahtar", "label": "Etiket", "latitude": "Enlem", + "layout": "Düzen", "limit": "Sınırlamak", "link": "Bağlantı", "linkedInLink": "LinkedIn Link", @@ -458,13 +468,19 @@ "timeFormat": "Zaman biçimi", "title": "Başlık", "truncateDescription": "Kesik Açıklama", + "universalLimit": "Evrensel Sınır", "utilityImages": "Yardımcı Görseller", "value": "Değer", "values": "Değer", "variant": "Varyant", + "verticalKey": "Dikey Anahtar", + "verticalLimit": "Dikey Sınır", "verticalPadding": "Üst/Alt Dolgu", + "verticals": "Dikeyler", "video": "Video", "visibleOnLivePage": "Canlı sayfada görünür", + "visualAutoCompleteVerticalKey": "Görsel Otomatik Tamamlama Dikey Anahtarı", + "voiceSearch": "Sesli Arama", "weight": "Ağırlık", "wrap": "Dürüm", "xLink": "X Bağlantı", @@ -507,6 +523,7 @@ }, "loadingMap": "Yükleme haritası ...", "loadingNearbyLocations": "Yakındaki yerleri yükleme ...", + "loadingResults": "Sonuçlar Yükleniyor...", "loadingVE": "Görsel Editör Yükleme ...", "locationsNear_one": "{{count}} konum \"{{name}}\" yakınında yer", "locationsNear_other": "\"{{name}}\" yakınındaki {{count}} konum", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "Yerel ayarlar için meta başlığı eksik: {{locales}}", "mile_one": "mil", "mile_other": "mil", + "missingCustomEndpointApiKey": "Bu bölümü görüntülemek için size özel İçerik uç noktası API anahtarı ekleyin", + "missingCustomEndpointName": "Bu bölümü görüntülemek için özel İçerik uç noktası adınızı ekleyin", "missingHtmlWidget": "Bileşeni görüntülemek için HTML ekle", + "missingSearchApiKey": "Bu bölümü görüntülemek için Arama API anahtarınızı ekleyin", + "missingSearchExperienceKey": "Bu bölümü görüntülemek için Arama Deneyimi anahtarınızı ekleyin", "monday": "Pazartesi", + "more": "Daha", "nearbyLocationsEmptyState": "{{radius}} {{unit}} içerisinde {{entityType}} yok", "nearbyLocationsEmptyStateSectionHidden": "Bu {{entityType}} için bölüm gizlendi", "noAvailableFields": "Mevcut alan yok", "noAvailableTypes": "Mevcut tür yok", + "noLinkAvailable": "bağlantı mevcut değil", "noMatchesFound": "Eşleşme bulunamadı.", "noResultsFoundForThisArea": "Bu alan için sonuç bulunamadı", "noTypesFoundMsg": "Hiçbir tür bulunamadı. Lütfen yapılandırmanızı kontrol edin.", diff --git a/packages/visual-editor/locales/platform/zh-TW/visual-editor.json b/packages/visual-editor/locales/platform/zh-TW/visual-editor.json index 18057976ef..1b52e1636b 100644 --- a/packages/visual-editor/locales/platform/zh-TW/visual-editor.json +++ b/packages/visual-editor/locales/platform/zh-TW/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "版權信息", "coreInfoSection": "核心信息部分", "ctaGroup": "CTA組", + "customBreadcrumbs": "自訂麵包屑", "customCodeSection": "自定義代碼部分", + "CustomDirectory": "自訂目錄", "directory": "目錄", "directoryGrid": "目錄網格", "emails": "電子郵件", @@ -107,6 +109,9 @@ "promoSection": "促銷部分", "reviewsSection": "評論部分", "richText": "富文本", + "searchBarSlot": "搜尋欄插槽", + "SearchResultsSlot": "搜尋結果槽", + "searchWithSlots": "老虎機搜尋", "secondaryFooter": "二級頁腳", "secondaryHeader": "二級標頭", "staticMapSection": "靜態地圖部分", @@ -176,6 +181,7 @@ "buttons": "按鈕", "buttonText": "按鈕文字", "cardTitleColor": "卡片標題顏色", + "cardType": "卡片類型", "cardVariant": "卡牌變體", "carouselImageCount": "輪播圖像計數", "collapseDays": "崩潰的日子", @@ -210,7 +216,9 @@ "email": "電子郵件", "emailList": "電子郵件列表", "emails": "電子郵件", + "enableGenerativeDirectAnswer": "產生直接答案", "enableLanguageSelector": "啟用語言選擇器", + "enableVisualAutoComplete": "啟用視覺自動完成", "endDate": "結束日期", "expandedFooterLinks": "擴展的頁腳鍊接", "expandFooter": "擴展頁腳", @@ -240,11 +248,13 @@ "includeTime": "包括時間", "insights": "見解", "instagramLink": "Instagram鏈接", + "isTypingEffect": "類型 效果", "javascript": "JavaScript", "justifyContent": "證明內容合理", "key": "鍵", "label": "標籤", "latitude": "緯度", + "layout": "佈局", "limit": "限制", "link": "鏈接", "linkedInLink": "LinkedIn鏈接", @@ -458,13 +468,19 @@ "timeFormat": "時間格式", "title": "標題", "truncateDescription": "截斷描述", + "universalLimit": "通用限制", "utilityImages": "實用圖像", "value": "值", "values": "值", "variant": "變體", + "verticalKey": "垂直鍵", + "verticalLimit": "垂直極限", "verticalPadding": "頂部/底部填充", + "verticals": "垂直領域", "video": "影片", "visibleOnLivePage": "在現場頁面上可見", + "visualAutoCompleteVerticalKey": "視覺自動完成垂直鍵", + "voiceSearch": "語音搜尋", "weight": "字重", "wrap": "裹", "xLink": "x鏈接", @@ -507,6 +523,7 @@ }, "loadingMap": "加載地圖...", "loadingNearbyLocations": "在附近的位置加載...", + "loadingResults": "加載結果...", "loadingVE": "加載視覺編輯器...", "locationsNear_one": "“{{name}}”附近有 {{count}} 個位置", "locationsNear_other": "“{{name}}”附近有 {{count}} 個位置", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "語言環境缺少元標題:{{locales}}", "mile_one": "英里", "mile_other": "英里", + "missingCustomEndpointApiKey": "新增自訂內容端點 API 金鑰以查看此部分", + "missingCustomEndpointName": "新增您的自訂內容端點名稱以查看此部分", "missingHtmlWidget": "添加HTML以查看組件", + "missingSearchApiKey": "新增您的搜尋 API 金鑰以查看此部分", + "missingSearchExperienceKey": "新增您的搜尋體驗金鑰以查看此部分", "monday": "週一", + "more": "更多的", "nearbyLocationsEmptyState": "{{radius}} {{unit}}內沒有 {{entityType}}", "nearbyLocationsEmptyStateSectionHidden": "此 {{entityType}} 的部分已隱藏", "noAvailableFields": "沒有可用的字段", "noAvailableTypes": "沒有可用類型", + "noLinkAvailable": "沒有可用的連結", "noMatchesFound": "找不到比賽。", "noResultsFoundForThisArea": "該區域找不到結果", "noTypesFoundMsg": "找不到類型。請檢查您的配置。", diff --git a/packages/visual-editor/locales/platform/zh/visual-editor.json b/packages/visual-editor/locales/platform/zh/visual-editor.json index b1346a5972..e1a68fbbe1 100644 --- a/packages/visual-editor/locales/platform/zh/visual-editor.json +++ b/packages/visual-editor/locales/platform/zh/visual-editor.json @@ -61,7 +61,9 @@ "copyrightMessage": "版权信息", "coreInfoSection": "核心信息部分", "ctaGroup": "CTA组", + "customBreadcrumbs": "自定义面包屑", "customCodeSection": "自定义代码部分", + "CustomDirectory": "自定义目录", "directory": "目录", "directoryGrid": "目录网格", "emails": "电子邮件", @@ -107,6 +109,9 @@ "promoSection": "促销部分", "reviewsSection": "评论部分", "richText": "富文本", + "searchBarSlot": "搜索栏插槽", + "SearchResultsSlot": "搜索结果槽", + "searchWithSlots": "老虎机搜索", "secondaryFooter": "二级页脚", "secondaryHeader": "二级标头", "staticMapSection": "静态地图部分", @@ -176,6 +181,7 @@ "buttons": "按钮", "buttonText": "按钮文字", "cardTitleColor": "卡片标题颜色", + "cardType": "卡类型", "cardVariant": "卡片变体", "carouselImageCount": "轮播图像计数", "collapseDays": "崩溃的日子", @@ -210,7 +216,9 @@ "email": "电子邮件", "emailList": "电子邮件列表", "emails": "电子邮件", + "enableGenerativeDirectAnswer": "生成直接答案", "enableLanguageSelector": "启用语言选择器", + "enableVisualAutoComplete": "启用视觉自动完成", "endDate": "结束日期", "expandedFooterLinks": "扩展的页脚链接", "expandFooter": "扩展页脚", @@ -240,11 +248,13 @@ "includeTime": "包括时间", "insights": "见解", "instagramLink": "Instagram链接", + "isTypingEffect": "类型 效果", "javascript": "JavaScript", "justifyContent": "证明内容合理", "key": "钥匙", "label": "标签", "latitude": "纬度", + "layout": "布局", "limit": "限制", "link": "关联", "linkedInLink": "LinkedIn链接", @@ -458,13 +468,19 @@ "timeFormat": "时间格式", "title": "标题", "truncateDescription": "截断描述", + "universalLimit": "通用限制", "utilityImages": "实用图像", "value": "价值", "values": "值", "variant": "变体", + "verticalKey": "垂直键", + "verticalLimit": "垂直极限", "verticalPadding": "顶部/底部填充", + "verticals": "垂直领域", "video": "视频", "visibleOnLivePage": "在现场页面上可见", + "visualAutoCompleteVerticalKey": "视觉自动完成垂直键", + "voiceSearch": "语音搜索", "weight": "字重", "wrap": "裹", "xLink": "x链接", @@ -507,6 +523,7 @@ }, "loadingMap": "加载地图...", "loadingNearbyLocations": "在附近的位置加载...", + "loadingResults": "加载结果...", "loadingVE": "加载视觉编辑器...", "locationsNear_one": "“{{name}}”附近有 {{count}} 个位置", "locationsNear_other": "“{{name}}”附近有 {{count}} 个地点", @@ -521,12 +538,18 @@ "metaTitleMissingLocales": "语言环境缺少元标题:{{locales}}", "mile_one": "英里", "mile_other": "英里", + "missingCustomEndpointApiKey": "添加自定义内容端点 API 密钥以查看此部分", + "missingCustomEndpointName": "添加您的自定义内容端点名称以查看此部分", "missingHtmlWidget": "添加HTML以查看组件", + "missingSearchApiKey": "添加您的搜索 API 密钥以查看此部分", + "missingSearchExperienceKey": "添加您的搜索体验密钥以查看此部分", "monday": "周一", + "more": "更多的", "nearbyLocationsEmptyState": "{{radius}} {{unit}}内没有 {{entityType}}", "nearbyLocationsEmptyStateSectionHidden": "此 {{entityType}} 的部分已隐藏", "noAvailableFields": "没有可用的字段", "noAvailableTypes": "没有可用类型", + "noLinkAvailable": "没有可用的链接", "noMatchesFound": "找不到比赛。", "noResultsFoundForThisArea": "该区域找不到结果", "noTypesFoundMsg": "找不到类型。请检查您的配置。", diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx index 7695421393..b72d8c54b2 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx @@ -1,15 +1,16 @@ +import { Coordinate, Map, MapboxMaps, Marker } from "@yext/pages-components"; import { useSearchState } from "@yext/search-headless-react"; import { - PinComponent, DefaultRawDataType, MapboxMap, + PinComponent, } from "@yext/search-ui-react"; -import { Coordinate, Map, MapboxMaps, Marker } from "@yext/pages-components"; +import { t } from "i18next"; import { MapPin } from "lucide-react"; +import "mapbox-gl/dist/mapbox-gl.css"; import { useDocument } from "../../../hooks/useDocument.tsx"; import { StreamDocument } from "../../../utils/index.ts"; -import "mapbox-gl/dist/mapbox-gl.css"; -import { t } from "i18next"; +import { Body } from "../../atoms/body.tsx"; interface MapComponentProps { isUniversal?: boolean; @@ -50,7 +51,12 @@ export const MapComponent = ({ if (!mapboxApiKey) { return (
        - Missing Mapbox API Key + + {t( + "staticMapEmptyStateAddApiKey", + "Add an API key to preview your map" + )} +
        ); } From d05a87ac1a99d8d4d66bb4de53cd64cfd87b50c5 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 15:04:15 +0000 Subject: [PATCH 65/74] docs: auto-generate component documentation --- .../visual-editor/src/docs/ai/components.d.ts | 53 +++++++++++++++---- packages/visual-editor/src/docs/components.md | 6 +++ 2 files changed, 49 insertions(+), 10 deletions(-) diff --git a/packages/visual-editor/src/docs/ai/components.d.ts b/packages/visual-editor/src/docs/ai/components.d.ts index cfc4ff4b06..c63e58fdf1 100644 --- a/packages/visual-editor/src/docs/ai/components.d.ts +++ b/packages/visual-editor/src/docs/ai/components.d.ts @@ -33,6 +33,8 @@ interface PageSectionCategoryProps { BannerSection: BannerSectionProps; BreadcrumbsSection: BreadcrumbsSectionProps; CoreInfoSection: CoreInfoSectionProps; + CustomBreadcrumbs: CustomBreadcrumbsProps; + CustomDirectoryComponent: CustomDirectoryProps; EventSection: EventSectionProps; FAQSection: FAQSectionProps; HeroSection: HeroSectionProps; @@ -47,6 +49,7 @@ interface PageSectionCategoryProps { TeamSection: TeamSectionProps; TestimonialSection: TestimonialSectionProps; VideoSection: VideoSectionProps; + SearchComponent: SearchComponentProps; } interface ExpandedHeaderProps { @@ -214,6 +217,28 @@ interface CoreInfoSectionProps { liveVisibility: boolean; } +interface CustomBreadcrumbsProps { + data: { + directoryRoot: TranslatableString; + }; + styles: { + backgroundColor?: BackgroundStyle; + }; + analytics: { + scope?: string; + }; + liveVisibility: boolean; +} + +interface CustomDirectoryProps { + slots: { + HeadingSlot: Slot; + }; + styles: { + backgroundColor: BackgroundStyle; + }; +} + interface EventSectionProps { /** * This object contains properties for customizing the component's appearance. @@ -631,6 +656,14 @@ interface VideoSectionProps { liveVisibility: boolean; } +interface SearchComponentProps { + /** @internal */ + slots: { + SearchBarSlot: Slot; + SearchResultsSlot: Slot; + }; +} + interface ExpandedHeaderStyles { /** The maximum width of the header */ maxWidth: PageSectionProps["maxWidth"]; @@ -730,6 +763,12 @@ interface CoreInfoStyles { backgroundColor?: BackgroundStyle; } +/** + * A string that can be translated for different locales. + * @ai This should always be the LocalizedValues type + */ +type TranslatableString = string | LocalizedValues; + /** Represents data that can either be from the Yext Knowledge Graph or statically defined */ type YextEntityField = { /** The api name of the Yext field */ @@ -1055,11 +1094,10 @@ type TranslatableRichText = | (string | RichText) | Record; -/** - * A string that can be translated for different locales. - * @ai This should always be the LocalizedValues type - */ -type TranslatableString = string | LocalizedValues; +/** Represents a translatable string. The key is the locale (en, es, fr), and the value is the localized string. */ +type LocalizedValues = { + hasLocalizedValue: "true"; +} & Record; /** An individual FAQ */ type FAQStruct = { @@ -1101,11 +1139,6 @@ type RichText = { json?: string; }; -/** Represents a translatable string. The key is the locale (en, es, fr), and the value is the localized string. */ -type LocalizedValues = { - hasLocalizedValue: "true"; -} & Record; - /** Describes the data corresponding to a piece of image content. */ type ImageContentData = { name?: string; diff --git a/packages/visual-editor/src/docs/components.md b/packages/visual-editor/src/docs/components.md index a953f742ed..3c7dc8ac4e 100644 --- a/packages/visual-editor/src/docs/components.md +++ b/packages/visual-editor/src/docs/components.md @@ -781,6 +781,12 @@ If 'true', the component is visible on the live page; if 'false', it's hidden. --- +## SearchComponent + +### Props + +--- + ## SecondaryFooterSlot The Secondary Footer Slot is a sub-section of the Expanded Footer that contains copyright information and secondary links. From 333124986088e1f02c716bb3a3466d015a0ce995 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Thu, 26 Feb 2026 22:45:25 +0530 Subject: [PATCH 66/74] fixed circular error --- .../src/components/categories/SlotsCategory.tsx | 6 ++---- .../src/components/pageSections/SearchSection/Cards.tsx | 2 +- .../pageSections/SearchSection/LayoutSections.tsx | 2 +- .../src/components/pageSections/SearchSection/Search.tsx | 6 ++++-- .../pageSections/SearchSection/SearchResultsSlot.tsx | 9 ++------- .../SearchSection/VerticalResultsSection.tsx | 2 +- .../{propsAndTypes.ts => defaultPropsAndTypes.ts} | 6 ++++-- .../src/components/pageSections/SearchSection/utils.tsx | 2 +- 8 files changed, 16 insertions(+), 19 deletions(-) rename packages/visual-editor/src/components/pageSections/SearchSection/{propsAndTypes.ts => defaultPropsAndTypes.ts} (82%) diff --git a/packages/visual-editor/src/components/categories/SlotsCategory.tsx b/packages/visual-editor/src/components/categories/SlotsCategory.tsx index f42e26057f..113381f7de 100644 --- a/packages/visual-editor/src/components/categories/SlotsCategory.tsx +++ b/packages/visual-editor/src/components/categories/SlotsCategory.tsx @@ -119,10 +119,7 @@ import { SearchBarSlot, SearchBarSlotProps, } from "../pageSections/SearchSection/SearchBarSlot.tsx"; -import { - SearchResultsSlot, - SearchResultsSlotProps, -} from "../pageSections/SearchSection/SearchResultsSlot.tsx"; +import { SearchResultsSlot } from "../pageSections/SearchSection/SearchResultsSlot.tsx"; import { TeamCard, TeamCardProps, @@ -139,6 +136,7 @@ import { TestimonialCardsWrapper, TestimonialCardsWrapperProps, } from "../pageSections/TestimonialSection/TestimonialCardsWrapper.tsx"; +import { SearchResultsSlotProps } from "../pageSections/SearchSection/defaultPropsAndTypes.ts"; export interface SlotsCategoryProps { AddressSlot: AddressProps; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx index d4c48f356d..d93f4a7442 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx @@ -1,6 +1,6 @@ import { CardProps } from "@yext/search-ui-react"; import { MaybeRTF } from "@yext/visual-editor"; -import { CardTypeProp } from "./propsAndTypes.ts"; +import { CardTypeProp } from "./defaultPropsAndTypes.ts"; import { Accordion, AccordionContent, diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx index f68203cc90..963e27d68e 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/LayoutSections.tsx @@ -1,6 +1,6 @@ import { DefaultRawDataType, SectionProps } from "@yext/search-ui-react"; import { MapComponent } from "./MapComponent.tsx"; -import { VerticalLayout } from "./propsAndTypes.ts"; +import { VerticalLayout } from "./defaultPropsAndTypes.ts"; interface LayoutSectionProps extends SectionProps { layoutType: VerticalLayout; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index a25afff581..ed7a77b878 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -10,8 +10,10 @@ import { msg, pt, themeManagerCn } from "../../../utils/index.ts"; import { Body } from "../../atoms/body.tsx"; import { PageSection } from "../../atoms/pageSection.tsx"; import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; -import { SearchResultsSlotProps } from "./SearchResultsSlot.tsx"; -import { defaultSearchResultsProps } from "./propsAndTypes.ts"; +import { + defaultSearchResultsProps, + SearchResultsSlotProps, +} from "./defaultPropsAndTypes.ts"; import "./search.css"; import { buildSearchConfigFromDocument } from "./searchConfig.ts"; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 785189412b..010cde5c84 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -11,8 +11,8 @@ import { YextField } from "../../../editor/YextField.tsx"; import { msg } from "../../../utils/index.ts"; import { defaultSearchResultsProps, - VerticalConfigProps, -} from "./propsAndTypes.ts"; + SearchResultsSlotProps, +} from "./defaultPropsAndTypes.ts"; import { UniversalResultsSection } from "./UniversalResultsSection.tsx"; import { buildUniversalLimit, @@ -22,11 +22,6 @@ import { import { VerticalResultsSection } from "./VerticalResultsSection.tsx"; import { t } from "i18next"; -export interface SearchResultsSlotProps { - data: { verticals: VerticalConfigProps[] }; - styles: { enableGenerativeDirectAnswer: boolean }; -} - const SearchResultsSlotFields: Fields = { data: YextField(msg("fields.data", "Data"), { type: "object", diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx index 01bdb71489..3131b778f8 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx @@ -10,7 +10,7 @@ import { FaSlidersH, FaTimes } from "react-icons/fa"; import { Body } from "../../atoms/body.tsx"; import Cards from "./Cards.tsx"; import { MapComponent } from "./MapComponent.tsx"; -import { VerticalConfigProps } from "./propsAndTypes.ts"; +import { VerticalConfigProps } from "./defaultPropsAndTypes.ts"; interface VerticalResultsSectionProps { verticalKey: string; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts b/packages/visual-editor/src/components/pageSections/SearchSection/defaultPropsAndTypes.ts similarity index 82% rename from packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts rename to packages/visual-editor/src/components/pageSections/SearchSection/defaultPropsAndTypes.ts index 2586f423dd..945e831ea6 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/propsAndTypes.ts +++ b/packages/visual-editor/src/components/pageSections/SearchSection/defaultPropsAndTypes.ts @@ -1,5 +1,3 @@ -import { SearchResultsSlotProps } from "./SearchResultsSlot.tsx"; - export type VerticalLayout = "Grid" | "Flex" | "Map"; export type CardTypeProp = "Standard" | "accordion"; @@ -12,6 +10,10 @@ export interface VerticalConfigProps { pageType?: "universal" | "vertical"; cardType?: CardTypeProp; } +export interface SearchResultsSlotProps { + data: { verticals: VerticalConfigProps[] }; + styles: { enableGenerativeDirectAnswer: boolean }; +} export const defaultSearchResultsProps: SearchResultsSlotProps = { data: { diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx index b77655c42d..ba1ef725cb 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx @@ -6,7 +6,7 @@ import { } from "@yext/search-ui-react"; import Cards from "./Cards.tsx"; import { LayoutSection } from "./LayoutSections.tsx"; -import { VerticalConfigProps } from "./propsAndTypes.ts"; +import { VerticalConfigProps } from "./defaultPropsAndTypes.ts"; import { renderEntityPreviews } from "./searchVisualAutoComplete.tsx"; export const buildVerticalConfigMap = ( From b6e1550834c3a1a3f954a9c4e54dc783e1b38804 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 27 Feb 2026 00:54:00 +0530 Subject: [PATCH 67/74] nit: package updates --- .../pageSections/SearchSection/Cards.tsx | 2 +- .../SearchSection/MapComponent.tsx | 4 +- .../pageSections/SearchSection/Search.tsx | 3 +- .../SearchSection/SearchBarSlot.tsx | 2 +- .../SearchSection/SearchResultsSlot.tsx | 6 +- .../pageSections/SearchSection/SourceCard.tsx | 4 +- .../SearchSection/UniversalResultsSection.tsx | 3 +- .../SearchSection/VerticalResultsSection.tsx | 4 +- pnpm-lock.yaml | 5071 ++++++++--------- 9 files changed, 2417 insertions(+), 2682 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx index d93f4a7442..a98c569714 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Cards.tsx @@ -1,5 +1,4 @@ import { CardProps } from "@yext/search-ui-react"; -import { MaybeRTF } from "@yext/visual-editor"; import { CardTypeProp } from "./defaultPropsAndTypes.ts"; import { Accordion, @@ -7,6 +6,7 @@ import { AccordionItem, AccordionTrigger, } from "../../atoms/accordion.tsx"; +import { MaybeRTF } from "../../atoms/maybeRTF.tsx"; interface CardsProps extends CardProps { cardType?: CardTypeProp; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx index b72d8c54b2..3737c419e2 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/MapComponent.tsx @@ -5,12 +5,12 @@ import { MapboxMap, PinComponent, } from "@yext/search-ui-react"; -import { t } from "i18next"; import { MapPin } from "lucide-react"; import "mapbox-gl/dist/mapbox-gl.css"; import { useDocument } from "../../../hooks/useDocument.tsx"; import { StreamDocument } from "../../../utils/index.ts"; import { Body } from "../../atoms/body.tsx"; +import { useTranslation } from "react-i18next"; interface MapComponentProps { isUniversal?: boolean; @@ -30,7 +30,7 @@ export const MapComponent = ({ const verticalResults = useSearchState((s) => s.vertical.results) ?? []; const mapResults = isUniversal ? results : verticalResults; - + const { t } = useTranslation(); const entityDocument: StreamDocument = useDocument(); const mapboxApiKey = entityDocument._env?.YEXT_EDIT_LAYOUT_MODE_MAPBOX_API_KEY; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index ed7a77b878..af732c1f4e 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -6,7 +6,6 @@ import { import { SearchI18nextProvider } from "@yext/search-ui-react"; import React from "react"; import { useDocument } from "../../../hooks/useDocument.tsx"; -import { msg, pt, themeManagerCn } from "../../../utils/index.ts"; import { Body } from "../../atoms/body.tsx"; import { PageSection } from "../../atoms/pageSection.tsx"; import { SearchBarSlotProps } from "./SearchBarSlot.tsx"; @@ -16,6 +15,8 @@ import { } from "./defaultPropsAndTypes.ts"; import "./search.css"; import { buildSearchConfigFromDocument } from "./searchConfig.ts"; +import { themeManagerCn } from "../../../utils/cn.ts"; +import { msg, pt } from "../../../utils/i18n/platform.ts"; export interface SearchComponentProps { /** @internal */ diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx index 23bd22fe5c..f3d2573bce 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -8,12 +8,12 @@ import { SearchBar } from "@yext/search-ui-react"; import { FaMicrophone } from "react-icons/fa"; import { resolveDataFromParent } from "../../../editor/ParentData.tsx"; import { YextField } from "../../../editor/YextField.tsx"; -import { msg } from "../../../utils/index.ts"; import { useTypingEffect } from "./useTypeEffect.ts"; import { createVisualAutocompleteConfig } from "./utils.tsx"; import { useEntityPreviewSearcher } from "./searchConfig.ts"; import React from "react"; import { useDocument } from "../../../hooks/useDocument.tsx"; +import { msg } from "../../../utils/i18n/platform.ts"; export interface SearchBarSlotProps { styles: { diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index 010cde5c84..cf0b938e45 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -8,7 +8,6 @@ import { useSearchActions, useSearchState } from "@yext/search-headless-react"; import React, { useState } from "react"; import { FaEllipsisV } from "react-icons/fa"; import { YextField } from "../../../editor/YextField.tsx"; -import { msg } from "../../../utils/index.ts"; import { defaultSearchResultsProps, SearchResultsSlotProps, @@ -20,7 +19,8 @@ import { isValidVerticalConfig, } from "./utils.tsx"; import { VerticalResultsSection } from "./VerticalResultsSection.tsx"; -import { t } from "i18next"; +import { useTranslation } from "react-i18next"; +import { msg } from "../../../utils/i18n/platform.ts"; const SearchResultsSlotFields: Fields = { data: YextField(msg("fields.data", "Data"), { @@ -98,7 +98,7 @@ const SearchResultsSlotInternal: PuckComponent = ( } = props; const puckStore = useOptionalPuckStore(); const arrayState = puckStore?.appState?.ui?.arrayState; - + const { t } = useTranslation(); const arrayKey = React.useMemo(() => { if (!arrayState || !puck.isEditing) return undefined; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SourceCard.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SourceCard.tsx index 2a89f7cd35..9858056a9a 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SourceCard.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SourceCard.tsx @@ -1,5 +1,5 @@ import { CitationProps } from "@yext/search-ui-react"; -import { t } from "i18next"; +import { useTranslation } from "react-i18next"; interface RawData { landingPageUrl?: string; @@ -12,7 +12,7 @@ const SourceCard = (props: CitationProps) => { let rawData: RawData = props.searchResult.rawData; let link = rawData?.landingPageUrl || rawData?.c_primaryCTA?.link || ""; const name = props.searchResult?.name; - + const { t } = useTranslation(); return (
        {link ? ( diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx index 6777bfda38..0f99db103f 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/UniversalResultsSection.tsx @@ -3,7 +3,7 @@ import { UniversalResults, } from "@yext/search-ui-react"; import SourceCard from "./SourceCard.tsx"; -import { t } from "i18next"; +import { useTranslation } from "react-i18next"; interface UniversalResultsSectionProps { enableGDA: boolean; @@ -18,6 +18,7 @@ export const UniversalResultsSection = ({ gdaLoading, verticalConfigMap, }: UniversalResultsSectionProps) => { + const { t } = useTranslation(); return ( <> {enableGDA && !!searchTerm && ( diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx index 3131b778f8..2c0372ce52 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx @@ -4,13 +4,13 @@ import { StandardCard, VerticalResults, } from "@yext/search-ui-react"; -import { t } from "i18next"; import React from "react"; import { FaSlidersH, FaTimes } from "react-icons/fa"; import { Body } from "../../atoms/body.tsx"; import Cards from "./Cards.tsx"; import { MapComponent } from "./MapComponent.tsx"; import { VerticalConfigProps } from "./defaultPropsAndTypes.ts"; +import { useTranslation } from "react-i18next"; interface VerticalResultsSectionProps { verticalKey: string; @@ -29,7 +29,7 @@ export const VerticalResultsSection = ({ }: VerticalResultsSectionProps) => { const popupRef = React.useRef(null); const [showFilterModal, setShowFilterModal] = React.useState(false); - + const { t } = useTranslation(); if (currentVerticalConfig?.layout === "Map") { return (
        diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 54a23421e2..64ce4fd8ca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,31 +12,31 @@ importers: version: 11.0.4 "@types/lodash": specifier: ^4.14.202 - version: 4.17.20 + version: 4.17.24 "@types/minimist": specifier: ^1.2.5 version: 1.2.5 "@types/node": specifier: ^20.10.6 - version: 20.19.11 + version: 20.19.34 "@types/prompts": specifier: ^2.4.9 version: 2.4.9 "@types/semver": specifier: ^7.5.6 - version: 7.7.0 + version: 7.7.1 execa: specifier: ^8.0.1 version: 8.0.1 fs-extra: specifier: ^11.2.0 - version: 11.3.1 + version: 11.3.3 generate-changelog: specifier: ^1.8.0 version: 1.8.0 generate-license-file: specifier: ^3.6.0 - version: 3.8.1(typescript@5.9.2) + version: 3.8.1(typescript@5.9.3) globals: specifier: ^15.8.0 version: 15.15.0 @@ -60,88 +60,88 @@ importers: version: 0.0.54 prettier: specifier: ^3.3.3 - version: 3.6.2 + version: 3.8.1 prompts: specifier: ^2.4.2 version: 2.4.2 semver: specifier: ^7.5.4 - version: 7.7.2 + version: 7.7.4 tsx: specifier: ^4.6.2 - version: 4.20.4 + version: 4.21.0 typescript: specifier: ^5.3.3 - version: 5.9.2 + version: 5.9.3 yaml: specifier: ^2.3.4 - version: 2.8.1 + version: 2.8.2 packages/visual-editor: dependencies: "@microsoft/api-documenter": specifier: ^7.26.29 - version: 7.26.32(@types/node@20.19.11) + version: 7.29.6(@types/node@20.19.34) "@microsoft/api-extractor": specifier: ^7.52.8 - version: 7.52.11(@types/node@20.19.11) + version: 7.57.6(@types/node@20.19.34) "@microsoft/api-extractor-model": specifier: ^7.30.6 - version: 7.30.7(@types/node@20.19.11) + version: 7.33.4(@types/node@20.19.34) "@puckeditor/core": specifier: 0.21.1 - version: 0.21.1(@floating-ui/dom@1.7.4)(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)) + version: 0.21.1(@floating-ui/dom@1.7.5)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)) "@radix-ui/react-accordion": specifier: ^1.2.3 - version: 1.2.12(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.12(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-alert-dialog": specifier: ^1.1.1 - version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-dialog": specifier: ^1.1.13 - version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-dropdown-menu": specifier: ^2.1.15 - version: 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-label": specifier: ^2.1.0 - version: 2.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-popover": specifier: ^1.1.6 - version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-progress": specifier: ^1.1.0 - version: 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-radio-group": specifier: ^1.2.1 - version: 1.3.8(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.3.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-separator": specifier: ^1.1.7 - version: 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-slot": specifier: ^1.1.0 - version: 1.2.3(@types/react@18.3.24)(react@18.3.1) + version: 1.2.4(@types/react@18.3.28)(react@18.3.1) "@radix-ui/react-switch": specifier: ^1.1.0 - version: 1.2.6(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-toggle": specifier: ^1.1.9 - version: 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.10(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-tooltip": specifier: ^1.1.2 - version: 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@tanstack/react-query": specifier: ^5.71.5 - version: 5.85.5(react@18.3.1) + version: 5.90.21(react@18.3.1) "@yext/pages-components": specifier: ^2.0.0 - version: 2.0.0(lexical@0.38.2)(mapbox-gl@2.15.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.1(lexical@0.38.2)(mapbox-gl@2.15.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@yext/search-headless-react": specifier: ^2.7.1 version: 2.7.1(encoding@0.1.13)(react@18.3.1) "@yext/search-ui-react": specifier: ^2.1.0 - version: 2.1.0(@types/react@18.3.24)(@yext/search-headless-react@2.7.1(encoding@0.1.13)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)))(typescript@5.9.2) + version: 2.1.1(@types/react@18.3.28)(@yext/search-headless-react@2.7.1(encoding@0.1.13)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2))(typescript@5.9.3) class-variance-authority: specifier: ^0.7.0 version: 0.7.1 @@ -150,10 +150,10 @@ importers: version: 2.1.1 cmdk: specifier: ^1.1.1 - version: 1.1.1(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.1(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) dompurify: specifier: ^3.2.3 - version: 3.2.6 + version: 3.3.1 geolib: specifier: ^3.3.4 version: 3.3.4 @@ -162,7 +162,7 @@ importers: version: 4.7.8 i18next: specifier: ^25.8.4 - version: 25.8.7(typescript@5.9.2) + version: 25.8.13(typescript@5.9.3) lucide-react: specifier: ^0.414.0 version: 0.414.0(react@18.3.1) @@ -183,7 +183,7 @@ importers: version: 2.4.2 pure-react-carousel: specifier: ^1.32.0 - version: 1.32.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.35.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: specifier: ^17.0.2 || ^18.2.0 version: 18.3.1 @@ -201,19 +201,19 @@ importers: version: 5.0.0(react@18.3.1) react-i18next: specifier: ^15.5.2 - version: 15.7.1(i18next@25.8.7(typescript@5.9.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.2) + version: 15.7.4(i18next@25.8.13(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) react-international-phone: specifier: ^4.6.0 - version: 4.6.0(react@18.3.1) + version: 4.8.0(react@18.3.1) sonner: specifier: ^1.5.0 version: 1.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tailwind-merge: specifier: ^2.4.0 - version: 2.6.0 + version: 2.6.1 tsx: specifier: ^4.16.3 - version: 4.20.4 + version: 4.21.0 devDependencies: "@capsizecss/core": specifier: ^4.1.3 @@ -226,7 +226,7 @@ importers: version: 10.4.1 "@testing-library/react": specifier: ^16.3.0 - version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@types/fs-extra": specifier: ^11.0.4 version: 11.0.4 @@ -241,7 +241,7 @@ importers: version: 1.2.5 "@types/node": specifier: ^20.14.11 - version: 20.19.11 + version: 20.19.34 "@types/pixelmatch": specifier: ^5.2.6 version: 5.2.6 @@ -253,43 +253,43 @@ importers: version: 2.4.9 "@types/react": specifier: ^18.3.3 - version: 18.3.24 + version: 18.3.28 "@types/react-color": specifier: ^3.0.12 - version: 3.0.13(@types/react@18.3.24) + version: 3.0.13(@types/react@18.3.28) "@types/react-dom": specifier: ^18.3.0 - version: 18.3.7(@types/react@18.3.24) + version: 18.3.7(@types/react@18.3.28) "@types/semver": specifier: ^7.5.8 - version: 7.7.0 + version: 7.7.1 "@types/uuid": specifier: ^10.0.0 version: 10.0.0 "@vitejs/plugin-react": specifier: ^4.3.1 - version: 4.7.0(vite@5.4.19(@types/node@20.19.11)) + version: 4.7.0(vite@5.4.21(@types/node@20.19.34)) "@vitest/browser": specifier: ^3.2.4 - version: 3.2.4(playwright@1.55.1)(vite@5.4.19(@types/node@20.19.11))(vitest@3.2.4) + version: 3.2.4(playwright@1.55.1)(vite@5.4.21(@types/node@20.19.34))(vitest@3.2.4) autoprefixer: specifier: ^10.4.2 - version: 10.4.21(postcss@8.5.6) + version: 10.4.27(postcss@8.5.6) awesome-phonenumber: specifier: ^7.5.0 - version: 7.5.0 + version: 7.8.0 axe-core: specifier: ^4.10.3 - version: 4.10.3 + version: 4.11.1 execa: specifier: ^8.0.1 version: 8.0.1 fs-extra: specifier: ^11.2.0 - version: 11.3.1 + version: 11.3.3 generate-license-file: specifier: ^3.5.0 - version: 3.8.1(typescript@5.9.2) + version: 3.8.1(typescript@5.9.3) gray-matter: specifier: ^4.0.3 version: 4.0.3 @@ -298,7 +298,7 @@ importers: version: 9.1.7 i18next-cli: specifier: ^1.42.0 - version: 1.42.8(@swc/helpers@0.5.17)(@types/node@20.19.11)(i18next@25.8.7(typescript@5.9.2))(react-dom@18.3.1(react@18.3.1))(typescript@5.9.2) + version: 1.46.0(@swc/helpers@0.5.19)(@types/node@20.19.34)(i18next@25.8.13(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(typescript@5.9.3) jest-axe: specifier: ^10.0.0 version: 10.0.0 @@ -322,34 +322,34 @@ importers: version: 7.0.0 prettier: specifier: ^3.3.3 - version: 3.6.2 + version: 3.8.1 react-icons: specifier: ^5.2.1 version: 5.5.0(react@18.3.1) semver: specifier: ^7.6.3 - version: 7.7.2 + version: 7.7.4 tailwindcss: specifier: ^3.4.6 - version: 3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)) + version: 3.4.19(tsx@4.21.0)(yaml@2.8.2) tsup: specifier: 8.3.5 - version: 8.3.5(@microsoft/api-extractor@7.52.11(@types/node@20.19.11))(@swc/core@1.15.11(@swc/helpers@0.5.17))(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.4)(typescript@5.9.2)(yaml@2.8.2) + version: 8.3.5(@microsoft/api-extractor@7.57.6(@types/node@20.19.34))(@swc/core@1.15.11(@swc/helpers@0.5.19))(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) typescript: specifier: ^5.5.4 - version: 5.9.2 + version: 5.9.3 uuid: specifier: 11.0.3 version: 11.0.3 vite: specifier: ^5.3.5 - version: 5.4.19(@types/node@20.19.11) + version: 5.4.21(@types/node@20.19.34) vitepress: specifier: ^1.6.3 - version: 1.6.4(@algolia/client-search@5.35.0)(@types/node@20.19.11)(@types/react@18.3.24)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.2) + version: 1.6.4(@algolia/client-search@5.49.1)(@types/node@20.19.34)(@types/react@18.3.28)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.3) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.11)(@vitest/browser@3.2.4)(happy-dom@20.3.9)(jsdom@24.1.3) + version: 3.2.4(@types/node@20.19.34)(@vitest/browser@3.2.4)(happy-dom@20.7.0)(jsdom@24.1.3) starter: dependencies: @@ -361,49 +361,49 @@ importers: version: 2.2.0(react@18.3.1) "@mantine/core": specifier: ^7.10.1 - version: 7.17.8(@mantine/hooks@7.17.8(react@18.3.1))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 7.17.8(@mantine/hooks@7.17.8(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@mantine/hooks": specifier: ^7.10.1 version: 7.17.8(react@18.3.1) "@puckeditor/core": specifier: 0.21.1 - version: 0.21.1(@floating-ui/dom@1.7.4)(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)) + version: 0.21.1(@floating-ui/dom@1.7.5)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)) "@radix-ui/react-accordion": specifier: ^1.2.0 - version: 1.2.12(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.12(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-alert-dialog": specifier: ^1.0.5 - version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-dropdown-menu": specifier: ^2.1.15 - version: 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-progress": specifier: ^1.0.3 - version: 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-separator": specifier: ^1.1.7 - version: 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-slot": specifier: ^1.0.2 - version: 1.2.3(@types/react@18.3.24)(react@18.3.1) + version: 1.2.4(@types/react@18.3.28)(react@18.3.1) "@radix-ui/react-toast": specifier: ^1.1.5 - version: 1.2.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@radix-ui/react-tooltip": specifier: ^1.1.2 - version: 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@types/mapbox-gl": specifier: ^2.7.5 version: 2.7.21 "@types/node": specifier: ^20.12.3 - version: 20.19.11 + version: 20.19.34 "@yext/search-headless-react": specifier: ^2.5.3 - version: 2.6.0(encoding@0.1.13)(react@18.3.1) + version: 2.7.1(encoding@0.1.13)(react@18.3.1) "@yext/search-ui-react": specifier: ^2.1.0 - version: 2.1.0(@types/react@18.3.24)(@yext/search-headless-react@2.6.0(encoding@0.1.13)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)))(typescript@5.9.2) + version: 2.1.1(@types/react@18.3.28)(@yext/search-headless-react@2.7.1(encoding@0.1.13)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2))(typescript@5.9.3) "@yext/visual-editor": specifier: workspace:* version: link:../packages/visual-editor @@ -418,7 +418,7 @@ importers: version: 2.1.1 i18next: specifier: ^25.2.1 - version: 25.4.0(typescript@5.9.2) + version: 25.8.13(typescript@5.9.3) lucide-react: specifier: ^0.378.0 version: 0.378.0(react@18.3.1) @@ -436,7 +436,7 @@ importers: version: 18.3.1(react@18.3.1) react-i18next: specifier: ^15.5.2 - version: 15.7.1(i18next@25.4.0(typescript@5.9.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.2) + version: 15.7.4(i18next@25.8.13(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) react-icons: specifier: ^5.2.1 version: 5.5.0(react@18.3.1) @@ -445,53 +445,53 @@ importers: version: 1.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tailwind-merge: specifier: ^2.3.0 - version: 2.6.0 + version: 2.6.1 devDependencies: "@tailwindcss/typography": specifier: ^0.5.13 - version: 0.5.16(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2))) + version: 0.5.19(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)) "@types/react": specifier: ^18.2.77 - version: 18.3.24 + version: 18.3.28 "@types/react-dom": specifier: ^18.2.25 - version: 18.3.7(@types/react@18.3.24) + version: 18.3.7(@types/react@18.3.28) "@vitejs/plugin-react": specifier: ^4.2.1 - version: 4.7.0(vite@5.4.19(@types/node@20.19.11)) + version: 4.7.0(vite@5.4.21(@types/node@20.19.34)) "@yext/pages": specifier: 1.2.9 - version: 1.2.9(@algolia/client-search@5.35.0)(@types/node@20.19.11)(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.2)(vite@5.4.19(@types/node@20.19.11)) + version: 1.2.9(@algolia/client-search@5.49.1)(@types/node@20.19.34)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.3)(vite@5.4.21(@types/node@20.19.34)) "@yext/pages-components": specifier: ^2.0.0 - version: 2.0.0(lexical@0.38.2)(mapbox-gl@2.15.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.1(lexical@0.38.2)(mapbox-gl@2.15.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) autoprefixer: specifier: ^10.4.8 - version: 10.4.21(postcss@8.5.6) + version: 10.4.27(postcss@8.5.6) postcss: specifier: ^8.4.32 version: 8.5.6 prettier: specifier: ^3.3.2 - version: 3.6.2 + version: 3.8.1 prettier-plugin-tailwindcss: specifier: 0.4.1 - version: 0.4.1(prettier@3.6.2) + version: 0.4.1(prettier@3.8.1) tailwindcss: specifier: ^3.3.0 - version: 3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)) + version: 3.4.19(tsx@4.21.0)(yaml@2.8.2) typescript: specifier: ^5.3.3 - version: 5.9.2 + version: 5.9.3 vite: specifier: ^5.1.6 - version: 5.4.19(@types/node@20.19.11) + version: 5.4.21(@types/node@20.19.34) packages: - "@algolia/abtesting@1.1.0": + "@algolia/abtesting@1.15.1": resolution: { - integrity: sha512-sEyWjw28a/9iluA37KLGu8vjxEIlb60uxznfTUmXImy7H5NvbpSO6yYgmgH5KiD7j+zTUUihiST0jEP12IoXow==, + integrity: sha512-2yuIC48rUuHGhU1U5qJ9kJHaxYpJ0jpDHJVI5ekOxSMYXlH4+HP+pA31G820lsAznfmu2nzDV7n5RO44zIY1zw==, } engines: { node: ">= 14.0.0" } @@ -559,94 +559,94 @@ packages: "@algolia/client-search": ">= 4.9.1 < 6" algoliasearch: ">= 4.9.1 < 6" - "@algolia/client-abtesting@5.35.0": + "@algolia/client-abtesting@5.49.1": resolution: { - integrity: sha512-uUdHxbfHdoppDVflCHMxRlj49/IllPwwQ2cQ8DLC4LXr3kY96AHBpW0dMyi6ygkn2MtFCc6BxXCzr668ZRhLBQ==, + integrity: sha512-h6M7HzPin+45/l09q0r2dYmocSSt2MMGOOk5c4O5K/bBBlEwf1BKfN6z+iX4b8WXcQQhf7rgQwC52kBZJt/ZZw==, } engines: { node: ">= 14.0.0" } - "@algolia/client-analytics@5.35.0": + "@algolia/client-analytics@5.49.1": resolution: { - integrity: sha512-SunAgwa9CamLcRCPnPHx1V2uxdQwJGqb1crYrRWktWUdld0+B2KyakNEeVn5lln4VyeNtW17Ia7V7qBWyM/Skw==, + integrity: sha512-048T9/Z8OeLmTk8h76QUqaNFp7Rq2VgS2Zm6Y2tNMYGQ1uNuzePY/udB5l5krlXll7ZGflyCjFvRiOtlPZpE9g==, } engines: { node: ">= 14.0.0" } - "@algolia/client-common@5.35.0": + "@algolia/client-common@5.49.1": resolution: { - integrity: sha512-ipE0IuvHu/bg7TjT2s+187kz/E3h5ssfTtjpg1LbWMgxlgiaZIgTTbyynM7NfpSJSKsgQvCQxWjGUO51WSCu7w==, + integrity: sha512-vp5/a9ikqvf3mn9QvHN8PRekn8hW34aV9eX+O0J5mKPZXeA6Pd5OQEh2ZWf7gJY6yyfTlLp5LMFzQUAU+Fpqpg==, } engines: { node: ">= 14.0.0" } - "@algolia/client-insights@5.35.0": + "@algolia/client-insights@5.49.1": resolution: { - integrity: sha512-UNbCXcBpqtzUucxExwTSfAe8gknAJ485NfPN6o1ziHm6nnxx97piIbcBQ3edw823Tej2Wxu1C0xBY06KgeZ7gA==, + integrity: sha512-B6N7PgkvYrul3bntTz/l6uXnhQ2bvP+M7NqTcayh681tSqPaA5cJCUBp/vrP7vpPRpej4Eeyx2qz5p0tE/2N2g==, } engines: { node: ">= 14.0.0" } - "@algolia/client-personalization@5.35.0": + "@algolia/client-personalization@5.49.1": resolution: { - integrity: sha512-/KWjttZ6UCStt4QnWoDAJ12cKlQ+fkpMtyPmBgSS2WThJQdSV/4UWcqCUqGH7YLbwlj3JjNirCu3Y7uRTClxvA==, + integrity: sha512-v+4DN+lkYfBd01Hbnb9ZrCHe7l+mvihyx218INRX/kaCXROIWUDIT1cs3urQxfE7kXBFnLsqYeOflQALv/gA5w==, } engines: { node: ">= 14.0.0" } - "@algolia/client-query-suggestions@5.35.0": + "@algolia/client-query-suggestions@5.49.1": resolution: { - integrity: sha512-8oCuJCFf/71IYyvQQC+iu4kgViTODbXDk3m7yMctEncRSRV+u2RtDVlpGGfPlJQOrAY7OONwJlSHkmbbm2Kp/w==, + integrity: sha512-Un11cab6ZCv0W+Jiak8UktGIqoa4+gSNgEZNfG8m8eTsXGqwIEr370H3Rqwj87zeNSlFpH2BslMXJ/cLNS1qtg==, } engines: { node: ">= 14.0.0" } - "@algolia/client-search@5.35.0": + "@algolia/client-search@5.49.1": resolution: { - integrity: sha512-FfmdHTrXhIduWyyuko1YTcGLuicVbhUyRjO3HbXE4aP655yKZgdTIfMhZ/V5VY9bHuxv/fGEh3Od1Lvv2ODNTg==, + integrity: sha512-Nt9hri7nbOo0RipAsGjIssHkpLMHHN/P7QqENywAq5TLsoYDzUyJGny8FEiD/9KJUxtGH8blGpMedilI6kK3rA==, } engines: { node: ">= 14.0.0" } - "@algolia/ingestion@1.35.0": + "@algolia/ingestion@1.49.1": resolution: { - integrity: sha512-gPzACem9IL1Co8mM1LKMhzn1aSJmp+Vp434An4C0OBY4uEJRcqsLN3uLBlY+bYvFg8C8ImwM9YRiKczJXRk0XA==, + integrity: sha512-b5hUXwDqje0Y4CpU6VL481DXgPgxpTD5sYMnfQTHKgUispGnaCLCm2/T9WbJo1YNUbX3iHtYDArp804eD6CmRQ==, } engines: { node: ">= 14.0.0" } - "@algolia/monitoring@1.35.0": + "@algolia/monitoring@1.49.1": resolution: { - integrity: sha512-w9MGFLB6ashI8BGcQoVt7iLgDIJNCn4OIu0Q0giE3M2ItNrssvb8C0xuwJQyTy1OFZnemG0EB1OvXhIHOvQwWw==, + integrity: sha512-bvrXwZ0WsL3rN6Q4m4QqxsXFCo6WAew7sAdrpMQMK4Efn4/W920r9ptOuckejOSSvyLr9pAWgC5rsHhR2FYuYw==, } engines: { node: ">= 14.0.0" } - "@algolia/recommend@5.35.0": + "@algolia/recommend@5.49.1": resolution: { - integrity: sha512-AhrVgaaXAb8Ue0u2nuRWwugt0dL5UmRgS9LXe0Hhz493a8KFeZVUE56RGIV3hAa6tHzmAV7eIoqcWTQvxzlJeQ==, + integrity: sha512-h2yz3AGeGkQwNgbLmoe3bxYs8fac4An1CprKTypYyTU/k3Q+9FbIvJ8aS1DoBKaTjSRZVoyQS7SZQio6GaHbZw==, } engines: { node: ">= 14.0.0" } - "@algolia/requester-browser-xhr@5.35.0": + "@algolia/requester-browser-xhr@5.49.1": resolution: { - integrity: sha512-diY415KLJZ6x1Kbwl9u96Jsz0OstE3asjXtJ9pmk1d+5gPuQ5jQyEsgC+WmEXzlec3iuVszm8AzNYYaqw6B+Zw==, + integrity: sha512-2UPyRuUR/qpqSqH8mxFV5uBZWEpxhGPHLlx9Xf6OVxr79XO2ctzZQAhsmTZ6X22x+N8MBWpB9UEky7YU2HGFgA==, } engines: { node: ">= 14.0.0" } - "@algolia/requester-fetch@5.35.0": + "@algolia/requester-fetch@5.49.1": resolution: { - integrity: sha512-uydqnSmpAjrgo8bqhE9N1wgcB98psTRRQXcjc4izwMB7yRl9C8uuAQ/5YqRj04U0mMQ+fdu2fcNF6m9+Z1BzDQ==, + integrity: sha512-N+xlE4lN+wpuT+4vhNEwPVlrfN+DWAZmSX9SYhbz986Oq8AMsqdntOqUyiOXVxYsQtfLwmiej24vbvJGYv1Qtw==, } engines: { node: ">= 14.0.0" } - "@algolia/requester-node-http@5.35.0": + "@algolia/requester-node-http@5.49.1": resolution: { - integrity: sha512-RgLX78ojYOrThJHrIiPzT4HW3yfQa0D7K+MQ81rhxqaNyNBu4F1r+72LNHYH/Z+y9I1Mrjrd/c/Ue5zfDgAEjQ==, + integrity: sha512-zA5bkUOB5PPtTr182DJmajCiizHp0rCJQ0Chf96zNFvkdESKYlDeYA3tQ7r2oyHbu/8DiohAQ5PZ85edctzbXA==, } engines: { node: ">= 14.0.0" } @@ -657,51 +657,44 @@ packages: } engines: { node: ">=10" } - "@ampproject/remapping@2.3.0": - resolution: - { - integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, - } - engines: { node: ">=6.0.0" } - "@asamuzakjp/css-color@3.2.0": resolution: { integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==, } - "@babel/code-frame@7.27.1": + "@babel/code-frame@7.29.0": resolution: { - integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==, + integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==, } engines: { node: ">=6.9.0" } - "@babel/compat-data@7.28.0": + "@babel/compat-data@7.29.0": resolution: { - integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==, + integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==, } engines: { node: ">=6.9.0" } - "@babel/core@7.28.3": + "@babel/core@7.29.0": resolution: { - integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==, + integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==, } engines: { node: ">=6.9.0" } - "@babel/generator@7.28.3": + "@babel/generator@7.29.1": resolution: { - integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==, + integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==, } engines: { node: ">=6.9.0" } - "@babel/helper-compilation-targets@7.27.2": + "@babel/helper-compilation-targets@7.28.6": resolution: { - integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==, + integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==, } engines: { node: ">=6.9.0" } @@ -712,26 +705,26 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/helper-module-imports@7.27.1": + "@babel/helper-module-imports@7.28.6": resolution: { - integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==, + integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==, } engines: { node: ">=6.9.0" } - "@babel/helper-module-transforms@7.28.3": + "@babel/helper-module-transforms@7.28.6": resolution: { - integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==, + integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==, } engines: { node: ">=6.9.0" } peerDependencies: "@babel/core": ^7.0.0 - "@babel/helper-plugin-utils@7.27.1": + "@babel/helper-plugin-utils@7.28.6": resolution: { - integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==, + integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==, } engines: { node: ">=6.9.0" } @@ -742,10 +735,10 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/helper-validator-identifier@7.27.1": + "@babel/helper-validator-identifier@7.28.5": resolution: { - integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==, + integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==, } engines: { node: ">=6.9.0" } @@ -756,17 +749,17 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/helpers@7.28.3": + "@babel/helpers@7.28.6": resolution: { - integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==, + integrity: sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==, } engines: { node: ">=6.9.0" } - "@babel/parser@7.28.3": + "@babel/parser@7.29.0": resolution: { - integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==, + integrity: sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==, } engines: { node: ">=6.0.0" } hasBin: true @@ -789,17 +782,10 @@ packages: peerDependencies: "@babel/core": ^7.0.0-0 - "@babel/runtime-corejs3@7.28.3": + "@babel/runtime-corejs3@7.29.0": resolution: { - integrity: sha512-LKYxD2CIfocUFNREQ1yk+dW+8OH8CRqmgatBZYXb+XhuObO8wsDpEoCNri5bKld9cnj8xukqZjxSX8p1YiRF8Q==, - } - engines: { node: ">=6.9.0" } - - "@babel/runtime@7.28.3": - resolution: - { - integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==, + integrity: sha512-TgUkdp71C9pIbBcHudc+gXZnihEDOjUAmXO1VO4HHGES7QLZcShR0stfKIxLSNIYx2fqhmJChOjm/wkF8wv4gA==, } engines: { node: ">=6.9.0" } @@ -810,24 +796,24 @@ packages: } engines: { node: ">=6.9.0" } - "@babel/template@7.27.2": + "@babel/template@7.28.6": resolution: { - integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==, + integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==, } engines: { node: ">=6.9.0" } - "@babel/traverse@7.28.3": + "@babel/traverse@7.29.0": resolution: { - integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==, + integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==, } engines: { node: ">=6.9.0" } - "@babel/types@7.28.2": + "@babel/types@7.29.0": resolution: { - integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==, + integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==, } engines: { node: ">=6.9.0" } @@ -863,13 +849,6 @@ packages: integrity: sha512-UrWfjNQVlBxN+OVcFwHmkjARMW55MBN04E9KfGac8ac8z1QnFVuiOOFtMWXCk3UwsyRqhsNaFoYLZC+xxqsVjQ==, } - "@cspotcode/source-map-support@0.8.1": - resolution: - { - integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, - } - engines: { node: ">=12" } - "@csstools/color-helpers@5.1.0": resolution: { @@ -1040,10 +1019,10 @@ packages: cpu: [ppc64] os: [aix] - "@esbuild/aix-ppc64@0.25.9": + "@esbuild/aix-ppc64@0.27.3": resolution: { - integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==, + integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==, } engines: { node: ">=18" } cpu: [ppc64] @@ -1067,10 +1046,10 @@ packages: cpu: [arm64] os: [android] - "@esbuild/android-arm64@0.25.9": + "@esbuild/android-arm64@0.27.3": resolution: { - integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==, + integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==, } engines: { node: ">=18" } cpu: [arm64] @@ -1094,10 +1073,10 @@ packages: cpu: [arm] os: [android] - "@esbuild/android-arm@0.25.9": + "@esbuild/android-arm@0.27.3": resolution: { - integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==, + integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==, } engines: { node: ">=18" } cpu: [arm] @@ -1121,10 +1100,10 @@ packages: cpu: [x64] os: [android] - "@esbuild/android-x64@0.25.9": + "@esbuild/android-x64@0.27.3": resolution: { - integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==, + integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==, } engines: { node: ">=18" } cpu: [x64] @@ -1148,10 +1127,10 @@ packages: cpu: [arm64] os: [darwin] - "@esbuild/darwin-arm64@0.25.9": + "@esbuild/darwin-arm64@0.27.3": resolution: { - integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==, + integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==, } engines: { node: ">=18" } cpu: [arm64] @@ -1175,10 +1154,10 @@ packages: cpu: [x64] os: [darwin] - "@esbuild/darwin-x64@0.25.9": + "@esbuild/darwin-x64@0.27.3": resolution: { - integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==, + integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==, } engines: { node: ">=18" } cpu: [x64] @@ -1202,10 +1181,10 @@ packages: cpu: [arm64] os: [freebsd] - "@esbuild/freebsd-arm64@0.25.9": + "@esbuild/freebsd-arm64@0.27.3": resolution: { - integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==, + integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==, } engines: { node: ">=18" } cpu: [arm64] @@ -1229,10 +1208,10 @@ packages: cpu: [x64] os: [freebsd] - "@esbuild/freebsd-x64@0.25.9": + "@esbuild/freebsd-x64@0.27.3": resolution: { - integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==, + integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==, } engines: { node: ">=18" } cpu: [x64] @@ -1256,10 +1235,10 @@ packages: cpu: [arm64] os: [linux] - "@esbuild/linux-arm64@0.25.9": + "@esbuild/linux-arm64@0.27.3": resolution: { - integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==, + integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==, } engines: { node: ">=18" } cpu: [arm64] @@ -1283,10 +1262,10 @@ packages: cpu: [arm] os: [linux] - "@esbuild/linux-arm@0.25.9": + "@esbuild/linux-arm@0.27.3": resolution: { - integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==, + integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==, } engines: { node: ">=18" } cpu: [arm] @@ -1310,10 +1289,10 @@ packages: cpu: [ia32] os: [linux] - "@esbuild/linux-ia32@0.25.9": + "@esbuild/linux-ia32@0.27.3": resolution: { - integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==, + integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==, } engines: { node: ">=18" } cpu: [ia32] @@ -1337,10 +1316,10 @@ packages: cpu: [loong64] os: [linux] - "@esbuild/linux-loong64@0.25.9": + "@esbuild/linux-loong64@0.27.3": resolution: { - integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==, + integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==, } engines: { node: ">=18" } cpu: [loong64] @@ -1364,10 +1343,10 @@ packages: cpu: [mips64el] os: [linux] - "@esbuild/linux-mips64el@0.25.9": + "@esbuild/linux-mips64el@0.27.3": resolution: { - integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==, + integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==, } engines: { node: ">=18" } cpu: [mips64el] @@ -1391,10 +1370,10 @@ packages: cpu: [ppc64] os: [linux] - "@esbuild/linux-ppc64@0.25.9": + "@esbuild/linux-ppc64@0.27.3": resolution: { - integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==, + integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==, } engines: { node: ">=18" } cpu: [ppc64] @@ -1418,10 +1397,10 @@ packages: cpu: [riscv64] os: [linux] - "@esbuild/linux-riscv64@0.25.9": + "@esbuild/linux-riscv64@0.27.3": resolution: { - integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==, + integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==, } engines: { node: ">=18" } cpu: [riscv64] @@ -1445,10 +1424,10 @@ packages: cpu: [s390x] os: [linux] - "@esbuild/linux-s390x@0.25.9": + "@esbuild/linux-s390x@0.27.3": resolution: { - integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==, + integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==, } engines: { node: ">=18" } cpu: [s390x] @@ -1472,10 +1451,10 @@ packages: cpu: [x64] os: [linux] - "@esbuild/linux-x64@0.25.9": + "@esbuild/linux-x64@0.27.3": resolution: { - integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==, + integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==, } engines: { node: ">=18" } cpu: [x64] @@ -1490,10 +1469,10 @@ packages: cpu: [arm64] os: [netbsd] - "@esbuild/netbsd-arm64@0.25.9": + "@esbuild/netbsd-arm64@0.27.3": resolution: { - integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==, + integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==, } engines: { node: ">=18" } cpu: [arm64] @@ -1517,10 +1496,10 @@ packages: cpu: [x64] os: [netbsd] - "@esbuild/netbsd-x64@0.25.9": + "@esbuild/netbsd-x64@0.27.3": resolution: { - integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==, + integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==, } engines: { node: ">=18" } cpu: [x64] @@ -1535,10 +1514,10 @@ packages: cpu: [arm64] os: [openbsd] - "@esbuild/openbsd-arm64@0.25.9": + "@esbuild/openbsd-arm64@0.27.3": resolution: { - integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==, + integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==, } engines: { node: ">=18" } cpu: [arm64] @@ -1562,19 +1541,19 @@ packages: cpu: [x64] os: [openbsd] - "@esbuild/openbsd-x64@0.25.9": + "@esbuild/openbsd-x64@0.27.3": resolution: { - integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==, + integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==, } engines: { node: ">=18" } cpu: [x64] os: [openbsd] - "@esbuild/openharmony-arm64@0.25.9": + "@esbuild/openharmony-arm64@0.27.3": resolution: { - integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==, + integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==, } engines: { node: ">=18" } cpu: [arm64] @@ -1598,10 +1577,10 @@ packages: cpu: [x64] os: [sunos] - "@esbuild/sunos-x64@0.25.9": + "@esbuild/sunos-x64@0.27.3": resolution: { - integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==, + integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==, } engines: { node: ">=18" } cpu: [x64] @@ -1625,10 +1604,10 @@ packages: cpu: [arm64] os: [win32] - "@esbuild/win32-arm64@0.25.9": + "@esbuild/win32-arm64@0.27.3": resolution: { - integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==, + integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==, } engines: { node: ">=18" } cpu: [arm64] @@ -1652,10 +1631,10 @@ packages: cpu: [ia32] os: [win32] - "@esbuild/win32-ia32@0.25.9": + "@esbuild/win32-ia32@0.27.3": resolution: { - integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==, + integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==, } engines: { node: ">=18" } cpu: [ia32] @@ -1679,31 +1658,31 @@ packages: cpu: [x64] os: [win32] - "@esbuild/win32-x64@0.25.9": + "@esbuild/win32-x64@0.27.3": resolution: { - integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==, + integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==, } engines: { node: ">=18" } cpu: [x64] os: [win32] - "@floating-ui/core@1.7.3": + "@floating-ui/core@1.7.4": resolution: { - integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==, + integrity: sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==, } - "@floating-ui/dom@1.7.4": + "@floating-ui/dom@1.7.5": resolution: { - integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==, + integrity: sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==, } - "@floating-ui/react-dom@2.1.6": + "@floating-ui/react-dom@2.1.7": resolution: { - integrity: sha512-4JX6rEatQEvlmgU80wZyq9RT96HZJa88q8hp0pBd+LrczeDI4o6uA2M+uvxngVHo4Ihr8uibXxH6+70zhAFrVw==, + integrity: sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==, } peerDependencies: react: ">=16.8.0" @@ -1742,10 +1721,10 @@ packages: peerDependencies: react: ">= 16 || ^19.0.0-rc" - "@iconify-json/simple-icons@1.2.48": + "@iconify-json/simple-icons@1.2.71": resolution: { - integrity: sha512-EACOtZMoPJtERiAbX1De0asrrCtlwI27+03c9OJlYWsly9w1O5vcD8rTzh+kDPjo+K8FOVnq2Qy+h/CzljSKDA==, + integrity: sha512-rNoDFbq1fAYiEexBvrw613/xiUOPEu5MKVV/X8lI64AgdTzLQUUemr9f9fplxUMPoxCBP2rWzlhOEeTHk/Sf0Q==, } "@iconify/types@2.0.0": @@ -1769,10 +1748,10 @@ packages: } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } - "@inquirer/checkbox@5.0.4": + "@inquirer/checkbox@5.1.0": resolution: { - integrity: sha512-DrAMU3YBGMUAp6ArwTIp/25CNDtDbxk7UjIrrtM25JVVrlVYlVzHh5HR1BDFu9JMyUoZ4ZanzeaHqNDttf3gVg==, + integrity: sha512-/HjF1LN0a1h4/OFsbGKHNDtWICFU/dqXCdym719HFTyJo9IG7Otr+ziGWc9S0iQuohRZllh+WprSgd5UW5Fw0g==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1781,10 +1760,10 @@ packages: "@types/node": optional: true - "@inquirer/confirm@6.0.4": + "@inquirer/confirm@6.0.8": resolution: { - integrity: sha512-WdaPe7foUnoGYvXzH4jp4wH/3l+dBhZ3uwhKjXjwdrq5tEIFaANxj6zrGHxLdsIA0yKM0kFPVcEalOZXBB5ISA==, + integrity: sha512-Di6dgmiZ9xCSUxWUReWTqDtbhXCuG2MQm2xmgSAIruzQzBqNf49b8E07/vbCYY506kDe8BiwJbegXweG8M1klw==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1793,10 +1772,10 @@ packages: "@types/node": optional: true - "@inquirer/core@11.1.1": + "@inquirer/core@11.1.5": resolution: { - integrity: sha512-hV9o15UxX46OyQAtaoMqAOxGR8RVl1aZtDx1jHbCtSJy1tBdTfKxLPKf7utsE4cRy4tcmCQ4+vdV+ca+oNxqNA==, + integrity: sha512-QQPAX+lka8GyLcZ7u7Nb1h6q72iZ/oy0blilC3IB2nSt1Qqxp7akt94Jqhi/DzARuN3Eo9QwJRvtl4tmVe4T5A==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1805,10 +1784,10 @@ packages: "@types/node": optional: true - "@inquirer/editor@5.0.4": + "@inquirer/editor@5.0.8": resolution: { - integrity: sha512-QI3Jfqcv6UO2/VJaEFONH8Im1ll++Xn/AJTBn9Xf+qx2M+H8KZAdQ5sAe2vtYlo+mLW+d7JaMJB4qWtK4BG3pw==, + integrity: sha512-sLcpbb9B3XqUEGrj1N66KwhDhEckzZ4nI/W6SvLXyBX8Wic3LDLENlWRvkOGpCPoserabe+MxQkpiMoI8irvyA==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1817,10 +1796,10 @@ packages: "@types/node": optional: true - "@inquirer/expand@5.0.4": + "@inquirer/expand@5.0.8": resolution: { - integrity: sha512-0I/16YwPPP0Co7a5MsomlZLpch48NzYfToyqYAOWtBmaXSB80RiNQ1J+0xx2eG+Wfxt0nHtpEWSRr6CzNVnOGg==, + integrity: sha512-QieW3F1prNw3j+hxO7/NKkG1pk3oz7pOB6+5Upwu3OIwADfPX0oZVppsqlL+Vl/uBHHDSOBY0BirLctLnXwGGg==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1848,10 +1827,10 @@ packages: } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } - "@inquirer/input@5.0.4": + "@inquirer/input@5.0.8": resolution: { - integrity: sha512-4B3s3jvTREDFvXWit92Yc6jF1RJMDy2VpSqKtm4We2oVU65YOh2szY5/G14h4fHlyQdpUmazU5MPCFZPRJ0AOw==, + integrity: sha512-p0IJslw0AmedLEkOU+yrEX3Aj2RTpQq7ZOf8nc1DIhjzaxRWrrgeuE5Kyh39fVRgtcACaMXx/9WNo8+GjgBOfw==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1860,10 +1839,10 @@ packages: "@types/node": optional: true - "@inquirer/number@4.0.4": + "@inquirer/number@4.0.8": resolution: { - integrity: sha512-CmMp9LF5HwE+G/xWsC333TlCzYYbXMkcADkKzcawh49fg2a1ryLc7JL1NJYYt1lJ+8f4slikNjJM9TEL/AljYQ==, + integrity: sha512-uGLiQah9A0F9UIvJBX52m0CnqtLaym0WpT9V4YZrjZ+YRDKZdwwoEPz06N6w8ChE2lrnsdyhY9sL+Y690Kh9gQ==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1872,10 +1851,10 @@ packages: "@types/node": optional: true - "@inquirer/password@5.0.4": + "@inquirer/password@5.0.8": resolution: { - integrity: sha512-ZCEPyVYvHK4W4p2Gy6sTp9nqsdHQCfiPXIP9LbJVW4yCinnxL/dDDmPaEZVysGrj8vxVReRnpfS2fOeODe9zjg==, + integrity: sha512-zt1sF4lYLdvPqvmvHdmjOzuUUjuCQ897pdUCO8RbXMUDKXJTTyOQgtn23le+jwcb+MpHl3VAFvzIdxRAf6aPlA==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1884,10 +1863,10 @@ packages: "@types/node": optional: true - "@inquirer/prompts@8.2.0": + "@inquirer/prompts@8.3.0": resolution: { - integrity: sha512-rqTzOprAj55a27jctS3vhvDDJzYXsr33WXTjODgVOru21NvBo9yIgLIAf7SBdSV0WERVly3dR6TWyp7ZHkvKFA==, + integrity: sha512-JAj66kjdH/F1+B7LCigjARbwstt3SNUOSzMdjpsvwJmzunK88gJeXmcm95L9nw1KynvFVuY4SzXh/3Y0lvtgSg==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1896,10 +1875,10 @@ packages: "@types/node": optional: true - "@inquirer/rawlist@5.2.0": + "@inquirer/rawlist@5.2.4": resolution: { - integrity: sha512-CciqGoOUMrFo6HxvOtU5uL8fkjCmzyeB6fG7O1vdVAZVSopUBYECOwevDBlqNLyyYmzpm2Gsn/7nLrpruy9RFg==, + integrity: sha512-fTuJ5Cq9W286isLxwj6GGyfTjx1Zdk4qppVEPexFuA6yioCCXS4V1zfKroQqw7QdbDPN73xs2DiIAlo55+kBqg==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1908,10 +1887,10 @@ packages: "@types/node": optional: true - "@inquirer/search@4.1.0": + "@inquirer/search@4.1.4": resolution: { - integrity: sha512-EAzemfiP4IFvIuWnrHpgZs9lAhWDA0GM3l9F4t4mTQ22IFtzfrk8xbkMLcAN7gmVML9O/i+Hzu8yOUyAaL6BKA==, + integrity: sha512-9yPTxq7LPmYjrGn3DRuaPuPbmC6u3fiWcsE9ggfLcdgO/ICHYgxq7mEy1yJ39brVvgXhtOtvDVjDh9slJxE4LQ==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1920,10 +1899,10 @@ packages: "@types/node": optional: true - "@inquirer/select@5.0.4": + "@inquirer/select@5.1.0": resolution: { - integrity: sha512-s8KoGpPYMEQ6WXc0dT9blX2NtIulMdLOO3LA1UKOiv7KFWzlJ6eLkEYTDBIi+JkyKXyn8t/CD6TinxGjyLt57g==, + integrity: sha512-OyYbKnchS1u+zRe14LpYrN8S0wH1vD0p2yKISvSsJdH2TpI87fh4eZdWnpdbrGauCRWDph3NwxRmM4Pcm/hx1Q==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -1944,27 +1923,6 @@ packages: "@types/node": optional: true - "@isaacs/balanced-match@4.0.1": - resolution: - { - integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==, - } - engines: { node: 20 || >=22 } - - "@isaacs/brace-expansion@5.0.0": - resolution: - { - integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==, - } - engines: { node: 20 || >=22 } - - "@isaacs/brace-expansion@5.0.1": - resolution: - { - integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==, - } - engines: { node: 20 || >=22 } - "@isaacs/cliui@8.0.2": resolution: { @@ -1992,17 +1950,17 @@ packages: } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - "@jest/expect-utils@30.0.5": + "@jest/expect-utils@30.2.0": resolution: { - integrity: sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==, + integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==, } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - "@jest/get-type@30.0.1": + "@jest/get-type@30.1.0": resolution: { - integrity: sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==, + integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==, } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } @@ -2027,10 +1985,10 @@ packages: } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - "@jest/types@30.0.5": + "@jest/types@30.2.0": resolution: { - integrity: sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==, + integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==, } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } @@ -2040,6 +1998,12 @@ packages: integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==, } + "@jridgewell/remapping@2.3.5": + resolution: + { + integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==, + } + "@jridgewell/resolve-uri@3.1.2": resolution: { @@ -2053,16 +2017,10 @@ packages: integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==, } - "@jridgewell/trace-mapping@0.3.30": + "@jridgewell/trace-mapping@0.3.31": resolution: { - integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==, - } - - "@jridgewell/trace-mapping@0.3.9": - resolution: - { - integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, + integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==, } "@jsdevtools/ez-spawn@3.0.4": @@ -2141,36 +2099,36 @@ packages: } engines: { node: ">=6.0.0" } - "@microsoft/api-documenter@7.26.32": + "@microsoft/api-documenter@7.29.6": resolution: { - integrity: sha512-OnfyOuiOQMvIkzh7TK8RyPHDwtkZs7Dzu48XwzUyNHc3tyrLnlZcMNvh6XxUvPsTi/jOoe9alJezESnuGKIQYw==, + integrity: sha512-4b5pysJRSTQaLsiN0Ln3XamjumAFO5v8HH/NRqk1m5rMTN7juTDsykpfU0aVLudVA6jgyBuhk9SqF5cH4qSwkw==, } hasBin: true - "@microsoft/api-extractor-model@7.30.7": + "@microsoft/api-extractor-model@7.33.4": resolution: { - integrity: sha512-TBbmSI2/BHpfR9YhQA7nH0nqVmGgJ0xH0Ex4D99/qBDAUpnhA2oikGmdXanbw9AWWY/ExBYIpkmY8dBHdla3YQ==, + integrity: sha512-u1LTaNTikZAQ9uK6KG1Ms7nvNedsnODnspq/gH2dcyETWvH4hVNGNDvRAEutH66kAmxA4/necElqGNs1FggC8w==, } - "@microsoft/api-extractor@7.52.11": + "@microsoft/api-extractor@7.57.6": resolution: { - integrity: sha512-IKQ7bHg6f/Io3dQds6r9QPYk4q0OlR9A4nFDtNhUt3UUIhyitbxAqRN1CLjUVtk6IBk3xzyCMOdwwtIXQ7AlGg==, + integrity: sha512-0rFv/D8Grzw1Mjs2+8NGUR+o4h9LVm5zKRtMeWnpdB5IMJF4TeHCL1zR5LMCIudkOvyvjbhMG5Wjs0B5nqsrRQ==, } hasBin: true - "@microsoft/tsdoc-config@0.17.1": + "@microsoft/tsdoc-config@0.18.1": resolution: { - integrity: sha512-UtjIFe0C6oYgTnad4q1QP4qXwLhe6tIpNTRStJ2RZEPIkqQPREAwE5spzVxsdn9UaEMUqhh0AqSx3X4nWAKXWw==, + integrity: sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg==, } - "@microsoft/tsdoc@0.15.1": + "@microsoft/tsdoc@0.16.0": resolution: { - integrity: sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==, + integrity: sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==, } "@nodelib/fs.scandir@2.1.5": @@ -2266,10 +2224,10 @@ packages: } engines: { node: ^18.17.0 || >=20.5.0 } - "@npmcli/promise-spawn@8.0.2": + "@npmcli/promise-spawn@8.0.3": resolution: { - integrity: sha512-/bNJhjc+o6qL+Dwz/bqfTQClkEO5nTQ1ZEcdCkAQjhkZMHIh22LPG7fNh1enJP1NKWDqYiiABnjFCY7E0zHYtQ==, + integrity: sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==, } engines: { node: ^18.17.0 || >=20.5.0 } @@ -2477,10 +2435,10 @@ packages: } engines: { node: ">=12.22.0" } - "@pnpm/npm-conf@2.3.1": + "@pnpm/npm-conf@3.0.2": resolution: { - integrity: sha512-c83qWb22rNRuB0UaVCI0uRPNRr8Z0FWnEIvT47jiHAmOIUHbBOg5XvV7pM5x+rKn9HRpjxquDbXYSXr3fAKFcw==, + integrity: sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==, } engines: { node: ">=12" } @@ -2496,10 +2454,10 @@ packages: integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==, } - "@preact/signals-core@1.12.0": + "@preact/signals-core@1.13.0": resolution: { - integrity: sha512-etWpENXm469RHMWIZGblgWrapbIGcRcbccEGGaLkFez3PjlI3XkBrUtSiNFsIfV/DN16PxMOxbWAZUIaLFyJDg==, + integrity: sha512-slT6XeTCAbdql61GVLlGU4x7XHI7kCZV5Um5uhE4zLX4ApgiiXc0UYFvVOKq06xcovzp7p+61l68oPi563ARKg==, } "@puckeditor/core@0.21.1": @@ -2620,6 +2578,18 @@ packages: "@types/react": optional: true + "@radix-ui/react-context@1.1.3": + resolution: + { + integrity: sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==, + } + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@radix-ui/react-dialog@1.1.15": resolution: { @@ -2720,10 +2690,10 @@ packages: "@types/react": optional: true - "@radix-ui/react-label@2.1.7": + "@radix-ui/react-label@2.1.8": resolution: { - integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==, + integrity: sha512-FmXs37I6hSBVDlO4y764TNz1rLgKwjJMQ0EGte6F3Cb3f4bIuHB/iLa/8I9VKkmOy+gNHq8rql3j686ACVV21A==, } peerDependencies: "@types/react": "*" @@ -2832,10 +2802,26 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-progress@1.1.7": + "@radix-ui/react-primitive@2.1.4": resolution: { - integrity: sha512-vPdg/tF6YC/ynuBIJlk1mm7Le0VgW6ub6J2UWnTQ7/D23KXcPI1qy+0vBkgKgd38RCMJavBXpB83HPNFMTb0Fg==, + integrity: sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==, + } + peerDependencies: + "@types/react": "*" + "@types/react-dom": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@types/react-dom": + optional: true + + "@radix-ui/react-progress@1.1.8": + resolution: + { + integrity: sha512-+gISHcSPUJ7ktBy9RnTqbdKW78bcGke3t6taawyZ71pio1JewwGSJizycs7rLhGTvMJYCQB1DBK4KQsxs7U8dA==, } peerDependencies: "@types/react": "*" @@ -2880,10 +2866,10 @@ packages: "@types/react-dom": optional: true - "@radix-ui/react-separator@1.1.7": + "@radix-ui/react-separator@1.1.8": resolution: { - integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==, + integrity: sha512-sDvqVY4itsKwwSMEe0jtKgfTh+72Sy3gPmQpjqcQneqQ4PFmr/1I0YA+2/puilhggCe2gJcx5EBAYFkWkdpa5g==, } peerDependencies: "@types/react": "*" @@ -2908,6 +2894,18 @@ packages: "@types/react": optional: true + "@radix-ui/react-slot@1.2.4": + resolution: + { + integrity: sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==, + } + peerDependencies: + "@types/react": "*" + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + "@types/react": + optional: true + "@radix-ui/react-switch@1.2.6": resolution: { @@ -3154,10 +3152,10 @@ packages: rollup: optional: true - "@rollup/pluginutils@5.2.0": + "@rollup/pluginutils@5.3.0": resolution: { - integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==, + integrity: sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==, } engines: { node: ">=14.0.0" } peerDependencies: @@ -3166,170 +3164,210 @@ packages: rollup: optional: true - "@rollup/rollup-android-arm-eabi@4.47.1": + "@rollup/rollup-android-arm-eabi@4.59.0": resolution: { - integrity: sha512-lTahKRJip0knffA/GTNFJMrToD+CM+JJ+Qt5kjzBK/sFQ0EWqfKW3AYQSlZXN98tX0lx66083U9JYIMioMMK7g==, + integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==, } cpu: [arm] os: [android] - "@rollup/rollup-android-arm64@4.47.1": + "@rollup/rollup-android-arm64@4.59.0": resolution: { - integrity: sha512-uqxkb3RJLzlBbh/bbNQ4r7YpSZnjgMgyoEOY7Fy6GCbelkDSAzeiogxMG9TfLsBbqmGsdDObo3mzGqa8hps4MA==, + integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==, } cpu: [arm64] os: [android] - "@rollup/rollup-darwin-arm64@4.47.1": + "@rollup/rollup-darwin-arm64@4.59.0": resolution: { - integrity: sha512-tV6reObmxBDS4DDyLzTDIpymthNlxrLBGAoQx6m2a7eifSNEZdkXQl1PE4ZjCkEDPVgNXSzND/k9AQ3mC4IOEQ==, + integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==, } cpu: [arm64] os: [darwin] - "@rollup/rollup-darwin-x64@4.47.1": + "@rollup/rollup-darwin-x64@4.59.0": resolution: { - integrity: sha512-XuJRPTnMk1lwsSnS3vYyVMu4x/+WIw1MMSiqj5C4j3QOWsMzbJEK90zG+SWV1h0B1ABGCQ0UZUjti+TQK35uHQ==, + integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==, } cpu: [x64] os: [darwin] - "@rollup/rollup-freebsd-arm64@4.47.1": + "@rollup/rollup-freebsd-arm64@4.59.0": resolution: { - integrity: sha512-79BAm8Ag/tmJ5asCqgOXsb3WY28Rdd5Lxj8ONiQzWzy9LvWORd5qVuOnjlqiWWZJw+dWewEktZb5yiM1DLLaHw==, + integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==, } cpu: [arm64] os: [freebsd] - "@rollup/rollup-freebsd-x64@4.47.1": + "@rollup/rollup-freebsd-x64@4.59.0": resolution: { - integrity: sha512-OQ2/ZDGzdOOlyfqBiip0ZX/jVFekzYrGtUsqAfLDbWy0jh1PUU18+jYp8UMpqhly5ltEqotc2miLngf9FPSWIA==, + integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==, } cpu: [x64] os: [freebsd] - "@rollup/rollup-linux-arm-gnueabihf@4.47.1": + "@rollup/rollup-linux-arm-gnueabihf@4.59.0": resolution: { - integrity: sha512-HZZBXJL1udxlCVvoVadstgiU26seKkHbbAMLg7680gAcMnRNP9SAwTMVet02ANA94kXEI2VhBnXs4e5nf7KG2A==, + integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==, } cpu: [arm] os: [linux] - "@rollup/rollup-linux-arm-musleabihf@4.47.1": + "@rollup/rollup-linux-arm-musleabihf@4.59.0": resolution: { - integrity: sha512-sZ5p2I9UA7T950JmuZ3pgdKA6+RTBr+0FpK427ExW0t7n+QwYOcmDTK/aRlzoBrWyTpJNlS3kacgSlSTUg6P/Q==, + integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==, } cpu: [arm] os: [linux] - "@rollup/rollup-linux-arm64-gnu@4.47.1": + "@rollup/rollup-linux-arm64-gnu@4.59.0": resolution: { - integrity: sha512-3hBFoqPyU89Dyf1mQRXCdpc6qC6At3LV6jbbIOZd72jcx7xNk3aAp+EjzAtN6sDlmHFzsDJN5yeUySvorWeRXA==, + integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==, } cpu: [arm64] os: [linux] - "@rollup/rollup-linux-arm64-musl@4.47.1": + "@rollup/rollup-linux-arm64-musl@4.59.0": resolution: { - integrity: sha512-49J4FnMHfGodJWPw73Ve+/hsPjZgcXQGkmqBGZFvltzBKRS+cvMiWNLadOMXKGnYRhs1ToTGM0sItKISoSGUNA==, + integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==, } cpu: [arm64] os: [linux] - "@rollup/rollup-linux-loongarch64-gnu@4.47.1": + "@rollup/rollup-linux-loong64-gnu@4.59.0": + resolution: + { + integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==, + } + cpu: [loong64] + os: [linux] + + "@rollup/rollup-linux-loong64-musl@4.59.0": resolution: { - integrity: sha512-4yYU8p7AneEpQkRX03pbpLmE21z5JNys16F1BZBZg5fP9rIlb0TkeQjn5du5w4agConCCEoYIG57sNxjryHEGg==, + integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==, } cpu: [loong64] os: [linux] - "@rollup/rollup-linux-ppc64-gnu@4.47.1": + "@rollup/rollup-linux-ppc64-gnu@4.59.0": resolution: { - integrity: sha512-fAiq+J28l2YMWgC39jz/zPi2jqc0y3GSRo1yyxlBHt6UN0yYgnegHSRPa3pnHS5amT/efXQrm0ug5+aNEu9UuQ==, + integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==, } cpu: [ppc64] os: [linux] - "@rollup/rollup-linux-riscv64-gnu@4.47.1": + "@rollup/rollup-linux-ppc64-musl@4.59.0": resolution: { - integrity: sha512-daoT0PMENNdjVYYU9xec30Y2prb1AbEIbb64sqkcQcSaR0zYuKkoPuhIztfxuqN82KYCKKrj+tQe4Gi7OSm1ow==, + integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==, + } + cpu: [ppc64] + os: [linux] + + "@rollup/rollup-linux-riscv64-gnu@4.59.0": + resolution: + { + integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==, } cpu: [riscv64] os: [linux] - "@rollup/rollup-linux-riscv64-musl@4.47.1": + "@rollup/rollup-linux-riscv64-musl@4.59.0": resolution: { - integrity: sha512-JNyXaAhWtdzfXu5pUcHAuNwGQKevR+6z/poYQKVW+pLaYOj9G1meYc57/1Xv2u4uTxfu9qEWmNTjv/H/EpAisw==, + integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==, } cpu: [riscv64] os: [linux] - "@rollup/rollup-linux-s390x-gnu@4.47.1": + "@rollup/rollup-linux-s390x-gnu@4.59.0": resolution: { - integrity: sha512-U/CHbqKSwEQyZXjCpY43/GLYcTVKEXeRHw0rMBJP7fP3x6WpYG4LTJWR3ic6TeYKX6ZK7mrhltP4ppolyVhLVQ==, + integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==, } cpu: [s390x] os: [linux] - "@rollup/rollup-linux-x64-gnu@4.47.1": + "@rollup/rollup-linux-x64-gnu@4.59.0": resolution: { - integrity: sha512-uTLEakjxOTElfeZIGWkC34u2auLHB1AYS6wBjPGI00bWdxdLcCzK5awjs25YXpqB9lS8S0vbO0t9ZcBeNibA7g==, + integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==, } cpu: [x64] os: [linux] - "@rollup/rollup-linux-x64-musl@4.47.1": + "@rollup/rollup-linux-x64-musl@4.59.0": resolution: { - integrity: sha512-Ft+d/9DXs30BK7CHCTX11FtQGHUdpNDLJW0HHLign4lgMgBcPFN3NkdIXhC5r9iwsMwYreBBc4Rho5ieOmKNVQ==, + integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==, } cpu: [x64] os: [linux] - "@rollup/rollup-win32-arm64-msvc@4.47.1": + "@rollup/rollup-openbsd-x64@4.59.0": resolution: { - integrity: sha512-N9X5WqGYzZnjGAFsKSfYFtAShYjwOmFJoWbLg3dYixZOZqU7hdMq+/xyS14zKLhFhZDhP9VfkzQnsdk0ZDS9IA==, + integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==, + } + cpu: [x64] + os: [openbsd] + + "@rollup/rollup-openharmony-arm64@4.59.0": + resolution: + { + integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==, + } + cpu: [arm64] + os: [openharmony] + + "@rollup/rollup-win32-arm64-msvc@4.59.0": + resolution: + { + integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==, } cpu: [arm64] os: [win32] - "@rollup/rollup-win32-ia32-msvc@4.47.1": + "@rollup/rollup-win32-ia32-msvc@4.59.0": resolution: { - integrity: sha512-O+KcfeCORZADEY8oQJk4HK8wtEOCRE4MdOkb8qGZQNun3jzmj2nmhV/B/ZaaZOkPmJyvm/gW9n0gsB4eRa1eiQ==, + integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==, } cpu: [ia32] os: [win32] - "@rollup/rollup-win32-x64-msvc@4.47.1": + "@rollup/rollup-win32-x64-gnu@4.59.0": resolution: { - integrity: sha512-CpKnYa8eHthJa3c+C38v/E+/KZyF1Jdh2Cz3DyKZqEWYgrM1IHFArXNWvBLPQCKUEsAqqKX27tTqVEFbDNUcOA==, + integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==, } cpu: [x64] os: [win32] - "@rushstack/node-core-library@5.14.0": + "@rollup/rollup-win32-x64-msvc@4.59.0": resolution: { - integrity: sha512-eRong84/rwQUlATGFW3TMTYVyqL1vfW9Lf10PH+mVGfIb9HzU3h5AASNIw+axnBLjnD0n3rT5uQBwu9fvzATrg==, + integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==, + } + cpu: [x64] + os: [win32] + + "@rushstack/node-core-library@5.20.3": + resolution: + { + integrity: sha512-95JgEPq2k7tHxhF9/OJnnyHDXfC9cLhhta0An/6MlkDsX2A6dTzDrTUG18vx4vjc280V0fi0xDH9iQczpSuWsw==, } peerDependencies: "@types/node": "*" @@ -3337,16 +3375,27 @@ packages: "@types/node": optional: true - "@rushstack/rig-package@0.5.3": + "@rushstack/problem-matcher@0.2.1": resolution: { - integrity: sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==, + integrity: sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog==, } + peerDependencies: + "@types/node": "*" + peerDependenciesMeta: + "@types/node": + optional: true - "@rushstack/terminal@0.15.4": + "@rushstack/rig-package@0.7.2": resolution: { - integrity: sha512-OQSThV0itlwVNHV6thoXiAYZlQh4Fgvie2CzxFABsbO2MWQsI4zOh3LRNigYSTrmS+ba2j0B3EObakPzf/x6Zg==, + integrity: sha512-9XbFWuqMYcHUso4mnETfhGVUSaADBRj6HUAAEYk50nMPn8WRICmBuCphycQGNB3duIR6EEZX3Xj3SYc2XiP+9A==, + } + + "@rushstack/terminal@0.22.3": + resolution: + { + integrity: sha512-gHC9pIMrUPzAbBiI4VZMU7Q+rsCzb8hJl36lFIulIzoceKotyKL3Rd76AZ2CryCTKEg+0bnTj406HE5YY5OQvw==, } peerDependencies: "@types/node": "*" @@ -3354,10 +3403,10 @@ packages: "@types/node": optional: true - "@rushstack/ts-command-line@5.0.2": + "@rushstack/ts-command-line@5.3.3": resolution: { - integrity: sha512-+AkJDbu1GFMPIU8Sb7TLVXDv/Q7Mkvx+wAjEl8XiXVVq+p1FmWW6M3LYpJMmoHNckSofeMecgWg5lfMwNAAsEQ==, + integrity: sha512-c+ltdcvC7ym+10lhwR/vWiOhsrm/bP3By2VsFcs5qTKv+6tTmxgbVrtJ5NdNjANiV5TcmOZgUN+5KYQ4llsvEw==, } "@sec-ant/readable-stream@0.4.1": @@ -3498,16 +3547,16 @@ packages: } engines: { node: ^18.17.0 || >=20.5.0 } - "@sinclair/typebox@0.27.8": + "@sinclair/typebox@0.27.10": resolution: { - integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, + integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==, } - "@sinclair/typebox@0.34.40": + "@sinclair/typebox@0.34.48": resolution: { - integrity: sha512-gwBNIP8ZAYev/ORDWW0QvxdwPXwxBtLsdsJgSc7eDIRt8ubP+rxUBzPsrwnu16fgEF8Bx4lh/+mvQvJzcTM6Kw==, + integrity: sha512-kKJTNuK3AQOrgjjotVxMrCn1sUJwM76wMszfq1kdU4uYVJjvEWuFQ6HgvLt4Xz3fSmZlTOxJ/Ie13KnIcWQXFA==, } "@sindresorhus/merge-streams@4.0.0": @@ -3625,10 +3674,10 @@ packages: integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==, } - "@swc/helpers@0.5.17": + "@swc/helpers@0.5.19": resolution: { - integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==, + integrity: sha512-QamiFeIK3txNjgUTNppE6MiG3p7TdninpZu0E0PbqVh1a9FNLT2FRhisaa4NcaX52XVhA5l7Pk58Ft7Sqi/2sA==, } "@swc/types@0.1.25": @@ -3637,10 +3686,10 @@ packages: integrity: sha512-iAoY/qRhNH8a/hBvm3zKj9qQ4oc2+3w1unPJa2XvTK3XjeLXtzcCingVPw/9e5mn1+0yPqxcBGp9Jf0pkfMb1g==, } - "@tailwindcss/forms@0.5.10": + "@tailwindcss/forms@0.5.11": resolution: { - integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==, + integrity: sha512-h9wegbZDPurxG22xZSoWtdzc41/OlNEUQERNqI/0fOwa2aVlWGu7C35E/x6LDyD3lgtztFSSjKZyuVM0hxhbgA==, } peerDependencies: tailwindcss: ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" @@ -3653,41 +3702,41 @@ packages: peerDependencies: tailwindcss: ">=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1" - "@tailwindcss/typography@0.5.16": + "@tailwindcss/typography@0.5.19": resolution: { - integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==, + integrity: sha512-w31dd8HOx3k9vPtcQh5QHP9GwKcgbMp87j58qi6xgiBnFFtKEAgCWnDw4qUT8aHwkCp8bKvb/KGKWWHedP0AAg==, } peerDependencies: tailwindcss: ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" - "@tanstack/query-core@5.85.5": + "@tanstack/query-core@5.90.20": resolution: { - integrity: sha512-KO0WTob4JEApv69iYp1eGvfMSUkgw//IpMnq+//cORBzXf0smyRwPLrUvEe5qtAEGjwZTXrjxg+oJNP/C00t6w==, + integrity: sha512-OMD2HLpNouXEfZJWcKeVKUgQ5n+n3A2JFmBaScpNDUqSrQSjiveC7dKMe53uJUg1nDG16ttFPz2xfilz6i2uVg==, } - "@tanstack/react-query@5.85.5": + "@tanstack/react-query@5.90.21": resolution: { - integrity: sha512-/X4EFNcnPiSs8wM2v+b6DqS5mmGeuJQvxBglmDxl6ZQb5V26ouD2SJYAcC3VjbNwqhY2zjxVD15rDA5nGbMn3A==, + integrity: sha512-0Lu6y5t+tvlTJMTO7oh5NSpJfpg/5D41LlThfepTixPYkJ0sE2Jj0m0f6yYqujBwIXlId87e234+MxG3D3g7kg==, } peerDependencies: react: ^18 || ^19 - "@tanstack/react-virtual@3.13.12": + "@tanstack/react-virtual@3.13.19": resolution: { - integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==, + integrity: sha512-KzwmU1IbE0IvCZSm6OXkS+kRdrgW2c2P3Ho3NC+zZXWK6oObv/L+lcV/2VuJ+snVESRlMJ+w/fg4WXI/JzoNGQ==, } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - "@tanstack/virtual-core@3.13.12": + "@tanstack/virtual-core@3.13.19": resolution: { - integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==, + integrity: sha512-/BMP7kNhzKOd7wnDeB8NrIRNLwkf5AhCYCvtfZV2GXWbBieFm/el0n6LOAXlTi6ZwHICSNnQcIxRCWHrLzDY+g==, } "@testing-library/dom@10.4.1": @@ -3697,10 +3746,10 @@ packages: } engines: { node: ">=18" } - "@testing-library/react@16.3.0": + "@testing-library/react@16.3.2": resolution: { - integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==, + integrity: sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==, } engines: { node: ">=18" } peerDependencies: @@ -3724,189 +3773,189 @@ packages: peerDependencies: "@testing-library/dom": ">=7.21.4" - "@tiptap/core@3.17.1": + "@tiptap/core@3.20.0": resolution: { - integrity: sha512-f8hB9MzXqsuXoF9qXEDEH5Fb3VgwhEFMBMfk9EKN88l5adri6oM8mt2XOWVxVVssjpEW0177zXSLPKWzoS/vrw==, + integrity: sha512-aC9aROgia/SpJqhsXFiX9TsligL8d+oeoI8W3u00WI45s0VfsqjgeKQLDLF7Tu7hC+7F02teC84SAHuup003VQ==, } peerDependencies: - "@tiptap/pm": ^3.17.1 + "@tiptap/pm": ^3.20.0 - "@tiptap/extension-blockquote@3.17.1": + "@tiptap/extension-blockquote@3.20.0": resolution: { - integrity: sha512-X4jU/fllJQ8QbjCHUafU4QIHBobyXP3yGBoOcXxUaKlWbLvUs0SQTREM3n6/86m2YyAxwTPG1cn3Xypf42DMAQ==, + integrity: sha512-LQzn6aGtL4WXz2+rYshl/7/VnP2qJTpD7fWL96GXAzhqviPEY1bJES7poqJb3MU/gzl8VJUVzVzU1VoVfUKlbA==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/extension-bold@3.17.1": + "@tiptap/extension-bold@3.20.0": resolution: { - integrity: sha512-PZmrljcVBziJkQDXT/QJv4ESxVVQ0iRH+ruTzPda56Kk4h2310cSXGjI33W7rlCikGPoBAAjY/inujm46YB4bw==, + integrity: sha512-sQklEWiyf58yDjiHtm5vmkVjfIc/cBuSusmCsQ0q9vGYnEF1iOHKhGpvnCeEXNeqF3fiJQRlquzt/6ymle3Iwg==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/extension-bubble-menu@3.17.1": + "@tiptap/extension-bubble-menu@3.20.0": resolution: { - integrity: sha512-z3E8biLiWlzZJwNHnB6j/ZyBdFrJmpl1lqKHc72JqahUHZvidZHdCOYssvR3fc6IaI7MXV13XY1DXUdFbatnaw==, + integrity: sha512-MDosUfs8Tj+nwg8RC+wTMWGkLJORXmbR6YZgbiX4hrc7G90Gopdd6kj6ht5/T8t7dLLaX7N0+DEHdUEPGED7dw==, } peerDependencies: - "@tiptap/core": ^3.17.1 - "@tiptap/pm": ^3.17.1 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 - "@tiptap/extension-code-block@3.17.1": + "@tiptap/extension-code-block@3.20.0": resolution: { - integrity: sha512-h4i+Y/cN7nMi0Tmlp6V1w4dI7NTqrUFSr1W/vMqnq4vn+c6jvm35KubKU5ry/1qQp8KfndDA02BtVQiMx6DmpA==, + integrity: sha512-lBbmNek14aCjrHcBcq3PRqWfNLvC6bcRa2Osc6e/LtmXlcpype4f6n+Yx+WZ+f2uUh0UmDRCz7BEyUETEsDmlQ==, } peerDependencies: - "@tiptap/core": ^3.17.1 - "@tiptap/pm": ^3.17.1 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 - "@tiptap/extension-code@3.17.1": + "@tiptap/extension-code@3.20.0": resolution: { - integrity: sha512-4W0x1ZZqSnIVzQV0/b5VR0bktef2HykH5I/Czzir9yqoZ5zV2cLrMVuLvdFNgRIckU60tQLmHrfKWLF50OY0ew==, + integrity: sha512-TYDWFeSQ9umiyrqsT6VecbuhL8XIHkUhO+gEk0sVvH67ZLwjFDhAIIgWIr1/dbIGPcvMZM19E7xUUhAdIaXaOQ==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/extension-document@3.17.1": + "@tiptap/extension-document@3.20.0": resolution: { - integrity: sha512-F7Q5HoAU383HWFa6AXZQ5N6t6lTJzVjYM8z93XrtH/2GzDFwy1UmDSrsXqvgznedBLAOgCNVTNh9PjXpLoOUbg==, + integrity: sha512-oJfLIG3vAtZo/wg29WiBcyWt22KUgddpP8wqtCE+kY5Dw8znLR9ehNmVWlSWJA5OJUMO0ntAHx4bBT+I2MBd5w==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/extension-floating-menu@3.17.1": + "@tiptap/extension-floating-menu@3.20.0": resolution: { - integrity: sha512-zYkoYsxp+cZ8tBDODm4E8hnSaMTdDWKJuCQWY2Ep14oMPkAkSJr8sCLL1tOnNSAnhGwLJQtRLkZ41nvUEP6xKA==, + integrity: sha512-rYs4Bv5pVjqZ/2vvR6oe7ammZapkAwN51As/WDbemvYDjfOGRqK58qGauUjYZiDzPOEIzI2mxGwsZ4eJhPW4Ig==, } peerDependencies: "@floating-ui/dom": ^1.0.0 - "@tiptap/core": ^3.17.1 - "@tiptap/pm": ^3.17.1 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 - "@tiptap/extension-hard-break@3.17.1": + "@tiptap/extension-hard-break@3.20.0": resolution: { - integrity: sha512-28FZPUho1Q2AB3ka5SVEVib5f9dMKbE1kewLZeRIOQ5FuFNholGIPL5X1tKcwGW7G3A7Y0fGxeNmIZJ3hrqhzA==, + integrity: sha512-rqvhMOw4f+XQmEthncbvDjgLH6fz8L9splnKZC7OeS0eX8b0qd7+xI1u5kyxF3KA2Z0BnigES++jjWuecqV6mA==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/extension-heading@3.17.1": + "@tiptap/extension-heading@3.20.0": resolution: { - integrity: sha512-rT+Su/YnHdlikg8f78t6RXlc1sVSfp7B0fdJdtFgS2e6BBYJQoDMp5L9nt54RR9Yy953aDW2sko7NArUCb8log==, + integrity: sha512-JgJhurnCe3eN6a0lEsNQM/46R1bcwzwWWZEFDSb1P9dR8+t1/5v7cMZWsSInpD7R4/74iJn0+M5hcXLwCmBmYA==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/extension-horizontal-rule@3.17.1": + "@tiptap/extension-horizontal-rule@3.20.0": resolution: { - integrity: sha512-CHG6LBtxV+3qj5EcCRVlpvSW5udKD6KbnXIGhP+Tvy+OabLGzO4HNxz3+duDE0pMR4eKX1libsnqffj0vq7mnQ==, + integrity: sha512-6uvcutFMv+9wPZgptDkbRDjAm3YVxlibmkhWD5GuaWwS9L/yUtobpI3GycujRSUZ8D3q6Q9J7LqpmQtQRTalWA==, } peerDependencies: - "@tiptap/core": ^3.17.1 - "@tiptap/pm": ^3.17.1 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 - "@tiptap/extension-italic@3.17.1": + "@tiptap/extension-italic@3.20.0": resolution: { - integrity: sha512-unfRLmvf680Y0UkBToUcrDkSEKO/wAjd3nQ7CNPMfAc8m+ZMReXkcgLpeVvnDEiHNsJ0PlYSW7a45tnQD9HQdg==, + integrity: sha512-/DhnKQF8yN8RxtuL8abZ28wd5281EaGoE2Oha35zXSOF1vNYnbyt8Ymkv/7u1BcWEWTvRPgaju0YCGXisPRLYw==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/extension-link@3.17.1": + "@tiptap/extension-link@3.20.0": resolution: { - integrity: sha512-5kdN7vms5hMXtjiophUkgvzy8dNGvGSmol1Sawh30TEPrgXc93Ayj7YyGZlbimInKZcD8q+Od/FFc+wkrof3nA==, + integrity: sha512-qI/5A+R0ZWBxo/8HxSn1uOyr7odr3xHBZ/gzOR1GUJaZqjlJxkWFX0RtXMbLKEGEvT25o345cF7b0wFznEh8qA==, } peerDependencies: - "@tiptap/core": ^3.17.1 - "@tiptap/pm": ^3.17.1 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 - "@tiptap/extension-list@3.17.1": + "@tiptap/extension-list@3.20.0": resolution: { - integrity: sha512-LHKIxmXe5Me+vJZKhiwMBGHlApaBIAduNMRUpm5mkY7ER/m96zKR0VqrJd4LjVVH2iDvck5h1Ka4396MHWlKNg==, + integrity: sha512-+V0/gsVWAv+7vcY0MAe6D52LYTIicMSHw00wz3ISZgprSb2yQhJ4+4gurOnUrQ4Du3AnRQvxPROaofwxIQ66WQ==, } peerDependencies: - "@tiptap/core": ^3.17.1 - "@tiptap/pm": ^3.17.1 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 - "@tiptap/extension-paragraph@3.17.1": + "@tiptap/extension-paragraph@3.20.0": resolution: { - integrity: sha512-Vl+xAlINaPtX8XTPvPmeveYMEIMLs8gA7ItcKpyyo4cCzAfVCY3DKuWzOkQGUf7DKrhyJQZhpgLNMaq+h5sTSw==, + integrity: sha512-mM99zK4+RnEXIMCv6akfNATAs0Iija6FgyFA9J9NZ6N4o8y9QiNLLa6HjLpAC+W+VoCgQIekyoF/Q9ftxmAYDQ==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/extension-strike@3.17.1": + "@tiptap/extension-strike@3.20.0": resolution: { - integrity: sha512-c6fS6YIhxoU55etlJgM0Xqker+jn7I1KC7GVu6ljmda8I00K3/lOLZgvFUNPmgp8EJWtyTctj+3D3D+PaZaFAA==, + integrity: sha512-0vcTZRRAiDfon3VM1mHBr9EFmTkkUXMhm0Xtdtn0bGe+sIqufyi+hUYTEw93EQOD9XNsPkrud6jzQNYpX2H3AQ==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/extension-text-align@3.17.1": + "@tiptap/extension-text-align@3.20.0": resolution: { - integrity: sha512-CyJbZf823dqPZ/1zwRsza5pk/NQwFZwILdFYLVkV88I4+Ua9YVztI9kmwTB6dJyuKT4kTc7nhQHdaa957alGZQ==, + integrity: sha512-4s0r+bovtH6yeGDUD+Ui8j5WOV5koB5P6AuzOMqoLwaFGRSkKf64ly6DXjjmjIgnYCLZN/XO6llaQKVVdvad2g==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/extension-text@3.17.1": + "@tiptap/extension-text@3.20.0": resolution: { - integrity: sha512-rGml96vokQbvPB+w6L3+WKyYJWwqELaLdFUr1WMgg+py5uNYGJYAExYNAbDb5biWJBrX9GgMlCaNeiJj849L1w==, + integrity: sha512-tf8bE8tSaOEWabCzPm71xwiUhyMFKqY9jkP5af3Kr1/F45jzZFIQAYZooHI/+zCHRrgJ99MQHKHe1ZNvODrKHQ==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/extension-underline@3.17.1": + "@tiptap/extension-underline@3.20.0": resolution: { - integrity: sha512-6RdBzmkg6DYs0EqPyoqLGkISXzCnPqM/q3A6nh3EmFmORcIDfuNmcidvA6EImebK8KQGmtZKsRhQSnK4CNQ39g==, + integrity: sha512-LzNXuy2jwR/y+ymoUqC72TiGzbOCjioIjsDu0MNYpHuHqTWPK5aV9Mh0nbZcYFy/7fPlV1q0W139EbJeYBZEAQ==, } peerDependencies: - "@tiptap/core": ^3.17.1 + "@tiptap/core": ^3.20.0 - "@tiptap/html@3.17.1": + "@tiptap/html@3.20.0": resolution: { - integrity: sha512-fLb2fo8+3oQ+5FTx5IGZvLI5+VLgN9BM6pHaO1+IrwqQ5w2RBFIGp8M946asBPkxJ74EtzHqFKJpVFtaY2CcpA==, + integrity: sha512-dbkXYp/ye3pheHcgJHI1Q3dWJWQnufd+Ki2Md1TQJuL39+J3M41bZQOWdn3QM0GYAzWlVhKBTJrL0ek6y7/Dlw==, } peerDependencies: - "@tiptap/core": ^3.17.1 - "@tiptap/pm": ^3.17.1 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 happy-dom: ^20.0.2 - "@tiptap/pm@3.17.1": + "@tiptap/pm@3.20.0": resolution: { - integrity: sha512-UyVLkN8axV/zop6Se2DCBJRu5DM21X0XEQvwEC5P/vk8eC9OcQZ3FLtxeYy2ZjpAZUzBGLw0/BGsmEip/n7olw==, + integrity: sha512-jn+2KnQZn+b+VXr8EFOJKsnjVNaA4diAEr6FOazupMt8W8ro1hfpYtZ25JL87Kao/WbMze55sd8M8BDXLUKu1A==, } - "@tiptap/react@3.17.1": + "@tiptap/react@3.20.0": resolution: { - integrity: sha512-Hn/pIP3HG9xYnhI3iGrfVhgQhfIdOaEBSxOFzJ37patqSOlIoP5aZH/b2HZ4vgo5DdRlV56q7WtRC+vLIw4Neg==, + integrity: sha512-jFLNzkmn18zqefJwPje0PPd9VhZ7Oy28YHiSvSc7YpBnQIbuN/HIxZ2lrOsKyEHta0WjRZjfU5X1pGxlbcGwOA==, } peerDependencies: - "@tiptap/core": ^3.17.1 - "@tiptap/pm": ^3.17.1 + "@tiptap/core": ^3.20.0 + "@tiptap/pm": ^3.20.0 "@types/react": ^17.0.0 || ^18.0.0 || ^19.0.0 "@types/react-dom": ^17.0.0 || ^18.0.0 || ^19.0.0 react: ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -3918,30 +3967,6 @@ packages: integrity: sha512-m7Lllj9n/S6sOkCkRftpM7L24uvmfXQFedlW/4hENcuJH1HHm9u5EgxZb9uVjQSCGrbBWBkOGgcTxNg36r6ywA==, } - "@tsconfig/node10@1.0.11": - resolution: - { - integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==, - } - - "@tsconfig/node12@1.0.11": - resolution: - { - integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, - } - - "@tsconfig/node14@1.0.3": - resolution: - { - integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, - } - - "@tsconfig/node16@1.0.4": - resolution: - { - integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, - } - "@tufjs/canonical-json@2.0.0": resolution: { @@ -3992,16 +4017,10 @@ packages: integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==, } - "@types/chai@5.2.2": - resolution: - { - integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==, - } - - "@types/debug@4.1.12": + "@types/chai@5.2.3": resolution: { - integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, + integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==, } "@types/deep-eql@4.0.2": @@ -4082,10 +4101,10 @@ packages: integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==, } - "@types/lodash@4.17.20": + "@types/lodash@4.17.24": resolution: { - integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==, + integrity: sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==, } "@types/mapbox-gl@2.7.21": @@ -4124,16 +4143,10 @@ packages: integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==, } - "@types/ms@2.1.0": - resolution: - { - integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==, - } - - "@types/node@20.19.11": + "@types/node@20.19.34": resolution: { - integrity: sha512-uug3FEEGv0r+jrecvUUpbY8lLisvIjg6AAic6a2bSP5OEOLeJsDSnvhCDov7ipFFMXS3orMpzlmi0ZcuGkBbow==, + integrity: sha512-by3/Z0Qp+L9cAySEsSNNwZ6WWw8ywgGLPQGgbQDhNRSitqYgkgp4pErd23ZSCavbtUA2CN4jQtoB3T8nk4j3Rg==, } "@types/parse5@5.0.3": @@ -4182,10 +4195,10 @@ packages: peerDependencies: "@types/react": ^18.0.0 - "@types/react@18.3.24": + "@types/react@18.3.28": resolution: { - integrity: sha512-0dLEBsA1kI3OezMBF8nSsb7Nk19ZnsyE1LLhB8r27KbgU5H4pvuqZLdtE+aUkJVoXgTVuA+iLIwmZ0TuK4tx6A==, + integrity: sha512-z9VXpC7MWrhfWipitjNdgCauoMLRdIILQsAEV+ZesIzBq/oUlxk0m3ApZuMFCXdnS4U7KrI+l3WRUEGQ8K1QKw==, } "@types/reactcss@1.2.13": @@ -4196,10 +4209,10 @@ packages: peerDependencies: "@types/react": "*" - "@types/semver@7.7.0": + "@types/semver@7.7.1": resolution: { - integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==, + integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==, } "@types/stack-utils@2.0.3": @@ -4274,10 +4287,10 @@ packages: integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==, } - "@types/yargs@17.0.33": + "@types/yargs@17.0.35": resolution: { - integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==, + integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==, } "@ungap/structured-clone@1.3.0": @@ -4373,78 +4386,78 @@ packages: integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==, } - "@vue/compiler-core@3.5.19": + "@vue/compiler-core@3.5.29": resolution: { - integrity: sha512-/afpyvlkrSNYbPo94Qu8GtIOWS+g5TRdOvs6XZNw6pWQQmj5pBgSZvEPOIZlqWq0YvoUhDDQaQ2TnzuJdOV4hA==, + integrity: sha512-cuzPhD8fwRHk8IGfmYaR4eEe4cAyJEL66Ove/WZL7yWNL134nqLddSLwNRIsFlnnW1kK+p8Ck3viFnC0chXCXw==, } - "@vue/compiler-dom@3.5.19": + "@vue/compiler-dom@3.5.29": resolution: { - integrity: sha512-Drs6rPHQZx/pN9S6ml3Z3K/TWCIRPvzG2B/o5kFK9X0MNHt8/E+38tiRfojufrYBfA6FQUFB2qBBRXlcSXWtOA==, + integrity: sha512-n0G5o7R3uBVmVxjTIYcz7ovr8sy7QObFG8OQJ3xGCDNhbG60biP/P5KnyY8NLd81OuT1WJflG7N4KWYHaeeaIg==, } - "@vue/compiler-sfc@3.5.19": + "@vue/compiler-sfc@3.5.29": resolution: { - integrity: sha512-YWCm1CYaJ+2RvNmhCwI7t3I3nU+hOrWGWMsn+Z/kmm1jy5iinnVtlmkiZwbLlbV1SRizX7vHsc0/bG5dj0zRTg==, + integrity: sha512-oJZhN5XJs35Gzr50E82jg2cYdZQ78wEwvRO6Y63TvLVTc+6xICzJHP1UIecdSPPYIbkautNBanDiWYa64QSFIA==, } - "@vue/compiler-ssr@3.5.19": + "@vue/compiler-ssr@3.5.29": resolution: { - integrity: sha512-/wx0VZtkWOPdiQLWPeQeqpHWR/LuNC7bHfSX7OayBTtUy8wur6vT6EQIX6Et86aED6J+y8tTw43qo2uoqGg5sw==, + integrity: sha512-Y/ARJZE6fpjzL5GH/phJmsFwx3g6t2KmHKHx5q+MLl2kencADKIrhH5MLF6HHpRMmlRAYBRSvv347Mepf1zVNw==, } - "@vue/devtools-api@7.7.7": + "@vue/devtools-api@7.7.9": resolution: { - integrity: sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==, + integrity: sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==, } - "@vue/devtools-kit@7.7.7": + "@vue/devtools-kit@7.7.9": resolution: { - integrity: sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==, + integrity: sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==, } - "@vue/devtools-shared@7.7.7": + "@vue/devtools-shared@7.7.9": resolution: { - integrity: sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==, + integrity: sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==, } - "@vue/reactivity@3.5.19": + "@vue/reactivity@3.5.29": resolution: { - integrity: sha512-4bueZg2qs5MSsK2dQk3sssV0cfvxb/QZntTC8v7J448GLgmfPkQ+27aDjlt40+XFqOwUq5yRxK5uQh14Fc9eVA==, + integrity: sha512-zcrANcrRdcLtmGZETBxWqIkoQei8HaFpZWx/GHKxx79JZsiZ8j1du0VUJtu4eJjgFvU/iKL5lRXFXksVmI+5DA==, } - "@vue/runtime-core@3.5.19": + "@vue/runtime-core@3.5.29": resolution: { - integrity: sha512-TaooCr8Hge1sWjLSyhdubnuofs3shhzZGfyD11gFolZrny76drPwBVQj28/z/4+msSFb18tOIg6VVVgf9/IbIA==, + integrity: sha512-8DpW2QfdwIWOLqtsNcds4s+QgwSaHSJY/SUe04LptianUQ/0xi6KVsu/pYVh+HO3NTVvVJjIPL2t6GdeKbS4Lg==, } - "@vue/runtime-dom@3.5.19": + "@vue/runtime-dom@3.5.29": resolution: { - integrity: sha512-qmahqeok6ztuUTmV8lqd7N9ymbBzctNF885n8gL3xdCC1u2RnM/coX16Via0AiONQXUoYpxPojL3U1IsDgSWUQ==, + integrity: sha512-AHvvJEtcY9tw/uk+s/YRLSlxxQnqnAkjqvK25ZiM4CllCZWzElRAoQnCM42m9AHRLNJ6oe2kC5DCgD4AUdlvXg==, } - "@vue/server-renderer@3.5.19": + "@vue/server-renderer@3.5.29": resolution: { - integrity: sha512-ZJ/zV9SQuaIO+BEEVq/2a6fipyrSYfjKMU3267bPUk+oTx/hZq3RzV7VCh0Unlppt39Bvh6+NzxeopIFv4HJNg==, + integrity: sha512-G/1k6WK5MusLlbxSE2YTcqAAezS+VuwHhOvLx2KnQU7G2zCH6KIb+5Wyt6UjMq7a3qPzNEjJXs1hvAxDclQH+g==, } peerDependencies: - vue: 3.5.19 + vue: 3.5.29 - "@vue/shared@3.5.19": + "@vue/shared@3.5.29": resolution: { - integrity: sha512-IhXCOn08wgKrLQxRFKKlSacWg4Goi1BolrdEeLYn6tgHjJNXVrWJ5nzoxZqNwl5p88aLlQ8LOaoMa3AYvaKJ/Q==, + integrity: sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg==, } "@vueuse/core@11.3.0": @@ -4577,10 +4590,10 @@ packages: integrity: sha512-k0mlQTnv8+E+vYjaI3goM2hEgtR9sYvUbAjhq3Qie14bT5F/6FQCLf8AUj/NyiZnsUQQe+vCxUZXSxvUSZ/JMA==, } - "@yext/pages-components@2.0.0": + "@yext/pages-components@2.0.1": resolution: { - integrity: sha512-NtQRzWTm6ah4o5753AdOKaZr6uWe0awcUVXoFZf6QdZSBk/uKG3nCvQR/Z+k34WiVYuOTC6o9VggmTkyn8XaeA==, + integrity: sha512-Iz6DaOo/C1v5XL7EbQ9Mp4UTEBYA7wJguV9So3zL5hQqOJ2NDX33MSSOJGqllHGEsRB9Dqjkdv/bmtK9H2EYzw==, } engines: { node: ^20 || ^22 || ^24 } peerDependencies: @@ -4601,13 +4614,6 @@ packages: react-dom: ^17.0.2 || ^18.2.0 vite: ^4.3.0 || ^5.0.2 - "@yext/search-core@2.7.0": - resolution: - { - integrity: sha512-/MziH3u4Ad36yR4dahy0al/xLIUeRtCrEdq7Tv8IpfwPAOM+JZtlGtpq1dmG5mKZfbcLmtFFvQOUSff8BCC9pg==, - } - engines: { node: ">=12" } - "@yext/search-core@2.8.0": resolution: { @@ -4615,14 +4621,6 @@ packages: } engines: { node: ">=12" } - "@yext/search-headless-react@2.6.0": - resolution: - { - integrity: sha512-6g67d4qv74XXbQqWH/PtRL5yVANEKhRmtVxxAC4ADz2mYCT6X+5h8FMwFmnGalVNh4OVopO/pXKXYod+7ytrPg==, - } - peerDependencies: - react: ^16.14 || ^17 || ^18 - "@yext/search-headless-react@2.7.1": resolution: { @@ -4631,22 +4629,16 @@ packages: peerDependencies: react: ^16.14 || ^17 || ^18 || ^19 - "@yext/search-headless@2.7.0": - resolution: - { - integrity: sha512-tPBPUh9oWLmXAeosl4FH6lcgjlbIniGIXjtgd6uCl8YVrwQ3GBg+7Q8YGEF8sd6EI8r+liBiOfdYLOYvHG+rZg==, - } - "@yext/search-headless@2.8.1": resolution: { integrity: sha512-rexlQR9wJuWxuTXHtw3tuRp93zVZI26sHhok60THsFFm0AQHv7s6tWsyDIcHhAn4dACtsJGrYgcTE2pPyGiiYw==, } - "@yext/search-ui-react@2.1.0": + "@yext/search-ui-react@2.1.1": resolution: { - integrity: sha512-+Ej4I9HdpbG7DifjPa2M65r/fbkGmIiuSQcAPs1Oge/NEkGBer0Vp3J8iaHHAO5GI1O3PZ7uETagxtyRRz8bNQ==, + integrity: sha512-2S4ooWM/yU3h1N+CADoz/PQwjUhvZQePljsZ0S15H47qH3I8bzYerGJwFqvpwobXi79MqCpK4JFn64SYcJ8LTg==, } peerDependencies: "@yext/search-headless-react": ^2.6.0 @@ -4667,17 +4659,10 @@ packages: } engines: { node: ">= 0.6" } - acorn-walk@8.3.4: + acorn@8.16.0: resolution: { - integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==, - } - engines: { node: ">=0.4.0" } - - acorn@8.15.0: - resolution: - { - integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==, + integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==, } engines: { node: ">=0.4.0" } hasBin: true @@ -4711,22 +4696,16 @@ packages: ajv: optional: true - ajv@8.12.0: + ajv@8.18.0: resolution: { - integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, + integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==, } - ajv@8.13.0: + algoliasearch@5.49.1: resolution: { - integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==, - } - - algoliasearch@5.35.0: - resolution: - { - integrity: sha512-Y+moNhsqgLmvJdgTsO4GZNgsaDWv8AOGAaPeIeHKlDn/XunoAqYbA+XNpBd1dW8GOXAUDyxC9Rxc7AV4kpFcIg==, + integrity: sha512-X3Pp2aRQhg4xUC6PQtkubn5NpRKuUPQ9FPDQlx36SmpFwwH2N0/tw4c+NXV3nw3PsgeUs+BuWGP0gjz3TvENLQ==, } engines: { node: ">= 14.0.0" } @@ -4737,10 +4716,10 @@ packages: } engines: { node: ">=6" } - ansi-escapes@7.0.0: + ansi-escapes@7.3.0: resolution: { - integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==, + integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==, } engines: { node: ">=18" } @@ -4751,10 +4730,10 @@ packages: } engines: { node: ">=8" } - ansi-regex@6.2.0: + ansi-regex@6.2.2: resolution: { - integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==, + integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==, } engines: { node: ">=12" } @@ -4772,10 +4751,10 @@ packages: } engines: { node: ">=10" } - ansi-styles@6.2.1: + ansi-styles@6.2.3: resolution: { - integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==, } engines: { node: ">=12" } @@ -4800,12 +4779,6 @@ packages: } engines: { node: ">= 8" } - arg@4.1.3: - resolution: - { - integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, - } - arg@5.0.2: resolution: { @@ -4868,10 +4841,10 @@ packages: integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, } - autoprefixer@10.4.21: + autoprefixer@10.4.27: resolution: { - integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==, + integrity: sha512-NP9APE+tO+LuJGn7/9+cohklunJsXWiaWEfV3si4Gi/XHDwVNgkwr1J3RQYFIvPy76GmJ9/bW8vyoU1LcxwKHA==, } engines: { node: ^10 || ^12 || >=14 } hasBin: true @@ -4885,10 +4858,10 @@ packages: } engines: { node: ">= 0.4" } - awesome-phonenumber@7.5.0: + awesome-phonenumber@7.8.0: resolution: { - integrity: sha512-qWQHCiMHMNVyUsICiCcaPJAYbGL4E4kGnIxnrwkS3YCwcPa8VtQCo11HGKY8AbUpXJloDG10c9Bulhw3xYkC/g==, + integrity: sha512-zw23nvKt6gLGgCrKZ5Z7ZK0lm3k39/uZTw+cWp5tpiXVfEFSt9AEVFDzSycws76G64xOMrIVp2upYvJxwRgzvw==, } engines: { node: ">=18" } @@ -4906,10 +4879,10 @@ packages: } engines: { node: ">=4" } - axe-core@4.10.3: + axe-core@4.11.1: resolution: { - integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==, + integrity: sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==, } engines: { node: ">=4" } @@ -4919,11 +4892,12 @@ packages: integrity: sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==, } - balanced-match@1.0.2: + balanced-match@4.0.4: resolution: { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==, } + engines: { node: 18 || 20 || >=22 } base64-js@1.5.1: resolution: @@ -4931,6 +4905,14 @@ packages: integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, } + baseline-browser-mapping@2.10.0: + resolution: + { + integrity: sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==, + } + engines: { node: ">=6.0.0" } + hasBin: true + before-after-hook@2.2.3: resolution: { @@ -4951,10 +4933,10 @@ packages: } engines: { node: ">=8" } - birpc@2.5.0: + birpc@2.9.0: resolution: { - integrity: sha512-VSWO/W6nNQdyP520F1mhf+Lc2f8pjGQOtoHHm7Ze8Go1kX7akpVIrtTa0fn+HB0QJEDVacl6aO08YE0PgXfdnQ==, + integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==, } bl@4.1.0: @@ -4969,30 +4951,31 @@ packages: integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==, } - bn.js@4.12.2: + bn.js@4.12.3: resolution: { - integrity: sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==, + integrity: sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g==, } - bn.js@5.2.2: + bn.js@5.2.3: resolution: { - integrity: sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==, + integrity: sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w==, } - body-parser@1.20.3: + body-parser@1.20.4: resolution: { - integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==, + integrity: sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==, } engines: { node: ">= 0.8", npm: 1.2.8000 || >= 1.4.16 } - brace-expansion@2.0.2: + brace-expansion@5.0.3: resolution: { - integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==, + integrity: sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA==, } + engines: { node: 18 || 20 || >=22 } braces@3.0.3: resolution: @@ -5050,12 +5033,12 @@ packages: } engines: { node: ">= 0.10" } - browserify-sign@4.2.3: + browserify-sign@4.2.5: resolution: { - integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==, + integrity: sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==, } - engines: { node: ">= 0.12" } + engines: { node: ">= 0.10" } browserify-zlib@0.2.0: resolution: @@ -5063,10 +5046,10 @@ packages: integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==, } - browserslist@4.25.3: + browserslist@4.28.1: resolution: { - integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==, + integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==, } engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true @@ -5173,10 +5156,10 @@ packages: } engines: { node: ">= 6" } - caniuse-lite@1.0.30001737: + caniuse-lite@1.0.30001774: resolution: { - integrity: sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==, + integrity: sha512-DDdwPGz99nmIEv216hKSgLD+D4ikHQHjBC/seF98N9CPqRX4M5mSxT9eTV6oyisnJcuzxtZy4n17yKKQYmYQOA==, } ccount@1.1.0: @@ -5205,13 +5188,6 @@ packages: } engines: { node: ">=10" } - chalk@5.6.0: - resolution: - { - integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==, - } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } - chalk@5.6.2: resolution: { @@ -5255,10 +5231,10 @@ packages: integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==, } - check-error@2.1.1: + check-error@2.1.3: resolution: { - integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==, + integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==, } engines: { node: ">= 16" } @@ -5297,17 +5273,17 @@ packages: } engines: { node: ">=18" } - ci-info@4.3.0: + ci-info@4.4.0: resolution: { - integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==, + integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==, } engines: { node: ">=8" } - cipher-base@1.0.6: + cipher-base@1.0.7: resolution: { - integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==, + integrity: sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==, } engines: { node: ">= 0.10" } @@ -5536,30 +5512,30 @@ packages: integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, } - cookie-signature@1.0.6: + cookie-signature@1.0.7: resolution: { - integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==, + integrity: sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==, } - cookie@0.7.1: + cookie@0.7.2: resolution: { - integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==, + integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==, } engines: { node: ">= 0.6" } - copy-anything@3.0.5: + copy-anything@4.0.5: resolution: { - integrity: sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==, + integrity: sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA==, } - engines: { node: ">=12.13" } + engines: { node: ">=18" } - core-js-pure@3.45.1: + core-js-pure@3.48.0: resolution: { - integrity: sha512-OHnWFKgTUshEU8MK+lOs1H8kC8GkTi9Z1tvNkxrCcw9wl3MJIO7q2ld77wjWn4/xuGrVu2X+nME1iIIPBSdyEQ==, + integrity: sha512-1slJgk89tWC51HQ1AEqG+s2VuwpTRr8ocu4n20QUcH1v9lAN0RXen0Q0AABa/DK1I7RrNWLucplOHMx8hfTGTw==, } core-util-is@1.0.3: @@ -5586,12 +5562,6 @@ packages: integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==, } - create-hash@1.1.3: - resolution: - { - integrity: sha512-snRpch/kwQhcdlnZKYanNF1m0RDlrCdSKQaH87w1FCFPVPNCQ/Il9QJKAX2jVBZddRdaHBMC+zXa9Gw9tmkNUA==, - } - create-hash@1.2.0: resolution: { @@ -5657,10 +5627,10 @@ packages: } engines: { node: ">=18" } - csstype@3.1.3: + csstype@3.2.3: resolution: { - integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, + integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==, } data-urls@5.0.0: @@ -5681,10 +5651,10 @@ packages: supports-color: optional: true - debug@4.4.1: + debug@4.4.3: resolution: { - integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==, + integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==, } engines: { node: ">=6.0" } peerDependencies: @@ -5740,17 +5710,17 @@ packages: } engines: { node: ">=0.10.0" } - default-browser-id@5.0.0: + default-browser-id@5.0.1: resolution: { - integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==, + integrity: sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==, } engines: { node: ">=18" } - default-browser@5.2.1: + default-browser@5.5.0: resolution: { - integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==, + integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==, } engines: { node: ">=18" } @@ -5846,10 +5816,10 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - diff@4.0.2: + diff@8.0.3: resolution: { - integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, + integrity: sha512-qejHi7bcSD4hQAZE0tNAawRK1ZtafHDmMTMkrrIGgSLl7hTnQHmKCeB45xAcbfTqK2zowkM3j3bHt/4b/ARbYQ==, } engines: { node: ">=0.3.1" } @@ -5884,10 +5854,10 @@ packages: } engines: { node: ">=10" } - dompurify@3.2.6: + dompurify@3.3.1: resolution: { - integrity: sha512-/2GogDQlohXPZe6D6NOgQvXLPSYBqIWMnZ8zzOhn09REE4eyAzb+Hed3jhoM9OkuaJ8P6ZGTTVWQKAi8ieIzfQ==, + integrity: sha512-qkdCKzLNtrgPFP1Vo+98FRzJnBRGe4ffyCea9IwHB1fyxPOeNTHpLKYGd4Uk9xvNoH0ZoOjwZxNptyMwqrId1Q==, } dunder-proto@1.0.1: @@ -5915,10 +5885,10 @@ packages: integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, } - electron-to-chromium@1.5.208: + electron-to-chromium@1.5.302: resolution: { - integrity: sha512-ozZyibehoe7tOhNaf16lKmljVf+3npZcJIEbJRVftVsmAg5TeA1mGS9dVCZzOwr2xT7xK15V0p7+GZqSPgkuPg==, + integrity: sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==, } elliptic@6.6.1: @@ -5933,10 +5903,10 @@ packages: integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==, } - emoji-regex@10.4.0: + emoji-regex@10.6.0: resolution: { - integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==, + integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==, } emoji-regex@8.0.0: @@ -5951,13 +5921,6 @@ packages: integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, } - encodeurl@1.0.2: - resolution: - { - integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==, - } - engines: { node: ">= 0.8" } - encodeurl@2.0.0: resolution: { @@ -5998,6 +5961,13 @@ packages: } engines: { node: ">=0.12" } + entities@7.0.1: + resolution: + { + integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==, + } + engines: { node: ">=0.12" } + env-paths@2.2.1: resolution: { @@ -6024,10 +5994,10 @@ packages: integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==, } - error-ex@1.3.2: + error-ex@1.3.4: resolution: { - integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==, } es-define-property@1.0.1: @@ -6080,10 +6050,10 @@ packages: engines: { node: ">=18" } hasBin: true - esbuild@0.25.9: + esbuild@0.27.3: resolution: { - integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==, + integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==, } engines: { node: ">=18" } hasBin: true @@ -6142,10 +6112,10 @@ packages: } engines: { node: ">= 0.6" } - eventemitter3@5.0.1: + eventemitter3@5.0.4: resolution: { - integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, + integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==, } events@3.3.0: @@ -6175,30 +6145,30 @@ packages: } engines: { node: ^18.19.0 || >=20.5.0 } - expect-type@1.2.2: + expect-type@1.3.0: resolution: { - integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==, + integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==, } engines: { node: ">=12.0.0" } - expect@30.0.5: + expect@30.2.0: resolution: { - integrity: sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==, + integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==, } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - exponential-backoff@3.1.2: + exponential-backoff@3.1.3: resolution: { - integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==, + integrity: sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==, } - express@4.21.2: + express@4.22.1: resolution: { - integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==, + integrity: sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==, } engines: { node: ">= 0.10.0" } @@ -6242,10 +6212,34 @@ packages: } engines: { node: ">=8.6.0" } - fastq@1.19.1: + fast-string-truncated-width@3.0.3: + resolution: + { + integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==, + } + + fast-string-width@3.0.2: + resolution: + { + integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==, + } + + fast-uri@3.1.0: + resolution: + { + integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==, + } + + fast-wrap-ansi@0.2.0: + resolution: + { + integrity: sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==, + } + + fastq@1.20.1: resolution: { - integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==, + integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==, } fdir@6.5.0: @@ -6281,10 +6275,10 @@ packages: } engines: { node: ">=14.16" } - finalhandler@1.3.1: + finalhandler@1.3.2: resolution: { - integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==, + integrity: sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==, } engines: { node: ">= 0.8" } @@ -6302,10 +6296,10 @@ packages: } hasBin: true - focus-trap@7.6.5: + focus-trap@7.8.0: resolution: { - integrity: sha512-7Ke1jyybbbPZyZXFxEftUtxFGLMpE2n6A+z//m4CRDlj0hW+o3iYSmh8nFlYMurOiJVDmJRilUQtJr08KfIxlg==, + integrity: sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA==, } for-each@0.3.5: @@ -6322,10 +6316,10 @@ packages: } engines: { node: ">=14" } - form-data@4.0.4: + form-data@4.0.5: resolution: { - integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==, + integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==, } engines: { node: ">= 6" } @@ -6336,10 +6330,10 @@ packages: } engines: { node: ">= 0.6" } - fraction.js@4.3.7: + fraction.js@5.3.4: resolution: { - integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, + integrity: sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==, } fresh@0.5.2: @@ -6349,10 +6343,10 @@ packages: } engines: { node: ">= 0.6" } - fs-extra@11.3.1: + fs-extra@11.3.3: resolution: { - integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==, + integrity: sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==, } engines: { node: ">=14.14" } @@ -6406,6 +6400,13 @@ packages: } hasBin: true + generator-function@2.0.1: + resolution: + { + integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==, + } + engines: { node: ">= 0.4" } + gensync@1.0.0-beta.2: resolution: { @@ -6425,10 +6426,10 @@ packages: integrity: sha512-EicrlLLL3S42gE9/wde+11uiaYAaeSVDwCUIv2uMIoRBfNJCn8EsSI+6nS3r4TCKDO6+RQNM9ayLq2at+oZQWQ==, } - get-east-asian-width@1.3.0: + get-east-asian-width@1.5.0: resolution: { - integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==, + integrity: sha512-CQ+bEO+Tva/qlmw24dCejulK5pMzVnUOFOijVogd3KQs07HnRIgp8TGipvCCRT06xeYEbpbgwaCxglFyiuIcmA==, } engines: { node: ">=18" } @@ -6481,10 +6482,10 @@ packages: } engines: { node: ">=18" } - get-tsconfig@4.10.1: + get-tsconfig@4.13.6: resolution: { - integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==, + integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==, } github-url-from-git@1.5.0: @@ -6513,19 +6514,20 @@ packages: } engines: { node: ">=10.13.0" } - glob@10.4.5: + glob@10.5.0: resolution: { - integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, + integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==, } + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true - glob@13.0.1: + glob@13.0.6: resolution: { - integrity: sha512-B7U/vJpE3DkJ5WXTgTpTRN63uV42DseiXXKMwG14LQBXmsdeIoHAPbU/MEo6II0k5ED74uc2ZGTC6MwHFQhF6w==, + integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==, } - engines: { node: 20 || >=22 } + engines: { node: 18 || 20 || >=22 } globals@15.15.0: resolution: @@ -6574,10 +6576,10 @@ packages: engines: { node: ">=0.4.7" } hasBin: true - happy-dom@20.3.9: + happy-dom@20.7.0: resolution: { - integrity: sha512-OIoj0PcK2JaxQuANHxWkxFRSNXAuSgO1vCzCT66KItE0W/ieZLG+/iW8OetlxB+F9EaPB7DoFYKAubFG1f4Mvw==, + integrity: sha512-hR/uLYQdngTyEfxnOoa+e6KTcfBFyc1hgFj/Cc144A5JJUuHFYqIEBDcD4FeGqUeKLRZqJ9eN9u7/GDjYEgS1g==, } engines: { node: ">=20.0.0" } @@ -6608,18 +6610,19 @@ packages: } engines: { node: ">= 0.4" } - hash-base@2.0.2: + hash-base@3.0.5: resolution: { - integrity: sha512-0TROgQ1/SxE6KmxWSvXHvRj90/Xo1JvZShofnYF+f6ZsGtR4eES7WfrQzPalmyagfKZCXpVnitiRebZulWsbiw==, + integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==, } + engines: { node: ">= 0.10" } - hash-base@3.0.5: + hash-base@3.1.2: resolution: { - integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==, + integrity: sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==, } - engines: { node: ">= 0.10" } + engines: { node: ">= 0.8" } hash.js@1.1.7: resolution: @@ -6738,10 +6741,10 @@ packages: integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==, } - http-errors@2.0.0: + http-errors@2.0.1: resolution: { - integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==, + integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==, } engines: { node: ">= 0.8" } @@ -6795,10 +6798,10 @@ packages: engines: { node: ">=18" } hasBin: true - i18next-cli@1.42.8: + i18next-cli@1.46.0: resolution: { - integrity: sha512-KhrJJyGjTGhLTkjlzOIcCCY8fo+TdNOSRoPrkzS610YhYAhTLk/hWhj+QJ8Kv1+vIrkz2uxk3aYUPXSUgSMElQ==, + integrity: sha512-vu9bmasrbu1OazNX6YSMYEME3sIYpoHjXTxZQJbWF/yQ89cTaaox8k4wbM7C30ua+jaQOogk/viK+17W7FNfOA==, } engines: { node: ">=22" } hasBin: true @@ -6810,21 +6813,10 @@ packages: } hasBin: true - i18next@25.4.0: + i18next@25.8.13: resolution: { - integrity: sha512-UH5aiamXsO3cfrZFurCHiB6YSs3C+s+XY9UaJllMMSbmaoXILxFgqDEZu4NbfzJFjmUo3BNMa++Rjkr3ofjfLw==, - } - peerDependencies: - typescript: ^5 - peerDependenciesMeta: - typescript: - optional: true - - i18next@25.8.7: - resolution: - { - integrity: sha512-ttxxc5+67S/0hhoeVdEgc1lRklZhdfcUSEPp1//uUG2NB88X3667gRsDar+ZWQFdysnOsnb32bcoMsa4mtzhkQ==, + integrity: sha512-E0vzjBY1yM+nsFrtgkjLhST2NBkirkvOVoQa0MSldhsuZ3jUge7ZNpuwG0Cfc74zwo5ZwRzg3uOgT+McBn32iA==, } peerDependencies: typescript: ^5 @@ -6925,10 +6917,10 @@ packages: integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==, } - inquirer@13.2.2: + inquirer@13.2.5: resolution: { - integrity: sha512-+hlN8I88JE9T3zjWHGnMhryniRDbSgFNJHJTyD2iKO5YNpMRyfghQ6wVoe+gV4ygMM4r4GzlsBxNa1g/UUZixA==, + integrity: sha512-JHvVPgOIre0NrA9o8BGHUBh9rNuKkN1gS1ffbYgy3BuuJmJZhnFy9IHz3pcNbZm9zK6qTYvQ6LN5wl3Xcg4Jkw==, } engines: { node: ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } peerDependencies: @@ -6937,10 +6929,10 @@ packages: "@types/node": optional: true - ip-address@10.0.1: + ip-address@10.1.0: resolution: { - integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==, + integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==, } engines: { node: ">= 12" } @@ -7046,17 +7038,17 @@ packages: } engines: { node: ">=12" } - is-fullwidth-code-point@5.0.0: + is-fullwidth-code-point@5.1.0: resolution: { - integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==, + integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==, } engines: { node: ">=18" } - is-generator-function@1.1.0: + is-generator-function@1.1.2: resolution: { - integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==, + integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==, } engines: { node: ">= 0.4" } @@ -7178,17 +7170,17 @@ packages: } engines: { node: ">=18" } - is-what@4.1.16: + is-what@5.5.0: resolution: { - integrity: sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==, + integrity: sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw==, } - engines: { node: ">=12.13" } + engines: { node: ">=18" } - is-wsl@3.1.0: + is-wsl@3.1.1: resolution: { - integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==, + integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==, } engines: { node: ">=16" } @@ -7204,10 +7196,10 @@ packages: integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, } - isbinaryfile@5.0.4: + isbinaryfile@5.0.7: resolution: { - integrity: sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==, + integrity: sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==, } engines: { node: ">= 18.0.0" } @@ -7217,12 +7209,12 @@ packages: integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, } - isexe@3.1.1: + isexe@3.1.5: resolution: { - integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==, + integrity: sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==, } - engines: { node: ">=16" } + engines: { node: ">=18" } isomorphic-timers-promises@1.0.1: resolution: @@ -7251,10 +7243,10 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jest-diff@30.0.5: + jest-diff@30.2.0: resolution: { - integrity: sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==, + integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==, } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } @@ -7272,24 +7264,24 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - jest-matcher-utils@30.0.5: + jest-matcher-utils@30.2.0: resolution: { - integrity: sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==, + integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==, } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - jest-message-util@30.0.5: + jest-message-util@30.2.0: resolution: { - integrity: sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==, + integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==, } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - jest-mock@30.0.5: + jest-mock@30.2.0: resolution: { - integrity: sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==, + integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==, } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } @@ -7300,10 +7292,10 @@ packages: } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - jest-util@30.0.5: + jest-util@30.2.0: resolution: { - integrity: sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==, + integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==, } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } @@ -7359,24 +7351,17 @@ packages: integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==, } - js-yaml@3.13.1: + js-yaml@3.14.2: resolution: { - integrity: sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==, + integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==, } hasBin: true - js-yaml@3.14.1: + js-yaml@4.1.1: resolution: { - integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==, - } - hasBin: true - - js-yaml@4.1.0: - resolution: - { - integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==, } hasBin: true @@ -7484,10 +7469,10 @@ packages: } engines: { node: ">=6" } - ky@1.9.0: + ky@1.14.3: resolution: { - integrity: sha512-NgBeR/cu7kuC4BAeF1rnXhfoI2uQ9RBe8zl5vo87ASsf1iIQoCeOxyt6Io6K4Ki++5ItCavXAtbEWWCGFciQ6g==, + integrity: sha512-9zy9lkjac+TR1c2tG+mkNSVlyOpInnWdSMiue4F+kq8TwJSgv6o8jhLRg8Ho6SnZ9wOYUq/yozts9qQCfk7bIw==, } engines: { node: ">=18" } @@ -7564,22 +7549,10 @@ packages: } engines: { node: ">=10" } - lodash-es@4.17.21: + lodash-es@4.17.23: resolution: { - integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, - } - - lodash.castarray@4.4.0: - resolution: - { - integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==, - } - - lodash.isplainobject@4.0.6: - resolution: - { - integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, + integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==, } lodash.merge@4.6.2: @@ -7594,10 +7567,10 @@ packages: integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==, } - lodash@4.17.21: + lodash@4.17.23: resolution: { - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==, } log-symbols@4.1.0: @@ -7703,16 +7676,10 @@ packages: } hasBin: true - magic-string@0.30.18: - resolution: - { - integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==, - } - - make-error@1.3.6: + magic-string@0.30.21: resolution: { - integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, + integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==, } make-fetch-happen@14.0.3: @@ -7734,10 +7701,10 @@ packages: integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==, } - markdown-it@14.1.0: + markdown-it@14.1.1: resolution: { - integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==, + integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==, } hasBin: true @@ -7820,10 +7787,10 @@ packages: integrity: sha512-JoPBfJ3gBnHZ18icCwHR50orC9kNH81tiR1gs01D8Q5YpV6adHNO9nKNuFBCJQ941/32PT1a63UF/DitmS3amQ==, } - mdast-util-to-hast@13.2.0: + mdast-util-to-hast@13.2.1: resolution: { - integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==, + integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==, } mdast-util-to-markdown@0.6.5: @@ -8031,24 +7998,24 @@ packages: integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==, } - minimatch@10.0.3: + minimatch@10.2.1: resolution: { - integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==, + integrity: sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==, } engines: { node: 20 || >=22 } - minimatch@10.1.2: + minimatch@10.2.2: resolution: { - integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==, + integrity: sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==, } - engines: { node: 20 || >=22 } + engines: { node: 18 || 20 || >=22 } - minimatch@9.0.5: + minimatch@9.0.8: resolution: { - integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, + integrity: sha512-reYkDYtj/b19TeqbNZCV4q9t+Yxylf/rYBsLb42SXJatTv4/ylq5lEiAmhA/IToxO7NI2UzNMghHoHuaqDkAjw==, } engines: { node: ">=16 || 14 >=14.17" } @@ -8107,17 +8074,17 @@ packages: } engines: { node: ">=8" } - minipass@7.1.2: + minipass@7.1.3: resolution: { - integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, + integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==, } engines: { node: ">=16 || 14 >=14.17" } - minisearch@7.1.2: + minisearch@7.2.0: resolution: { - integrity: sha512-R1Pd9eF+MD5JYDDSPAp/q1ougKglm14uEkPMvQ/05RGmx6G9wvmLTrTI/Q5iPNJLYqNdsDQ7qTGIcNWR+FrHmA==, + integrity: sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg==, } minizlib@2.1.2: @@ -8127,10 +8094,10 @@ packages: } engines: { node: ">= 8" } - minizlib@3.0.2: + minizlib@3.1.0: resolution: { - integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==, + integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==, } engines: { node: ">= 18" } @@ -8249,18 +8216,18 @@ packages: encoding: optional: true - node-gyp@11.4.1: + node-gyp@11.5.0: resolution: { - integrity: sha512-GiVxQ1e4TdZSSVmFDYUn6uUsrEUP68pa8C/xBzCfL/FcLHa4reWrxxTP7tRGhNdviYrNsL5kRolBL5LNYEutCw==, + integrity: sha512-ra7Kvlhxn5V9Slyus0ygMa2h+UqExPqUIkfk7Pc8QTLT956JLSy51uWFwHtIYy0vI8cB4BDhc/S03+880My/LQ==, } engines: { node: ^18.17.0 || >=20.5.0 } hasBin: true - node-releases@2.0.19: + node-releases@2.0.27: resolution: { - integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==, + integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==, } node-stdlib-browser@1.3.1: @@ -8285,13 +8252,6 @@ packages: } engines: { node: ">=0.10.0" } - normalize-range@0.1.2: - resolution: - { - integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, - } - engines: { node: ">=0.10.0" } - npm-bundled@4.0.0: resolution: { @@ -8299,10 +8259,10 @@ packages: } engines: { node: ^18.17.0 || >=20.5.0 } - npm-install-checks@7.1.1: + npm-install-checks@7.1.2: resolution: { - integrity: sha512-u6DCwbow5ynAX5BdiHQ9qvexme4U3qHW3MWe5NqH+NeBm0LbiH6zvGjNNew1fY+AZZUtVHbOPF3j7mJxbUzpXg==, + integrity: sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==, } engines: { node: ^18.17.0 || >=20.5.0 } @@ -8355,10 +8315,10 @@ packages: } engines: { node: ">=18" } - nwsapi@2.2.21: + nwsapi@2.2.23: resolution: { - integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==, + integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==, } object-assign@4.1.1: @@ -8511,10 +8471,10 @@ packages: } engines: { node: ">=10" } - p-map@7.0.3: + p-map@7.0.4: resolution: { - integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==, + integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==, } engines: { node: ">=18" } @@ -8560,10 +8520,10 @@ packages: } engines: { node: ">=6" } - parse-asn1@5.1.7: + parse-asn1@5.1.9: resolution: { - integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==, + integrity: sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==, } engines: { node: ">= 0.10" } @@ -8653,12 +8613,12 @@ packages: } engines: { node: ">=16 || 14 >=14.18" } - path-scurry@2.0.1: + path-scurry@2.0.2: resolution: { - integrity: sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==, + integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==, } - engines: { node: 20 || >=22 } + engines: { node: 18 || 20 || >=22 } path-to-regexp@0.1.12: resolution: @@ -8686,12 +8646,12 @@ packages: } hasBin: true - pbkdf2@3.1.3: + pbkdf2@3.1.5: resolution: { - integrity: sha512-wfRLBZ0feWRhCIkoMB6ete7czJcnNnqRpcoWQBLqatqXXmelSRqfdDK4F3u9T2s2cXas/hQJcryI/4lAL+XTlA==, + integrity: sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==, } - engines: { node: ">=0.12" } + engines: { node: ">= 0.10" } perfect-debounce@1.0.0: resolution: @@ -8807,29 +8767,14 @@ packages: peerDependencies: postcss: ^8.0.0 - postcss-js@4.0.1: + postcss-js@4.1.0: resolution: - { - integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==, - } - engines: { node: ^12 || ^14 || >= 16 } - peerDependencies: - postcss: ^8.4.21 - - postcss-load-config@4.0.2: - resolution: - { - integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==, - } - engines: { node: ">= 14" } - peerDependencies: - postcss: ">=8.0.9" - ts-node: ">=9.0.0" - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true + { + integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==, + } + engines: { node: ^12 || ^14 || >= 16 } + peerDependencies: + postcss: ^8.4.21 postcss-load-config@6.0.1: resolution: @@ -8875,10 +8820,10 @@ packages: } engines: { node: ">=4" } - postcss-selector-parser@7.1.0: + postcss-selector-parser@7.1.1: resolution: { - integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==, + integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==, } engines: { node: ">=4" } @@ -8901,10 +8846,10 @@ packages: integrity: sha512-pcaShQc1Shq0y+E7GqJqvZj8DTthWV1KeHGdi0Z6IAin2Oi3JnLCOfwnCo84qc+HAp52wT9nK9H7FAJp5a44GQ==, } - preact@10.27.1: + preact@10.28.4: resolution: { - integrity: sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ==, + integrity: sha512-uKFfOHWuSNpRFVTnljsCluEFq57OKT+0QdOiQo8XWnQ/pSvg7OpX5eNOejELXJMWy+BwM2nobz0FkvzmnpCNsQ==, } prettier-plugin-tailwindcss@0.4.1: @@ -8962,10 +8907,10 @@ packages: prettier-plugin-twig-melody: optional: true - prettier@3.6.2: + prettier@3.8.1: resolution: { - integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==, + integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==, } engines: { node: ">=14" } hasBin: true @@ -8984,17 +8929,17 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } - pretty-format@30.0.5: + pretty-format@30.2.0: resolution: { - integrity: sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==, + integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==, } engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } - pretty-ms@9.2.0: + pretty-ms@9.3.0: resolution: { - integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==, + integrity: sha512-gjVS5hOP+M3wMm5nmNOucbIrqudzs9v/57bWRHQWLYklXqoXKrVfYW2W9+glfGsqtPgpiz5WwyEEB+ksXIx3gQ==, } engines: { node: ">=18" } @@ -9069,10 +9014,10 @@ packages: integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==, } - prosemirror-changeset@2.3.1: + prosemirror-changeset@2.4.0: resolution: { - integrity: sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==, + integrity: sha512-LvqH2v7Q2SF6yxatuPP2e8vSUKS/L+xAU7dPDC4RMyHMhZoGDfBC74mYuyYF4gLqOEG758wajtyhNnsTkuhvng==, } prosemirror-collab@1.3.1: @@ -9117,16 +9062,16 @@ packages: integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==, } - prosemirror-markdown@1.13.3: + prosemirror-markdown@1.13.4: resolution: { - integrity: sha512-3E+Et6cdXIH0EgN2tGYQ+EBT7N4kMiZFsW+hzx+aPtOmADDHWCdd2uUQb7yklJrfUYUOjEEu22BiN6UFgPe4cQ==, + integrity: sha512-D98dm4cQ3Hs6EmjK500TdAOew4Z03EV71ajEFiWra3Upr7diytJsjF4mPV2dW+eK5uNectiRj0xFxYI9NLXDbw==, } - prosemirror-menu@1.2.5: + prosemirror-menu@1.3.0: resolution: { - integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==, + integrity: sha512-TImyPXCHPcDsSka2/lwJ6WjTASr4re/qWq1yoTTuLOqfXucwF6VcRa2LWCkM/EyTD1UO3CUwiH8qURJoWJRxwg==, } prosemirror-model@1.25.4: @@ -9175,10 +9120,10 @@ packages: integrity: sha512-4I7Ce4KpygXb9bkiPS3hTEk4dSHorfRw8uI0pE8IhxlK2GXsqv5tIA7JUSxtSu7u8APVOTtbUBxTmnHIxVkIJw==, } - prosemirror-view@1.41.5: + prosemirror-view@1.41.6: resolution: { - integrity: sha512-UDQbIPnDrjE8tqUBbPmCOZgtd75htE6W3r0JCmY9bL6W1iemDM37MZEKC49d+tdQ0v/CKx4gjxLoLsfkD2NiZA==, + integrity: sha512-mxpcDG4hNQa/CPtzxjdlir5bJFDlm0/x5nGBbStB2BWX+XOQ9M8ekEG+ojqB5BcVu2Rc80/jssCMZzSstJuSYg==, } proto-list@1.2.4: @@ -9232,26 +9177,26 @@ packages: } engines: { node: ">=6" } - pure-react-carousel@1.32.0: + pure-react-carousel@1.35.0: resolution: { - integrity: sha512-RW0zKjjId1Xmspcqdu3v0pmlce3BVDACJ0fzt1+ZPJ4GxqJbIqt2kPAh1e5M19S5BDewihnq6kz4kIaGXleO3w==, + integrity: sha512-3RGmc+/Q0v24xPqQ1HDGj8eoutsaFJfjNbl1ihxC6+iBAJ7x2lu9T6ZgtorCW7JDvQb+hyVnBVR5Dn/XH2HByw==, } peerDependencies: - react: 15.x || 16.x || 17.x || 18.x - react-dom: 15.x || 16.x || 17.x || 18.x + react: 15.x || 16.x || 17.x || 18.x || 19.x + react-dom: 15.x || 16.x || 17.x || 18.x || 19.x - qs@6.13.0: + qs@6.14.2: resolution: { - integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==, + integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==, } engines: { node: ">=0.6" } - qs@6.14.0: + qs@6.15.0: resolution: { - integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==, + integrity: sha512-mAZTtNCeetKMH+pSjrb76NAM8V9a05I9aBZOHztWy/UqcJdQYNsf59vrRKWnojAT9Y+GbIvoTBC++CPHqpDBhQ==, } engines: { node: ">=0.6" } @@ -9262,10 +9207,10 @@ packages: } engines: { node: ">=20" } - query-string@9.2.2: + query-string@9.3.1: resolution: { - integrity: sha512-pDSIZJ9sFuOp6VnD+5IkakSVf+rICAuuU88Hcsr6AKL0QtxSIfVuKiVP2oahFI7tk3CRSexwV+Ya6MOoTxzg9g==, + integrity: sha512-5fBfMOcDi5SA9qj5jZhWAcTtDfKF5WFdd2uD9nVNlbxVv1baq65aALy6qofpNEGELHvisjjasxQp7BlM9gvMzw==, } engines: { node: ">=18" } @@ -9288,10 +9233,10 @@ packages: integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, } - quick-lru@7.1.0: + quick-lru@7.3.0: resolution: { - integrity: sha512-Pzd/4IFnTb8E+I1P5rbLQoqpUHcXKg48qTYKi4EANg+sTPwGFEMOcYGiiZz6xuQcOMZP7MPsrdAPx+16Q8qahg==, + integrity: sha512-k9lSsjl36EJdK7I06v7APZCbyGT2vMTsYSRX1Q2nbYmnkBqgUhRkAuzH08Ciotteu/PLJmIF2+tti7o3C/ts2g==, } engines: { node: ">=18" } @@ -9320,10 +9265,10 @@ packages: } engines: { node: ">= 0.6" } - raw-body@2.5.2: + raw-body@2.5.3: resolution: { - integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, + integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==, } engines: { node: ">= 0.8" } @@ -9376,10 +9321,10 @@ packages: react: ">=16.8.1" react-dom: ">=16.8.1" - react-i18next@15.7.1: + react-i18next@15.7.4: resolution: { - integrity: sha512-o4VsKh30fy7p0z5ACHuyWqB6xu9WpQIQy2/ZcbCqopNnrnTVOPn/nAv9uYP4xYAWg99QMpvZ9Bu/si3eGurzGw==, + integrity: sha512-nyU8iKNrI5uDJch0z9+Y5XEr34b0wkyYj3Rp+tfbahxtlswxSCjcUL9H0nqXo9IR3/t5Y5PKIA3fx3MfUyR9Xw==, } peerDependencies: i18next: ">= 23.4.0" @@ -9422,10 +9367,10 @@ packages: peerDependencies: react: "*" - react-international-phone@4.6.0: + react-international-phone@4.8.0: resolution: { - integrity: sha512-lzj5fLfACRKeaitggFIHWl6LM69aO2uivJbEVyVBjAe0+kkvZjToduqnK2/dm9Zu+l8XfVjd+Fn1ZAyG/t8XAg==, + integrity: sha512-PoyXx8t0OZNZXLupZN5UtmLb8nO6PQ6f6jQvYCAtg7VzxonuBcDs/4YA4+flqZZj5QOVqN4DLY1p39mEtJAwzw==, } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -9486,10 +9431,10 @@ packages: "@types/react": optional: true - react-remove-scroll@2.7.1: + react-remove-scroll@2.7.2: resolution: { - integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==, + integrity: sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==, } engines: { node: ">=10" } peerDependencies: @@ -9641,16 +9586,16 @@ packages: integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==, } - regex@6.0.1: + regex@6.1.0: resolution: { - integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==, + integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==, } - registry-auth-token@5.1.0: + registry-auth-token@5.1.1: resolution: { - integrity: sha512-GdekYuwLXLxMuFTwAPg5UKGLW/UXzQrZvH/Zj791BQif5T05T0RsaLfHc9q3ZOKi7n+BoprPD9mJ0O0k4xzUlw==, + integrity: sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==, } engines: { node: ">=14" } @@ -9743,10 +9688,10 @@ packages: integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==, } - resolve@1.22.10: + resolve@1.22.11: resolution: { - integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==, + integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==, } engines: { node: ">= 0.4" } hasBin: true @@ -9785,22 +9730,17 @@ packages: integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==, } - ripemd160@2.0.1: - resolution: - { - integrity: sha512-J7f4wutN8mdbV08MJnXibYpCOPHR+yzy+iQ/AsjMv2j8cLavQ8VGagDFUwwTAdF8FmRKVeNpbTTEwNHCW1g94w==, - } - - ripemd160@2.0.2: + ripemd160@2.0.3: resolution: { - integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==, + integrity: sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==, } + engines: { node: ">= 0.8" } - rollup@4.47.1: + rollup@4.59.0: resolution: { - integrity: sha512-iasGAQoZ5dWDzULEUX3jiW0oB1qyFOepSyDyoU6S/OhVlDIwj5knI5QBa5RRQ0sK7OE0v+8VIi2JuV+G+3tfNg==, + integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==, } engines: { node: ">=18.0.0", npm: ">=8.0.0" } hasBin: true @@ -9823,10 +9763,10 @@ packages: integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==, } - run-applescript@7.0.0: + run-applescript@7.1.0: resolution: { - integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==, + integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==, } engines: { node: ">=18" } @@ -9921,25 +9861,25 @@ packages: engines: { node: ">=10" } hasBin: true - semver@7.7.2: + semver@7.7.4: resolution: { - integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==, + integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==, } engines: { node: ">=10" } hasBin: true - send@0.19.0: + send@0.19.2: resolution: { - integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==, + integrity: sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==, } engines: { node: ">= 0.8.0" } - serve-static@1.16.2: + serve-static@1.16.3: resolution: { - integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==, + integrity: sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==, } engines: { node: ">= 0.8.0" } @@ -10050,10 +9990,10 @@ packages: } engines: { node: ^18.17.0 || >=20.5.0 } - sirv@3.0.1: + sirv@3.0.2: resolution: { - integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==, + integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==, } engines: { node: ">=18" } @@ -10077,10 +10017,10 @@ packages: } engines: { node: ">=12" } - slice-ansi@7.1.0: + slice-ansi@7.1.2: resolution: { - integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==, + integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==, } engines: { node: ">=18" } @@ -10166,10 +10106,10 @@ packages: integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, } - spdx-license-ids@3.0.22: + spdx-license-ids@3.0.23: resolution: { - integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==, + integrity: sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==, } speakingurl@14.0.1: @@ -10212,17 +10152,17 @@ packages: integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, } - statuses@2.0.1: + statuses@2.0.2: resolution: { - integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==, + integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==, } engines: { node: ">= 0.8" } - std-env@3.9.0: + std-env@3.10.0: resolution: { - integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==, + integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==, } stdin-discarder@0.2.2: @@ -10279,10 +10219,10 @@ packages: } engines: { node: ">=18" } - string-width@8.1.1: + string-width@8.2.0: resolution: { - integrity: sha512-KpqHIdDL9KwYk22wEOg/VIqYbrnLeSApsKT/bSj6Ez7pn3CftUiLAv2Lccpq1ALcpLV9UX1Ppn92npZWu2w/aw==, + integrity: sha512-6hJPQ8N0V0P3SNmP6h2J99RLuzrWz2gvT7VnK5tKvrNqJoyS9W4/Fb8mo31UiPvy00z7DQXkP2hnKBVav76thw==, } engines: { node: ">=20" } @@ -10311,10 +10251,10 @@ packages: } engines: { node: ">=8" } - strip-ansi@7.1.0: + strip-ansi@7.2.0: resolution: { - integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + integrity: sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==, } engines: { node: ">=12" } @@ -10353,10 +10293,10 @@ packages: } engines: { node: ">=8" } - strip-literal@3.0.0: + strip-literal@3.1.0: resolution: { - integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==, + integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==, } style-to-object@0.3.0: @@ -10365,10 +10305,10 @@ packages: integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==, } - sucrase@3.35.0: + sucrase@3.35.1: resolution: { - integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==, + integrity: sha512-DhuTmvZWux4H1UOnWMB3sk0sbaCVOoQZjv8u1rDoTV0HTdGem9hkAZtl4JZy8P2z4Bg0nT+YMeOFyVr4zcG5Tw==, } engines: { node: ">=16 || 14 >=14.17" } hasBin: true @@ -10379,10 +10319,10 @@ packages: integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==, } - superjson@2.2.2: + superjson@2.2.6: resolution: { - integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==, + integrity: sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==, } engines: { node: ">=16" } @@ -10413,10 +10353,10 @@ packages: integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, } - tabbable@6.2.0: + tabbable@6.4.0: resolution: { - integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==, + integrity: sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg==, } tailwind-merge@1.14.0: @@ -10425,16 +10365,16 @@ packages: integrity: sha512-3mFKyCo/MBcgyOTlrY8T7odzZFx+w+qKSMAmdFzRvqBfLlSigU6TZnlFHK0lkMwj9Bj8OYU+9yW9lmGuS0QEnQ==, } - tailwind-merge@2.6.0: + tailwind-merge@2.6.1: resolution: { - integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==, + integrity: sha512-Oo6tHdpZsGpkKG88HJ8RR1rg/RdnEkQEfMoEk2x1XRI3F1AxeU+ijRXpiVUF4UbLfcxxRGw6TbUINKYdWVsQTQ==, } - tailwindcss@3.4.17: + tailwindcss@3.4.19: resolution: { - integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==, + integrity: sha512-3ofp+LL8E+pK/JuPLPggVAIaEuhvIz4qNcf3nA1Xn2o/7fb7s/TYpHhwGDv1ZU3PkBluUVaF8PyCHcm48cKLWQ==, } engines: { node: ">=14.0.0" } hasBin: true @@ -10445,11 +10385,12 @@ packages: integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==, } engines: { node: ">=10" } + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - tar@7.4.3: + tar@7.5.9: resolution: { - integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==, + integrity: sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==, } engines: { node: ">=18" } @@ -10497,10 +10438,10 @@ packages: integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==, } - tinyglobby@0.2.14: + tinyglobby@0.2.15: resolution: { - integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==, + integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==, } engines: { node: ">=12.0.0" } @@ -10524,17 +10465,17 @@ packages: } engines: { node: ">=14.0.0" } - tinyspy@4.0.3: + tinyspy@4.0.4: resolution: { - integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==, + integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==, } engines: { node: ">=14.0.0" } - to-buffer@1.2.1: + to-buffer@1.2.2: resolution: { - integrity: sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==, + integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==, } engines: { node: ">= 0.4" } @@ -10623,23 +10564,6 @@ packages: integrity: sha512-M9MqFGZREyeb5fTl6gNHKZLqBQA0TjA1lea+CR48R8EBTDuWrNqW6ccC5QvjNR4s6wDumD3LTCjOFSp9iwlzaw==, } - ts-node@10.9.2: - resolution: - { - integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==, - } - hasBin: true - peerDependencies: - "@swc/core": ">=1.2.50" - "@swc/wasm": ">=1.2.50" - "@types/node": "*" - typescript: ">=2.7" - peerDependenciesMeta: - "@swc/core": - optional: true - "@swc/wasm": - optional: true - tslib@2.8.1: resolution: { @@ -10668,10 +10592,10 @@ packages: typescript: optional: true - tsx@4.20.4: + tsx@4.21.0: resolution: { - integrity: sha512-yyxBKfORQ7LuRt/BQKBXrpcq59ZvSW0XxwfjAt3w2/8PmdxaFzijtMhTawprSHhpzeM5BgU2hXHG3lklIERZXg==, + integrity: sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==, } engines: { node: ">=18.0.0" } hasBin: true @@ -10725,10 +10649,10 @@ packages: engines: { node: ">=14.17" } hasBin: true - typescript@5.9.2: + typescript@5.9.3: resolution: { - integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==, + integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==, } engines: { node: ">=14.17" } hasBin: true @@ -10739,10 +10663,10 @@ packages: integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==, } - ufo@1.6.1: + ufo@1.6.3: resolution: { - integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==, + integrity: sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==, } uglify-js@3.19.3: @@ -10774,10 +10698,10 @@ packages: integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==, } - undici@6.21.3: + undici@6.23.0: resolution: { - integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==, + integrity: sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==, } engines: { node: ">=18.17" } @@ -10826,10 +10750,10 @@ packages: integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==, } - unist-util-is@6.0.0: + unist-util-is@6.0.1: resolution: { - integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==, + integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==, } unist-util-position@3.1.0: @@ -10862,10 +10786,10 @@ packages: integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==, } - unist-util-visit-parents@6.0.1: + unist-util-visit-parents@6.0.2: resolution: { - integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==, + integrity: sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==, } unist-util-visit@2.0.3: @@ -10874,10 +10798,10 @@ packages: integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==, } - unist-util-visit@5.0.0: + unist-util-visit@5.1.0: resolution: { - integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==, + integrity: sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==, } universal-user-agent@6.0.1: @@ -10907,21 +10831,15 @@ packages: } engines: { node: ">= 0.8" } - update-browserslist-db@1.1.3: + update-browserslist-db@1.2.3: resolution: { - integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==, + integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==, } hasBin: true peerDependencies: browserslist: ">= 4.21.0" - uri-js@4.4.1: - resolution: - { - integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, - } - url-join@5.0.0: resolution: { @@ -11013,14 +10931,6 @@ packages: "@types/react": optional: true - use-sync-external-store@1.5.0: - resolution: - { - integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==, - } - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - use-sync-external-store@1.6.0: resolution: { @@ -11062,12 +10972,6 @@ packages: } hasBin: true - v8-compile-cache-lib@3.0.1: - resolution: - { - integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, - } - validate-npm-package-license@3.0.4: resolution: { @@ -11141,10 +11045,10 @@ packages: peerDependencies: vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - vite@5.4.19: + vite@5.4.21: resolution: { - integrity: sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==, + integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==, } engines: { node: ^18.0.0 || >=20.0.0 } hasBin: true @@ -11269,10 +11173,10 @@ packages: "@vue/composition-api": optional: true - vue@3.5.19: + vue@3.5.29: resolution: { - integrity: sha512-ZRh0HTmw6KChRYWgN8Ox/wi7VhpuGlvMPrHjIsdRbzKNgECFLzy+dKL5z9yGaBSjCpmcfJCbh3I1tNSRmBz2tg==, + integrity: sha512-BZqN4Ze6mDQVNAni0IHeMJ5mwr8VAJ3MQC9FmprRhcBYENw+wOAAjRj8jfmN6FLl0j96OXbR+CjWhmAmM+QGnA==, } peerDependencies: typescript: "*" @@ -11342,6 +11246,7 @@ packages: integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==, } engines: { node: ">=18" } + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-mimetype@3.0.0: resolution: @@ -11376,10 +11281,10 @@ packages: integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==, } - which-typed-array@1.1.19: + which-typed-array@1.1.20: resolution: { - integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==, + integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==, } engines: { node: ">= 0.4" } @@ -11427,13 +11332,6 @@ packages: } engines: { node: ">=12" } - wrap-ansi@9.0.0: - resolution: - { - integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==, - } - engines: { node: ">=18" } - wrap-ansi@9.0.2: resolution: { @@ -11454,10 +11352,10 @@ packages: } engines: { node: ^18.17.0 || >=20.5.0 } - ws@8.18.3: + ws@8.19.0: resolution: { - integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==, + integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==, } engines: { node: ">=10.0.0" } peerDependencies: @@ -11515,14 +11413,6 @@ packages: } engines: { node: ">=18" } - yaml@2.8.1: - resolution: - { - integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==, - } - engines: { node: ">= 14.6" } - hasBin: true - yaml@2.8.2: resolution: { @@ -11531,13 +11421,6 @@ packages: engines: { node: ">= 14.6" } hasBin: true - yn@3.1.1: - resolution: - { - integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, - } - engines: { node: ">=6" } - yocto-queue@0.1.0: resolution: { @@ -11565,10 +11448,10 @@ packages: integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==, } - zustand@5.0.8: + zustand@5.0.11: resolution: { - integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==, + integrity: sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg==, } engines: { node: ">=12.20.0" } peerDependencies: @@ -11599,153 +11482,148 @@ packages: } snapshots: - "@algolia/abtesting@1.1.0": + "@algolia/abtesting@1.15.1": dependencies: - "@algolia/client-common": 5.35.0 - "@algolia/requester-browser-xhr": 5.35.0 - "@algolia/requester-fetch": 5.35.0 - "@algolia/requester-node-http": 5.35.0 + "@algolia/client-common": 5.49.1 + "@algolia/requester-browser-xhr": 5.49.1 + "@algolia/requester-fetch": 5.49.1 + "@algolia/requester-node-http": 5.49.1 - "@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)(search-insights@2.17.3)": + "@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3)": dependencies: - "@algolia/autocomplete-plugin-algolia-insights": 1.17.7(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)(search-insights@2.17.3) - "@algolia/autocomplete-shared": 1.17.7(@algolia/client-search@5.35.0)(algoliasearch@5.35.0) + "@algolia/autocomplete-plugin-algolia-insights": 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3) + "@algolia/autocomplete-shared": 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1) transitivePeerDependencies: - "@algolia/client-search" - algoliasearch - search-insights - "@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)(search-insights@2.17.3)": + "@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3)": dependencies: - "@algolia/autocomplete-plugin-algolia-insights": 1.17.9(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)(search-insights@2.17.3) - "@algolia/autocomplete-shared": 1.17.9(@algolia/client-search@5.35.0)(algoliasearch@5.35.0) + "@algolia/autocomplete-plugin-algolia-insights": 1.17.9(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3) + "@algolia/autocomplete-shared": 1.17.9(@algolia/client-search@5.49.1)(algoliasearch@5.49.1) transitivePeerDependencies: - "@algolia/client-search" - algoliasearch - search-insights - "@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)(search-insights@2.17.3)": + "@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3)": dependencies: - "@algolia/autocomplete-shared": 1.17.7(@algolia/client-search@5.35.0)(algoliasearch@5.35.0) + "@algolia/autocomplete-shared": 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1) search-insights: 2.17.3 transitivePeerDependencies: - "@algolia/client-search" - algoliasearch - "@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)(search-insights@2.17.3)": + "@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3)": dependencies: - "@algolia/autocomplete-shared": 1.17.9(@algolia/client-search@5.35.0)(algoliasearch@5.35.0) + "@algolia/autocomplete-shared": 1.17.9(@algolia/client-search@5.49.1)(algoliasearch@5.49.1) search-insights: 2.17.3 transitivePeerDependencies: - "@algolia/client-search" - algoliasearch - "@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)": + "@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)": dependencies: - "@algolia/autocomplete-shared": 1.17.7(@algolia/client-search@5.35.0)(algoliasearch@5.35.0) - "@algolia/client-search": 5.35.0 - algoliasearch: 5.35.0 + "@algolia/autocomplete-shared": 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1) + "@algolia/client-search": 5.49.1 + algoliasearch: 5.49.1 - "@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)": + "@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)": dependencies: - "@algolia/autocomplete-shared": 1.17.9(@algolia/client-search@5.35.0)(algoliasearch@5.35.0) - "@algolia/client-search": 5.35.0 - algoliasearch: 5.35.0 + "@algolia/autocomplete-shared": 1.17.9(@algolia/client-search@5.49.1)(algoliasearch@5.49.1) + "@algolia/client-search": 5.49.1 + algoliasearch: 5.49.1 - "@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)": + "@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)": dependencies: - "@algolia/client-search": 5.35.0 - algoliasearch: 5.35.0 + "@algolia/client-search": 5.49.1 + algoliasearch: 5.49.1 - "@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)": + "@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)": dependencies: - "@algolia/client-search": 5.35.0 - algoliasearch: 5.35.0 + "@algolia/client-search": 5.49.1 + algoliasearch: 5.49.1 - "@algolia/client-abtesting@5.35.0": + "@algolia/client-abtesting@5.49.1": dependencies: - "@algolia/client-common": 5.35.0 - "@algolia/requester-browser-xhr": 5.35.0 - "@algolia/requester-fetch": 5.35.0 - "@algolia/requester-node-http": 5.35.0 + "@algolia/client-common": 5.49.1 + "@algolia/requester-browser-xhr": 5.49.1 + "@algolia/requester-fetch": 5.49.1 + "@algolia/requester-node-http": 5.49.1 - "@algolia/client-analytics@5.35.0": + "@algolia/client-analytics@5.49.1": dependencies: - "@algolia/client-common": 5.35.0 - "@algolia/requester-browser-xhr": 5.35.0 - "@algolia/requester-fetch": 5.35.0 - "@algolia/requester-node-http": 5.35.0 + "@algolia/client-common": 5.49.1 + "@algolia/requester-browser-xhr": 5.49.1 + "@algolia/requester-fetch": 5.49.1 + "@algolia/requester-node-http": 5.49.1 - "@algolia/client-common@5.35.0": {} + "@algolia/client-common@5.49.1": {} - "@algolia/client-insights@5.35.0": + "@algolia/client-insights@5.49.1": dependencies: - "@algolia/client-common": 5.35.0 - "@algolia/requester-browser-xhr": 5.35.0 - "@algolia/requester-fetch": 5.35.0 - "@algolia/requester-node-http": 5.35.0 + "@algolia/client-common": 5.49.1 + "@algolia/requester-browser-xhr": 5.49.1 + "@algolia/requester-fetch": 5.49.1 + "@algolia/requester-node-http": 5.49.1 - "@algolia/client-personalization@5.35.0": + "@algolia/client-personalization@5.49.1": dependencies: - "@algolia/client-common": 5.35.0 - "@algolia/requester-browser-xhr": 5.35.0 - "@algolia/requester-fetch": 5.35.0 - "@algolia/requester-node-http": 5.35.0 + "@algolia/client-common": 5.49.1 + "@algolia/requester-browser-xhr": 5.49.1 + "@algolia/requester-fetch": 5.49.1 + "@algolia/requester-node-http": 5.49.1 - "@algolia/client-query-suggestions@5.35.0": + "@algolia/client-query-suggestions@5.49.1": dependencies: - "@algolia/client-common": 5.35.0 - "@algolia/requester-browser-xhr": 5.35.0 - "@algolia/requester-fetch": 5.35.0 - "@algolia/requester-node-http": 5.35.0 + "@algolia/client-common": 5.49.1 + "@algolia/requester-browser-xhr": 5.49.1 + "@algolia/requester-fetch": 5.49.1 + "@algolia/requester-node-http": 5.49.1 - "@algolia/client-search@5.35.0": + "@algolia/client-search@5.49.1": dependencies: - "@algolia/client-common": 5.35.0 - "@algolia/requester-browser-xhr": 5.35.0 - "@algolia/requester-fetch": 5.35.0 - "@algolia/requester-node-http": 5.35.0 + "@algolia/client-common": 5.49.1 + "@algolia/requester-browser-xhr": 5.49.1 + "@algolia/requester-fetch": 5.49.1 + "@algolia/requester-node-http": 5.49.1 - "@algolia/ingestion@1.35.0": + "@algolia/ingestion@1.49.1": dependencies: - "@algolia/client-common": 5.35.0 - "@algolia/requester-browser-xhr": 5.35.0 - "@algolia/requester-fetch": 5.35.0 - "@algolia/requester-node-http": 5.35.0 + "@algolia/client-common": 5.49.1 + "@algolia/requester-browser-xhr": 5.49.1 + "@algolia/requester-fetch": 5.49.1 + "@algolia/requester-node-http": 5.49.1 - "@algolia/monitoring@1.35.0": + "@algolia/monitoring@1.49.1": dependencies: - "@algolia/client-common": 5.35.0 - "@algolia/requester-browser-xhr": 5.35.0 - "@algolia/requester-fetch": 5.35.0 - "@algolia/requester-node-http": 5.35.0 + "@algolia/client-common": 5.49.1 + "@algolia/requester-browser-xhr": 5.49.1 + "@algolia/requester-fetch": 5.49.1 + "@algolia/requester-node-http": 5.49.1 - "@algolia/recommend@5.35.0": + "@algolia/recommend@5.49.1": dependencies: - "@algolia/client-common": 5.35.0 - "@algolia/requester-browser-xhr": 5.35.0 - "@algolia/requester-fetch": 5.35.0 - "@algolia/requester-node-http": 5.35.0 + "@algolia/client-common": 5.49.1 + "@algolia/requester-browser-xhr": 5.49.1 + "@algolia/requester-fetch": 5.49.1 + "@algolia/requester-node-http": 5.49.1 - "@algolia/requester-browser-xhr@5.35.0": + "@algolia/requester-browser-xhr@5.49.1": dependencies: - "@algolia/client-common": 5.35.0 + "@algolia/client-common": 5.49.1 - "@algolia/requester-fetch@5.35.0": + "@algolia/requester-fetch@5.49.1": dependencies: - "@algolia/client-common": 5.35.0 + "@algolia/client-common": 5.49.1 - "@algolia/requester-node-http@5.35.0": + "@algolia/requester-node-http@5.49.1": dependencies: - "@algolia/client-common": 5.35.0 + "@algolia/client-common": 5.49.1 "@alloc/quick-lru@5.2.0": {} - "@ampproject/remapping@2.3.0": - dependencies: - "@jridgewell/gen-mapping": 0.3.13 - "@jridgewell/trace-mapping": 0.3.30 - "@asamuzakjp/css-color@3.2.0": dependencies: "@csstools/css-calc": 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) @@ -11754,129 +11632,127 @@ snapshots: "@csstools/css-tokenizer": 3.0.4 lru-cache: 10.4.3 - "@babel/code-frame@7.27.1": + "@babel/code-frame@7.29.0": dependencies: - "@babel/helper-validator-identifier": 7.27.1 + "@babel/helper-validator-identifier": 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - "@babel/compat-data@7.28.0": {} + "@babel/compat-data@7.29.0": {} - "@babel/core@7.28.3": + "@babel/core@7.29.0": dependencies: - "@ampproject/remapping": 2.3.0 - "@babel/code-frame": 7.27.1 - "@babel/generator": 7.28.3 - "@babel/helper-compilation-targets": 7.27.2 - "@babel/helper-module-transforms": 7.28.3(@babel/core@7.28.3) - "@babel/helpers": 7.28.3 - "@babel/parser": 7.28.3 - "@babel/template": 7.27.2 - "@babel/traverse": 7.28.3 - "@babel/types": 7.28.2 + "@babel/code-frame": 7.29.0 + "@babel/generator": 7.29.1 + "@babel/helper-compilation-targets": 7.28.6 + "@babel/helper-module-transforms": 7.28.6(@babel/core@7.29.0) + "@babel/helpers": 7.28.6 + "@babel/parser": 7.29.0 + "@babel/template": 7.28.6 + "@babel/traverse": 7.29.0 + "@babel/types": 7.29.0 + "@jridgewell/remapping": 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.1 + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - "@babel/generator@7.28.3": + "@babel/generator@7.29.1": dependencies: - "@babel/parser": 7.28.3 - "@babel/types": 7.28.2 + "@babel/parser": 7.29.0 + "@babel/types": 7.29.0 "@jridgewell/gen-mapping": 0.3.13 - "@jridgewell/trace-mapping": 0.3.30 + "@jridgewell/trace-mapping": 0.3.31 jsesc: 3.1.0 - "@babel/helper-compilation-targets@7.27.2": + "@babel/helper-compilation-targets@7.28.6": dependencies: - "@babel/compat-data": 7.28.0 + "@babel/compat-data": 7.29.0 "@babel/helper-validator-option": 7.27.1 - browserslist: 4.25.3 + browserslist: 4.28.1 lru-cache: 5.1.1 semver: 6.3.1 "@babel/helper-globals@7.28.0": {} - "@babel/helper-module-imports@7.27.1": + "@babel/helper-module-imports@7.28.6": dependencies: - "@babel/traverse": 7.28.3 - "@babel/types": 7.28.2 + "@babel/traverse": 7.29.0 + "@babel/types": 7.29.0 transitivePeerDependencies: - supports-color - "@babel/helper-module-transforms@7.28.3(@babel/core@7.28.3)": + "@babel/helper-module-transforms@7.28.6(@babel/core@7.29.0)": dependencies: - "@babel/core": 7.28.3 - "@babel/helper-module-imports": 7.27.1 - "@babel/helper-validator-identifier": 7.27.1 - "@babel/traverse": 7.28.3 + "@babel/core": 7.29.0 + "@babel/helper-module-imports": 7.28.6 + "@babel/helper-validator-identifier": 7.28.5 + "@babel/traverse": 7.29.0 transitivePeerDependencies: - supports-color - "@babel/helper-plugin-utils@7.27.1": {} + "@babel/helper-plugin-utils@7.28.6": {} "@babel/helper-string-parser@7.27.1": {} - "@babel/helper-validator-identifier@7.27.1": {} + "@babel/helper-validator-identifier@7.28.5": {} "@babel/helper-validator-option@7.27.1": {} - "@babel/helpers@7.28.3": + "@babel/helpers@7.28.6": dependencies: - "@babel/template": 7.27.2 - "@babel/types": 7.28.2 + "@babel/template": 7.28.6 + "@babel/types": 7.29.0 - "@babel/parser@7.28.3": + "@babel/parser@7.29.0": dependencies: - "@babel/types": 7.28.2 + "@babel/types": 7.29.0 - "@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.3)": + "@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.29.0)": dependencies: - "@babel/core": 7.28.3 - "@babel/helper-plugin-utils": 7.27.1 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.28.6 - "@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.3)": + "@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.29.0)": dependencies: - "@babel/core": 7.28.3 - "@babel/helper-plugin-utils": 7.27.1 + "@babel/core": 7.29.0 + "@babel/helper-plugin-utils": 7.28.6 - "@babel/runtime-corejs3@7.28.3": + "@babel/runtime-corejs3@7.29.0": dependencies: - core-js-pure: 3.45.1 - - "@babel/runtime@7.28.3": {} + core-js-pure: 3.48.0 "@babel/runtime@7.28.6": {} - "@babel/template@7.27.2": + "@babel/template@7.28.6": dependencies: - "@babel/code-frame": 7.27.1 - "@babel/parser": 7.28.3 - "@babel/types": 7.28.2 + "@babel/code-frame": 7.29.0 + "@babel/parser": 7.29.0 + "@babel/types": 7.29.0 - "@babel/traverse@7.28.3": + "@babel/traverse@7.29.0": dependencies: - "@babel/code-frame": 7.27.1 - "@babel/generator": 7.28.3 + "@babel/code-frame": 7.29.0 + "@babel/generator": 7.29.1 "@babel/helper-globals": 7.28.0 - "@babel/parser": 7.28.3 - "@babel/template": 7.27.2 - "@babel/types": 7.28.2 - debug: 4.4.1 + "@babel/parser": 7.29.0 + "@babel/template": 7.28.6 + "@babel/types": 7.29.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color - "@babel/types@7.28.2": + "@babel/types@7.29.0": dependencies: "@babel/helper-string-parser": 7.27.1 - "@babel/helper-validator-identifier": 7.27.1 + "@babel/helper-validator-identifier": 7.28.5 "@capsizecss/core@4.1.3": dependencies: - csstype: 3.1.3 + csstype: 3.2.3 "@capsizecss/metrics@3.6.2": {} @@ -11890,11 +11766,6 @@ snapshots: "@croct/json@2.1.0": {} - "@cspotcode/source-map-support@0.8.1": - dependencies: - "@jridgewell/trace-mapping": 0.3.9 - optional: true - "@csstools/color-helpers@5.1.0": {} "@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)": @@ -11956,17 +11827,17 @@ snapshots: "@dnd-kit/state@0.1.21": dependencies: - "@preact/signals-core": 1.12.0 + "@preact/signals-core": 1.13.0 tslib: 2.8.1 "@docsearch/css@3.8.2": {} "@docsearch/css@3.9.0": {} - "@docsearch/js@3.8.2(@algolia/client-search@5.35.0)(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)": + "@docsearch/js@3.8.2(@algolia/client-search@5.49.1)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)": dependencies: - "@docsearch/react": 3.8.2(@algolia/client-search@5.35.0)(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) - preact: 10.27.1 + "@docsearch/react": 3.8.2(@algolia/client-search@5.49.1)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) + preact: 10.28.4 transitivePeerDependencies: - "@algolia/client-search" - "@types/react" @@ -11974,10 +11845,10 @@ snapshots: - react-dom - search-insights - "@docsearch/js@3.9.0(@algolia/client-search@5.35.0)(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)": + "@docsearch/js@3.9.0(@algolia/client-search@5.49.1)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)": dependencies: - "@docsearch/react": 3.9.0(@algolia/client-search@5.35.0)(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) - preact: 10.27.1 + "@docsearch/react": 3.9.0(@algolia/client-search@5.49.1)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) + preact: 10.28.4 transitivePeerDependencies: - "@algolia/client-search" - "@types/react" @@ -11985,28 +11856,28 @@ snapshots: - react-dom - search-insights - "@docsearch/react@3.8.2(@algolia/client-search@5.35.0)(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)": + "@docsearch/react@3.8.2(@algolia/client-search@5.49.1)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)": dependencies: - "@algolia/autocomplete-core": 1.17.7(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)(search-insights@2.17.3) - "@algolia/autocomplete-preset-algolia": 1.17.7(@algolia/client-search@5.35.0)(algoliasearch@5.35.0) + "@algolia/autocomplete-core": 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3) + "@algolia/autocomplete-preset-algolia": 1.17.7(@algolia/client-search@5.49.1)(algoliasearch@5.49.1) "@docsearch/css": 3.8.2 - algoliasearch: 5.35.0 + algoliasearch: 5.49.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) search-insights: 2.17.3 transitivePeerDependencies: - "@algolia/client-search" - "@docsearch/react@3.9.0(@algolia/client-search@5.35.0)(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)": + "@docsearch/react@3.9.0(@algolia/client-search@5.49.1)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)": dependencies: - "@algolia/autocomplete-core": 1.17.9(@algolia/client-search@5.35.0)(algoliasearch@5.35.0)(search-insights@2.17.3) - "@algolia/autocomplete-preset-algolia": 1.17.9(@algolia/client-search@5.35.0)(algoliasearch@5.35.0) + "@algolia/autocomplete-core": 1.17.9(@algolia/client-search@5.49.1)(algoliasearch@5.49.1)(search-insights@2.17.3) + "@algolia/autocomplete-preset-algolia": 1.17.9(@algolia/client-search@5.49.1)(algoliasearch@5.49.1) "@docsearch/css": 3.9.0 - algoliasearch: 5.35.0 + algoliasearch: 5.49.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) search-insights: 2.17.3 @@ -12019,7 +11890,7 @@ snapshots: "@esbuild/aix-ppc64@0.24.2": optional: true - "@esbuild/aix-ppc64@0.25.9": + "@esbuild/aix-ppc64@0.27.3": optional: true "@esbuild/android-arm64@0.21.5": @@ -12028,7 +11899,7 @@ snapshots: "@esbuild/android-arm64@0.24.2": optional: true - "@esbuild/android-arm64@0.25.9": + "@esbuild/android-arm64@0.27.3": optional: true "@esbuild/android-arm@0.21.5": @@ -12037,7 +11908,7 @@ snapshots: "@esbuild/android-arm@0.24.2": optional: true - "@esbuild/android-arm@0.25.9": + "@esbuild/android-arm@0.27.3": optional: true "@esbuild/android-x64@0.21.5": @@ -12046,7 +11917,7 @@ snapshots: "@esbuild/android-x64@0.24.2": optional: true - "@esbuild/android-x64@0.25.9": + "@esbuild/android-x64@0.27.3": optional: true "@esbuild/darwin-arm64@0.21.5": @@ -12055,7 +11926,7 @@ snapshots: "@esbuild/darwin-arm64@0.24.2": optional: true - "@esbuild/darwin-arm64@0.25.9": + "@esbuild/darwin-arm64@0.27.3": optional: true "@esbuild/darwin-x64@0.21.5": @@ -12064,7 +11935,7 @@ snapshots: "@esbuild/darwin-x64@0.24.2": optional: true - "@esbuild/darwin-x64@0.25.9": + "@esbuild/darwin-x64@0.27.3": optional: true "@esbuild/freebsd-arm64@0.21.5": @@ -12073,7 +11944,7 @@ snapshots: "@esbuild/freebsd-arm64@0.24.2": optional: true - "@esbuild/freebsd-arm64@0.25.9": + "@esbuild/freebsd-arm64@0.27.3": optional: true "@esbuild/freebsd-x64@0.21.5": @@ -12082,7 +11953,7 @@ snapshots: "@esbuild/freebsd-x64@0.24.2": optional: true - "@esbuild/freebsd-x64@0.25.9": + "@esbuild/freebsd-x64@0.27.3": optional: true "@esbuild/linux-arm64@0.21.5": @@ -12091,7 +11962,7 @@ snapshots: "@esbuild/linux-arm64@0.24.2": optional: true - "@esbuild/linux-arm64@0.25.9": + "@esbuild/linux-arm64@0.27.3": optional: true "@esbuild/linux-arm@0.21.5": @@ -12100,7 +11971,7 @@ snapshots: "@esbuild/linux-arm@0.24.2": optional: true - "@esbuild/linux-arm@0.25.9": + "@esbuild/linux-arm@0.27.3": optional: true "@esbuild/linux-ia32@0.21.5": @@ -12109,7 +11980,7 @@ snapshots: "@esbuild/linux-ia32@0.24.2": optional: true - "@esbuild/linux-ia32@0.25.9": + "@esbuild/linux-ia32@0.27.3": optional: true "@esbuild/linux-loong64@0.21.5": @@ -12118,7 +11989,7 @@ snapshots: "@esbuild/linux-loong64@0.24.2": optional: true - "@esbuild/linux-loong64@0.25.9": + "@esbuild/linux-loong64@0.27.3": optional: true "@esbuild/linux-mips64el@0.21.5": @@ -12127,7 +11998,7 @@ snapshots: "@esbuild/linux-mips64el@0.24.2": optional: true - "@esbuild/linux-mips64el@0.25.9": + "@esbuild/linux-mips64el@0.27.3": optional: true "@esbuild/linux-ppc64@0.21.5": @@ -12136,7 +12007,7 @@ snapshots: "@esbuild/linux-ppc64@0.24.2": optional: true - "@esbuild/linux-ppc64@0.25.9": + "@esbuild/linux-ppc64@0.27.3": optional: true "@esbuild/linux-riscv64@0.21.5": @@ -12145,7 +12016,7 @@ snapshots: "@esbuild/linux-riscv64@0.24.2": optional: true - "@esbuild/linux-riscv64@0.25.9": + "@esbuild/linux-riscv64@0.27.3": optional: true "@esbuild/linux-s390x@0.21.5": @@ -12154,7 +12025,7 @@ snapshots: "@esbuild/linux-s390x@0.24.2": optional: true - "@esbuild/linux-s390x@0.25.9": + "@esbuild/linux-s390x@0.27.3": optional: true "@esbuild/linux-x64@0.21.5": @@ -12163,13 +12034,13 @@ snapshots: "@esbuild/linux-x64@0.24.2": optional: true - "@esbuild/linux-x64@0.25.9": + "@esbuild/linux-x64@0.27.3": optional: true "@esbuild/netbsd-arm64@0.24.2": optional: true - "@esbuild/netbsd-arm64@0.25.9": + "@esbuild/netbsd-arm64@0.27.3": optional: true "@esbuild/netbsd-x64@0.21.5": @@ -12178,13 +12049,13 @@ snapshots: "@esbuild/netbsd-x64@0.24.2": optional: true - "@esbuild/netbsd-x64@0.25.9": + "@esbuild/netbsd-x64@0.27.3": optional: true "@esbuild/openbsd-arm64@0.24.2": optional: true - "@esbuild/openbsd-arm64@0.25.9": + "@esbuild/openbsd-arm64@0.27.3": optional: true "@esbuild/openbsd-x64@0.21.5": @@ -12193,10 +12064,10 @@ snapshots: "@esbuild/openbsd-x64@0.24.2": optional: true - "@esbuild/openbsd-x64@0.25.9": + "@esbuild/openbsd-x64@0.27.3": optional: true - "@esbuild/openharmony-arm64@0.25.9": + "@esbuild/openharmony-arm64@0.27.3": optional: true "@esbuild/sunos-x64@0.21.5": @@ -12205,7 +12076,7 @@ snapshots: "@esbuild/sunos-x64@0.24.2": optional: true - "@esbuild/sunos-x64@0.25.9": + "@esbuild/sunos-x64@0.27.3": optional: true "@esbuild/win32-arm64@0.21.5": @@ -12214,7 +12085,7 @@ snapshots: "@esbuild/win32-arm64@0.24.2": optional: true - "@esbuild/win32-arm64@0.25.9": + "@esbuild/win32-arm64@0.27.3": optional: true "@esbuild/win32-ia32@0.21.5": @@ -12223,7 +12094,7 @@ snapshots: "@esbuild/win32-ia32@0.24.2": optional: true - "@esbuild/win32-ia32@0.25.9": + "@esbuild/win32-ia32@0.27.3": optional: true "@esbuild/win32-x64@0.21.5": @@ -12232,37 +12103,37 @@ snapshots: "@esbuild/win32-x64@0.24.2": optional: true - "@esbuild/win32-x64@0.25.9": + "@esbuild/win32-x64@0.27.3": optional: true - "@floating-ui/core@1.7.3": + "@floating-ui/core@1.7.4": dependencies: "@floating-ui/utils": 0.2.10 - "@floating-ui/dom@1.7.4": + "@floating-ui/dom@1.7.5": dependencies: - "@floating-ui/core": 1.7.3 + "@floating-ui/core": 1.7.4 "@floating-ui/utils": 0.2.10 - "@floating-ui/react-dom@2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@floating-ui/react-dom@2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@floating-ui/dom": 1.7.4 + "@floating-ui/dom": 1.7.5 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) "@floating-ui/react@0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@floating-ui/react-dom": 2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@floating-ui/react-dom": 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@floating-ui/utils": 0.2.10 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - tabbable: 6.2.0 + tabbable: 6.4.0 "@floating-ui/utils@0.2.10": {} "@headlessui/react@1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@tanstack/react-virtual": 3.13.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@tanstack/react-virtual": 3.13.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) client-only: 0.0.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -12271,7 +12142,7 @@ snapshots: dependencies: react: 18.3.1 - "@iconify-json/simple-icons@1.2.48": + "@iconify-json/simple-icons@1.2.71": dependencies: "@iconify/types": 2.0.0 @@ -12283,198 +12154,187 @@ snapshots: "@inquirer/ansi@2.0.3": {} - "@inquirer/checkbox@5.0.4(@types/node@20.19.11)": + "@inquirer/checkbox@5.1.0(@types/node@20.19.34)": dependencies: "@inquirer/ansi": 2.0.3 - "@inquirer/core": 11.1.1(@types/node@20.19.11) + "@inquirer/core": 11.1.5(@types/node@20.19.34) "@inquirer/figures": 2.0.3 - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/type": 4.0.3(@types/node@20.19.34) optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@inquirer/confirm@6.0.4(@types/node@20.19.11)": + "@inquirer/confirm@6.0.8(@types/node@20.19.34)": dependencies: - "@inquirer/core": 11.1.1(@types/node@20.19.11) - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/core": 11.1.5(@types/node@20.19.34) + "@inquirer/type": 4.0.3(@types/node@20.19.34) optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@inquirer/core@11.1.1(@types/node@20.19.11)": + "@inquirer/core@11.1.5(@types/node@20.19.34)": dependencies: "@inquirer/ansi": 2.0.3 "@inquirer/figures": 2.0.3 - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/type": 4.0.3(@types/node@20.19.34) cli-width: 4.1.0 + fast-wrap-ansi: 0.2.0 mute-stream: 3.0.0 signal-exit: 4.1.0 - wrap-ansi: 9.0.2 optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@inquirer/editor@5.0.4(@types/node@20.19.11)": + "@inquirer/editor@5.0.8(@types/node@20.19.34)": dependencies: - "@inquirer/core": 11.1.1(@types/node@20.19.11) - "@inquirer/external-editor": 2.0.3(@types/node@20.19.11) - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/core": 11.1.5(@types/node@20.19.34) + "@inquirer/external-editor": 2.0.3(@types/node@20.19.34) + "@inquirer/type": 4.0.3(@types/node@20.19.34) optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@inquirer/expand@5.0.4(@types/node@20.19.11)": + "@inquirer/expand@5.0.8(@types/node@20.19.34)": dependencies: - "@inquirer/core": 11.1.1(@types/node@20.19.11) - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/core": 11.1.5(@types/node@20.19.34) + "@inquirer/type": 4.0.3(@types/node@20.19.34) optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@inquirer/external-editor@2.0.3(@types/node@20.19.11)": + "@inquirer/external-editor@2.0.3(@types/node@20.19.34)": dependencies: chardet: 2.1.1 iconv-lite: 0.7.2 optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 "@inquirer/figures@2.0.3": {} - "@inquirer/input@5.0.4(@types/node@20.19.11)": + "@inquirer/input@5.0.8(@types/node@20.19.34)": dependencies: - "@inquirer/core": 11.1.1(@types/node@20.19.11) - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/core": 11.1.5(@types/node@20.19.34) + "@inquirer/type": 4.0.3(@types/node@20.19.34) optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@inquirer/number@4.0.4(@types/node@20.19.11)": + "@inquirer/number@4.0.8(@types/node@20.19.34)": dependencies: - "@inquirer/core": 11.1.1(@types/node@20.19.11) - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/core": 11.1.5(@types/node@20.19.34) + "@inquirer/type": 4.0.3(@types/node@20.19.34) optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@inquirer/password@5.0.4(@types/node@20.19.11)": + "@inquirer/password@5.0.8(@types/node@20.19.34)": dependencies: "@inquirer/ansi": 2.0.3 - "@inquirer/core": 11.1.1(@types/node@20.19.11) - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/core": 11.1.5(@types/node@20.19.34) + "@inquirer/type": 4.0.3(@types/node@20.19.34) optionalDependencies: - "@types/node": 20.19.11 - - "@inquirer/prompts@8.2.0(@types/node@20.19.11)": - dependencies: - "@inquirer/checkbox": 5.0.4(@types/node@20.19.11) - "@inquirer/confirm": 6.0.4(@types/node@20.19.11) - "@inquirer/editor": 5.0.4(@types/node@20.19.11) - "@inquirer/expand": 5.0.4(@types/node@20.19.11) - "@inquirer/input": 5.0.4(@types/node@20.19.11) - "@inquirer/number": 4.0.4(@types/node@20.19.11) - "@inquirer/password": 5.0.4(@types/node@20.19.11) - "@inquirer/rawlist": 5.2.0(@types/node@20.19.11) - "@inquirer/search": 4.1.0(@types/node@20.19.11) - "@inquirer/select": 5.0.4(@types/node@20.19.11) + "@types/node": 20.19.34 + + "@inquirer/prompts@8.3.0(@types/node@20.19.34)": + dependencies: + "@inquirer/checkbox": 5.1.0(@types/node@20.19.34) + "@inquirer/confirm": 6.0.8(@types/node@20.19.34) + "@inquirer/editor": 5.0.8(@types/node@20.19.34) + "@inquirer/expand": 5.0.8(@types/node@20.19.34) + "@inquirer/input": 5.0.8(@types/node@20.19.34) + "@inquirer/number": 4.0.8(@types/node@20.19.34) + "@inquirer/password": 5.0.8(@types/node@20.19.34) + "@inquirer/rawlist": 5.2.4(@types/node@20.19.34) + "@inquirer/search": 4.1.4(@types/node@20.19.34) + "@inquirer/select": 5.1.0(@types/node@20.19.34) optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@inquirer/rawlist@5.2.0(@types/node@20.19.11)": + "@inquirer/rawlist@5.2.4(@types/node@20.19.34)": dependencies: - "@inquirer/core": 11.1.1(@types/node@20.19.11) - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/core": 11.1.5(@types/node@20.19.34) + "@inquirer/type": 4.0.3(@types/node@20.19.34) optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@inquirer/search@4.1.0(@types/node@20.19.11)": + "@inquirer/search@4.1.4(@types/node@20.19.34)": dependencies: - "@inquirer/core": 11.1.1(@types/node@20.19.11) + "@inquirer/core": 11.1.5(@types/node@20.19.34) "@inquirer/figures": 2.0.3 - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/type": 4.0.3(@types/node@20.19.34) optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@inquirer/select@5.0.4(@types/node@20.19.11)": + "@inquirer/select@5.1.0(@types/node@20.19.34)": dependencies: "@inquirer/ansi": 2.0.3 - "@inquirer/core": 11.1.1(@types/node@20.19.11) + "@inquirer/core": 11.1.5(@types/node@20.19.34) "@inquirer/figures": 2.0.3 - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/type": 4.0.3(@types/node@20.19.34) optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@inquirer/type@4.0.3(@types/node@20.19.11)": + "@inquirer/type@4.0.3(@types/node@20.19.34)": optionalDependencies: - "@types/node": 20.19.11 - - "@isaacs/balanced-match@4.0.1": {} - - "@isaacs/brace-expansion@5.0.0": - dependencies: - "@isaacs/balanced-match": 4.0.1 - - "@isaacs/brace-expansion@5.0.1": - dependencies: - "@isaacs/balanced-match": 4.0.1 + "@types/node": 20.19.34 "@isaacs/cliui@8.0.2": dependencies: string-width: 5.1.2 string-width-cjs: string-width@4.2.3 - strip-ansi: 7.1.0 + strip-ansi: 7.2.0 strip-ansi-cjs: strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 "@isaacs/fs-minipass@4.0.1": dependencies: - minipass: 7.1.2 + minipass: 7.1.3 "@isaacs/string-locale-compare@1.1.0": {} "@jest/diff-sequences@30.0.1": {} - "@jest/expect-utils@30.0.5": + "@jest/expect-utils@30.2.0": dependencies: - "@jest/get-type": 30.0.1 + "@jest/get-type": 30.1.0 - "@jest/get-type@30.0.1": {} + "@jest/get-type@30.1.0": {} "@jest/pattern@30.0.1": dependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 jest-regex-util: 30.0.1 "@jest/schemas@29.6.3": dependencies: - "@sinclair/typebox": 0.27.8 + "@sinclair/typebox": 0.27.10 "@jest/schemas@30.0.5": dependencies: - "@sinclair/typebox": 0.34.40 + "@sinclair/typebox": 0.34.48 - "@jest/types@30.0.5": + "@jest/types@30.2.0": dependencies: "@jest/pattern": 30.0.1 "@jest/schemas": 30.0.5 "@types/istanbul-lib-coverage": 2.0.6 "@types/istanbul-reports": 3.0.4 - "@types/node": 20.19.11 - "@types/yargs": 17.0.33 + "@types/node": 20.19.34 + "@types/yargs": 17.0.35 chalk: 4.1.2 "@jridgewell/gen-mapping@0.3.13": dependencies: "@jridgewell/sourcemap-codec": 1.5.5 - "@jridgewell/trace-mapping": 0.3.30 + "@jridgewell/trace-mapping": 0.3.31 + + "@jridgewell/remapping@2.3.5": + dependencies: + "@jridgewell/gen-mapping": 0.3.13 + "@jridgewell/trace-mapping": 0.3.31 "@jridgewell/resolve-uri@3.1.2": {} "@jridgewell/sourcemap-codec@1.5.5": {} - "@jridgewell/trace-mapping@0.3.30": - dependencies: - "@jridgewell/resolve-uri": 3.1.2 - "@jridgewell/sourcemap-codec": 1.5.5 - - "@jridgewell/trace-mapping@0.3.9": + "@jridgewell/trace-mapping@0.3.31": dependencies: "@jridgewell/resolve-uri": 3.1.2 "@jridgewell/sourcemap-codec": 1.5.5 - optional: true "@jsdevtools/ez-spawn@3.0.4": dependencies: @@ -12483,7 +12343,7 @@ snapshots: string-argv: 0.3.2 type-detect: 4.1.0 - "@mantine/core@7.17.8(@mantine/hooks@7.17.8(react@18.3.1))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@mantine/core@7.17.8(@mantine/hooks@7.17.8(react@18.3.1))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@floating-ui/react": 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1) "@mantine/hooks": 7.17.8(react@18.3.1) @@ -12491,8 +12351,8 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-number-format: 5.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.24)(react@18.3.1) - react-textarea-autosize: 8.5.9(@types/react@18.3.24)(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.28)(react@18.3.1) + react-textarea-autosize: 8.5.9(@types/react@18.3.28)(react@18.3.1) type-fest: 4.41.0 transitivePeerDependencies: - "@types/react" @@ -12522,52 +12382,53 @@ snapshots: "@mapbox/whoots-js@3.1.0": {} - "@microsoft/api-documenter@7.26.32(@types/node@20.19.11)": + "@microsoft/api-documenter@7.29.6(@types/node@20.19.34)": dependencies: - "@microsoft/api-extractor-model": 7.30.7(@types/node@20.19.11) - "@microsoft/tsdoc": 0.15.1 - "@rushstack/node-core-library": 5.14.0(@types/node@20.19.11) - "@rushstack/terminal": 0.15.4(@types/node@20.19.11) - "@rushstack/ts-command-line": 5.0.2(@types/node@20.19.11) - js-yaml: 3.13.1 - resolve: 1.22.10 + "@microsoft/api-extractor-model": 7.33.4(@types/node@20.19.34) + "@microsoft/tsdoc": 0.16.0 + "@rushstack/node-core-library": 5.20.3(@types/node@20.19.34) + "@rushstack/terminal": 0.22.3(@types/node@20.19.34) + "@rushstack/ts-command-line": 5.3.3(@types/node@20.19.34) + js-yaml: 4.1.1 + resolve: 1.22.11 transitivePeerDependencies: - "@types/node" - "@microsoft/api-extractor-model@7.30.7(@types/node@20.19.11)": + "@microsoft/api-extractor-model@7.33.4(@types/node@20.19.34)": dependencies: - "@microsoft/tsdoc": 0.15.1 - "@microsoft/tsdoc-config": 0.17.1 - "@rushstack/node-core-library": 5.14.0(@types/node@20.19.11) + "@microsoft/tsdoc": 0.16.0 + "@microsoft/tsdoc-config": 0.18.1 + "@rushstack/node-core-library": 5.20.3(@types/node@20.19.34) transitivePeerDependencies: - "@types/node" - "@microsoft/api-extractor@7.52.11(@types/node@20.19.11)": - dependencies: - "@microsoft/api-extractor-model": 7.30.7(@types/node@20.19.11) - "@microsoft/tsdoc": 0.15.1 - "@microsoft/tsdoc-config": 0.17.1 - "@rushstack/node-core-library": 5.14.0(@types/node@20.19.11) - "@rushstack/rig-package": 0.5.3 - "@rushstack/terminal": 0.15.4(@types/node@20.19.11) - "@rushstack/ts-command-line": 5.0.2(@types/node@20.19.11) - lodash: 4.17.21 - minimatch: 10.0.3 - resolve: 1.22.10 + "@microsoft/api-extractor@7.57.6(@types/node@20.19.34)": + dependencies: + "@microsoft/api-extractor-model": 7.33.4(@types/node@20.19.34) + "@microsoft/tsdoc": 0.16.0 + "@microsoft/tsdoc-config": 0.18.1 + "@rushstack/node-core-library": 5.20.3(@types/node@20.19.34) + "@rushstack/rig-package": 0.7.2 + "@rushstack/terminal": 0.22.3(@types/node@20.19.34) + "@rushstack/ts-command-line": 5.3.3(@types/node@20.19.34) + diff: 8.0.3 + lodash: 4.17.23 + minimatch: 10.2.1 + resolve: 1.22.11 semver: 7.5.4 source-map: 0.6.1 typescript: 5.8.2 transitivePeerDependencies: - "@types/node" - "@microsoft/tsdoc-config@0.17.1": + "@microsoft/tsdoc-config@0.18.1": dependencies: - "@microsoft/tsdoc": 0.15.1 - ajv: 8.12.0 + "@microsoft/tsdoc": 0.16.0 + ajv: 8.18.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.11 - "@microsoft/tsdoc@0.15.1": {} + "@microsoft/tsdoc@0.16.0": {} "@nodelib/fs.scandir@2.1.5": dependencies: @@ -12579,7 +12440,7 @@ snapshots: "@nodelib/fs.walk@1.2.8": dependencies: "@nodelib/fs.scandir": 2.1.5 - fastq: 1.19.1 + fastq: 1.20.1 "@npmcli/agent@3.0.0": dependencies: @@ -12611,9 +12472,9 @@ snapshots: json-parse-even-better-errors: 4.0.0 json-stringify-nice: 1.1.4 lru-cache: 10.4.3 - minimatch: 9.0.5 + minimatch: 9.0.8 nopt: 8.1.0 - npm-install-checks: 7.1.1 + npm-install-checks: 7.1.2 npm-package-arg: 12.0.2 npm-pick-manifest: 10.0.0 npm-registry-fetch: 18.0.2 @@ -12624,7 +12485,7 @@ snapshots: promise-all-reject-late: 1.0.1 promise-call-limit: 3.0.2 read-package-json-fast: 4.0.0 - semver: 7.7.2 + semver: 7.7.4 ssri: 12.0.0 treeverse: 3.0.0 walk-up-path: 3.0.1 @@ -12633,17 +12494,17 @@ snapshots: "@npmcli/fs@4.0.0": dependencies: - semver: 7.7.2 + semver: 7.7.4 "@npmcli/git@6.0.3": dependencies: - "@npmcli/promise-spawn": 8.0.2 + "@npmcli/promise-spawn": 8.0.3 ini: 5.0.0 lru-cache: 10.4.3 npm-pick-manifest: 10.0.0 proc-log: 5.0.0 promise-retry: 2.0.1 - semver: 7.7.2 + semver: 7.7.4 which: 5.0.0 "@npmcli/installed-package-contents@3.0.0": @@ -12655,8 +12516,8 @@ snapshots: dependencies: "@npmcli/name-from-folder": 3.0.0 "@npmcli/package-json": 6.2.0 - glob: 10.4.5 - minimatch: 9.0.5 + glob: 10.5.0 + minimatch: 9.0.8 "@npmcli/metavuln-calculator@8.0.1": dependencies: @@ -12664,7 +12525,7 @@ snapshots: json-parse-even-better-errors: 4.0.0 pacote: 20.0.0 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.4 transitivePeerDependencies: - supports-color @@ -12675,20 +12536,20 @@ snapshots: "@npmcli/package-json@6.2.0": dependencies: "@npmcli/git": 6.0.3 - glob: 10.4.5 + glob: 10.5.0 hosted-git-info: 8.1.0 json-parse-even-better-errors: 4.0.0 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.4 validate-npm-package-license: 3.0.4 - "@npmcli/promise-spawn@8.0.2": + "@npmcli/promise-spawn@8.0.3": dependencies: which: 5.0.0 "@npmcli/query@4.0.1": dependencies: - postcss-selector-parser: 7.1.0 + postcss-selector-parser: 7.1.1 "@npmcli/redact@3.2.2": {} @@ -12696,8 +12557,8 @@ snapshots: dependencies: "@npmcli/node-gyp": 4.0.0 "@npmcli/package-json": 6.2.0 - "@npmcli/promise-spawn": 8.0.2 - node-gyp: 11.4.1 + "@npmcli/promise-spawn": 8.0.3 + node-gyp: 11.5.0 proc-log: 5.0.0 which: 5.0.0 transitivePeerDependencies: @@ -12710,7 +12571,7 @@ snapshots: "@octokit/plugin-paginate-rest": 9.2.2(@octokit/core@5.2.2) "@octokit/plugin-rest-endpoint-methods": 10.4.1(@octokit/core@5.2.2) "@octokit/types": 12.6.0 - undici: 6.21.3 + undici: 6.23.0 "@octokit/auth-action@4.1.0": dependencies: @@ -12808,7 +12669,7 @@ snapshots: dependencies: graceful-fs: 4.2.10 - "@pnpm/npm-conf@2.3.1": + "@pnpm/npm-conf@3.0.2": dependencies: "@pnpm/config.env-replace": 1.1.0 "@pnpm/network.ca-file": 1.0.2 @@ -12818,43 +12679,43 @@ snapshots: "@popperjs/core@2.11.8": {} - "@preact/signals-core@1.12.0": {} + "@preact/signals-core@1.13.0": {} - "@puckeditor/core@0.21.1(@floating-ui/dom@1.7.4)(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1))": + "@puckeditor/core@0.21.1(@floating-ui/dom@1.7.5)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(immer@9.0.21)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1))": dependencies: "@dnd-kit/helpers": 0.1.18 "@dnd-kit/react": 0.1.18(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-popover": 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) - "@tiptap/extension-blockquote": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/extension-bold": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/extension-code": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/extension-code-block": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1) - "@tiptap/extension-document": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/extension-hard-break": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/extension-heading": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/extension-horizontal-rule": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1) - "@tiptap/extension-italic": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/extension-link": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1) - "@tiptap/extension-list": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1) - "@tiptap/extension-paragraph": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/extension-strike": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/extension-text": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/extension-text-align": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/extension-underline": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1)) - "@tiptap/html": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1)(happy-dom@20.3.9) - "@tiptap/pm": 3.17.1 - "@tiptap/react": 3.17.1(@floating-ui/dom@1.7.4)(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1)(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-popover": 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) + "@tiptap/extension-blockquote": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/extension-bold": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/extension-code": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/extension-code-block": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0) + "@tiptap/extension-document": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/extension-hard-break": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/extension-heading": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/extension-horizontal-rule": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0) + "@tiptap/extension-italic": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/extension-link": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0) + "@tiptap/extension-list": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0) + "@tiptap/extension-paragraph": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/extension-strike": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/extension-text": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/extension-text-align": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/extension-underline": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0)) + "@tiptap/html": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)(happy-dom@20.7.0) + "@tiptap/pm": 3.20.0 + "@tiptap/react": 3.20.0(@floating-ui/dom@1.7.5)(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) deep-diff: 1.0.2 fast-equals: 5.2.2 flat: 5.0.2 - happy-dom: 20.3.9 + happy-dom: 20.7.0 object-hash: 3.0.0 react: 18.3.1 react-hotkeys-hook: 4.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) use-debounce: 9.0.4(react@18.3.1) uuid: 9.0.1 - zustand: 5.0.8(@types/react@18.3.24)(immer@9.0.21)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)) + zustand: 5.0.11(@types/react@18.3.28)(immer@9.0.21)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)) transitivePeerDependencies: - "@floating-ui/dom" - "@types/react" @@ -12867,466 +12728,488 @@ snapshots: "@radix-ui/primitive@1.1.3": {} - "@radix-ui/react-accordion@1.2.12(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-accordion@1.2.12(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-collapsible": 1.1.12(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-collection": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-direction": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-id": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-collapsible": 1.1.12(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-collection": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-direction": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-alert-dialog@1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-dialog": 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-slot": 1.2.3(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-dialog": 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-slot": 1.2.3(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-arrow@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-collapsible@1.1.12(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-collapsible@1.1.12(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-id": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-collection@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-slot": 1.2.3(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-slot": 1.2.3(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-compose-refs@1.1.2(@types/react@18.3.28)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-context@1.1.2(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-context@1.1.2(@types/react@18.3.28)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-dialog@1.1.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-context@1.1.3(@types/react@18.3.28)(react@18.3.1)": + dependencies: + react: 18.3.1 + optionalDependencies: + "@types/react": 18.3.28 + + "@radix-ui/react-dialog@1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-dismissable-layer": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-focus-guards": 1.1.3(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-focus-scope": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-id": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-portal": 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-slot": 1.2.3(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-dismissable-layer": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-focus-guards": 1.1.3(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-focus-scope": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-portal": 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-slot": 1.2.3(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.28)(react@18.3.1) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.24)(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.28)(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-direction@1.1.1(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-direction@1.1.1(@types/react@18.3.28)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-dismissable-layer@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-escape-keydown": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-escape-keydown": 1.1.1(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-dropdown-menu@2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-id": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-menu": 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-menu": 2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-focus-guards@1.1.3(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-focus-guards@1.1.3(@types/react@18.3.28)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-focus-scope@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-id@1.1.1(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-id@1.1.1(@types/react@18.3.28)(react@18.3.1)": dependencies: - "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-label@2.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-label@2.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-menu@2.1.16(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-menu@2.1.16(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-collection": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-direction": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-dismissable-layer": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-focus-guards": 1.1.3(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-focus-scope": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-id": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-popper": 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-portal": 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-roving-focus": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-slot": 1.2.3(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-collection": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-direction": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-dismissable-layer": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-focus-guards": 1.1.3(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-focus-scope": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-popper": 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-portal": 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-roving-focus": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-slot": 1.2.3(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.28)(react@18.3.1) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.24)(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.28)(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-popover@1.1.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-popover@1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-dismissable-layer": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-focus-guards": 1.1.3(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-focus-scope": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-id": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-popper": 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-portal": 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-slot": 1.2.3(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-dismissable-layer": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-focus-guards": 1.1.3(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-focus-scope": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-popper": 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-portal": 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-slot": 1.2.3(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.28)(react@18.3.1) aria-hidden: 1.2.6 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.7.1(@types/react@18.3.24)(react@18.3.1) + react-remove-scroll: 2.7.2(@types/react@18.3.28)(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) - - "@radix-ui/react-popper@1.2.8(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": - dependencies: - "@floating-ui/react-dom": 2.1.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-arrow": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-rect": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-size": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) + + "@radix-ui/react-popper@1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + dependencies: + "@floating-ui/react-dom": 2.1.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-arrow": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-rect": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-size": 1.1.1(@types/react@18.3.28)(react@18.3.1) "@radix-ui/rect": 1.1.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) + + "@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + dependencies: + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-portal@1.1.9(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-presence@1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-presence@1.1.5(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-slot": 1.2.3(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-primitive@2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-primitive@2.1.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-slot": 1.2.3(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-slot": 1.2.4(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-progress@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-progress@1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-context": 1.1.3(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-primitive": 2.1.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-radio-group@1.3.8(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-radio-group@1.3.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-direction": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-roving-focus": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-previous": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-size": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-direction": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-roving-focus": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-previous": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-size": 1.1.1(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-roving-focus@1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-collection": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-direction": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-id": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-collection": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-direction": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-separator@1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-separator@1.1.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) + + "@radix-ui/react-slot@1.2.3(@types/react@18.3.28)(react@18.3.1)": + dependencies: + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + "@types/react": 18.3.28 - "@radix-ui/react-slot@1.2.3(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-slot@1.2.4(@types/react@18.3.28)(react@18.3.1)": dependencies: - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-switch@1.2.6(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-switch@1.2.6(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-previous": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-size": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-previous": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-size": 1.1.1(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-toast@1.2.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-toast@1.2.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-collection": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-dismissable-layer": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-portal": 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-visually-hidden": 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-collection": 1.1.7(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-dismissable-layer": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-portal": 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-visually-hidden": 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-toggle@1.1.10(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-toggle@1.1.10(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-tooltip@1.2.8(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-tooltip@1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@radix-ui/primitive": 1.1.3 - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-context": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-dismissable-layer": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-id": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-popper": 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-portal": 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-slot": 1.2.3(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-visually-hidden": 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-context": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-dismissable-layer": 1.1.11(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-popper": 1.2.8(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-portal": 1.1.9(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-presence": 1.1.5(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-slot": 1.2.3(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-controllable-state": 1.2.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-visually-hidden": 1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) - "@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-use-callback-ref@1.1.1(@types/react@18.3.28)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-use-controllable-state@1.2.2(@types/react@18.3.28)(react@18.3.1)": dependencies: - "@radix-ui/react-use-effect-event": 0.0.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-use-effect-event": 0.0.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-use-effect-event@0.0.2(@types/react@18.3.28)(react@18.3.1)": dependencies: - "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-use-escape-keydown@1.1.1(@types/react@18.3.28)(react@18.3.1)": dependencies: - "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-use-callback-ref": 1.1.1(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-use-layout-effect@1.1.1(@types/react@18.3.28)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-use-previous@1.1.1(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-use-previous@1.1.1(@types/react@18.3.28)(react@18.3.1)": dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-use-rect@1.1.1(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-use-rect@1.1.1(@types/react@18.3.28)(react@18.3.1)": dependencies: "@radix-ui/rect": 1.1.1 react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-use-size@1.1.1(@types/react@18.3.24)(react@18.3.1)": + "@radix-ui/react-use-size@1.1.1(@types/react@18.3.28)(react@18.3.1)": dependencies: - "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.24)(react@18.3.1) + "@radix-ui/react-use-layout-effect": 1.1.1(@types/react@18.3.28)(react@18.3.1) react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@radix-ui/react-visually-hidden@1.2.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) "@radix-ui/rect@1.1.1": {} "@react-aria/ssr@3.9.10(react@18.3.1)": dependencies: - "@swc/helpers": 0.5.17 + "@swc/helpers": 0.5.19 react: 18.3.1 "@reduxjs/toolkit@1.9.7(react@18.3.1)": @@ -13347,7 +13230,7 @@ snapshots: "@restart/ui@1.9.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@babel/runtime": 7.28.3 + "@babel/runtime": 7.28.6 "@popperjs/core": 2.11.8 "@react-aria/ssr": 3.9.10(react@18.3.1) "@restart/hooks": 0.5.1(react@18.3.1) @@ -13361,110 +13244,130 @@ snapshots: "@rolldown/pluginutils@1.0.0-beta.27": {} - "@rollup/plugin-inject@5.0.5(rollup@4.47.1)": + "@rollup/plugin-inject@5.0.5(rollup@4.59.0)": dependencies: - "@rollup/pluginutils": 5.2.0(rollup@4.47.1) + "@rollup/pluginutils": 5.3.0(rollup@4.59.0) estree-walker: 2.0.2 - magic-string: 0.30.18 + magic-string: 0.30.21 optionalDependencies: - rollup: 4.47.1 + rollup: 4.59.0 - "@rollup/pluginutils@5.2.0(rollup@4.47.1)": + "@rollup/pluginutils@5.3.0(rollup@4.59.0)": dependencies: "@types/estree": 1.0.8 estree-walker: 2.0.2 picomatch: 4.0.3 optionalDependencies: - rollup: 4.47.1 + rollup: 4.59.0 + + "@rollup/rollup-android-arm-eabi@4.59.0": + optional: true + + "@rollup/rollup-android-arm64@4.59.0": + optional: true + + "@rollup/rollup-darwin-arm64@4.59.0": + optional: true + + "@rollup/rollup-darwin-x64@4.59.0": + optional: true + + "@rollup/rollup-freebsd-arm64@4.59.0": + optional: true - "@rollup/rollup-android-arm-eabi@4.47.1": + "@rollup/rollup-freebsd-x64@4.59.0": optional: true - "@rollup/rollup-android-arm64@4.47.1": + "@rollup/rollup-linux-arm-gnueabihf@4.59.0": optional: true - "@rollup/rollup-darwin-arm64@4.47.1": + "@rollup/rollup-linux-arm-musleabihf@4.59.0": optional: true - "@rollup/rollup-darwin-x64@4.47.1": + "@rollup/rollup-linux-arm64-gnu@4.59.0": optional: true - "@rollup/rollup-freebsd-arm64@4.47.1": + "@rollup/rollup-linux-arm64-musl@4.59.0": optional: true - "@rollup/rollup-freebsd-x64@4.47.1": + "@rollup/rollup-linux-loong64-gnu@4.59.0": optional: true - "@rollup/rollup-linux-arm-gnueabihf@4.47.1": + "@rollup/rollup-linux-loong64-musl@4.59.0": optional: true - "@rollup/rollup-linux-arm-musleabihf@4.47.1": + "@rollup/rollup-linux-ppc64-gnu@4.59.0": optional: true - "@rollup/rollup-linux-arm64-gnu@4.47.1": + "@rollup/rollup-linux-ppc64-musl@4.59.0": optional: true - "@rollup/rollup-linux-arm64-musl@4.47.1": + "@rollup/rollup-linux-riscv64-gnu@4.59.0": optional: true - "@rollup/rollup-linux-loongarch64-gnu@4.47.1": + "@rollup/rollup-linux-riscv64-musl@4.59.0": optional: true - "@rollup/rollup-linux-ppc64-gnu@4.47.1": + "@rollup/rollup-linux-s390x-gnu@4.59.0": optional: true - "@rollup/rollup-linux-riscv64-gnu@4.47.1": + "@rollup/rollup-linux-x64-gnu@4.59.0": optional: true - "@rollup/rollup-linux-riscv64-musl@4.47.1": + "@rollup/rollup-linux-x64-musl@4.59.0": optional: true - "@rollup/rollup-linux-s390x-gnu@4.47.1": + "@rollup/rollup-openbsd-x64@4.59.0": optional: true - "@rollup/rollup-linux-x64-gnu@4.47.1": + "@rollup/rollup-openharmony-arm64@4.59.0": optional: true - "@rollup/rollup-linux-x64-musl@4.47.1": + "@rollup/rollup-win32-arm64-msvc@4.59.0": optional: true - "@rollup/rollup-win32-arm64-msvc@4.47.1": + "@rollup/rollup-win32-ia32-msvc@4.59.0": optional: true - "@rollup/rollup-win32-ia32-msvc@4.47.1": + "@rollup/rollup-win32-x64-gnu@4.59.0": optional: true - "@rollup/rollup-win32-x64-msvc@4.47.1": + "@rollup/rollup-win32-x64-msvc@4.59.0": optional: true - "@rushstack/node-core-library@5.14.0(@types/node@20.19.11)": + "@rushstack/node-core-library@5.20.3(@types/node@20.19.34)": dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) - fs-extra: 11.3.1 + ajv: 8.18.0 + ajv-draft-04: 1.0.0(ajv@8.18.0) + ajv-formats: 3.0.1(ajv@8.18.0) + fs-extra: 11.3.3 import-lazy: 4.0.0 jju: 1.4.0 - resolve: 1.22.10 + resolve: 1.22.11 semver: 7.5.4 optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@rushstack/rig-package@0.5.3": + "@rushstack/problem-matcher@0.2.1(@types/node@20.19.34)": + optionalDependencies: + "@types/node": 20.19.34 + + "@rushstack/rig-package@0.7.2": dependencies: - resolve: 1.22.10 + resolve: 1.22.11 strip-json-comments: 3.1.1 - "@rushstack/terminal@0.15.4(@types/node@20.19.11)": + "@rushstack/terminal@0.22.3(@types/node@20.19.34)": dependencies: - "@rushstack/node-core-library": 5.14.0(@types/node@20.19.11) + "@rushstack/node-core-library": 5.20.3(@types/node@20.19.34) + "@rushstack/problem-matcher": 0.2.1(@types/node@20.19.34) supports-color: 8.1.1 optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - "@rushstack/ts-command-line@5.0.2(@types/node@20.19.11)": + "@rushstack/ts-command-line@5.3.3(@types/node@20.19.34)": dependencies: - "@rushstack/terminal": 0.15.4(@types/node@20.19.11) + "@rushstack/terminal": 0.22.3(@types/node@20.19.34) "@types/argparse": 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -13583,9 +13486,9 @@ snapshots: "@sigstore/core": 2.0.0 "@sigstore/protobuf-specs": 0.4.3 - "@sinclair/typebox@0.27.8": {} + "@sinclair/typebox@0.27.10": {} - "@sinclair/typebox@0.34.40": {} + "@sinclair/typebox@0.34.48": {} "@sindresorhus/merge-streams@4.0.0": {} @@ -13619,7 +13522,7 @@ snapshots: "@swc/core-win32-x64-msvc@1.15.11": optional: true - "@swc/core@1.15.11(@swc/helpers@0.5.17)": + "@swc/core@1.15.11(@swc/helpers@0.5.19)": dependencies: "@swc/counter": 0.1.3 "@swc/types": 0.1.25 @@ -13634,11 +13537,11 @@ snapshots: "@swc/core-win32-arm64-msvc": 1.15.11 "@swc/core-win32-ia32-msvc": 1.15.11 "@swc/core-win32-x64-msvc": 1.15.11 - "@swc/helpers": 0.5.17 + "@swc/helpers": 0.5.19 "@swc/counter@0.1.3": {} - "@swc/helpers@0.5.17": + "@swc/helpers@0.5.19": dependencies: tslib: 2.8.1 @@ -13646,42 +13549,39 @@ snapshots: dependencies: "@swc/counter": 0.1.3 - "@tailwindcss/forms@0.5.10(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)))": + "@tailwindcss/forms@0.5.11(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2))": dependencies: mini-svg-data-uri: 1.4.4 - tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.8.2) - "@tailwindcss/line-clamp@0.4.4(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)))": + "@tailwindcss/line-clamp@0.4.4(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2))": dependencies: - tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.8.2) - "@tailwindcss/typography@0.5.16(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)))": + "@tailwindcss/typography@0.5.19(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2))": dependencies: - lodash.castarray: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)) + tailwindcss: 3.4.19(tsx@4.21.0)(yaml@2.8.2) - "@tanstack/query-core@5.85.5": {} + "@tanstack/query-core@5.90.20": {} - "@tanstack/react-query@5.85.5(react@18.3.1)": + "@tanstack/react-query@5.90.21(react@18.3.1)": dependencies: - "@tanstack/query-core": 5.85.5 + "@tanstack/query-core": 5.90.20 react: 18.3.1 - "@tanstack/react-virtual@3.13.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@tanstack/react-virtual@3.13.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@tanstack/virtual-core": 3.13.12 + "@tanstack/virtual-core": 3.13.19 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - "@tanstack/virtual-core@3.13.12": {} + "@tanstack/virtual-core@3.13.19": {} "@testing-library/dom@10.4.1": dependencies: - "@babel/code-frame": 7.27.1 - "@babel/runtime": 7.28.3 + "@babel/code-frame": 7.29.0 + "@babel/runtime": 7.28.6 "@types/aria-query": 5.0.4 aria-query: 5.3.0 dom-accessibility-api: 0.5.16 @@ -13689,116 +13589,116 @@ snapshots: picocolors: 1.1.1 pretty-format: 27.5.1 - "@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@testing-library/react@16.3.2(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@babel/runtime": 7.28.3 + "@babel/runtime": 7.28.6 "@testing-library/dom": 10.4.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) "@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)": dependencies: "@testing-library/dom": 10.4.1 - "@tiptap/core@3.17.1(@tiptap/pm@3.17.1)": + "@tiptap/core@3.20.0(@tiptap/pm@3.20.0)": dependencies: - "@tiptap/pm": 3.17.1 + "@tiptap/pm": 3.20.0 - "@tiptap/extension-blockquote@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-blockquote@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/extension-bold@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-bold@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/extension-bubble-menu@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1)": + "@tiptap/extension-bubble-menu@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)": dependencies: - "@floating-ui/dom": 1.7.4 - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) - "@tiptap/pm": 3.17.1 + "@floating-ui/dom": 1.7.5 + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) + "@tiptap/pm": 3.20.0 optional: true - "@tiptap/extension-code-block@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1)": + "@tiptap/extension-code-block@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) - "@tiptap/pm": 3.17.1 + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) + "@tiptap/pm": 3.20.0 - "@tiptap/extension-code@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-code@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/extension-document@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-document@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/extension-floating-menu@3.17.1(@floating-ui/dom@1.7.4)(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1)": + "@tiptap/extension-floating-menu@3.20.0(@floating-ui/dom@1.7.5)(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)": dependencies: - "@floating-ui/dom": 1.7.4 - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) - "@tiptap/pm": 3.17.1 + "@floating-ui/dom": 1.7.5 + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) + "@tiptap/pm": 3.20.0 optional: true - "@tiptap/extension-hard-break@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-hard-break@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/extension-heading@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-heading@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/extension-horizontal-rule@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1)": + "@tiptap/extension-horizontal-rule@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) - "@tiptap/pm": 3.17.1 + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) + "@tiptap/pm": 3.20.0 - "@tiptap/extension-italic@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-italic@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/extension-link@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1)": + "@tiptap/extension-link@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) - "@tiptap/pm": 3.17.1 + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) + "@tiptap/pm": 3.20.0 linkifyjs: 4.3.2 - "@tiptap/extension-list@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1)": + "@tiptap/extension-list@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) - "@tiptap/pm": 3.17.1 + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) + "@tiptap/pm": 3.20.0 - "@tiptap/extension-paragraph@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-paragraph@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/extension-strike@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-strike@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/extension-text-align@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-text-align@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/extension-text@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-text@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/extension-underline@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))": + "@tiptap/extension-underline@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) - "@tiptap/html@3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1)(happy-dom@20.3.9)": + "@tiptap/html@3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)(happy-dom@20.7.0)": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) - "@tiptap/pm": 3.17.1 - happy-dom: 20.3.9 + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) + "@tiptap/pm": 3.20.0 + happy-dom: 20.7.0 - "@tiptap/pm@3.17.1": + "@tiptap/pm@3.20.0": dependencies: - prosemirror-changeset: 2.3.1 + prosemirror-changeset: 2.4.0 prosemirror-collab: 1.3.1 prosemirror-commands: 1.7.1 prosemirror-dropcursor: 1.8.2 @@ -13806,59 +13706,47 @@ snapshots: prosemirror-history: 1.5.0 prosemirror-inputrules: 1.5.1 prosemirror-keymap: 1.2.3 - prosemirror-markdown: 1.13.3 - prosemirror-menu: 1.2.5 + prosemirror-markdown: 1.13.4 + prosemirror-menu: 1.3.0 prosemirror-model: 1.25.4 prosemirror-schema-basic: 1.2.4 prosemirror-schema-list: 1.5.1 prosemirror-state: 1.4.4 prosemirror-tables: 1.8.5 - prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5) + prosemirror-trailing-node: 3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6) prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 - "@tiptap/react@3.17.1(@floating-ui/dom@1.7.4)(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1)(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@tiptap/react@3.20.0(@floating-ui/dom@1.7.5)(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0)(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: - "@tiptap/core": 3.17.1(@tiptap/pm@3.17.1) - "@tiptap/pm": 3.17.1 - "@types/react": 18.3.24 - "@types/react-dom": 18.3.7(@types/react@18.3.24) + "@tiptap/core": 3.20.0(@tiptap/pm@3.20.0) + "@tiptap/pm": 3.20.0 + "@types/react": 18.3.28 + "@types/react-dom": 18.3.7(@types/react@18.3.28) "@types/use-sync-external-store": 0.0.6 fast-equals: 5.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - use-sync-external-store: 1.5.0(react@18.3.1) + use-sync-external-store: 1.6.0(react@18.3.1) optionalDependencies: - "@tiptap/extension-bubble-menu": 3.17.1(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1) - "@tiptap/extension-floating-menu": 3.17.1(@floating-ui/dom@1.7.4)(@tiptap/core@3.17.1(@tiptap/pm@3.17.1))(@tiptap/pm@3.17.1) + "@tiptap/extension-bubble-menu": 3.20.0(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0) + "@tiptap/extension-floating-menu": 3.20.0(@floating-ui/dom@1.7.5)(@tiptap/core@3.20.0(@tiptap/pm@3.20.0))(@tiptap/pm@3.20.0) transitivePeerDependencies: - "@floating-ui/dom" "@ts-morph/common@0.23.0": dependencies: fast-glob: 3.3.3 - minimatch: 9.0.5 + minimatch: 9.0.8 mkdirp: 3.0.1 path-browserify: 1.0.1 - "@tsconfig/node10@1.0.11": - optional: true - - "@tsconfig/node12@1.0.11": - optional: true - - "@tsconfig/node14@1.0.3": - optional: true - - "@tsconfig/node16@1.0.4": - optional: true - "@tufjs/canonical-json@2.0.0": {} "@tufjs/models@3.0.1": dependencies: "@tufjs/canonical-json": 2.0.0 - minimatch: 9.0.5 + minimatch: 9.0.8 "@types/argparse@1.0.38": {} @@ -13866,33 +13754,29 @@ snapshots: "@types/babel__core@7.20.5": dependencies: - "@babel/parser": 7.28.3 - "@babel/types": 7.28.2 + "@babel/parser": 7.29.0 + "@babel/types": 7.29.0 "@types/babel__generator": 7.27.0 "@types/babel__template": 7.4.4 "@types/babel__traverse": 7.28.0 "@types/babel__generator@7.27.0": dependencies: - "@babel/types": 7.28.2 + "@babel/types": 7.29.0 "@types/babel__template@7.4.4": dependencies: - "@babel/parser": 7.28.3 - "@babel/types": 7.28.2 + "@babel/parser": 7.29.0 + "@babel/types": 7.29.0 "@types/babel__traverse@7.28.0": dependencies: - "@babel/types": 7.28.2 + "@babel/types": 7.29.0 - "@types/chai@5.2.2": + "@types/chai@5.2.3": dependencies: "@types/deep-eql": 4.0.2 - - "@types/debug@4.1.12": - dependencies: - "@types/ms": 2.1.0 - optional: true + assertion-error: 2.0.1 "@types/deep-eql@4.0.2": {} @@ -13901,7 +13785,7 @@ snapshots: "@types/fs-extra@11.0.4": dependencies: "@types/jsonfile": 6.1.4 - "@types/node": 20.19.11 + "@types/node": 20.19.34 "@types/geojson@7946.0.16": {} @@ -13930,16 +13814,16 @@ snapshots: "@types/jest@30.0.0": dependencies: - expect: 30.0.5 - pretty-format: 30.0.5 + expect: 30.2.0 + pretty-format: 30.2.0 "@types/jsonfile@6.1.4": dependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 "@types/linkify-it@5.0.0": {} - "@types/lodash@4.17.20": {} + "@types/lodash@4.17.24": {} "@types/mapbox-gl@2.7.21": dependencies: @@ -13962,10 +13846,7 @@ snapshots: "@types/minimist@1.2.5": {} - "@types/ms@2.1.0": - optional: true - - "@types/node@20.19.11": + "@types/node@20.19.34": dependencies: undici-types: 6.21.0 @@ -13973,38 +13854,38 @@ snapshots: "@types/pixelmatch@5.2.6": dependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 "@types/pngjs@6.0.5": dependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 "@types/prompts@2.4.9": dependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 kleur: 3.0.3 "@types/prop-types@15.7.15": {} - "@types/react-color@3.0.13(@types/react@18.3.24)": + "@types/react-color@3.0.13(@types/react@18.3.28)": dependencies: - "@types/react": 18.3.24 - "@types/reactcss": 1.2.13(@types/react@18.3.24) + "@types/react": 18.3.28 + "@types/reactcss": 1.2.13(@types/react@18.3.28) - "@types/react-dom@18.3.7(@types/react@18.3.24)": + "@types/react-dom@18.3.7(@types/react@18.3.28)": dependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@types/react@18.3.24": + "@types/react@18.3.28": dependencies: "@types/prop-types": 15.7.15 - csstype: 3.1.3 + csstype: 3.2.3 - "@types/reactcss@1.2.13(@types/react@18.3.24)": + "@types/reactcss@1.2.13(@types/react@18.3.28)": dependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - "@types/semver@7.7.0": {} + "@types/semver@7.7.1": {} "@types/stack-utils@2.0.3": {} @@ -14029,44 +13910,44 @@ snapshots: "@types/ws@8.18.1": dependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 "@types/yargs-parser@21.0.3": {} - "@types/yargs@17.0.33": + "@types/yargs@17.0.35": dependencies: "@types/yargs-parser": 21.0.3 "@ungap/structured-clone@1.3.0": {} - "@vitejs/plugin-react@4.7.0(vite@5.4.19(@types/node@20.19.11))": + "@vitejs/plugin-react@4.7.0(vite@5.4.21(@types/node@20.19.34))": dependencies: - "@babel/core": 7.28.3 - "@babel/plugin-transform-react-jsx-self": 7.27.1(@babel/core@7.28.3) - "@babel/plugin-transform-react-jsx-source": 7.27.1(@babel/core@7.28.3) + "@babel/core": 7.29.0 + "@babel/plugin-transform-react-jsx-self": 7.27.1(@babel/core@7.29.0) + "@babel/plugin-transform-react-jsx-source": 7.27.1(@babel/core@7.29.0) "@rolldown/pluginutils": 1.0.0-beta.27 "@types/babel__core": 7.20.5 react-refresh: 0.17.0 - vite: 5.4.19(@types/node@20.19.11) + vite: 5.4.21(@types/node@20.19.34) transitivePeerDependencies: - supports-color - "@vitejs/plugin-vue@5.2.4(vite@5.4.19(@types/node@20.19.11))(vue@3.5.19(typescript@5.9.2))": + "@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@20.19.34))(vue@3.5.29(typescript@5.9.3))": dependencies: - vite: 5.4.19(@types/node@20.19.11) - vue: 3.5.19(typescript@5.9.2) + vite: 5.4.21(@types/node@20.19.34) + vue: 3.5.29(typescript@5.9.3) - "@vitest/browser@3.2.4(playwright@1.55.1)(vite@5.4.19(@types/node@20.19.11))(vitest@3.2.4)": + "@vitest/browser@3.2.4(playwright@1.55.1)(vite@5.4.21(@types/node@20.19.34))(vitest@3.2.4)": dependencies: "@testing-library/dom": 10.4.1 "@testing-library/user-event": 14.6.1(@testing-library/dom@10.4.1) - "@vitest/mocker": 3.2.4(vite@5.4.19(@types/node@20.19.11)) + "@vitest/mocker": 3.2.4(vite@5.4.21(@types/node@20.19.34)) "@vitest/utils": 3.2.4 - magic-string: 0.30.18 - sirv: 3.0.1 + magic-string: 0.30.21 + sirv: 3.0.2 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.19.11)(@vitest/browser@3.2.4)(happy-dom@20.3.9)(jsdom@24.1.3) - ws: 8.18.3 + vitest: 3.2.4(@types/node@20.19.34)(@vitest/browser@3.2.4)(happy-dom@20.7.0)(jsdom@24.1.3) + ws: 8.19.0 optionalDependencies: playwright: 1.55.1 transitivePeerDependencies: @@ -14077,19 +13958,19 @@ snapshots: "@vitest/expect@3.2.4": dependencies: - "@types/chai": 5.2.2 + "@types/chai": 5.2.3 "@vitest/spy": 3.2.4 "@vitest/utils": 3.2.4 chai: 5.3.3 tinyrainbow: 2.0.0 - "@vitest/mocker@3.2.4(vite@5.4.19(@types/node@20.19.11))": + "@vitest/mocker@3.2.4(vite@5.4.21(@types/node@20.19.34))": dependencies: "@vitest/spy": 3.2.4 estree-walker: 3.0.3 - magic-string: 0.30.18 + magic-string: 0.30.21 optionalDependencies: - vite: 5.4.19(@types/node@20.19.11) + vite: 5.4.21(@types/node@20.19.34) "@vitest/pretty-format@3.2.4": dependencies: @@ -14099,17 +13980,17 @@ snapshots: dependencies: "@vitest/utils": 3.2.4 pathe: 2.0.3 - strip-literal: 3.0.0 + strip-literal: 3.1.0 "@vitest/snapshot@3.2.4": dependencies: "@vitest/pretty-format": 3.2.4 - magic-string: 0.30.18 + magic-string: 0.30.21 pathe: 2.0.3 "@vitest/spy@3.2.4": dependencies: - tinyspy: 4.0.3 + tinyspy: 4.0.4 "@vitest/utils@3.2.4": dependencies: @@ -14117,115 +13998,115 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 - "@vue/compiler-core@3.5.19": + "@vue/compiler-core@3.5.29": dependencies: - "@babel/parser": 7.28.3 - "@vue/shared": 3.5.19 - entities: 4.5.0 + "@babel/parser": 7.29.0 + "@vue/shared": 3.5.29 + entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - "@vue/compiler-dom@3.5.19": + "@vue/compiler-dom@3.5.29": dependencies: - "@vue/compiler-core": 3.5.19 - "@vue/shared": 3.5.19 + "@vue/compiler-core": 3.5.29 + "@vue/shared": 3.5.29 - "@vue/compiler-sfc@3.5.19": + "@vue/compiler-sfc@3.5.29": dependencies: - "@babel/parser": 7.28.3 - "@vue/compiler-core": 3.5.19 - "@vue/compiler-dom": 3.5.19 - "@vue/compiler-ssr": 3.5.19 - "@vue/shared": 3.5.19 + "@babel/parser": 7.29.0 + "@vue/compiler-core": 3.5.29 + "@vue/compiler-dom": 3.5.29 + "@vue/compiler-ssr": 3.5.29 + "@vue/shared": 3.5.29 estree-walker: 2.0.2 - magic-string: 0.30.18 + magic-string: 0.30.21 postcss: 8.5.6 source-map-js: 1.2.1 - "@vue/compiler-ssr@3.5.19": + "@vue/compiler-ssr@3.5.29": dependencies: - "@vue/compiler-dom": 3.5.19 - "@vue/shared": 3.5.19 + "@vue/compiler-dom": 3.5.29 + "@vue/shared": 3.5.29 - "@vue/devtools-api@7.7.7": + "@vue/devtools-api@7.7.9": dependencies: - "@vue/devtools-kit": 7.7.7 + "@vue/devtools-kit": 7.7.9 - "@vue/devtools-kit@7.7.7": + "@vue/devtools-kit@7.7.9": dependencies: - "@vue/devtools-shared": 7.7.7 - birpc: 2.5.0 + "@vue/devtools-shared": 7.7.9 + birpc: 2.9.0 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 speakingurl: 14.0.1 - superjson: 2.2.2 + superjson: 2.2.6 - "@vue/devtools-shared@7.7.7": + "@vue/devtools-shared@7.7.9": dependencies: rfdc: 1.4.1 - "@vue/reactivity@3.5.19": + "@vue/reactivity@3.5.29": dependencies: - "@vue/shared": 3.5.19 + "@vue/shared": 3.5.29 - "@vue/runtime-core@3.5.19": + "@vue/runtime-core@3.5.29": dependencies: - "@vue/reactivity": 3.5.19 - "@vue/shared": 3.5.19 + "@vue/reactivity": 3.5.29 + "@vue/shared": 3.5.29 - "@vue/runtime-dom@3.5.19": + "@vue/runtime-dom@3.5.29": dependencies: - "@vue/reactivity": 3.5.19 - "@vue/runtime-core": 3.5.19 - "@vue/shared": 3.5.19 - csstype: 3.1.3 + "@vue/reactivity": 3.5.29 + "@vue/runtime-core": 3.5.29 + "@vue/shared": 3.5.29 + csstype: 3.2.3 - "@vue/server-renderer@3.5.19(vue@3.5.19(typescript@5.9.2))": + "@vue/server-renderer@3.5.29(vue@3.5.29(typescript@5.9.3))": dependencies: - "@vue/compiler-ssr": 3.5.19 - "@vue/shared": 3.5.19 - vue: 3.5.19(typescript@5.9.2) + "@vue/compiler-ssr": 3.5.29 + "@vue/shared": 3.5.29 + vue: 3.5.29(typescript@5.9.3) - "@vue/shared@3.5.19": {} + "@vue/shared@3.5.29": {} - "@vueuse/core@11.3.0(vue@3.5.19(typescript@5.9.2))": + "@vueuse/core@11.3.0(vue@3.5.29(typescript@5.9.3))": dependencies: "@types/web-bluetooth": 0.0.20 "@vueuse/metadata": 11.3.0 - "@vueuse/shared": 11.3.0(vue@3.5.19(typescript@5.9.2)) - vue-demi: 0.14.10(vue@3.5.19(typescript@5.9.2)) + "@vueuse/shared": 11.3.0(vue@3.5.29(typescript@5.9.3)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.9.3)) transitivePeerDependencies: - "@vue/composition-api" - vue - "@vueuse/core@12.8.2(typescript@5.9.2)": + "@vueuse/core@12.8.2(typescript@5.9.3)": dependencies: "@types/web-bluetooth": 0.0.21 "@vueuse/metadata": 12.8.2 - "@vueuse/shared": 12.8.2(typescript@5.9.2) - vue: 3.5.19(typescript@5.9.2) + "@vueuse/shared": 12.8.2(typescript@5.9.3) + vue: 3.5.29(typescript@5.9.3) transitivePeerDependencies: - typescript - "@vueuse/integrations@11.3.0(focus-trap@7.6.5)(vue@3.5.19(typescript@5.9.2))": + "@vueuse/integrations@11.3.0(focus-trap@7.8.0)(vue@3.5.29(typescript@5.9.3))": dependencies: - "@vueuse/core": 11.3.0(vue@3.5.19(typescript@5.9.2)) - "@vueuse/shared": 11.3.0(vue@3.5.19(typescript@5.9.2)) - vue-demi: 0.14.10(vue@3.5.19(typescript@5.9.2)) + "@vueuse/core": 11.3.0(vue@3.5.29(typescript@5.9.3)) + "@vueuse/shared": 11.3.0(vue@3.5.29(typescript@5.9.3)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.9.3)) optionalDependencies: - focus-trap: 7.6.5 + focus-trap: 7.8.0 transitivePeerDependencies: - "@vue/composition-api" - vue - "@vueuse/integrations@12.8.2(focus-trap@7.6.5)(typescript@5.9.2)": + "@vueuse/integrations@12.8.2(focus-trap@7.8.0)(typescript@5.9.3)": dependencies: - "@vueuse/core": 12.8.2(typescript@5.9.2) - "@vueuse/shared": 12.8.2(typescript@5.9.2) - vue: 3.5.19(typescript@5.9.2) + "@vueuse/core": 12.8.2(typescript@5.9.3) + "@vueuse/shared": 12.8.2(typescript@5.9.3) + vue: 3.5.29(typescript@5.9.3) optionalDependencies: - focus-trap: 7.6.5 + focus-trap: 7.8.0 transitivePeerDependencies: - typescript @@ -14233,16 +14114,16 @@ snapshots: "@vueuse/metadata@12.8.2": {} - "@vueuse/shared@11.3.0(vue@3.5.19(typescript@5.9.2))": + "@vueuse/shared@11.3.0(vue@3.5.29(typescript@5.9.3))": dependencies: - vue-demi: 0.14.10(vue@3.5.19(typescript@5.9.2)) + vue-demi: 0.14.10(vue@3.5.29(typescript@5.9.3)) transitivePeerDependencies: - "@vue/composition-api" - vue - "@vueuse/shared@12.8.2(typescript@5.9.2)": + "@vueuse/shared@12.8.2(typescript@5.9.3)": dependencies: - vue: 3.5.19(typescript@5.9.2) + vue: 3.5.29(typescript@5.9.3) transitivePeerDependencies: - typescript @@ -14250,7 +14131,7 @@ snapshots: dependencies: ulidx: 2.4.1 - "@yext/pages-components@2.0.0(lexical@0.38.2)(mapbox-gl@2.15.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": + "@yext/pages-components@2.0.1(lexical@0.38.2)(mapbox-gl@2.15.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)": dependencies: "@yext/analytics": 1.1.0 browser-or-node: 3.0.0 @@ -14261,34 +14142,34 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - "@yext/pages@1.2.9(@algolia/client-search@5.35.0)(@types/node@20.19.11)(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.2)(vite@5.4.19(@types/node@20.19.11))": + "@yext/pages@1.2.9(@algolia/client-search@5.49.1)(@types/node@20.19.34)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.3)(vite@5.4.21(@types/node@20.19.34))": dependencies: ansi-to-html: 0.7.2 browser-or-node: 2.1.1 commander: 12.1.0 escape-html: 1.0.3 - express: 4.21.2 - fs-extra: 11.3.1 + express: 4.22.1 + fs-extra: 11.3.3 get-port: 7.1.0 - glob: 10.4.5 + glob: 10.5.0 latest-version: 9.0.0 - lodash: 4.17.21 + lodash: 4.17.23 mime-types: 2.1.35 open: 10.2.0 ora: 8.2.0 picocolors: 1.1.1 postcss: 8.5.6 postcss-nested: 6.2.0(postcss@8.5.6) - pretty-ms: 9.2.0 + pretty-ms: 9.3.0 prompts: 2.4.2 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - rollup: 4.47.1 + rollup: 4.59.0 ts-morph: 22.0.0 - vite: 5.4.19(@types/node@20.19.11) - vite-plugin-node-polyfills: 0.17.0(rollup@4.47.1)(vite@5.4.19(@types/node@20.19.11)) - vitepress: 1.5.0(@algolia/client-search@5.35.0)(@types/node@20.19.11)(@types/react@18.3.24)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.2) - yaml: 2.8.1 + vite: 5.4.21(@types/node@20.19.34) + vite-plugin-node-polyfills: 0.17.0(rollup@4.59.0)(vite@5.4.21(@types/node@20.19.34)) + vitepress: 1.5.0(@algolia/client-search@5.49.1)(@types/node@20.19.34)(@types/react@18.3.28)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.3) + yaml: 2.8.2 transitivePeerDependencies: - "@algolia/client-search" - "@types/node" @@ -14317,47 +14198,20 @@ snapshots: - typescript - universal-cookie - "@yext/search-core@2.7.0(encoding@0.1.13)": - dependencies: - "@babel/runtime-corejs3": 7.28.3 - cross-fetch: 3.2.0(encoding@0.1.13) - transitivePeerDependencies: - - encoding - "@yext/search-core@2.8.0(encoding@0.1.13)": dependencies: - "@babel/runtime-corejs3": 7.28.3 + "@babel/runtime-corejs3": 7.29.0 cross-fetch: 3.2.0(encoding@0.1.13) transitivePeerDependencies: - encoding - "@yext/search-headless-react@2.6.0(encoding@0.1.13)(react@18.3.1)": - dependencies: - "@yext/search-headless": 2.7.0(encoding@0.1.13)(react@18.3.1) - react: 18.3.1 - use-sync-external-store: 1.5.0(react@18.3.1) - transitivePeerDependencies: - - encoding - - react-redux - "@yext/search-headless-react@2.7.1(encoding@0.1.13)(react@18.3.1)": dependencies: "@yext/search-headless": 2.8.1(encoding@0.1.13)(react@18.3.1) react: 18.3.1 - use-sync-external-store: 1.5.0(react@18.3.1) - transitivePeerDependencies: - - encoding - - react-redux - - "@yext/search-headless@2.7.0(encoding@0.1.13)(react@18.3.1)": - dependencies: - "@reduxjs/toolkit": 1.9.7(react@18.3.1) - "@yext/search-core": 2.7.0(encoding@0.1.13) - js-levenshtein: 1.1.6 - lodash: 4.17.21 + use-sync-external-store: 1.6.0(react@18.3.1) transitivePeerDependencies: - encoding - - react - react-redux "@yext/search-headless@2.8.1(encoding@0.1.13)(react@18.3.1)": @@ -14365,69 +14219,37 @@ snapshots: "@reduxjs/toolkit": 1.9.7(react@18.3.1) "@yext/search-core": 2.8.0(encoding@0.1.13) js-levenshtein: 1.1.6 - lodash: 4.17.21 + lodash: 4.17.23 transitivePeerDependencies: - encoding - react - react-redux - "@yext/search-ui-react@2.1.0(@types/react@18.3.24)(@yext/search-headless-react@2.6.0(encoding@0.1.13)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)))(typescript@5.9.2)": - dependencies: - "@restart/ui": 1.9.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@tailwindcss/forms": 0.5.10(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2))) - "@tailwindcss/line-clamp": 0.4.4(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2))) - "@tailwindcss/typography": 0.5.16(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2))) - "@yext/analytics": 1.1.0 - "@yext/search-headless-react": 2.6.0(encoding@0.1.13)(react@18.3.1) - classnames: 2.5.1 - i18next: 25.8.7(typescript@5.9.2) - lodash: 4.17.21 - lodash-es: 4.17.21 - mapbox-gl: 2.15.0 - prop-types: 15.8.1 - react: 18.3.1 - react-collapsed: 4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-dom: 18.3.1(react@18.3.1) - react-i18next: 15.7.1(i18next@25.8.7(typescript@5.9.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.2) - react-markdown: 6.0.3(@types/react@18.3.24)(react@18.3.1) - recent-searches: 1.0.5 - rehype-raw: 5.1.0 - rehype-sanitize: 4.0.0 - remark-gfm: 1.0.0 - tailwind-merge: 1.14.0 - use-isomorphic-layout-effect: 1.2.1(@types/react@18.3.24)(react@18.3.1) - transitivePeerDependencies: - - "@types/react" - - react-native - - supports-color - - tailwindcss - - typescript - - "@yext/search-ui-react@2.1.0(@types/react@18.3.24)(@yext/search-headless-react@2.7.1(encoding@0.1.13)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)))(typescript@5.9.2)": + "@yext/search-ui-react@2.1.1(@types/react@18.3.28)(@yext/search-headless-react@2.7.1(encoding@0.1.13)(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2))(typescript@5.9.3)": dependencies: "@restart/ui": 1.9.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@tailwindcss/forms": 0.5.10(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2))) - "@tailwindcss/line-clamp": 0.4.4(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2))) - "@tailwindcss/typography": 0.5.16(tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2))) + "@tailwindcss/forms": 0.5.11(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)) + "@tailwindcss/line-clamp": 0.4.4(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)) + "@tailwindcss/typography": 0.5.19(tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2)) "@yext/analytics": 1.1.0 "@yext/search-headless-react": 2.7.1(encoding@0.1.13)(react@18.3.1) classnames: 2.5.1 - i18next: 25.8.7(typescript@5.9.2) - lodash: 4.17.21 - lodash-es: 4.17.21 + i18next: 25.8.13(typescript@5.9.3) + lodash: 4.17.23 + lodash-es: 4.17.23 mapbox-gl: 2.15.0 prop-types: 15.8.1 react: 18.3.1 react-collapsed: 4.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-dom: 18.3.1(react@18.3.1) - react-i18next: 15.7.1(i18next@25.8.7(typescript@5.9.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.2) - react-markdown: 6.0.3(@types/react@18.3.24)(react@18.3.1) + react-i18next: 15.7.4(i18next@25.8.13(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) + react-markdown: 6.0.3(@types/react@18.3.28)(react@18.3.1) recent-searches: 1.0.5 rehype-raw: 5.1.0 rehype-sanitize: 4.0.0 remark-gfm: 1.0.0 tailwind-merge: 1.14.0 - use-isomorphic-layout-effect: 1.2.1(@types/react@18.3.24)(react@18.3.1) + use-isomorphic-layout-effect: 1.2.1(@types/react@18.3.28)(react@18.3.1) transitivePeerDependencies: - "@types/react" - react-native @@ -14442,63 +14264,51 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-walk@8.3.4: - dependencies: - acorn: 8.15.0 - optional: true - - acorn@8.15.0: {} + acorn@8.16.0: {} agent-base@7.1.4: {} - ajv-draft-04@1.0.0(ajv@8.13.0): + ajv-draft-04@1.0.0(ajv@8.18.0): optionalDependencies: - ajv: 8.13.0 + ajv: 8.18.0 - ajv-formats@3.0.1(ajv@8.13.0): + ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: - ajv: 8.13.0 + ajv: 8.18.0 - ajv@8.12.0: + ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 - ajv@8.13.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - algoliasearch@5.35.0: - dependencies: - "@algolia/abtesting": 1.1.0 - "@algolia/client-abtesting": 5.35.0 - "@algolia/client-analytics": 5.35.0 - "@algolia/client-common": 5.35.0 - "@algolia/client-insights": 5.35.0 - "@algolia/client-personalization": 5.35.0 - "@algolia/client-query-suggestions": 5.35.0 - "@algolia/client-search": 5.35.0 - "@algolia/ingestion": 1.35.0 - "@algolia/monitoring": 1.35.0 - "@algolia/recommend": 5.35.0 - "@algolia/requester-browser-xhr": 5.35.0 - "@algolia/requester-fetch": 5.35.0 - "@algolia/requester-node-http": 5.35.0 + algoliasearch@5.49.1: + dependencies: + "@algolia/abtesting": 1.15.1 + "@algolia/client-abtesting": 5.49.1 + "@algolia/client-analytics": 5.49.1 + "@algolia/client-common": 5.49.1 + "@algolia/client-insights": 5.49.1 + "@algolia/client-personalization": 5.49.1 + "@algolia/client-query-suggestions": 5.49.1 + "@algolia/client-search": 5.49.1 + "@algolia/ingestion": 1.49.1 + "@algolia/monitoring": 1.49.1 + "@algolia/recommend": 5.49.1 + "@algolia/requester-browser-xhr": 5.49.1 + "@algolia/requester-fetch": 5.49.1 + "@algolia/requester-node-http": 5.49.1 ansi-colors@4.1.3: {} - ansi-escapes@7.0.0: + ansi-escapes@7.3.0: dependencies: environment: 1.1.0 ansi-regex@5.0.1: {} - ansi-regex@6.2.0: {} + ansi-regex@6.2.2: {} ansi-styles@4.3.0: dependencies: @@ -14506,7 +14316,7 @@ snapshots: ansi-styles@5.2.0: {} - ansi-styles@6.2.1: {} + ansi-styles@6.2.3: {} ansi-to-html@0.7.2: dependencies: @@ -14519,9 +14329,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - arg@4.1.3: - optional: true - arg@5.0.2: {} argparse@1.0.10: @@ -14542,7 +14349,7 @@ snapshots: asn1.js@4.10.1: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 inherits: 2.0.4 minimalistic-assert: 1.0.1 @@ -14558,12 +14365,11 @@ snapshots: asynckit@0.4.0: {} - autoprefixer@10.4.21(postcss@8.5.6): + autoprefixer@10.4.27(postcss@8.5.6): dependencies: - browserslist: 4.25.3 - caniuse-lite: 1.0.30001737 - fraction.js: 4.3.7 - normalize-range: 0.1.2 + browserslist: 4.28.1 + caniuse-lite: 1.0.30001774 + fraction.js: 5.3.4 picocolors: 1.1.1 postcss: 8.5.6 postcss-value-parser: 4.2.0 @@ -14572,20 +14378,22 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - awesome-phonenumber@7.5.0: {} + awesome-phonenumber@7.8.0: {} axe-core@3.5.6: {} axe-core@4.10.2: {} - axe-core@4.10.3: {} + axe-core@4.11.1: {} bail@1.0.5: {} - balanced-match@1.0.2: {} + balanced-match@4.0.4: {} base64-js@1.5.1: {} + baseline-browser-mapping@2.10.0: {} + before-after-hook@2.2.3: {} bin-links@5.0.0: @@ -14598,7 +14406,7 @@ snapshots: binary-extensions@2.3.0: {} - birpc@2.5.0: {} + birpc@2.9.0: {} bl@4.1.0: dependencies: @@ -14608,30 +14416,30 @@ snapshots: bluebird@3.7.2: {} - bn.js@4.12.2: {} + bn.js@4.12.3: {} - bn.js@5.2.2: {} + bn.js@5.2.3: {} - body-parser@1.20.3: + body-parser@1.20.4: dependencies: bytes: 3.1.2 content-type: 1.0.5 debug: 2.6.9 depd: 2.0.0 destroy: 1.2.0 - http-errors: 2.0.0 + http-errors: 2.0.1 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.13.0 - raw-body: 2.5.2 + qs: 6.14.2 + raw-body: 2.5.3 type-is: 1.6.18 unpipe: 1.0.0 transitivePeerDependencies: - supports-color - brace-expansion@2.0.2: + brace-expansion@5.0.3: dependencies: - balanced-match: 1.0.2 + balanced-match: 4.0.4 braces@3.0.3: dependencies: @@ -14645,12 +14453,12 @@ snapshots: browser-resolve@2.0.0: dependencies: - resolve: 1.22.10 + resolve: 1.22.11 browserify-aes@1.2.0: dependencies: buffer-xor: 1.0.3 - cipher-base: 1.0.6 + cipher-base: 1.0.7 create-hash: 1.2.0 evp_bytestokey: 1.0.3 inherits: 2.0.4 @@ -14664,27 +14472,26 @@ snapshots: browserify-des@1.0.2: dependencies: - cipher-base: 1.0.6 + cipher-base: 1.0.7 des.js: 1.1.0 inherits: 2.0.4 safe-buffer: 5.2.1 browserify-rsa@4.1.1: dependencies: - bn.js: 5.2.2 + bn.js: 5.2.3 randombytes: 2.1.0 safe-buffer: 5.2.1 - browserify-sign@4.2.3: + browserify-sign@4.2.5: dependencies: - bn.js: 5.2.2 + bn.js: 5.2.3 browserify-rsa: 4.1.1 create-hash: 1.2.0 create-hmac: 1.1.7 elliptic: 6.6.1 - hash-base: 3.0.5 inherits: 2.0.4 - parse-asn1: 5.1.7 + parse-asn1: 5.1.9 readable-stream: 2.3.8 safe-buffer: 5.2.1 @@ -14692,12 +14499,13 @@ snapshots: dependencies: pako: 1.0.11 - browserslist@4.25.3: + browserslist@4.28.1: dependencies: - caniuse-lite: 1.0.30001737 - electron-to-chromium: 1.5.208 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.3) + baseline-browser-mapping: 2.10.0 + caniuse-lite: 1.0.30001774 + electron-to-chromium: 1.5.302 + node-releases: 2.0.27 + update-browserslist-db: 1.2.3(browserslist@4.28.1) buffer-xor@1.0.3: {} @@ -14715,7 +14523,7 @@ snapshots: bundle-name@4.1.0: dependencies: - run-applescript: 7.0.0 + run-applescript: 7.1.0 bundle-require@5.1.0(esbuild@0.24.2): dependencies: @@ -14730,15 +14538,15 @@ snapshots: dependencies: "@npmcli/fs": 4.0.0 fs-minipass: 3.0.3 - glob: 10.4.5 + glob: 10.5.0 lru-cache: 10.4.3 - minipass: 7.1.2 + minipass: 7.1.3 minipass-collect: 2.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 - p-map: 7.0.3 + p-map: 7.0.4 ssri: 12.0.0 - tar: 7.4.3 + tar: 7.5.9 unique-filename: 4.0.0 call-bind-apply-helpers@1.0.2: @@ -14764,7 +14572,7 @@ snapshots: camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001737: {} + caniuse-lite@1.0.30001774: {} ccount@1.1.0: {} @@ -14773,7 +14581,7 @@ snapshots: chai@5.3.3: dependencies: assertion-error: 2.0.1 - check-error: 2.1.1 + check-error: 2.1.3 deep-eql: 5.0.2 loupe: 3.2.1 pathval: 2.0.1 @@ -14783,8 +14591,6 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chalk@5.6.0: {} - chalk@5.6.2: {} character-entities-html4@2.1.0: {} @@ -14799,7 +14605,7 @@ snapshots: chardet@2.1.1: {} - check-error@2.1.1: {} + check-error@2.1.3: {} chokidar@3.6.0: dependencies: @@ -14825,12 +14631,13 @@ snapshots: chownr@3.0.0: {} - ci-info@4.3.0: {} + ci-info@4.4.0: {} - cipher-base@1.0.6: + cipher-base@1.0.7: dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 + to-buffer: 1.2.2 class-variance-authority@0.7.1: dependencies: @@ -14865,12 +14672,12 @@ snapshots: cmd-shim@7.0.0: {} - cmdk@1.1.1(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + cmdk@1.1.1(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-dialog": 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - "@radix-ui/react-id": 1.1.1(@types/react@18.3.24)(react@18.3.1) - "@radix-ui/react-primitive": 2.1.3(@types/react-dom@18.3.7(@types/react@18.3.24))(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-compose-refs": 1.1.2(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-dialog": 1.1.15(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + "@radix-ui/react-id": 1.1.1(@types/react@18.3.28)(react@18.3.1) + "@radix-ui/react-primitive": 2.1.4(@types/react-dom@18.3.7(@types/react@18.3.28))(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -14928,53 +14735,46 @@ snapshots: convert-source-map@2.0.0: {} - cookie-signature@1.0.6: {} + cookie-signature@1.0.7: {} - cookie@0.7.1: {} + cookie@0.7.2: {} - copy-anything@3.0.5: + copy-anything@4.0.5: dependencies: - is-what: 4.1.16 + is-what: 5.5.0 - core-js-pure@3.45.1: {} + core-js-pure@3.48.0: {} core-util-is@1.0.3: {} - cosmiconfig@9.0.0(typescript@5.9.2): + cosmiconfig@9.0.0(typescript@5.9.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 - js-yaml: 4.1.0 + js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 create-ecdh@4.0.4: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 elliptic: 6.6.1 - create-hash@1.1.3: - dependencies: - cipher-base: 1.0.6 - inherits: 2.0.4 - ripemd160: 2.0.2 - sha.js: 2.4.12 - create-hash@1.2.0: dependencies: - cipher-base: 1.0.6 + cipher-base: 1.0.7 inherits: 2.0.4 md5.js: 1.3.5 - ripemd160: 2.0.2 + ripemd160: 2.0.3 sha.js: 2.4.12 create-hmac@1.1.7: dependencies: - cipher-base: 1.0.6 + cipher-base: 1.0.7 create-hash: 1.2.0 inherits: 2.0.4 - ripemd160: 2.0.2 + ripemd160: 2.0.3 safe-buffer: 5.2.1 sha.js: 2.4.12 @@ -14997,14 +14797,14 @@ snapshots: crypto-browserify@3.12.1: dependencies: browserify-cipher: 1.0.1 - browserify-sign: 4.2.3 + browserify-sign: 4.2.5 create-ecdh: 4.0.4 create-hash: 1.2.0 create-hmac: 1.1.7 diffie-hellman: 5.0.3 hash-base: 3.0.5 inherits: 2.0.4 - pbkdf2: 3.1.3 + pbkdf2: 3.1.5 public-encrypt: 4.0.3 randombytes: 2.1.0 randomfill: 1.0.4 @@ -15018,7 +14818,7 @@ snapshots: "@asamuzakjp/css-color": 3.2.0 rrweb-cssom: 0.8.0 - csstype@3.1.3: {} + csstype@3.2.3: {} data-urls@5.0.0: dependencies: @@ -15029,7 +14829,7 @@ snapshots: dependencies: ms: 2.0.0 - debug@4.4.1: + debug@4.4.3: dependencies: ms: 2.1.3 @@ -15047,12 +14847,12 @@ snapshots: deepmerge@2.2.1: {} - default-browser-id@5.0.0: {} + default-browser-id@5.0.1: {} - default-browser@5.2.1: + default-browser@5.5.0: dependencies: bundle-name: 4.1.0 - default-browser-id: 5.0.0 + default-browser-id: 5.0.1 defaults@1.0.4: dependencies: @@ -15097,12 +14897,11 @@ snapshots: diff-sequences@29.6.3: {} - diff@4.0.2: - optional: true + diff@8.0.3: {} diffie-hellman@5.0.3: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 miller-rabin: 4.0.1 randombytes: 2.1.0 @@ -15112,12 +14911,12 @@ snapshots: dom-helpers@5.2.1: dependencies: - "@babel/runtime": 7.28.3 - csstype: 3.1.3 + "@babel/runtime": 7.28.6 + csstype: 3.2.3 domain-browser@4.22.0: {} - dompurify@3.2.6: + dompurify@3.3.1: optionalDependencies: "@types/trusted-types": 2.0.7 @@ -15133,11 +14932,11 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.208: {} + electron-to-chromium@1.5.302: {} elliptic@6.6.1: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 brorand: 1.1.0 hash.js: 1.1.7 hmac-drbg: 1.0.1 @@ -15147,14 +14946,12 @@ snapshots: emoji-regex-xs@1.0.0: {} - emoji-regex@10.4.0: {} + emoji-regex@10.6.0: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} - encodeurl@1.0.2: {} - encodeurl@2.0.0: {} encoding@0.1.13: @@ -15173,6 +14970,8 @@ snapshots: entities@6.0.1: {} + entities@7.0.1: {} + env-paths@2.2.1: {} environment@1.1.0: {} @@ -15183,7 +14982,7 @@ snapshots: err-code@2.0.3: {} - error-ex@1.3.2: + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -15258,34 +15057,34 @@ snapshots: "@esbuild/win32-ia32": 0.24.2 "@esbuild/win32-x64": 0.24.2 - esbuild@0.25.9: + esbuild@0.27.3: optionalDependencies: - "@esbuild/aix-ppc64": 0.25.9 - "@esbuild/android-arm": 0.25.9 - "@esbuild/android-arm64": 0.25.9 - "@esbuild/android-x64": 0.25.9 - "@esbuild/darwin-arm64": 0.25.9 - "@esbuild/darwin-x64": 0.25.9 - "@esbuild/freebsd-arm64": 0.25.9 - "@esbuild/freebsd-x64": 0.25.9 - "@esbuild/linux-arm": 0.25.9 - "@esbuild/linux-arm64": 0.25.9 - "@esbuild/linux-ia32": 0.25.9 - "@esbuild/linux-loong64": 0.25.9 - "@esbuild/linux-mips64el": 0.25.9 - "@esbuild/linux-ppc64": 0.25.9 - "@esbuild/linux-riscv64": 0.25.9 - "@esbuild/linux-s390x": 0.25.9 - "@esbuild/linux-x64": 0.25.9 - "@esbuild/netbsd-arm64": 0.25.9 - "@esbuild/netbsd-x64": 0.25.9 - "@esbuild/openbsd-arm64": 0.25.9 - "@esbuild/openbsd-x64": 0.25.9 - "@esbuild/openharmony-arm64": 0.25.9 - "@esbuild/sunos-x64": 0.25.9 - "@esbuild/win32-arm64": 0.25.9 - "@esbuild/win32-ia32": 0.25.9 - "@esbuild/win32-x64": 0.25.9 + "@esbuild/aix-ppc64": 0.27.3 + "@esbuild/android-arm": 0.27.3 + "@esbuild/android-arm64": 0.27.3 + "@esbuild/android-x64": 0.27.3 + "@esbuild/darwin-arm64": 0.27.3 + "@esbuild/darwin-x64": 0.27.3 + "@esbuild/freebsd-arm64": 0.27.3 + "@esbuild/freebsd-x64": 0.27.3 + "@esbuild/linux-arm": 0.27.3 + "@esbuild/linux-arm64": 0.27.3 + "@esbuild/linux-ia32": 0.27.3 + "@esbuild/linux-loong64": 0.27.3 + "@esbuild/linux-mips64el": 0.27.3 + "@esbuild/linux-ppc64": 0.27.3 + "@esbuild/linux-riscv64": 0.27.3 + "@esbuild/linux-s390x": 0.27.3 + "@esbuild/linux-x64": 0.27.3 + "@esbuild/netbsd-arm64": 0.27.3 + "@esbuild/netbsd-x64": 0.27.3 + "@esbuild/openbsd-arm64": 0.27.3 + "@esbuild/openbsd-x64": 0.27.3 + "@esbuild/openharmony-arm64": 0.27.3 + "@esbuild/sunos-x64": 0.27.3 + "@esbuild/win32-arm64": 0.27.3 + "@esbuild/win32-ia32": 0.27.3 + "@esbuild/win32-x64": 0.27.3 escalade@3.2.0: {} @@ -15305,7 +15104,7 @@ snapshots: etag@1.8.1: {} - eventemitter3@5.0.1: {} + eventemitter3@5.0.4: {} events@3.3.0: {} @@ -15336,54 +15135,54 @@ snapshots: is-plain-obj: 4.1.0 is-stream: 4.0.1 npm-run-path: 6.0.0 - pretty-ms: 9.2.0 + pretty-ms: 9.3.0 signal-exit: 4.1.0 strip-final-newline: 4.0.0 yoctocolors: 2.1.2 - expect-type@1.2.2: {} + expect-type@1.3.0: {} - expect@30.0.5: + expect@30.2.0: dependencies: - "@jest/expect-utils": 30.0.5 - "@jest/get-type": 30.0.1 - jest-matcher-utils: 30.0.5 - jest-message-util: 30.0.5 - jest-mock: 30.0.5 - jest-util: 30.0.5 + "@jest/expect-utils": 30.2.0 + "@jest/get-type": 30.1.0 + jest-matcher-utils: 30.2.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 - exponential-backoff@3.1.2: {} + exponential-backoff@3.1.3: {} - express@4.21.2: + express@4.22.1: dependencies: accepts: 1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.3 + body-parser: 1.20.4 content-disposition: 0.5.4 content-type: 1.0.5 - cookie: 0.7.1 - cookie-signature: 1.0.6 + cookie: 0.7.2 + cookie-signature: 1.0.7 debug: 2.6.9 depd: 2.0.0 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 - finalhandler: 1.3.1 + finalhandler: 1.3.2 fresh: 0.5.2 - http-errors: 2.0.0 + http-errors: 2.0.1 merge-descriptors: 1.0.3 methods: 1.1.2 on-finished: 2.4.1 parseurl: 1.3.3 path-to-regexp: 0.1.12 proxy-addr: 2.0.7 - qs: 6.13.0 + qs: 6.14.2 range-parser: 1.2.1 safe-buffer: 5.2.1 - send: 0.19.0 - serve-static: 1.16.2 + send: 0.19.2 + serve-static: 1.16.3 setprototypeof: 1.2.0 - statuses: 2.0.1 + statuses: 2.0.2 type-is: 1.6.18 utils-merge: 1.0.1 vary: 1.1.2 @@ -15410,7 +15209,19 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fastq@1.19.1: + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + + fast-uri@3.1.0: {} + + fast-wrap-ansi@0.2.0: + dependencies: + fast-string-width: 3.0.2 + + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -15428,14 +15239,14 @@ snapshots: filter-obj@5.1.0: {} - finalhandler@1.3.1: + finalhandler@1.3.2: dependencies: debug: 2.6.9 encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 - statuses: 2.0.1 + statuses: 2.0.2 unpipe: 1.0.0 transitivePeerDependencies: - supports-color @@ -15447,9 +15258,9 @@ snapshots: flat@5.0.2: {} - focus-trap@7.6.5: + focus-trap@7.8.0: dependencies: - tabbable: 6.2.0 + tabbable: 6.4.0 for-each@0.3.5: dependencies: @@ -15460,7 +15271,7 @@ snapshots: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.4: + form-data@4.0.5: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -15470,11 +15281,11 @@ snapshots: forwarded@0.2.0: {} - fraction.js@4.3.7: {} + fraction.js@5.3.4: {} fresh@0.5.2: {} - fs-extra@11.3.1: + fs-extra@11.3.3: dependencies: graceful-fs: 4.2.11 jsonfile: 6.2.0 @@ -15486,7 +15297,7 @@ snapshots: fs-minipass@3.0.3: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 fsevents@2.3.2: optional: true @@ -15502,15 +15313,15 @@ snapshots: commander: 2.20.3 github-url-from-git: 1.5.0 - generate-license-file@3.8.1(typescript@5.9.2): + generate-license-file@3.8.1(typescript@5.9.3): dependencies: "@commander-js/extra-typings": 13.1.0(commander@13.1.0) "@npmcli/arborist": 8.0.1 cli-spinners: 2.9.2 commander: 13.1.0 - cosmiconfig: 9.0.0(typescript@5.9.2) + cosmiconfig: 9.0.0(typescript@5.9.3) enquirer: 2.4.1 - glob: 10.4.5 + glob: 10.5.0 json5: 2.2.3 ora: 5.4.1 tslib: 2.8.1 @@ -15519,13 +15330,15 @@ snapshots: - supports-color - typescript + generator-function@2.0.1: {} + gensync@1.0.0-beta.2: {} geojson-vt@3.2.1: {} geolib@3.3.4: {} - get-east-asian-width@1.3.0: {} + get-east-asian-width@1.5.0: {} get-intrinsic@1.3.0: dependencies: @@ -15558,7 +15371,7 @@ snapshots: "@sec-ant/readable-stream": 0.4.1 is-stream: 4.0.1 - get-tsconfig@4.10.1: + get-tsconfig@4.13.6: dependencies: resolve-pkg-maps: 1.0.0 @@ -15574,20 +15387,20 @@ snapshots: dependencies: is-glob: 4.0.3 - glob@10.4.5: + glob@10.5.0: dependencies: foreground-child: 3.3.1 jackspeak: 3.4.3 - minimatch: 9.0.5 - minipass: 7.1.2 + minimatch: 9.0.8 + minipass: 7.1.3 package-json-from-dist: 1.0.1 path-scurry: 1.11.1 - glob@13.0.1: + glob@13.0.6: dependencies: - minimatch: 10.1.2 - minipass: 7.1.2 - path-scurry: 2.0.1 + minimatch: 10.2.2 + minipass: 7.1.3 + path-scurry: 2.0.2 globals@15.15.0: {} @@ -15599,7 +15412,7 @@ snapshots: gray-matter@4.0.3: dependencies: - js-yaml: 3.14.1 + js-yaml: 3.14.2 kind-of: 6.0.3 section-matter: 1.0.0 strip-bom-string: 1.0.0 @@ -15615,14 +15428,14 @@ snapshots: optionalDependencies: uglify-js: 3.19.3 - happy-dom@20.3.9: + happy-dom@20.7.0: dependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 "@types/whatwg-mimetype": 3.0.2 "@types/ws": 8.18.1 - entities: 4.5.0 + entities: 7.0.1 whatwg-mimetype: 3.0.0 - ws: 8.18.3 + ws: 8.19.0 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -15639,14 +15452,17 @@ snapshots: dependencies: has-symbols: 1.1.0 - hash-base@2.0.2: + hash-base@3.0.5: dependencies: inherits: 2.0.4 + safe-buffer: 5.2.1 - hash-base@3.0.5: + hash-base@3.1.2: dependencies: inherits: 2.0.4 + readable-stream: 2.3.8 safe-buffer: 5.2.1 + to-buffer: 1.2.2 hash.js@1.1.7: dependencies: @@ -15704,7 +15520,7 @@ snapshots: comma-separated-tokens: 2.0.3 hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 - mdast-util-to-hast: 13.2.0 + mdast-util-to-hast: 13.2.1 property-information: 7.1.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 @@ -15756,18 +15572,18 @@ snapshots: http-cache-semantics@4.2.0: {} - http-errors@2.0.0: + http-errors@2.0.1: dependencies: depd: 2.0.0 inherits: 2.0.4 setprototypeof: 1.2.0 - statuses: 2.0.1 + statuses: 2.0.2 toidentifier: 1.0.1 http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -15776,7 +15592,7 @@ snapshots: https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -15788,22 +15604,22 @@ snapshots: husky@9.1.7: {} - i18next-cli@1.42.8(@swc/helpers@0.5.17)(@types/node@20.19.11)(i18next@25.8.7(typescript@5.9.2))(react-dom@18.3.1(react@18.3.1))(typescript@5.9.2): + i18next-cli@1.46.0(@swc/helpers@0.5.19)(@types/node@20.19.34)(i18next@25.8.13(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(typescript@5.9.3): dependencies: "@croct/json5-parser": 0.2.2 - "@swc/core": 1.15.11(@swc/helpers@0.5.17) + "@swc/core": 1.15.11(@swc/helpers@0.5.19) chokidar: 5.0.0 commander: 14.0.3 execa: 9.6.1 - glob: 13.0.1 - i18next-resources-for-ts: 2.0.0(@swc/helpers@0.5.17) - inquirer: 13.2.2(@types/node@20.19.11) + glob: 13.0.6 + i18next-resources-for-ts: 2.0.0(@swc/helpers@0.5.19) + inquirer: 13.2.5(@types/node@20.19.34) jiti: 2.6.1 jsonc-parser: 3.3.1 - minimatch: 10.1.2 + minimatch: 10.2.2 ora: 9.3.0 react: 19.2.4 - react-i18next: 16.5.4(i18next@25.8.7(typescript@5.9.2))(react-dom@18.3.1(react@18.3.1))(react@19.2.4)(typescript@5.9.2) + react-i18next: 16.5.4(i18next@25.8.13(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@19.2.4)(typescript@5.9.3) yaml: 2.8.2 transitivePeerDependencies: - "@swc/helpers" @@ -15813,26 +15629,20 @@ snapshots: - react-native - typescript - i18next-resources-for-ts@2.0.0(@swc/helpers@0.5.17): + i18next-resources-for-ts@2.0.0(@swc/helpers@0.5.19): dependencies: "@babel/runtime": 7.28.6 - "@swc/core": 1.15.11(@swc/helpers@0.5.17) + "@swc/core": 1.15.11(@swc/helpers@0.5.19) chokidar: 5.0.0 yaml: 2.8.2 transitivePeerDependencies: - "@swc/helpers" - i18next@25.4.0(typescript@5.9.2): - dependencies: - "@babel/runtime": 7.28.3 - optionalDependencies: - typescript: 5.9.2 - - i18next@25.8.7(typescript@5.9.2): + i18next@25.8.13(typescript@5.9.3): dependencies: "@babel/runtime": 7.28.6 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 iconv-lite@0.4.24: dependencies: @@ -15850,7 +15660,7 @@ snapshots: ignore-walk@7.0.0: dependencies: - minimatch: 9.0.5 + minimatch: 9.0.8 ignore@5.3.2: {} @@ -15873,19 +15683,19 @@ snapshots: inline-style-parser@0.1.1: {} - inquirer@13.2.2(@types/node@20.19.11): + inquirer@13.2.5(@types/node@20.19.34): dependencies: "@inquirer/ansi": 2.0.3 - "@inquirer/core": 11.1.1(@types/node@20.19.11) - "@inquirer/prompts": 8.2.0(@types/node@20.19.11) - "@inquirer/type": 4.0.3(@types/node@20.19.11) + "@inquirer/core": 11.1.5(@types/node@20.19.34) + "@inquirer/prompts": 8.3.0(@types/node@20.19.34) + "@inquirer/type": 4.0.3(@types/node@20.19.34) mute-stream: 3.0.0 run-async: 4.0.6 rxjs: 7.8.2 optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 - ip-address@10.0.1: {} + ip-address@10.1.0: {} ipaddr.js@1.9.1: {} @@ -15927,13 +15737,14 @@ snapshots: is-fullwidth-code-point@4.0.0: {} - is-fullwidth-code-point@5.0.0: + is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.3.0 + get-east-asian-width: 1.5.0 - is-generator-function@1.1.0: + is-generator-function@1.1.2: dependencies: call-bound: 1.0.4 + generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -15978,7 +15789,7 @@ snapshots: is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 is-unicode-supported@0.1.0: {} @@ -15986,9 +15797,9 @@ snapshots: is-unicode-supported@2.1.0: {} - is-what@4.1.16: {} + is-what@5.5.0: {} - is-wsl@3.1.0: + is-wsl@3.1.1: dependencies: is-inside-container: 1.0.0 @@ -15996,11 +15807,11 @@ snapshots: isarray@2.0.5: {} - isbinaryfile@5.0.4: {} + isbinaryfile@5.0.7: {} isexe@2.0.0: {} - isexe@3.1.1: {} + isexe@3.1.5: {} isomorphic-timers-promises@1.0.1: {} @@ -16024,12 +15835,12 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 - jest-diff@30.0.5: + jest-diff@30.2.0: dependencies: "@jest/diff-sequences": 30.0.1 - "@jest/get-type": 30.0.1 + "@jest/get-type": 30.1.0 chalk: 4.1.2 - pretty-format: 30.0.5 + pretty-format: 30.2.0 jest-get-type@29.6.3: {} @@ -16040,39 +15851,39 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 - jest-matcher-utils@30.0.5: + jest-matcher-utils@30.2.0: dependencies: - "@jest/get-type": 30.0.1 + "@jest/get-type": 30.1.0 chalk: 4.1.2 - jest-diff: 30.0.5 - pretty-format: 30.0.5 + jest-diff: 30.2.0 + pretty-format: 30.2.0 - jest-message-util@30.0.5: + jest-message-util@30.2.0: dependencies: - "@babel/code-frame": 7.27.1 - "@jest/types": 30.0.5 + "@babel/code-frame": 7.29.0 + "@jest/types": 30.2.0 "@types/stack-utils": 2.0.3 chalk: 4.1.2 graceful-fs: 4.2.11 micromatch: 4.0.8 - pretty-format: 30.0.5 + pretty-format: 30.2.0 slash: 3.0.0 stack-utils: 2.0.6 - jest-mock@30.0.5: + jest-mock@30.2.0: dependencies: - "@jest/types": 30.0.5 - "@types/node": 20.19.11 - jest-util: 30.0.5 + "@jest/types": 30.2.0 + "@types/node": 20.19.34 + jest-util: 30.2.0 jest-regex-util@30.0.1: {} - jest-util@30.0.5: + jest-util@30.2.0: dependencies: - "@jest/types": 30.0.5 - "@types/node": 20.19.11 + "@jest/types": 30.2.0 + "@types/node": 20.19.34 chalk: 4.1.2 - ci-info: 4.3.0 + ci-info: 4.4.0 graceful-fs: 4.2.11 picomatch: 4.0.3 @@ -16092,17 +15903,12 @@ snapshots: js-tokens@9.0.1: {} - js-yaml@3.13.1: - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - - js-yaml@3.14.1: + js-yaml@3.14.2: dependencies: argparse: 1.0.10 esprima: 4.0.1 - js-yaml@4.1.0: + js-yaml@4.1.1: dependencies: argparse: 2.0.1 @@ -16111,12 +15917,12 @@ snapshots: cssstyle: 4.6.0 data-urls: 5.0.0 decimal.js: 10.6.0 - form-data: 4.0.4 + form-data: 4.0.5 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.21 + nwsapi: 2.2.23 parse5: 7.3.0 rrweb-cssom: 0.7.1 saxes: 6.0.0 @@ -16127,7 +15933,7 @@ snapshots: whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 whatwg-url: 14.2.0 - ws: 8.18.3 + ws: 8.19.0 xml-name-validator: 5.0.0 transitivePeerDependencies: - bufferutil @@ -16166,7 +15972,7 @@ snapshots: kleur@3.0.3: {} - ky@1.9.0: {} + ky@1.14.3: {} latest-version@9.0.0: dependencies: @@ -16188,16 +15994,16 @@ snapshots: lint-staged@15.5.2: dependencies: - chalk: 5.6.0 + chalk: 5.6.2 commander: 13.1.0 - debug: 4.4.1 + debug: 4.4.3 execa: 8.0.1 lilconfig: 3.1.3 listr2: 8.3.3 micromatch: 4.0.8 pidtree: 0.6.0 string-argv: 0.3.2 - yaml: 2.8.1 + yaml: 2.8.2 transitivePeerDependencies: - supports-color @@ -16205,10 +16011,10 @@ snapshots: dependencies: cli-truncate: 4.0.0 colorette: 2.0.20 - eventemitter3: 5.0.1 + eventemitter3: 5.0.4 log-update: 6.1.0 rfdc: 1.4.1 - wrap-ansi: 9.0.0 + wrap-ansi: 9.0.2 load-tsconfig@0.2.5: {} @@ -16216,17 +16022,13 @@ snapshots: dependencies: p-locate: 5.0.0 - lodash-es@4.17.21: {} - - lodash.castarray@4.4.0: {} - - lodash.isplainobject@4.0.6: {} + lodash-es@4.17.23: {} lodash.merge@4.6.2: {} lodash.sortby@4.7.0: {} - lodash@4.17.21: {} + lodash@4.17.23: {} log-symbols@4.1.0: dependencies: @@ -16235,7 +16037,7 @@ snapshots: log-symbols@6.0.0: dependencies: - chalk: 5.6.0 + chalk: 5.6.2 is-unicode-supported: 1.3.0 log-symbols@7.0.1: @@ -16245,11 +16047,11 @@ snapshots: log-update@6.1.0: dependencies: - ansi-escapes: 7.0.0 + ansi-escapes: 7.3.0 cli-cursor: 5.0.0 - slice-ansi: 7.1.0 - strip-ansi: 7.1.0 - wrap-ansi: 9.0.0 + slice-ansi: 7.1.2 + strip-ansi: 7.2.0 + wrap-ansi: 9.0.2 longest-streak@2.0.4: {} @@ -16283,19 +16085,16 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.30.18: + magic-string@0.30.21: dependencies: "@jridgewell/sourcemap-codec": 1.5.5 - make-error@1.3.6: - optional: true - make-fetch-happen@14.0.3: dependencies: "@npmcli/agent": 3.0.0 cacache: 19.0.1 http-cache-semantics: 4.2.0 - minipass: 7.1.2 + minipass: 7.1.3 minipass-fetch: 4.0.1 minipass-flush: 1.0.5 minipass-pipeline: 1.2.4 @@ -16333,7 +16132,7 @@ snapshots: mark.js@8.11.1: {} - markdown-it@14.1.0: + markdown-it@14.1.1: dependencies: argparse: 2.0.1 entities: 4.5.0 @@ -16418,7 +16217,7 @@ snapshots: unist-util-position: 3.1.0 unist-util-visit: 2.0.3 - mdast-util-to-hast@13.2.0: + mdast-util-to-hast@13.2.1: dependencies: "@types/hast": 3.0.4 "@types/mdast": 4.0.4 @@ -16427,7 +16226,7 @@ snapshots: micromark-util-sanitize-uri: 2.0.1 trim-lines: 3.0.1 unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 + unist-util-visit: 5.1.0 vfile: 6.0.3 mdast-util-to-markdown@0.6.5: @@ -16511,7 +16310,7 @@ snapshots: micromark@2.11.4: dependencies: - debug: 4.4.1 + debug: 4.4.3 parse-entities: 2.0.0 transitivePeerDependencies: - supports-color @@ -16523,7 +16322,7 @@ snapshots: miller-rabin@4.0.1: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 brorand: 1.1.0 mime-db@1.52.0: {} @@ -16546,29 +16345,29 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} - minimatch@10.0.3: + minimatch@10.2.1: dependencies: - "@isaacs/brace-expansion": 5.0.0 + brace-expansion: 5.0.3 - minimatch@10.1.2: + minimatch@10.2.2: dependencies: - "@isaacs/brace-expansion": 5.0.1 + brace-expansion: 5.0.3 - minimatch@9.0.5: + minimatch@9.0.8: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 5.0.3 minimist@1.2.8: {} minipass-collect@2.0.1: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 minipass-fetch@4.0.1: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 minipass-sized: 1.0.3 - minizlib: 3.0.2 + minizlib: 3.1.0 optionalDependencies: encoding: 0.1.13 @@ -16590,18 +16389,18 @@ snapshots: minipass@5.0.0: {} - minipass@7.1.2: {} + minipass@7.1.3: {} - minisearch@7.1.2: {} + minisearch@7.2.0: {} minizlib@2.1.2: dependencies: minipass: 3.3.6 yallist: 4.0.0 - minizlib@3.0.2: + minizlib@3.1.0: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 mitt@3.0.1: {} @@ -16611,10 +16410,10 @@ snapshots: mlly@1.8.0: dependencies: - acorn: 8.15.0 + acorn: 8.16.0 pathe: 2.0.3 pkg-types: 1.3.1 - ufo: 1.6.1 + ufo: 1.6.3 mrmime@2.0.1: {} @@ -16651,22 +16450,22 @@ snapshots: optionalDependencies: encoding: 0.1.13 - node-gyp@11.4.1: + node-gyp@11.5.0: dependencies: env-paths: 2.2.1 - exponential-backoff: 3.1.2 + exponential-backoff: 3.1.3 graceful-fs: 4.2.11 make-fetch-happen: 14.0.3 nopt: 8.1.0 proc-log: 5.0.0 - semver: 7.7.2 - tar: 7.4.3 - tinyglobby: 0.2.14 + semver: 7.7.4 + tar: 7.5.9 + tinyglobby: 0.2.15 which: 5.0.0 transitivePeerDependencies: - supports-color - node-releases@2.0.19: {} + node-releases@2.0.27: {} node-stdlib-browser@1.3.1: dependencies: @@ -16704,15 +16503,13 @@ snapshots: normalize-path@3.0.0: {} - normalize-range@0.1.2: {} - npm-bundled@4.0.0: dependencies: npm-normalize-package-bin: 4.0.0 - npm-install-checks@7.1.1: + npm-install-checks@7.1.2: dependencies: - semver: 7.7.2 + semver: 7.7.4 npm-normalize-package-bin@4.0.0: {} @@ -16720,7 +16517,7 @@ snapshots: dependencies: hosted-git-info: 8.1.0 proc-log: 5.0.0 - semver: 7.7.2 + semver: 7.7.4 validate-npm-package-name: 6.0.2 npm-packlist@9.0.0: @@ -16729,19 +16526,19 @@ snapshots: npm-pick-manifest@10.0.0: dependencies: - npm-install-checks: 7.1.1 + npm-install-checks: 7.1.2 npm-normalize-package-bin: 4.0.0 npm-package-arg: 12.0.2 - semver: 7.7.2 + semver: 7.7.4 npm-registry-fetch@18.0.2: dependencies: "@npmcli/redact": 3.2.2 jsonparse: 1.3.1 make-fetch-happen: 14.0.3 - minipass: 7.1.2 + minipass: 7.1.3 minipass-fetch: 4.0.1 - minizlib: 3.0.2 + minizlib: 3.1.0 npm-package-arg: 12.0.2 proc-log: 5.0.0 transitivePeerDependencies: @@ -16756,7 +16553,7 @@ snapshots: path-key: 4.0.0 unicorn-magic: 0.3.0 - nwsapi@2.2.21: {} + nwsapi@2.2.23: {} object-assign@4.1.1: {} @@ -16809,12 +16606,12 @@ snapshots: oniguruma-to-es@3.1.1: dependencies: emoji-regex-xs: 1.0.0 - regex: 6.0.1 + regex: 6.1.0 regex-recursion: 6.0.2 open@10.2.0: dependencies: - default-browser: 5.2.1 + default-browser: 5.5.0 define-lazy-prop: 3.0.0 is-inside-container: 1.0.0 wsl-utils: 0.1.0 @@ -16833,7 +16630,7 @@ snapshots: ora@8.2.0: dependencies: - chalk: 5.6.0 + chalk: 5.6.2 cli-cursor: 5.0.0 cli-spinners: 2.9.2 is-interactive: 2.0.0 @@ -16841,7 +16638,7 @@ snapshots: log-symbols: 6.0.0 stdin-discarder: 0.2.2 string-width: 7.2.0 - strip-ansi: 7.1.0 + strip-ansi: 7.2.0 ora@9.3.0: dependencies: @@ -16852,7 +16649,7 @@ snapshots: is-unicode-supported: 2.1.0 log-symbols: 7.0.1 stdin-discarder: 0.3.1 - string-width: 8.1.1 + string-width: 8.2.0 orderedmap@2.1.1: {} @@ -16877,27 +16674,27 @@ snapshots: dependencies: p-limit: 3.1.0 - p-map@7.0.3: {} + p-map@7.0.4: {} package-json-from-dist@1.0.1: {} package-json@10.0.1: dependencies: - ky: 1.9.0 - registry-auth-token: 5.1.0 + ky: 1.14.3 + registry-auth-token: 5.1.1 registry-url: 6.0.1 - semver: 7.7.2 + semver: 7.7.4 pacote@19.0.1: dependencies: "@npmcli/git": 6.0.3 "@npmcli/installed-package-contents": 3.0.0 "@npmcli/package-json": 6.2.0 - "@npmcli/promise-spawn": 8.0.2 + "@npmcli/promise-spawn": 8.0.3 "@npmcli/run-script": 9.1.0 cacache: 19.0.1 fs-minipass: 3.0.3 - minipass: 7.1.2 + minipass: 7.1.3 npm-package-arg: 12.0.2 npm-packlist: 9.0.0 npm-pick-manifest: 10.0.0 @@ -16915,11 +16712,11 @@ snapshots: "@npmcli/git": 6.0.3 "@npmcli/installed-package-contents": 3.0.0 "@npmcli/package-json": 6.2.0 - "@npmcli/promise-spawn": 8.0.2 + "@npmcli/promise-spawn": 8.0.3 "@npmcli/run-script": 9.1.0 cacache: 19.0.1 fs-minipass: 3.0.3 - minipass: 7.1.2 + minipass: 7.1.3 npm-package-arg: 12.0.2 npm-packlist: 9.0.0 npm-pick-manifest: 10.0.0 @@ -16938,13 +16735,12 @@ snapshots: dependencies: callsites: 3.1.0 - parse-asn1@5.1.7: + parse-asn1@5.1.9: dependencies: asn1.js: 4.10.1 browserify-aes: 1.2.0 evp_bytestokey: 1.0.3 - hash-base: 3.0.5 - pbkdf2: 3.1.3 + pbkdf2: 3.1.5 safe-buffer: 5.2.1 parse-conflict-json@4.0.0: @@ -16964,8 +16760,8 @@ snapshots: parse-json@5.2.0: dependencies: - "@babel/code-frame": 7.27.1 - error-ex: 1.3.2 + "@babel/code-frame": 7.29.0 + error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -16992,12 +16788,12 @@ snapshots: path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 - minipass: 7.1.2 + minipass: 7.1.3 - path-scurry@2.0.1: + path-scurry@2.0.2: dependencies: lru-cache: 11.2.6 - minipass: 7.1.2 + minipass: 7.1.3 path-to-regexp@0.1.12: {} @@ -17010,14 +16806,14 @@ snapshots: ieee754: 1.2.1 resolve-protobuf-schema: 2.1.0 - pbkdf2@3.1.3: + pbkdf2@3.1.5: dependencies: - create-hash: 1.1.3 + create-hash: 1.2.0 create-hmac: 1.1.7 - ripemd160: 2.0.1 + ripemd160: 2.0.3 safe-buffer: 5.2.1 sha.js: 2.4.12 - to-buffer: 1.2.1 + to-buffer: 1.2.2 perfect-debounce@1.0.0: {} @@ -17046,10 +16842,10 @@ snapshots: "@jsdevtools/ez-spawn": 3.0.4 "@octokit/action": 6.1.0 ignore: 5.3.2 - isbinaryfile: 5.0.4 + isbinaryfile: 5.0.7 pkg-types: 1.3.1 query-registry: 3.0.1 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 pkg-types@1.3.1: dependencies: @@ -17074,28 +16870,20 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.10 + resolve: 1.22.11 - postcss-js@4.0.1(postcss@8.5.6): + postcss-js@4.1.0(postcss@8.5.6): dependencies: camelcase-css: 2.0.1 postcss: 8.5.6 - postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)): - dependencies: - lilconfig: 3.1.3 - yaml: 2.8.1 - optionalDependencies: - postcss: 8.5.6 - ts-node: 10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2) - - postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.4)(yaml@2.8.2): + postcss-load-config@6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2): dependencies: lilconfig: 3.1.3 optionalDependencies: - jiti: 2.6.1 + jiti: 1.21.7 postcss: 8.5.6 - tsx: 4.20.4 + tsx: 4.21.0 yaml: 2.8.2 postcss-nested@6.2.0(postcss@8.5.6): @@ -17113,7 +16901,7 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss-selector-parser@7.1.0: + postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 @@ -17128,13 +16916,13 @@ snapshots: potpack@2.1.0: {} - preact@10.27.1: {} + preact@10.28.4: {} - prettier-plugin-tailwindcss@0.4.1(prettier@3.6.2): + prettier-plugin-tailwindcss@0.4.1(prettier@3.8.1): dependencies: - prettier: 3.6.2 + prettier: 3.8.1 - prettier@3.6.2: {} + prettier@3.8.1: {} pretty-format@27.5.1: dependencies: @@ -17148,13 +16936,13 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-format@30.0.5: + pretty-format@30.2.0: dependencies: "@jest/schemas": 30.0.5 ansi-styles: 5.2.0 react-is: 18.3.1 - pretty-ms@9.2.0: + pretty-ms@9.3.0: dependencies: parse-ms: 4.0.0 @@ -17192,7 +16980,7 @@ snapshots: property-information@7.1.0: {} - prosemirror-changeset@2.3.1: + prosemirror-changeset@2.4.0: dependencies: prosemirror-transform: 1.11.0 @@ -17210,20 +16998,20 @@ snapshots: dependencies: prosemirror-state: 1.4.4 prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 prosemirror-gapcursor@1.4.0: dependencies: prosemirror-keymap: 1.2.3 prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 prosemirror-history@1.5.0: dependencies: prosemirror-state: 1.4.4 prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 rope-sequence: 1.3.4 prosemirror-inputrules@1.5.1: @@ -17236,13 +17024,13 @@ snapshots: prosemirror-state: 1.4.4 w3c-keyname: 2.2.8 - prosemirror-markdown@1.13.3: + prosemirror-markdown@1.13.4: dependencies: "@types/markdown-it": 14.1.2 - markdown-it: 14.1.0 + markdown-it: 14.1.1 prosemirror-model: 1.25.4 - prosemirror-menu@1.2.5: + prosemirror-menu@1.3.0: dependencies: crelt: 1.0.6 prosemirror-commands: 1.7.1 @@ -17267,7 +17055,7 @@ snapshots: dependencies: prosemirror-model: 1.25.4 prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 prosemirror-tables@1.8.5: dependencies: @@ -17275,21 +17063,21 @@ snapshots: prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 prosemirror-transform: 1.11.0 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 - prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.5): + prosemirror-trailing-node@3.0.0(prosemirror-model@1.25.4)(prosemirror-state@1.4.4)(prosemirror-view@1.41.6): dependencies: "@remirror/core-constants": 3.0.0 escape-string-regexp: 4.0.0 prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 - prosemirror-view: 1.41.5 + prosemirror-view: 1.41.6 prosemirror-transform@1.11.0: dependencies: prosemirror-model: 1.25.4 - prosemirror-view@1.41.5: + prosemirror-view@1.41.6: dependencies: prosemirror-model: 1.25.4 prosemirror-state: 1.4.4 @@ -17310,10 +17098,10 @@ snapshots: public-encrypt@4.0.3: dependencies: - bn.js: 4.12.2 + bn.js: 4.12.3 browserify-rsa: 4.1.1 create-hash: 1.2.0 - parse-asn1: 5.1.7 + parse-asn1: 5.1.9 randombytes: 2.1.0 safe-buffer: 5.2.1 @@ -17323,9 +17111,9 @@ snapshots: punycode@2.3.1: {} - pure-react-carousel@1.32.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + pure-react-carousel@1.35.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - "@babel/runtime": 7.28.3 + "@babel/runtime": 7.28.6 deep-freeze: 0.0.1 deepmerge: 2.2.1 equals: 1.0.5 @@ -17333,24 +17121,24 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - qs@6.13.0: + qs@6.14.2: dependencies: side-channel: 1.1.0 - qs@6.14.0: + qs@6.15.0: dependencies: side-channel: 1.1.0 query-registry@3.0.1: dependencies: - query-string: 9.2.2 - quick-lru: 7.1.0 + query-string: 9.3.1 + quick-lru: 7.3.0 url-join: 5.0.0 validate-npm-package-name: 5.0.1 zod: 3.25.76 zod-package-json: 1.2.0 - query-string@9.2.2: + query-string@9.3.1: dependencies: decode-uri-component: 0.4.1 filter-obj: 5.1.0 @@ -17362,7 +17150,7 @@ snapshots: queue-microtask@1.2.3: {} - quick-lru@7.1.0: {} + quick-lru@7.3.0: {} quickselect@2.0.0: {} @@ -17377,10 +17165,10 @@ snapshots: range-parser@1.2.1: {} - raw-body@2.5.2: + raw-body@2.5.3: dependencies: bytes: 3.1.2 - http-errors: 2.0.0 + http-errors: 2.0.1 iconv-lite: 0.4.24 unpipe: 1.0.0 @@ -17400,8 +17188,8 @@ snapshots: react-color@2.19.3(react@18.3.1): dependencies: "@icons/material": 0.2.4(react@18.3.1) - lodash: 4.17.21 - lodash-es: 4.17.21 + lodash: 4.17.23 + lodash-es: 4.17.23 material-colors: 1.2.6 prop-types: 15.8.1 react: 18.3.1 @@ -17416,7 +17204,7 @@ snapshots: react-error-boundary@5.0.0(react@18.3.1): dependencies: - "@babel/runtime": 7.28.3 + "@babel/runtime": 7.28.6 react: 18.3.1 react-hotkeys-hook@4.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -17424,42 +17212,32 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-i18next@15.7.1(i18next@25.4.0(typescript@5.9.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.2): - dependencies: - "@babel/runtime": 7.28.3 - html-parse-stringify: 3.0.1 - i18next: 25.4.0(typescript@5.9.2) - react: 18.3.1 - optionalDependencies: - react-dom: 18.3.1(react@18.3.1) - typescript: 5.9.2 - - react-i18next@15.7.1(i18next@25.8.7(typescript@5.9.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.2): + react-i18next@15.7.4(i18next@25.8.13(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3): dependencies: - "@babel/runtime": 7.28.3 + "@babel/runtime": 7.28.6 html-parse-stringify: 3.0.1 - i18next: 25.8.7(typescript@5.9.2) + i18next: 25.8.13(typescript@5.9.3) react: 18.3.1 optionalDependencies: react-dom: 18.3.1(react@18.3.1) - typescript: 5.9.2 + typescript: 5.9.3 - react-i18next@16.5.4(i18next@25.8.7(typescript@5.9.2))(react-dom@18.3.1(react@18.3.1))(react@19.2.4)(typescript@5.9.2): + react-i18next@16.5.4(i18next@25.8.13(typescript@5.9.3))(react-dom@18.3.1(react@18.3.1))(react@19.2.4)(typescript@5.9.3): dependencies: "@babel/runtime": 7.28.6 html-parse-stringify: 3.0.1 - i18next: 25.8.7(typescript@5.9.2) + i18next: 25.8.13(typescript@5.9.3) react: 19.2.4 use-sync-external-store: 1.6.0(react@19.2.4) optionalDependencies: react-dom: 18.3.1(react@18.3.1) - typescript: 5.9.2 + typescript: 5.9.3 react-icons@5.5.0(react@18.3.1): dependencies: react: 18.3.1 - react-international-phone@4.6.0(react@18.3.1): + react-international-phone@4.8.0(react@18.3.1): dependencies: react: 18.3.1 @@ -17469,10 +17247,10 @@ snapshots: react-is@18.3.1: {} - react-markdown@6.0.3(@types/react@18.3.24)(react@18.3.1): + react-markdown@6.0.3(@types/react@18.3.28)(react@18.3.1): dependencies: "@types/hast": 2.3.10 - "@types/react": 18.3.24 + "@types/react": 18.3.28 "@types/unist": 2.0.11 comma-separated-tokens: 1.0.8 prop-types: 15.8.1 @@ -17496,39 +17274,39 @@ snapshots: react-refresh@0.17.0: {} - react-remove-scroll-bar@2.3.8(@types/react@18.3.24)(react@18.3.1): + react-remove-scroll-bar@2.3.8(@types/react@18.3.28)(react@18.3.1): dependencies: react: 18.3.1 - react-style-singleton: 2.2.3(@types/react@18.3.24)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.28)(react@18.3.1) tslib: 2.8.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - react-remove-scroll@2.7.1(@types/react@18.3.24)(react@18.3.1): + react-remove-scroll@2.7.2(@types/react@18.3.28)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.8(@types/react@18.3.24)(react@18.3.1) - react-style-singleton: 2.2.3(@types/react@18.3.24)(react@18.3.1) + react-remove-scroll-bar: 2.3.8(@types/react@18.3.28)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.28)(react@18.3.1) tslib: 2.8.1 - use-callback-ref: 1.3.3(@types/react@18.3.24)(react@18.3.1) - use-sidecar: 1.1.3(@types/react@18.3.24)(react@18.3.1) + use-callback-ref: 1.3.3(@types/react@18.3.28)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.28)(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - react-style-singleton@2.2.3(@types/react@18.3.24)(react@18.3.1): + react-style-singleton@2.2.3(@types/react@18.3.28)(react@18.3.1): dependencies: get-nonce: 1.0.1 react: 18.3.1 tslib: 2.8.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - react-textarea-autosize@8.5.9(@types/react@18.3.24)(react@18.3.1): + react-textarea-autosize@8.5.9(@types/react@18.3.28)(react@18.3.1): dependencies: - "@babel/runtime": 7.28.3 + "@babel/runtime": 7.28.6 react: 18.3.1 - use-composed-ref: 1.4.0(@types/react@18.3.24)(react@18.3.1) - use-latest: 1.3.0(@types/react@18.3.24)(react@18.3.1) + use-composed-ref: 1.4.0(@types/react@18.3.28)(react@18.3.1) + use-latest: 1.3.0(@types/react@18.3.28)(react@18.3.1) transitivePeerDependencies: - "@types/react" @@ -17540,7 +17318,7 @@ snapshots: reactcss@1.2.3(react@18.3.1): dependencies: - lodash: 4.17.21 + lodash: 4.17.23 react: 18.3.1 read-cache@1.0.0: @@ -17586,7 +17364,7 @@ snapshots: redux@4.2.1: dependencies: - "@babel/runtime": 7.28.3 + "@babel/runtime": 7.28.6 regex-recursion@5.1.1: dependencies: @@ -17603,13 +17381,13 @@ snapshots: dependencies: regex-utilities: 2.3.0 - regex@6.0.1: + regex@6.1.0: dependencies: regex-utilities: 2.3.0 - registry-auth-token@5.1.0: + registry-auth-token@5.1.1: dependencies: - "@pnpm/npm-conf": 2.3.1 + "@pnpm/npm-conf": 3.0.2 registry-url@6.0.1: dependencies: @@ -17658,7 +17436,7 @@ snapshots: dependencies: protocol-buffers-schema: 3.6.0 - resolve@1.22.10: + resolve@1.22.11: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 @@ -17680,40 +17458,40 @@ snapshots: rfdc@1.4.1: {} - ripemd160@2.0.1: - dependencies: - hash-base: 2.0.2 - inherits: 2.0.4 - - ripemd160@2.0.2: + ripemd160@2.0.3: dependencies: - hash-base: 3.0.5 + hash-base: 3.1.2 inherits: 2.0.4 - rollup@4.47.1: + rollup@4.59.0: dependencies: "@types/estree": 1.0.8 optionalDependencies: - "@rollup/rollup-android-arm-eabi": 4.47.1 - "@rollup/rollup-android-arm64": 4.47.1 - "@rollup/rollup-darwin-arm64": 4.47.1 - "@rollup/rollup-darwin-x64": 4.47.1 - "@rollup/rollup-freebsd-arm64": 4.47.1 - "@rollup/rollup-freebsd-x64": 4.47.1 - "@rollup/rollup-linux-arm-gnueabihf": 4.47.1 - "@rollup/rollup-linux-arm-musleabihf": 4.47.1 - "@rollup/rollup-linux-arm64-gnu": 4.47.1 - "@rollup/rollup-linux-arm64-musl": 4.47.1 - "@rollup/rollup-linux-loongarch64-gnu": 4.47.1 - "@rollup/rollup-linux-ppc64-gnu": 4.47.1 - "@rollup/rollup-linux-riscv64-gnu": 4.47.1 - "@rollup/rollup-linux-riscv64-musl": 4.47.1 - "@rollup/rollup-linux-s390x-gnu": 4.47.1 - "@rollup/rollup-linux-x64-gnu": 4.47.1 - "@rollup/rollup-linux-x64-musl": 4.47.1 - "@rollup/rollup-win32-arm64-msvc": 4.47.1 - "@rollup/rollup-win32-ia32-msvc": 4.47.1 - "@rollup/rollup-win32-x64-msvc": 4.47.1 + "@rollup/rollup-android-arm-eabi": 4.59.0 + "@rollup/rollup-android-arm64": 4.59.0 + "@rollup/rollup-darwin-arm64": 4.59.0 + "@rollup/rollup-darwin-x64": 4.59.0 + "@rollup/rollup-freebsd-arm64": 4.59.0 + "@rollup/rollup-freebsd-x64": 4.59.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.59.0 + "@rollup/rollup-linux-arm-musleabihf": 4.59.0 + "@rollup/rollup-linux-arm64-gnu": 4.59.0 + "@rollup/rollup-linux-arm64-musl": 4.59.0 + "@rollup/rollup-linux-loong64-gnu": 4.59.0 + "@rollup/rollup-linux-loong64-musl": 4.59.0 + "@rollup/rollup-linux-ppc64-gnu": 4.59.0 + "@rollup/rollup-linux-ppc64-musl": 4.59.0 + "@rollup/rollup-linux-riscv64-gnu": 4.59.0 + "@rollup/rollup-linux-riscv64-musl": 4.59.0 + "@rollup/rollup-linux-s390x-gnu": 4.59.0 + "@rollup/rollup-linux-x64-gnu": 4.59.0 + "@rollup/rollup-linux-x64-musl": 4.59.0 + "@rollup/rollup-openbsd-x64": 4.59.0 + "@rollup/rollup-openharmony-arm64": 4.59.0 + "@rollup/rollup-win32-arm64-msvc": 4.59.0 + "@rollup/rollup-win32-ia32-msvc": 4.59.0 + "@rollup/rollup-win32-x64-gnu": 4.59.0 + "@rollup/rollup-win32-x64-msvc": 4.59.0 fsevents: 2.3.3 rope-sequence@1.3.4: {} @@ -17722,7 +17500,7 @@ snapshots: rrweb-cssom@0.8.0: {} - run-applescript@7.0.0: {} + run-applescript@7.1.0: {} run-async@4.0.6: {} @@ -17769,32 +17547,32 @@ snapshots: dependencies: lru-cache: 6.0.0 - semver@7.7.2: {} + semver@7.7.4: {} - send@0.19.0: + send@0.19.2: dependencies: debug: 2.6.9 depd: 2.0.0 destroy: 1.2.0 - encodeurl: 1.0.2 + encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 fresh: 0.5.2 - http-errors: 2.0.0 + http-errors: 2.0.1 mime: 1.6.0 ms: 2.1.3 on-finished: 2.4.1 range-parser: 1.2.1 - statuses: 2.0.1 + statuses: 2.0.2 transitivePeerDependencies: - supports-color - serve-static@1.16.2: + serve-static@1.16.3: dependencies: encodeurl: 2.0.0 escape-html: 1.0.3 parseurl: 1.3.3 - send: 0.19.0 + send: 0.19.2 transitivePeerDependencies: - supports-color @@ -17815,7 +17593,7 @@ snapshots: dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 - to-buffer: 1.2.1 + to-buffer: 1.2.2 shebang-command@2.0.0: dependencies: @@ -17890,7 +17668,7 @@ snapshots: transitivePeerDependencies: - supports-color - sirv@3.0.1: + sirv@3.0.2: dependencies: "@polka/url": 1.0.0-next.29 mrmime: 2.0.1 @@ -17902,27 +17680,27 @@ snapshots: slice-ansi@5.0.0: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 is-fullwidth-code-point: 4.0.0 - slice-ansi@7.1.0: + slice-ansi@7.1.2: dependencies: - ansi-styles: 6.2.1 - is-fullwidth-code-point: 5.0.0 + ansi-styles: 6.2.3 + is-fullwidth-code-point: 5.1.0 smart-buffer@4.2.0: {} socks-proxy-agent@8.0.5: dependencies: agent-base: 7.1.4 - debug: 4.4.1 + debug: 4.4.3 socks: 2.8.7 transitivePeerDependencies: - supports-color socks@2.8.7: dependencies: - ip-address: 10.0.1 + ip-address: 10.1.0 smart-buffer: 4.2.0 sonner@1.7.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -17945,16 +17723,16 @@ snapshots: spdx-correct@3.2.0: dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.22 + spdx-license-ids: 3.0.23 spdx-exceptions@2.5.0: {} spdx-expression-parse@3.0.1: dependencies: spdx-exceptions: 2.5.0 - spdx-license-ids: 3.0.22 + spdx-license-ids: 3.0.23 - spdx-license-ids@3.0.22: {} + spdx-license-ids@3.0.23: {} speakingurl@14.0.1: {} @@ -17964,7 +17742,7 @@ snapshots: ssri@12.0.0: dependencies: - minipass: 7.1.2 + minipass: 7.1.3 stack-utils@2.0.6: dependencies: @@ -17972,9 +17750,9 @@ snapshots: stackback@0.0.2: {} - statuses@2.0.1: {} + statuses@2.0.2: {} - std-env@3.9.0: {} + std-env@3.10.0: {} stdin-discarder@0.2.2: {} @@ -18004,18 +17782,18 @@ snapshots: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.1.0 + strip-ansi: 7.2.0 string-width@7.2.0: dependencies: - emoji-regex: 10.4.0 - get-east-asian-width: 1.3.0 - strip-ansi: 7.1.0 + emoji-regex: 10.6.0 + get-east-asian-width: 1.5.0 + strip-ansi: 7.2.0 - string-width@8.1.1: + string-width@8.2.0: dependencies: - get-east-asian-width: 1.3.0 - strip-ansi: 7.1.0 + get-east-asian-width: 1.5.0 + strip-ansi: 7.2.0 string_decoder@1.1.1: dependencies: @@ -18034,9 +17812,9 @@ snapshots: dependencies: ansi-regex: 5.0.1 - strip-ansi@7.1.0: + strip-ansi@7.2.0: dependencies: - ansi-regex: 6.2.0 + ansi-regex: 6.2.2 strip-bom-string@1.0.0: {} @@ -18048,7 +17826,7 @@ snapshots: strip-json-comments@3.1.1: {} - strip-literal@3.0.0: + strip-literal@3.1.0: dependencies: js-tokens: 9.0.1 @@ -18056,23 +17834,23 @@ snapshots: dependencies: inline-style-parser: 0.1.1 - sucrase@3.35.0: + sucrase@3.35.1: dependencies: "@jridgewell/gen-mapping": 0.3.13 commander: 4.1.1 - glob: 10.4.5 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.7 + tinyglobby: 0.2.15 ts-interface-checker: 0.1.13 supercluster@8.0.1: dependencies: kdbush: 4.0.2 - superjson@2.2.2: + superjson@2.2.6: dependencies: - copy-anything: 3.0.5 + copy-anything: 4.0.5 supports-color@7.2.0: dependencies: @@ -18086,13 +17864,13 @@ snapshots: symbol-tree@3.2.4: {} - tabbable@6.2.0: {} + tabbable@6.4.0: {} tailwind-merge@1.14.0: {} - tailwind-merge@2.6.0: {} + tailwind-merge@2.6.1: {} - tailwindcss@3.4.17(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)): + tailwindcss@3.4.19(tsx@4.21.0)(yaml@2.8.2): dependencies: "@alloc/quick-lru": 5.2.0 arg: 5.0.2 @@ -18110,14 +17888,15 @@ snapshots: picocolors: 1.1.1 postcss: 8.5.6 postcss-import: 15.1.0(postcss@8.5.6) - postcss-js: 4.0.1(postcss@8.5.6) - postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2)) + postcss-js: 4.1.0(postcss@8.5.6) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2) postcss-nested: 6.2.0(postcss@8.5.6) postcss-selector-parser: 6.1.2 - resolve: 1.22.10 - sucrase: 3.35.0 + resolve: 1.22.11 + sucrase: 3.35.1 transitivePeerDependencies: - - ts-node + - tsx + - yaml tar@6.2.1: dependencies: @@ -18128,13 +17907,12 @@ snapshots: mkdirp: 1.0.4 yallist: 4.0.0 - tar@7.4.3: + tar@7.5.9: dependencies: "@isaacs/fs-minipass": 4.0.1 chownr: 3.0.0 - minipass: 7.1.2 - minizlib: 3.0.2 - mkdirp: 3.0.1 + minipass: 7.1.3 + minizlib: 3.1.0 yallist: 5.0.0 thenify-all@1.6.0: @@ -18157,7 +17935,7 @@ snapshots: tinyexec@0.3.2: {} - tinyglobby@0.2.14: + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 @@ -18168,9 +17946,9 @@ snapshots: tinyrainbow@2.0.0: {} - tinyspy@4.0.3: {} + tinyspy@4.0.4: {} - to-buffer@1.2.1: + to-buffer@1.2.2: dependencies: isarray: 2.0.5 safe-buffer: 5.2.1 @@ -18216,62 +17994,41 @@ snapshots: "@ts-morph/common": 0.23.0 code-block-writer: 13.0.3 - ts-node@10.9.2(@swc/core@1.15.11(@swc/helpers@0.5.17))(@types/node@20.19.11)(typescript@5.9.2): - dependencies: - "@cspotcode/source-map-support": 0.8.1 - "@tsconfig/node10": 1.0.11 - "@tsconfig/node12": 1.0.11 - "@tsconfig/node14": 1.0.3 - "@tsconfig/node16": 1.0.4 - "@types/node": 20.19.11 - acorn: 8.15.0 - acorn-walk: 8.3.4 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.9.2 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - optionalDependencies: - "@swc/core": 1.15.11(@swc/helpers@0.5.17) - optional: true - tslib@2.8.1: {} - tsup@8.3.5(@microsoft/api-extractor@7.52.11(@types/node@20.19.11))(@swc/core@1.15.11(@swc/helpers@0.5.17))(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.4)(typescript@5.9.2)(yaml@2.8.2): + tsup@8.3.5(@microsoft/api-extractor@7.57.6(@types/node@20.19.34))(@swc/core@1.15.11(@swc/helpers@0.5.19))(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): dependencies: bundle-require: 5.1.0(esbuild@0.24.2) cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.2 - debug: 4.4.1 + debug: 4.4.3 esbuild: 0.24.2 joycon: 3.1.1 picocolors: 1.1.1 - postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.20.4)(yaml@2.8.2) + postcss-load-config: 6.0.1(jiti@1.21.7)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2) resolve-from: 5.0.0 - rollup: 4.47.1 + rollup: 4.59.0 source-map: 0.8.0-beta.0 - sucrase: 3.35.0 + sucrase: 3.35.1 tinyexec: 0.3.2 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 tree-kill: 1.2.2 optionalDependencies: - "@microsoft/api-extractor": 7.52.11(@types/node@20.19.11) - "@swc/core": 1.15.11(@swc/helpers@0.5.17) + "@microsoft/api-extractor": 7.57.6(@types/node@20.19.34) + "@swc/core": 1.15.11(@swc/helpers@0.5.19) postcss: 8.5.6 - typescript: 5.9.2 + typescript: 5.9.3 transitivePeerDependencies: - jiti - supports-color - tsx - yaml - tsx@4.20.4: + tsx@4.21.0: dependencies: - esbuild: 0.25.9 - get-tsconfig: 4.10.1 + esbuild: 0.27.3 + get-tsconfig: 4.13.6 optionalDependencies: fsevents: 2.3.3 @@ -18280,7 +18037,7 @@ snapshots: tuf-js@3.1.0: dependencies: "@tufjs/models": 3.0.1 - debug: 4.4.1 + debug: 4.4.3 make-fetch-happen: 14.0.3 transitivePeerDependencies: - supports-color @@ -18302,11 +18059,11 @@ snapshots: typescript@5.8.2: {} - typescript@5.9.2: {} + typescript@5.9.3: {} uc.micro@2.1.0: {} - ufo@1.6.1: {} + ufo@1.6.3: {} uglify-js@3.19.3: optional: true @@ -18321,7 +18078,7 @@ snapshots: undici-types@6.21.0: {} - undici@6.21.3: {} + undici@6.23.0: {} unicorn-magic@0.3.0: {} @@ -18349,7 +18106,7 @@ snapshots: unist-util-is@4.1.0: {} - unist-util-is@6.0.0: + unist-util-is@6.0.1: dependencies: "@types/unist": 3.0.3 @@ -18372,10 +18129,10 @@ snapshots: "@types/unist": 2.0.11 unist-util-is: 4.1.0 - unist-util-visit-parents@6.0.1: + unist-util-visit-parents@6.0.2: dependencies: "@types/unist": 3.0.3 - unist-util-is: 6.0.0 + unist-util-is: 6.0.1 unist-util-visit@2.0.3: dependencies: @@ -18383,11 +18140,11 @@ snapshots: unist-util-is: 4.1.0 unist-util-visit-parents: 3.1.1 - unist-util-visit@5.0.0: + unist-util-visit@5.1.0: dependencies: "@types/unist": 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 + unist-util-is: 6.0.1 + unist-util-visit-parents: 6.0.2 universal-user-agent@6.0.1: {} @@ -18397,16 +18154,12 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.3(browserslist@4.25.3): + update-browserslist-db@1.2.3(browserslist@4.28.1): dependencies: - browserslist: 4.25.3 + browserslist: 4.28.1 escalade: 3.2.0 picocolors: 1.1.1 - uri-js@4.4.1: - dependencies: - punycode: 2.3.1 - url-join@5.0.0: {} url-parse@1.5.10: @@ -18417,54 +18170,49 @@ snapshots: url@0.11.4: dependencies: punycode: 1.4.1 - qs: 6.14.0 + qs: 6.15.0 - use-callback-ref@1.3.3(@types/react@18.3.24)(react@18.3.1): + use-callback-ref@1.3.3(@types/react@18.3.28)(react@18.3.1): dependencies: react: 18.3.1 tslib: 2.8.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - use-composed-ref@1.4.0(@types/react@18.3.24)(react@18.3.1): + use-composed-ref@1.4.0(@types/react@18.3.28)(react@18.3.1): dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 use-debounce@9.0.4(react@18.3.1): dependencies: react: 18.3.1 - use-isomorphic-layout-effect@1.2.1(@types/react@18.3.24)(react@18.3.1): + use-isomorphic-layout-effect@1.2.1(@types/react@18.3.28)(react@18.3.1): dependencies: react: 18.3.1 optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - use-latest@1.3.0(@types/react@18.3.24)(react@18.3.1): + use-latest@1.3.0(@types/react@18.3.28)(react@18.3.1): dependencies: react: 18.3.1 - use-isomorphic-layout-effect: 1.2.1(@types/react@18.3.24)(react@18.3.1) + use-isomorphic-layout-effect: 1.2.1(@types/react@18.3.28)(react@18.3.1) optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 - use-sidecar@1.1.3(@types/react@18.3.24)(react@18.3.1): + use-sidecar@1.1.3(@types/react@18.3.28)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 tslib: 2.8.1 optionalDependencies: - "@types/react": 18.3.24 - - use-sync-external-store@1.5.0(react@18.3.1): - dependencies: - react: 18.3.1 + "@types/react": 18.3.28 use-sync-external-store@1.6.0(react@18.3.1): dependencies: react: 18.3.1 - optional: true use-sync-external-store@1.6.0(react@19.2.4): dependencies: @@ -18476,9 +18224,9 @@ snapshots: dependencies: inherits: 2.0.4 is-arguments: 1.2.0 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 is-typed-array: 1.1.15 - which-typed-array: 1.1.19 + which-typed-array: 1.1.20 utils-merge@1.0.1: {} @@ -18486,9 +18234,6 @@ snapshots: uuid@9.0.1: {} - v8-compile-cache-lib@3.0.1: - optional: true - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -18524,13 +18269,13 @@ snapshots: "@types/unist": 3.0.3 vfile-message: 4.0.3 - vite-node@3.2.4(@types/node@20.19.11): + vite-node@3.2.4(@types/node@20.19.34): dependencies: cac: 6.7.14 - debug: 4.4.1 + debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 5.4.19(@types/node@20.19.11) + vite: 5.4.21(@types/node@20.19.34) transitivePeerDependencies: - "@types/node" - less @@ -18542,45 +18287,45 @@ snapshots: - supports-color - terser - vite-plugin-node-polyfills@0.17.0(rollup@4.47.1)(vite@5.4.19(@types/node@20.19.11)): + vite-plugin-node-polyfills@0.17.0(rollup@4.59.0)(vite@5.4.21(@types/node@20.19.34)): dependencies: - "@rollup/plugin-inject": 5.0.5(rollup@4.47.1) + "@rollup/plugin-inject": 5.0.5(rollup@4.59.0) buffer-polyfill: buffer@6.0.3 node-stdlib-browser: 1.3.1 process: 0.11.10 - vite: 5.4.19(@types/node@20.19.11) + vite: 5.4.21(@types/node@20.19.34) transitivePeerDependencies: - rollup - vite@5.4.19(@types/node@20.19.11): + vite@5.4.21(@types/node@20.19.34): dependencies: esbuild: 0.21.5 postcss: 8.5.6 - rollup: 4.47.1 + rollup: 4.59.0 optionalDependencies: - "@types/node": 20.19.11 + "@types/node": 20.19.34 fsevents: 2.3.3 - vitepress@1.5.0(@algolia/client-search@5.35.0)(@types/node@20.19.11)(@types/react@18.3.24)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.2): + vitepress@1.5.0(@algolia/client-search@5.49.1)(@types/node@20.19.34)(@types/react@18.3.28)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.3): dependencies: "@docsearch/css": 3.9.0 - "@docsearch/js": 3.9.0(@algolia/client-search@5.35.0)(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) - "@iconify-json/simple-icons": 1.2.48 + "@docsearch/js": 3.9.0(@algolia/client-search@5.49.1)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) + "@iconify-json/simple-icons": 1.2.71 "@shikijs/core": 1.29.2 "@shikijs/transformers": 1.29.2 "@shikijs/types": 1.29.2 "@types/markdown-it": 14.1.2 - "@vitejs/plugin-vue": 5.2.4(vite@5.4.19(@types/node@20.19.11))(vue@3.5.19(typescript@5.9.2)) - "@vue/devtools-api": 7.7.7 - "@vue/shared": 3.5.19 - "@vueuse/core": 11.3.0(vue@3.5.19(typescript@5.9.2)) - "@vueuse/integrations": 11.3.0(focus-trap@7.6.5)(vue@3.5.19(typescript@5.9.2)) - focus-trap: 7.6.5 + "@vitejs/plugin-vue": 5.2.4(vite@5.4.21(@types/node@20.19.34))(vue@3.5.29(typescript@5.9.3)) + "@vue/devtools-api": 7.7.9 + "@vue/shared": 3.5.29 + "@vueuse/core": 11.3.0(vue@3.5.29(typescript@5.9.3)) + "@vueuse/integrations": 11.3.0(focus-trap@7.8.0)(vue@3.5.29(typescript@5.9.3)) + focus-trap: 7.8.0 mark.js: 8.11.1 - minisearch: 7.1.2 + minisearch: 7.2.0 shiki: 1.29.2 - vite: 5.4.19(@types/node@20.19.11) - vue: 3.5.19(typescript@5.9.2) + vite: 5.4.21(@types/node@20.19.34) + vue: 3.5.29(typescript@5.9.3) optionalDependencies: postcss: 8.5.6 transitivePeerDependencies: @@ -18611,26 +18356,26 @@ snapshots: - typescript - universal-cookie - vitepress@1.6.4(@algolia/client-search@5.35.0)(@types/node@20.19.11)(@types/react@18.3.24)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.2): + vitepress@1.6.4(@algolia/client-search@5.49.1)(@types/node@20.19.34)(@types/react@18.3.28)(postcss@8.5.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3)(typescript@5.9.3): dependencies: "@docsearch/css": 3.8.2 - "@docsearch/js": 3.8.2(@algolia/client-search@5.35.0)(@types/react@18.3.24)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) - "@iconify-json/simple-icons": 1.2.48 + "@docsearch/js": 3.8.2(@algolia/client-search@5.49.1)(@types/react@18.3.28)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.17.3) + "@iconify-json/simple-icons": 1.2.71 "@shikijs/core": 2.5.0 "@shikijs/transformers": 2.5.0 "@shikijs/types": 2.5.0 "@types/markdown-it": 14.1.2 - "@vitejs/plugin-vue": 5.2.4(vite@5.4.19(@types/node@20.19.11))(vue@3.5.19(typescript@5.9.2)) - "@vue/devtools-api": 7.7.7 - "@vue/shared": 3.5.19 - "@vueuse/core": 12.8.2(typescript@5.9.2) - "@vueuse/integrations": 12.8.2(focus-trap@7.6.5)(typescript@5.9.2) - focus-trap: 7.6.5 + "@vitejs/plugin-vue": 5.2.4(vite@5.4.21(@types/node@20.19.34))(vue@3.5.29(typescript@5.9.3)) + "@vue/devtools-api": 7.7.9 + "@vue/shared": 3.5.29 + "@vueuse/core": 12.8.2(typescript@5.9.3) + "@vueuse/integrations": 12.8.2(focus-trap@7.8.0)(typescript@5.9.3) + focus-trap: 7.8.0 mark.js: 8.11.1 - minisearch: 7.1.2 + minisearch: 7.2.0 shiki: 2.5.0 - vite: 5.4.19(@types/node@20.19.11) - vue: 3.5.19(typescript@5.9.2) + vite: 5.4.21(@types/node@20.19.34) + vue: 3.5.29(typescript@5.9.3) optionalDependencies: postcss: 8.5.6 transitivePeerDependencies: @@ -18660,36 +18405,35 @@ snapshots: - typescript - universal-cookie - vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.11)(@vitest/browser@3.2.4)(happy-dom@20.3.9)(jsdom@24.1.3): + vitest@3.2.4(@types/node@20.19.34)(@vitest/browser@3.2.4)(happy-dom@20.7.0)(jsdom@24.1.3): dependencies: - "@types/chai": 5.2.2 + "@types/chai": 5.2.3 "@vitest/expect": 3.2.4 - "@vitest/mocker": 3.2.4(vite@5.4.19(@types/node@20.19.11)) + "@vitest/mocker": 3.2.4(vite@5.4.21(@types/node@20.19.34)) "@vitest/pretty-format": 3.2.4 "@vitest/runner": 3.2.4 "@vitest/snapshot": 3.2.4 "@vitest/spy": 3.2.4 "@vitest/utils": 3.2.4 chai: 5.3.3 - debug: 4.4.1 - expect-type: 1.2.2 - magic-string: 0.30.18 + debug: 4.4.3 + expect-type: 1.3.0 + magic-string: 0.30.21 pathe: 2.0.3 picomatch: 4.0.3 - std-env: 3.9.0 + std-env: 3.10.0 tinybench: 2.9.0 tinyexec: 0.3.2 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 5.4.19(@types/node@20.19.11) - vite-node: 3.2.4(@types/node@20.19.11) + vite: 5.4.21(@types/node@20.19.34) + vite-node: 3.2.4(@types/node@20.19.34) why-is-node-running: 2.3.0 optionalDependencies: - "@types/debug": 4.1.12 - "@types/node": 20.19.11 - "@vitest/browser": 3.2.4(playwright@1.55.1)(vite@5.4.19(@types/node@20.19.11))(vitest@3.2.4) - happy-dom: 20.3.9 + "@types/node": 20.19.34 + "@vitest/browser": 3.2.4(playwright@1.55.1)(vite@5.4.21(@types/node@20.19.34))(vitest@3.2.4) + happy-dom: 20.7.0 jsdom: 24.1.3 transitivePeerDependencies: - less @@ -18712,19 +18456,19 @@ snapshots: "@mapbox/vector-tile": 1.3.1 pbf: 3.3.0 - vue-demi@0.14.10(vue@3.5.19(typescript@5.9.2)): + vue-demi@0.14.10(vue@3.5.29(typescript@5.9.3)): dependencies: - vue: 3.5.19(typescript@5.9.2) + vue: 3.5.29(typescript@5.9.3) - vue@3.5.19(typescript@5.9.2): + vue@3.5.29(typescript@5.9.3): dependencies: - "@vue/compiler-dom": 3.5.19 - "@vue/compiler-sfc": 3.5.19 - "@vue/runtime-dom": 3.5.19 - "@vue/server-renderer": 3.5.19(vue@3.5.19(typescript@5.9.2)) - "@vue/shared": 3.5.19 + "@vue/compiler-dom": 3.5.29 + "@vue/compiler-sfc": 3.5.29 + "@vue/runtime-dom": 3.5.29 + "@vue/server-renderer": 3.5.29(vue@3.5.29(typescript@5.9.3)) + "@vue/shared": 3.5.29 optionalDependencies: - typescript: 5.9.2 + typescript: 5.9.3 w3c-keyname@2.2.8: {} @@ -18774,7 +18518,7 @@ snapshots: tr46: 1.0.1 webidl-conversions: 4.0.2 - which-typed-array@1.1.19: + which-typed-array@1.1.20: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 @@ -18790,7 +18534,7 @@ snapshots: which@5.0.0: dependencies: - isexe: 3.1.1 + isexe: 3.1.5 why-is-node-running@2.3.0: dependencies: @@ -18807,21 +18551,15 @@ snapshots: wrap-ansi@8.1.0: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 string-width: 5.1.2 - strip-ansi: 7.1.0 - - wrap-ansi@9.0.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 7.2.0 - strip-ansi: 7.1.0 + strip-ansi: 7.2.0 wrap-ansi@9.0.2: dependencies: - ansi-styles: 6.2.1 + ansi-styles: 6.2.3 string-width: 7.2.0 - strip-ansi: 7.1.0 + strip-ansi: 7.2.0 wrappy@1.0.2: {} @@ -18830,11 +18568,11 @@ snapshots: imurmurhash: 0.1.4 signal-exit: 4.1.0 - ws@8.18.3: {} + ws@8.19.0: {} wsl-utils@0.1.0: dependencies: - is-wsl: 3.1.0 + is-wsl: 3.1.1 xml-name-validator@5.0.0: {} @@ -18848,13 +18586,8 @@ snapshots: yallist@5.0.0: {} - yaml@2.8.1: {} - yaml@2.8.2: {} - yn@3.1.1: - optional: true - yocto-queue@0.1.0: {} yoctocolors@2.1.2: {} @@ -18865,9 +18598,9 @@ snapshots: zod@3.25.76: {} - zustand@5.0.8(@types/react@18.3.24)(immer@9.0.21)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)): + zustand@5.0.11(@types/react@18.3.28)(immer@9.0.21)(react@18.3.1)(use-sync-external-store@1.6.0(react@18.3.1)): optionalDependencies: - "@types/react": 18.3.24 + "@types/react": 18.3.28 immer: 9.0.21 react: 18.3.1 use-sync-external-store: 1.6.0(react@18.3.1) From 75e8ce5351f7f045f91d59181b3f7c5437b6c8d6 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 19:25:19 +0000 Subject: [PATCH 68/74] Automated update to THIRD-PARTY-NOTICES from github action's 3rd party notices check --- packages/visual-editor/THIRD-PARTY-NOTICES | 30 +++++++++++----------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/visual-editor/THIRD-PARTY-NOTICES b/packages/visual-editor/THIRD-PARTY-NOTICES index 75c99153f5..6a3e69e99d 100644 --- a/packages/visual-editor/THIRD-PARTY-NOTICES +++ b/packages/visual-editor/THIRD-PARTY-NOTICES @@ -202,7 +202,7 @@ Apache License The following npm package may be included in this product: - - @microsoft/api-documenter@7.26.32 + - @microsoft/api-documenter@7.29.6 This package contains the following license: @@ -235,7 +235,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The following npm package may be included in this product: - - @microsoft/api-extractor@7.52.11 + - @microsoft/api-extractor@7.57.6 This package contains the following license: @@ -268,7 +268,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The following npm package may be included in this product: - - @microsoft/api-extractor-model@7.30.7 + - @microsoft/api-extractor-model@7.33.4 This package contains the following license: @@ -329,7 +329,7 @@ THE SOFTWARE. The following npm package may be included in this product: - - dompurify@3.2.6 + - dompurify@3.3.1 This package contains the following license: @@ -1054,7 +1054,7 @@ SOFTWARE. The following npm package may be included in this product: - - pure-react-carousel@1.32.0 + - pure-react-carousel@1.35.0 This package contains the following license: @@ -1084,7 +1084,7 @@ SOFTWARE. The following npm package may be included in this product: - - tailwind-merge@2.6.0 + - tailwind-merge@2.6.1 This package contains the following license: @@ -1114,7 +1114,7 @@ SOFTWARE. The following npm package may be included in this product: - - @tanstack/react-query@5.85.5 + - @tanstack/react-query@5.90.21 This package contains the following license: @@ -1178,12 +1178,12 @@ The following npm packages may be included in this product: - @radix-ui/react-alert-dialog@1.1.15 - @radix-ui/react-dialog@1.1.15 - @radix-ui/react-dropdown-menu@2.1.16 - - @radix-ui/react-label@2.1.7 + - @radix-ui/react-label@2.1.8 - @radix-ui/react-popover@1.1.15 - - @radix-ui/react-progress@1.1.7 + - @radix-ui/react-progress@1.1.8 - @radix-ui/react-radio-group@1.3.8 - - @radix-ui/react-separator@1.1.7 - - @radix-ui/react-slot@1.2.3 + - @radix-ui/react-separator@1.1.8 + - @radix-ui/react-slot@1.2.4 - @radix-ui/react-switch@1.2.6 - @radix-ui/react-toggle@1.1.10 - @radix-ui/react-tooltip@1.2.8 @@ -1216,7 +1216,7 @@ SOFTWARE. The following npm package may be included in this product: - - react-international-phone@4.6.0 + - react-international-phone@4.8.0 This package contains the following license: @@ -1276,7 +1276,7 @@ SOFTWARE. The following npm package may be included in this product: - - tsx@4.20.4 + - tsx@4.21.0 This package contains the following license: @@ -1383,7 +1383,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. The following npm package may be included in this product: - - i18next@25.8.7 + - i18next@25.8.13 This package contains the following license: @@ -1413,7 +1413,7 @@ SOFTWARE. The following npm package may be included in this product: - - react-i18next@15.7.1 + - react-i18next@15.7.4 This package contains the following license: From a2c4d60159948c3538c2d08f1a81c70ed604dcd0 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 19:26:43 +0000 Subject: [PATCH 69/74] Automated linting/prettier update --- .../src/components/atoms/body.tsx | 3 +- .../src/components/atoms/button.tsx | 3 +- .../src/components/atoms/heading.tsx | 3 +- .../src/components/atoms/hoursTable.tsx | 9 +- .../src/components/atoms/pageSection.tsx | 3 +- .../components/configs/directoryConfig.tsx | 3 +- .../src/components/configs/locatorConfig.tsx | 3 +- .../src/components/configs/mainConfig.tsx | 3 +- .../components/contentBlocks/CtaWrapper.tsx | 4 +- .../pageSections/EventSection/EventCard.tsx | 59 +++++++------ .../pageSections/TeamSection/TeamCard.tsx | 82 +++++++++---------- .../TestimonialSection/TestimonialCard.tsx | 34 ++++---- .../visual-editor/src/docs/ai/components.d.ts | 3 +- .../src/internal/puck/ui/Tooltip.tsx | 5 +- .../src/internal/puck/ui/button.tsx | 3 +- .../src/internal/puck/ui/switch.tsx | 5 +- 16 files changed, 117 insertions(+), 108 deletions(-) diff --git a/packages/visual-editor/src/components/atoms/body.tsx b/packages/visual-editor/src/components/atoms/body.tsx index b3ec99ba6f..cb1dabf41e 100644 --- a/packages/visual-editor/src/components/atoms/body.tsx +++ b/packages/visual-editor/src/components/atoms/body.tsx @@ -24,7 +24,8 @@ export const bodyVariants = cva( // Omit 'color' from HTMLAttributes to avoid conflict export interface BodyProps - extends Omit, "color">, + extends + Omit, "color">, VariantProps { color?: BackgroundStyle; } diff --git a/packages/visual-editor/src/components/atoms/button.tsx b/packages/visual-editor/src/components/atoms/button.tsx index 6129183ae0..ff2bf4f754 100644 --- a/packages/visual-editor/src/components/atoms/button.tsx +++ b/packages/visual-editor/src/components/atoms/button.tsx @@ -87,7 +87,8 @@ export const buttonVariants = cva( ); export interface ButtonProps - extends React.ButtonHTMLAttributes, + extends + React.ButtonHTMLAttributes, VariantProps { asChild?: boolean; } diff --git a/packages/visual-editor/src/components/atoms/heading.tsx b/packages/visual-editor/src/components/atoms/heading.tsx index 7e3ca33839..8b43afc577 100644 --- a/packages/visual-editor/src/components/atoms/heading.tsx +++ b/packages/visual-editor/src/components/atoms/heading.tsx @@ -65,7 +65,8 @@ export const headingVariants = cva("components", { // Omit 'color' from HTMLAttributes to avoid conflict export interface HeadingProps - extends Omit, "color">, + extends + Omit, "color">, VariantProps { level: HeadingLevel; semanticLevelOverride?: HeadingLevel | "span"; diff --git a/packages/visual-editor/src/components/atoms/hoursTable.tsx b/packages/visual-editor/src/components/atoms/hoursTable.tsx index fb9a823bcf..e3c25d0871 100644 --- a/packages/visual-editor/src/components/atoms/hoursTable.tsx +++ b/packages/visual-editor/src/components/atoms/hoursTable.tsx @@ -3,11 +3,10 @@ import { HoursTable, HoursTableProps } from "@yext/pages-components"; import { useTranslation } from "react-i18next"; import { themeManagerCn } from "../../utils/cn.ts"; -export interface HoursTableAtomProps - extends Omit< - HoursTableProps, - "dayOfWeekNames" | "intervalStringsBuilderFn" | "intervalTranslations" - > { +export interface HoursTableAtomProps extends Omit< + HoursTableProps, + "dayOfWeekNames" | "intervalStringsBuilderFn" | "intervalTranslations" +> { className?: string; } diff --git a/packages/visual-editor/src/components/atoms/pageSection.tsx b/packages/visual-editor/src/components/atoms/pageSection.tsx index 415893857a..3ece982d34 100644 --- a/packages/visual-editor/src/components/atoms/pageSection.tsx +++ b/packages/visual-editor/src/components/atoms/pageSection.tsx @@ -38,7 +38,8 @@ const maxWidthVariants = cva("mx-auto", { }); export interface PageSectionProps - extends VariantProps, + extends + VariantProps, React.HTMLAttributes { background?: BackgroundStyle; verticalPadding?: VariantProps["verticalPadding"]; diff --git a/packages/visual-editor/src/components/configs/directoryConfig.tsx b/packages/visual-editor/src/components/configs/directoryConfig.tsx index 99866edb1c..d5e7c87438 100644 --- a/packages/visual-editor/src/components/configs/directoryConfig.tsx +++ b/packages/visual-editor/src/components/configs/directoryConfig.tsx @@ -24,7 +24,8 @@ import { resolveDirectoryRootProps } from "../../utils/getPageMetadata.ts"; import { pt } from "../../utils/i18n/platform.ts"; export interface DirectoryConfigProps - extends DirectoryCategoryProps, + extends + DirectoryCategoryProps, SlotsCategoryProps, DeprecatedCategoryProps, OtherCategoryProps { diff --git a/packages/visual-editor/src/components/configs/locatorConfig.tsx b/packages/visual-editor/src/components/configs/locatorConfig.tsx index 61d7981a0a..f8d9951ba8 100644 --- a/packages/visual-editor/src/components/configs/locatorConfig.tsx +++ b/packages/visual-editor/src/components/configs/locatorConfig.tsx @@ -23,7 +23,8 @@ import { import { pt } from "../../utils/i18n/platform.ts"; export interface LocatorConfigProps - extends LocatorCategoryProps, + extends + LocatorCategoryProps, SlotsCategoryProps, DeprecatedCategoryProps, OtherCategoryProps { diff --git a/packages/visual-editor/src/components/configs/mainConfig.tsx b/packages/visual-editor/src/components/configs/mainConfig.tsx index eea77c427e..f3dcc87717 100644 --- a/packages/visual-editor/src/components/configs/mainConfig.tsx +++ b/packages/visual-editor/src/components/configs/mainConfig.tsx @@ -27,7 +27,8 @@ import { } from "../categories/SlotsCategory.tsx"; export interface MainConfigProps - extends PageSectionCategoryProps, + extends + PageSectionCategoryProps, DeprecatedCategoryProps, OtherCategoryProps, AdvancedCoreInfoCategoryProps, diff --git a/packages/visual-editor/src/components/contentBlocks/CtaWrapper.tsx b/packages/visual-editor/src/components/contentBlocks/CtaWrapper.tsx index 50a5feef82..f283671c6d 100644 --- a/packages/visual-editor/src/components/contentBlocks/CtaWrapper.tsx +++ b/packages/visual-editor/src/components/contentBlocks/CtaWrapper.tsx @@ -207,8 +207,8 @@ const CTAWrapperComponent: PuckComponent = (props) => { ? Boolean(resolvedButtonLabel?.trim()) && (data.show ?? true) : Boolean( cta && - (ctaType === "presetImage" || resolvedLinkLabel) && - (data.show ?? true) + (ctaType === "presetImage" || resolvedLinkLabel) && + (data.show ?? true) ); const resolvedButtonClassName = themeManagerCn( diff --git a/packages/visual-editor/src/components/pageSections/EventSection/EventCard.tsx b/packages/visual-editor/src/components/pageSections/EventSection/EventCard.tsx index 4dc959f797..2f3b5c38f2 100644 --- a/packages/visual-editor/src/components/pageSections/EventSection/EventCard.tsx +++ b/packages/visual-editor/src/components/pageSections/EventSection/EventCard.tsx @@ -468,48 +468,47 @@ export const EventCard: ComponentConfig<{ props: EventCardProps }> = { const showImage = Boolean( (resolvedImage as any)?.url || - (resolvedImage as any)?.image?.url || - ((resolvedImage as any)?.hasLocalizedValue && - (resolvedImage as any)?.[i18nComponentsInstance.language || "en"] - ?.url) + (resolvedImage as any)?.image?.url || + ((resolvedImage as any)?.hasLocalizedValue && + (resolvedImage as any)?.[i18nComponentsInstance.language || "en"]?.url) ); const showDescription = Boolean( descriptionSlotProps && - (descriptionSlotProps.parentData - ? descriptionSlotProps.parentData.richText - : resolveYextEntityField( - params.metadata.streamDocument, - descriptionSlotProps.data.text, - i18nComponentsInstance.language || "en" - )) + (descriptionSlotProps.parentData + ? descriptionSlotProps.parentData.richText + : resolveYextEntityField( + params.metadata.streamDocument, + descriptionSlotProps.data.text, + i18nComponentsInstance.language || "en" + )) ); const showTitle = Boolean( titleSlotProps && - (titleSlotProps.parentData - ? titleSlotProps.parentData.text - : resolveYextEntityField( - params.metadata.streamDocument, - titleSlotProps.data.text, - i18nComponentsInstance.language || "en" - )) + (titleSlotProps.parentData + ? titleSlotProps.parentData.text + : resolveYextEntityField( + params.metadata.streamDocument, + titleSlotProps.data.text, + i18nComponentsInstance.language || "en" + )) ); const showDateTime = Boolean( dateTimeSlotProps?.parentData?.date?.trim() || - resolveYextEntityField( - params.metadata.streamDocument, - dateTimeSlotProps.data.date, - i18nComponentsInstance.language || "en" - )?.trim() + resolveYextEntityField( + params.metadata.streamDocument, + dateTimeSlotProps.data.date, + i18nComponentsInstance.language || "en" + )?.trim() ); const showCTA = Boolean( ctaSlotProps && - (ctaSlotProps.parentData - ? ctaSlotProps.parentData.cta?.label - : resolveComponentData( - ctaSlotProps.data.entityField, - i18nComponentsInstance.language || "en", - params.metadata.streamDocument - )?.label) + (ctaSlotProps.parentData + ? ctaSlotProps.parentData.cta?.label + : resolveComponentData( + ctaSlotProps.data.entityField, + i18nComponentsInstance.language || "en", + params.metadata.streamDocument + )?.label) ); let updatedData = { diff --git a/packages/visual-editor/src/components/pageSections/TeamSection/TeamCard.tsx b/packages/visual-editor/src/components/pageSections/TeamSection/TeamCard.tsx index 27ad638849..1f7533eebb 100644 --- a/packages/visual-editor/src/components/pageSections/TeamSection/TeamCard.tsx +++ b/packages/visual-editor/src/components/pageSections/TeamSection/TeamCard.tsx @@ -483,62 +483,62 @@ export const TeamCard: ComponentConfig<{ props: TeamCardProps }> = { const showImage = Boolean( person?.headshot || - imageSlotProps?.parentData?.image || - (imageSlotProps && - (imageSlotProps?.data.image.field || - (imageSlotProps.data.image.constantValue && - "hasLocalizedValue" in imageSlotProps.data.image.constantValue) || - (imageSlotProps.data.image.constantValue && - "url" in imageSlotProps.data.image.constantValue && - imageSlotProps.data.image.constantValue.url) || - (imageSlotProps.data.image.constantValue && - "image" in imageSlotProps.data.image.constantValue && - imageSlotProps.data.image.constantValue.image?.url))) + imageSlotProps?.parentData?.image || + (imageSlotProps && + (imageSlotProps?.data.image.field || + (imageSlotProps.data.image.constantValue && + "hasLocalizedValue" in imageSlotProps.data.image.constantValue) || + (imageSlotProps.data.image.constantValue && + "url" in imageSlotProps.data.image.constantValue && + imageSlotProps.data.image.constantValue.url) || + (imageSlotProps.data.image.constantValue && + "image" in imageSlotProps.data.image.constantValue && + imageSlotProps.data.image.constantValue.image?.url))) ); const showName = Boolean( person?.name || - nameSlotProps?.parentData?.text || - (nameSlotProps && - resolveYextEntityField( - params.metadata.streamDocument, - nameSlotProps.data.text, - i18nComponentsInstance.language || "en" - )) + nameSlotProps?.parentData?.text || + (nameSlotProps && + resolveYextEntityField( + params.metadata.streamDocument, + nameSlotProps.data.text, + i18nComponentsInstance.language || "en" + )) ); const showTitle = Boolean( person?.title || - titleSlotProps?.parentData?.text || - (titleSlotProps && - resolveYextEntityField( - params.metadata.streamDocument, - titleSlotProps.data.text, - i18nComponentsInstance.language || "en" - )) + titleSlotProps?.parentData?.text || + (titleSlotProps && + resolveYextEntityField( + params.metadata.streamDocument, + titleSlotProps.data.text, + i18nComponentsInstance.language || "en" + )) ); const showPhone = Boolean( person?.phoneNumber || - phoneSlotProps?.parentData?.phoneNumbers?.length || - (phoneSlotProps?.data?.phoneNumbers?.length && - phoneSlotProps.data.phoneNumbers.some( - (phone: any) => phone.number?.constantValue || phone.number?.field - )) + phoneSlotProps?.parentData?.phoneNumbers?.length || + (phoneSlotProps?.data?.phoneNumbers?.length && + phoneSlotProps.data.phoneNumbers.some( + (phone: any) => phone.number?.constantValue || phone.number?.field + )) ); const showEmail = Boolean( person?.email || - emailSlotProps?.parentData?.list?.length || - emailSlotProps?.data?.list?.constantValue?.length || - emailSlotProps?.data?.list?.field + emailSlotProps?.parentData?.list?.length || + emailSlotProps?.data?.list?.constantValue?.length || + emailSlotProps?.data?.list?.field ); const showCTA = Boolean( person?.cta?.label || - ctaSlotProps?.parentData?.cta?.label || - ctaSlotProps?.data?.entityField?.constantValue?.label || - ctaSlotProps?.data?.entityField?.field || - (ctaSlotProps && - resolveYextEntityField( - params.metadata.streamDocument, - ctaSlotProps.data.entityField - )?.label) + ctaSlotProps?.parentData?.cta?.label || + ctaSlotProps?.data?.entityField?.constantValue?.label || + ctaSlotProps?.data?.entityField?.field || + (ctaSlotProps && + resolveYextEntityField( + params.metadata.streamDocument, + ctaSlotProps.data.entityField + )?.label) ); let updatedData = { diff --git a/packages/visual-editor/src/components/pageSections/TestimonialSection/TestimonialCard.tsx b/packages/visual-editor/src/components/pageSections/TestimonialSection/TestimonialCard.tsx index addcc2e0c0..5ae6c8c110 100644 --- a/packages/visual-editor/src/components/pageSections/TestimonialSection/TestimonialCard.tsx +++ b/packages/visual-editor/src/components/pageSections/TestimonialSection/TestimonialCard.tsx @@ -352,29 +352,29 @@ export const TestimonialCard: ComponentConfig<{ props: TestimonialCardProps }> = const showDescription = Boolean( testimonial?.description || - descriptionSlotProps?.parentData?.richText || - (descriptionSlotProps && - resolveYextEntityField( - params.metadata.streamDocument, - descriptionSlotProps.data.text, - i18nComponentsInstance.language || "en" - )) + descriptionSlotProps?.parentData?.richText || + (descriptionSlotProps && + resolveYextEntityField( + params.metadata.streamDocument, + descriptionSlotProps.data.text, + i18nComponentsInstance.language || "en" + )) ); const showContributorName = Boolean( testimonial?.contributorName || - contributorNameSlotProps?.parentData?.text || - (contributorNameSlotProps && - resolveYextEntityField( - params.metadata.streamDocument, - contributorNameSlotProps.data.text, - i18nComponentsInstance.language || "en" - )) + contributorNameSlotProps?.parentData?.text || + (contributorNameSlotProps && + resolveYextEntityField( + params.metadata.streamDocument, + contributorNameSlotProps.data.text, + i18nComponentsInstance.language || "en" + )) ); const showContributionDate = Boolean( testimonial?.contributionDate || - contributionDateSlotProps?.parentData?.date || - contributionDateSlotProps?.data?.date?.constantValue || - contributionDateSlotProps?.data?.date?.field + contributionDateSlotProps?.parentData?.date || + contributionDateSlotProps?.data?.date?.constantValue || + contributionDateSlotProps?.data?.date?.field ); let updatedData = { diff --git a/packages/visual-editor/src/docs/ai/components.d.ts b/packages/visual-editor/src/docs/ai/components.d.ts index c63e58fdf1..cbea91b26f 100644 --- a/packages/visual-editor/src/docs/ai/components.d.ts +++ b/packages/visual-editor/src/docs/ai/components.d.ts @@ -1077,7 +1077,8 @@ interface StaticMapStyles { } interface PageSectionProps - extends VariantProps, + extends + VariantProps, React.HTMLAttributes { background?: BackgroundStyle; verticalPadding?: VariantProps["verticalPadding"]; diff --git a/packages/visual-editor/src/internal/puck/ui/Tooltip.tsx b/packages/visual-editor/src/internal/puck/ui/Tooltip.tsx index b44ba2ac70..24f72c6789 100644 --- a/packages/visual-editor/src/internal/puck/ui/Tooltip.tsx +++ b/packages/visual-editor/src/internal/puck/ui/Tooltip.tsx @@ -11,8 +11,9 @@ const TooltipTrigger = TooltipPrimitive.Trigger; const TooltipArrow = TooltipPrimitive.Arrow; -interface TooltipContentProps - extends React.ComponentPropsWithoutRef { +interface TooltipContentProps extends React.ComponentPropsWithoutRef< + typeof TooltipPrimitive.Content +> { zoomWithViewport?: boolean; } diff --git a/packages/visual-editor/src/internal/puck/ui/button.tsx b/packages/visual-editor/src/internal/puck/ui/button.tsx index 96108dbb3d..9d98977f20 100644 --- a/packages/visual-editor/src/internal/puck/ui/button.tsx +++ b/packages/visual-editor/src/internal/puck/ui/button.tsx @@ -42,7 +42,8 @@ const buttonVariants = cva( ); export interface ButtonProps - extends React.ButtonHTMLAttributes, + extends + React.ButtonHTMLAttributes, VariantProps { asChild?: boolean; } diff --git a/packages/visual-editor/src/internal/puck/ui/switch.tsx b/packages/visual-editor/src/internal/puck/ui/switch.tsx index e89f1ba409..d9b5bb5447 100644 --- a/packages/visual-editor/src/internal/puck/ui/switch.tsx +++ b/packages/visual-editor/src/internal/puck/ui/switch.tsx @@ -2,8 +2,9 @@ import * as React from "react"; import * as SwitchPrimitives from "@radix-ui/react-switch"; import { cn } from "../../../utils/cn.ts"; -interface SwitchProps - extends React.ComponentPropsWithoutRef { +interface SwitchProps extends React.ComponentPropsWithoutRef< + typeof SwitchPrimitives.Root +> { icon?: React.ReactNode; } From d8f18e60284923aa9c14845f7883de80af2f459e Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 27 Feb 2026 03:00:05 +0530 Subject: [PATCH 70/74] updated url params for vertical and query --- .../pageSections/SearchSection/Search.tsx | 26 +- .../SearchSection/SearchBarSlot.tsx | 29 ++- .../SearchSection/SearchResultsSlot.tsx | 224 +++++++++--------- .../SearchSection/VerticalResultsSection.tsx | 2 +- .../pageSections/SearchSection/utils.tsx | 39 +++ 5 files changed, 201 insertions(+), 119 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx index af732c1f4e..e2a689e8d8 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/Search.tsx @@ -17,8 +17,10 @@ import "./search.css"; import { buildSearchConfigFromDocument } from "./searchConfig.ts"; import { themeManagerCn } from "../../../utils/cn.ts"; import { msg, pt } from "../../../utils/i18n/platform.ts"; +import { YextField } from "../../../editor/YextField.tsx"; export interface SearchComponentProps { + showSearchResultsSection: boolean; /** @internal */ slots: { SearchBarSlot: Slot; @@ -26,17 +28,29 @@ export interface SearchComponentProps { }; } -const locatorFields: Fields = { +const searchFields: Fields = { + showSearchResultsSection: YextField( + msg("fields.showSearchResultsSection", "Show Search Results Section"), + { + type: "radio", + options: [ + { label: msg("fields.options.show", "Show"), value: true }, + { label: msg("fields.options.hide", "Hide"), value: false }, + ], + } + ), slots: { type: "object", objectFields: { SearchBarSlot: { type: "slot" }, SearchResultsSlot: { type: "slot" }, }, + visible: false, }, }; const SearchWrapper: PuckComponent = ({ + showSearchResultsSection, slots, puck, }) => { @@ -113,7 +127,9 @@ const SearchWrapper: PuckComponent = ({ - + {showSearchResultsSection && ( + + )} @@ -124,8 +140,9 @@ export const SearchComponent: ComponentConfig<{ props: SearchComponentProps; }> = { label: msg("components.searchWithSlots", "Search with Slots"), - fields: locatorFields, + fields: searchFields, defaultProps: { + showSearchResultsSection: false, slots: { SearchBarSlot: [ { @@ -137,6 +154,9 @@ export const SearchComponent: ComponentConfig<{ isTypingEffect: false, enableVisualAutoComplete: false, }, + parentData: { + showSearchResultsSection: false, + }, } satisfies SearchBarSlotProps, }, ], diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx index f3d2573bce..b7f90e1057 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -4,16 +4,17 @@ import { PuckComponent, setDeep, } from "@puckeditor/core"; +import { useSearchActions } from "@yext/search-headless-react"; import { SearchBar } from "@yext/search-ui-react"; +import React from "react"; import { FaMicrophone } from "react-icons/fa"; import { resolveDataFromParent } from "../../../editor/ParentData.tsx"; import { YextField } from "../../../editor/YextField.tsx"; -import { useTypingEffect } from "./useTypeEffect.ts"; -import { createVisualAutocompleteConfig } from "./utils.tsx"; -import { useEntityPreviewSearcher } from "./searchConfig.ts"; -import React from "react"; import { useDocument } from "../../../hooks/useDocument.tsx"; import { msg } from "../../../utils/i18n/platform.ts"; +import { useEntityPreviewSearcher } from "./searchConfig.ts"; +import { useTypingEffect } from "./useTypeEffect.ts"; +import { createVisualAutocompleteConfig, updateSearchUrl } from "./utils.tsx"; export interface SearchBarSlotProps { styles: { @@ -24,6 +25,9 @@ export interface SearchBarSlotProps { visualAutoCompleteVerticalKey?: string; limit?: number; }; + parentData?: { + showSearchResultsSection: boolean; + }; } const defaultSearchBarProps: SearchBarSlotProps = { styles: { @@ -97,6 +101,7 @@ const SearchBarSlotInternal: PuckComponent = ({ visualAutoCompleteVerticalKey = "products", limit = 3, }, + parentData, }: SearchBarSlotProps) => { const document = useDocument(); const { placeholder } = useTypingEffect({ @@ -105,7 +110,7 @@ const SearchBarSlotInternal: PuckComponent = ({ }); const entityPreviewSearcher = useEntityPreviewSearcher(document); - + const searchActions = useSearchActions(); const visualAutocompleteConfig = React.useMemo(() => { return createVisualAutocompleteConfig( enableVisualAutoComplete, @@ -123,6 +128,20 @@ const SearchBarSlotInternal: PuckComponent = ({ return (
        { + const trimmed = (query ?? "").trim(); + + if (!parentData?.showSearchResultsSection) { + const target = `/search.html${ + trimmed ? `?searchTerm=${encodeURIComponent(trimmed)}` : "" + }`; + window.location.href = target; + return; + } + + searchActions.setQuery(trimmed); + updateSearchUrl({ vertical: null, searchTerm: trimmed }); + }} visualAutocompleteConfig={visualAutocompleteConfig} placeholder={isTypingEffect ? placeholder : "Search here...."} customCssClasses={{ diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx index cf0b938e45..2a0a20c1ba 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchResultsSlot.tsx @@ -1,13 +1,10 @@ -import { - ComponentConfig, - Fields, - PuckComponent, - usePuck, -} from "@puckeditor/core"; +import { ComponentConfig, Fields, PuckComponent } from "@puckeditor/core"; import { useSearchActions, useSearchState } from "@yext/search-headless-react"; -import React, { useState } from "react"; +import React from "react"; import { FaEllipsisV } from "react-icons/fa"; +import { useTranslation } from "react-i18next"; import { YextField } from "../../../editor/YextField.tsx"; +import { msg } from "../../../utils/i18n/platform.ts"; import { defaultSearchResultsProps, SearchResultsSlotProps, @@ -17,10 +14,10 @@ import { buildUniversalLimit, buildVerticalConfigMap, isValidVerticalConfig, + readInitialUrlParams, + updateSearchUrl, } from "./utils.tsx"; import { VerticalResultsSection } from "./VerticalResultsSection.tsx"; -import { useTranslation } from "react-i18next"; -import { msg } from "../../../utils/i18n/platform.ts"; const SearchResultsSlotFields: Fields = { data: YextField(msg("fields.data", "Data"), { @@ -36,9 +33,17 @@ const SearchResultsSlotFields: Fields = { cardType: "Standard", universalLimit: 5, verticalLimit: 5, + pageType: "vertical", }, arrayFields: { label: YextField(msg("fields.label", "Label"), { type: "text" }), + pageType: YextField(msg("fields.pageType", "Page Type"), { + type: "radio", + options: [ + { label: "Universal", value: "universal" }, + { label: "Vertical", value: "vertical" }, + ], + }), verticalKey: YextField(msg("fields.verticalKey", "Vertical Key"), { type: "text", }), @@ -63,9 +68,7 @@ const SearchResultsSlotFields: Fields = { ), verticalLimit: YextField( msg("fields.verticalLimit", "Vertical Limit"), - { - type: "number", - } + { type: "number" } ), }, getItemSummary: (item) => item?.label || "Vertical", @@ -80,8 +83,8 @@ const SearchResultsSlotFields: Fields = { { type: "radio", options: [ - { label: msg("fields.options.show", "Show"), value: true }, - { label: msg("fields.options.hide", "Hide"), value: false }, + { label: "Show", value: true }, + { label: "Hide", value: false }, ], } ), @@ -96,24 +99,29 @@ const SearchResultsSlotInternal: PuckComponent = ( data: { verticals }, puck, } = props; - const puckStore = useOptionalPuckStore(); - const arrayState = puckStore?.appState?.ui?.arrayState; - const { t } = useTranslation(); - const arrayKey = React.useMemo(() => { - if (!arrayState || !puck.isEditing) return undefined; - - return Object.keys(arrayState).find((key) => - key.includes("_object_data_verticals") - ); - }, [arrayState, puck.isEditing]); + const { t } = useTranslation(); const searchActions = useSearchActions(); + const isLoading = useSearchState((s) => s.searchStatus.isLoading); - const searchTerm = useSearchState((s) => s.query.input); - const gdaLoading = - useSearchState((s) => s.generativeDirectAnswer.isLoading) || false; - const facetsLength = useSearchState((s) => s.filters.facets); - const [verticalKey, setVerticalKey] = useState(null); + const committedSearchTerm = useSearchState((s) => s.query.input ?? ""); + const activeVerticalKey = useSearchState( + (s: any) => s.vertical?.verticalKey ?? null + ); + const searchType = useSearchState((s: any) => s.meta?.searchType ?? null); + const isUniversalActive = searchType + ? searchType === "universal" + : activeVerticalKey == null; + + const gdaLoading = useSearchState( + (s) => s.generativeDirectAnswer.isLoading ?? false + ); + + const facetsLength = useSearchState((s) => { + const facets: unknown = (s as any).filters?.facets; + return Array.isArray(facets) ? facets.length : 0; + }); + const verticalConfigMap = React.useMemo( () => buildVerticalConfigMap(verticals), [verticals] @@ -124,98 +132,100 @@ const SearchResultsSlotInternal: PuckComponent = ( [verticals] ); - const currentVerticalConfig = React.useMemo( - () => verticals.find((v) => v.verticalKey === verticalKey), - [verticals, verticalKey] + const currentVerticalConfig = React.useMemo(() => { + if (!activeVerticalKey) return undefined; + return verticals.find((v) => v.verticalKey === activeVerticalKey); + }, [verticals, activeVerticalKey]); + + const runSearch = React.useCallback( + (nextVerticalKey: string | null) => { + if (!isValidVerticalConfig(verticals)) return; + + searchActions.setQuery(committedSearchTerm ?? ""); + + if (nextVerticalKey) { + searchActions.setVertical(nextVerticalKey); + const cfg = verticals.find((v) => v.verticalKey === nextVerticalKey); + if (cfg && typeof cfg.verticalLimit === "number") { + searchActions.setVerticalLimit(cfg.verticalLimit); + } + searchActions.executeVerticalQuery(); + } else { + searchActions.setUniversal(); + searchActions.setUniversalLimit(universalLimit); + searchActions.executeUniversalQuery(); + } + + updateSearchUrl({ + vertical: nextVerticalKey, + searchTerm: committedSearchTerm, + }); + }, + [verticals, committedSearchTerm, universalLimit, searchActions] ); React.useEffect(() => { - if (!isValidVerticalConfig(verticals)) { - console.warn("Skipping search: invalid vertical config", verticals); - return; - } + const { vertical, searchTerm } = readInitialUrlParams(); - if (searchTerm) { - searchActions.setQuery(searchTerm); - } + searchActions.setQuery(searchTerm); + + const validVertical = + vertical && verticals.some((v) => v.verticalKey === vertical); - if (verticalKey && currentVerticalConfig) { - searchActions.setVertical(verticalKey); + if (validVertical) { + searchActions.setVertical(vertical!); - if (typeof currentVerticalConfig.verticalLimit === "number") { - searchActions.setVerticalLimit(currentVerticalConfig.verticalLimit); + const cfg = verticals.find((v) => v.verticalKey === vertical); + if (cfg && typeof cfg.verticalLimit === "number") { + searchActions.setVerticalLimit(cfg.verticalLimit); } searchActions.executeVerticalQuery(); + updateSearchUrl({ vertical, searchTerm }); return; } searchActions.setUniversal(); searchActions.setUniversalLimit(universalLimit); searchActions.executeUniversalQuery(); - }, [ - verticals, - searchTerm, - universalLimit, - verticalKey, - currentVerticalConfig, - searchActions, - ]); + updateSearchUrl({ vertical: null, searchTerm }); + }, [verticals]); React.useEffect(() => { - if (!arrayKey || !puck.isEditing || !arrayState) return; - - const verticalArrayState = arrayState[arrayKey]; - const openId = verticalArrayState?.openId; - - const selectedItem = verticalArrayState?.items?.find( - (item) => item._arrayId === openId - ); - - const index = selectedItem?._currentIndex; - if (typeof index !== "number") return; - - const selectedConfig = verticals[index]; - - const nextKey = - selectedConfig?.pageType === "universal" - ? null - : (selectedConfig?.verticalKey ?? null); - - if (nextKey !== verticalKey) { - setVerticalKey(nextKey); - } - }, [arrayKey, arrayState, verticals, verticalKey, puck.isEditing]); + updateSearchUrl({ + vertical: isUniversalActive ? null : activeVerticalKey, + searchTerm: committedSearchTerm, + }); + }, [activeVerticalKey, committedSearchTerm, isUniversalActive]); return (
        +
        + {isLoading &&
        {t("loadingResults", "Loading Results...")}
        } + {!isLoading && - (verticalKey ? ( + (!isUniversalActive && activeVerticalKey ? ( = ( /> ) : ( @@ -253,11 +265,3 @@ export const SearchResultsSlot: ComponentConfig<{ defaultProps: defaultSearchResultsProps, render: (props) => , }; - -const useOptionalPuckStore = () => { - try { - return usePuck(); - } catch { - return undefined; - } -}; diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx index 2c0372ce52..64b408bce6 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/VerticalResultsSection.tsx @@ -17,7 +17,7 @@ interface VerticalResultsSectionProps { verticals: VerticalConfigProps[]; currentVerticalConfig?: VerticalConfigProps; puck: any; - facetsLength: any; + facetsLength: number; } export const VerticalResultsSection = ({ diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx index ba1ef725cb..a29f072c08 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/utils.tsx @@ -114,3 +114,42 @@ export const createVisualAutocompleteConfig = ( entityPreviewsDebouncingTime: 300, }; }; + +export const updateSearchUrl = (params: { + vertical?: string | null; + searchTerm?: string; +}) => { + if (typeof window === "undefined") return; + const url = new URL(window.location.href); + + if (params.vertical && params.vertical.trim()) { + url.searchParams.set("vertical", params.vertical); + } else { + url.searchParams.delete("vertical"); + } + + const st = (params.searchTerm ?? "").trim(); + if (st.length > 0) { + url.searchParams.set("searchTerm", st); + } else { + url.searchParams.delete("searchTerm"); + } + + window.history.replaceState({}, "", url.toString()); +}; + +export const readInitialUrlParams = (): { + vertical: string | null; + searchTerm: string; +} => { + if (typeof window === "undefined") { + return { vertical: null, searchTerm: "" }; + } + + const url = new URL(window.location.href); + + return { + vertical: url.searchParams.get("vertical"), + searchTerm: url.searchParams.get("searchTerm") ?? "", + }; +}; From de9a5ee394f450995d72cb8f0bd9a15ee5170848 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 27 Feb 2026 03:01:20 +0530 Subject: [PATCH 71/74] locales updated --- packages/visual-editor/locales/platform/cs/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/da/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/de/visual-editor.json | 2 ++ .../visual-editor/locales/platform/en-GB/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/en/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/es/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/et/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/fi/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/fr/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/hr/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/hu/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/it/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/ja/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/lt/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/lv/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/nb/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/nl/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/pl/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/pt/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/ro/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/sk/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/sv/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/tr/visual-editor.json | 2 ++ .../visual-editor/locales/platform/zh-TW/visual-editor.json | 2 ++ packages/visual-editor/locales/platform/zh/visual-editor.json | 2 ++ 25 files changed, 50 insertions(+) diff --git a/packages/visual-editor/locales/platform/cs/visual-editor.json b/packages/visual-editor/locales/platform/cs/visual-editor.json index 90dd268fcf..f6b1a0c694 100644 --- a/packages/visual-editor/locales/platform/cs/visual-editor.json +++ b/packages/visual-editor/locales/platform/cs/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Ano" }, "pageHeading": "Záhlaví stránky", + "pageType": "Typ stránky", "phone": "Telefon", "phoneFormat": "Formát telefonu", "phoneNumber": "Telefonní číslo", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Zobrazit primární CTA", "showProfessionalTitle": "Zobrazit profesionální titul", "showPublishTime": "Zobrazit čas zveřejnění", + "showSearchResultsSection": "Zobrazit sekci výsledků hledání", "showSecondaryCTA": "Zobrazit sekundární CTA", "showSecondaryHeader": "Zobrazit sekundární záhlaví", "showSectionHeading": "Zobrazit nadpis sekce", diff --git a/packages/visual-editor/locales/platform/da/visual-editor.json b/packages/visual-editor/locales/platform/da/visual-editor.json index 19650915fe..7c0a93787e 100644 --- a/packages/visual-editor/locales/platform/da/visual-editor.json +++ b/packages/visual-editor/locales/platform/da/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Ja" }, "pageHeading": "Sideoverskrift", + "pageType": "Sidetype", "phone": "Telefon", "phoneFormat": "Telefonformat", "phoneNumber": "Telefonnummer", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Vis primær CTA", "showProfessionalTitle": "Vis professionel titel", "showPublishTime": "Vis udgivelsestid", + "showSearchResultsSection": "Vis sektion med søgeresultater", "showSecondaryCTA": "Vis sekundær CTA", "showSecondaryHeader": "Vis sekundær overskrift", "showSectionHeading": "Vis sektionsoverskrift", diff --git a/packages/visual-editor/locales/platform/de/visual-editor.json b/packages/visual-editor/locales/platform/de/visual-editor.json index cc43ce3881..668cde5a02 100644 --- a/packages/visual-editor/locales/platform/de/visual-editor.json +++ b/packages/visual-editor/locales/platform/de/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Ja" }, "pageHeading": "Seitenüberschrift", + "pageType": "Seitentyp", "phone": "Telefon", "phoneFormat": "Telefonformat", "phoneNumber": "Telefonnummer", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Primären CTA zeigen", "showProfessionalTitle": "Berufsbezeichnung anzeigen", "showPublishTime": "Veröffentlichungszeit anzeigen", + "showSearchResultsSection": "Abschnitt „Suchergebnisse“ anzeigen", "showSecondaryCTA": "Sekundären CTA zeigen", "showSecondaryHeader": "Sekundären Header anzeigen", "showSectionHeading": "Abschnittsüberschrift anzeigen", diff --git a/packages/visual-editor/locales/platform/en-GB/visual-editor.json b/packages/visual-editor/locales/platform/en-GB/visual-editor.json index b421060745..236a58fc02 100644 --- a/packages/visual-editor/locales/platform/en-GB/visual-editor.json +++ b/packages/visual-editor/locales/platform/en-GB/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Yes" }, "pageHeading": "Page Heading", + "pageType": "Page Type", "phone": "Phone", "phoneFormat": "Phone Format", "phoneNumber": "Phone Number", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Show Primary CTA", "showProfessionalTitle": "Show Professional Title", "showPublishTime": "Show Publish Time", + "showSearchResultsSection": "Show Search Results Section", "showSecondaryCTA": "Show Secondary CTA", "showSecondaryHeader": "Show Secondary Header", "showSectionHeading": "Show Section Heading", diff --git a/packages/visual-editor/locales/platform/en/visual-editor.json b/packages/visual-editor/locales/platform/en/visual-editor.json index c9a6ee1efc..d7ccb4a0c4 100644 --- a/packages/visual-editor/locales/platform/en/visual-editor.json +++ b/packages/visual-editor/locales/platform/en/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Yes" }, "pageHeading": "Page Heading", + "pageType": "Page Type", "phone": "Phone", "phoneFormat": "Phone Format", "phoneNumber": "Phone Number", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Show Primary CTA", "showProfessionalTitle": "Show Professional Title", "showPublishTime": "Show Publish Time", + "showSearchResultsSection": "Show Search Results Section", "showSecondaryCTA": "Show Secondary CTA", "showSecondaryHeader": "Show Secondary Header", "showSectionHeading": "Show Section Heading", diff --git a/packages/visual-editor/locales/platform/es/visual-editor.json b/packages/visual-editor/locales/platform/es/visual-editor.json index 311fa9b3ad..e594836184 100644 --- a/packages/visual-editor/locales/platform/es/visual-editor.json +++ b/packages/visual-editor/locales/platform/es/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Sí" }, "pageHeading": "Encabezado de página", + "pageType": "Tipo de página", "phone": "Teléfono", "phoneFormat": "Formato de teléfono", "phoneNumber": "Número de teléfono", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Mostrar CTA primario", "showProfessionalTitle": "Mostrar título profesional", "showPublishTime": "Mostrar hora de publicación", + "showSearchResultsSection": "Mostrar sección de resultados de búsqueda", "showSecondaryCTA": "Mostrar CTA secundario", "showSecondaryHeader": "Mostrar encabezado secundario", "showSectionHeading": "Mostrar encabezado de sección", diff --git a/packages/visual-editor/locales/platform/et/visual-editor.json b/packages/visual-editor/locales/platform/et/visual-editor.json index 0ec3092407..ded8c3343d 100644 --- a/packages/visual-editor/locales/platform/et/visual-editor.json +++ b/packages/visual-editor/locales/platform/et/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Jah" }, "pageHeading": "Lehekülje pealkiri", + "pageType": "Lehekülje tüüp", "phone": "Telefon", "phoneFormat": "Telefonivorming", "phoneNumber": "Telefoninumber", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Näita esmast CTA -d", "showProfessionalTitle": "Kuva ametinimetus", "showPublishTime": "Kuva avaldamisaeg", + "showSearchResultsSection": "Kuva otsingutulemuste jaotis", "showSecondaryCTA": "Näidake sekundaarset CTA -d", "showSecondaryHeader": "Näita teisest päist", "showSectionHeading": "Näita jaotise pealkirja", diff --git a/packages/visual-editor/locales/platform/fi/visual-editor.json b/packages/visual-editor/locales/platform/fi/visual-editor.json index 002be1e109..15725a3537 100644 --- a/packages/visual-editor/locales/platform/fi/visual-editor.json +++ b/packages/visual-editor/locales/platform/fi/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Kyllä" }, "pageHeading": "Sivun otsikko", + "pageType": "Sivun tyyppi", "phone": "Puhelin", "phoneFormat": "Puhelinmuoto", "phoneNumber": "Puhelinnumero", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Näytä ensisijainen CTA", "showProfessionalTitle": "Näytä ammattinimike", "showPublishTime": "Näytä julkaisuaika", + "showSearchResultsSection": "Näytä hakutulokset-osio", "showSecondaryCTA": "Näytä toissijainen CTA", "showSecondaryHeader": "Näytä toissijainen otsikko", "showSectionHeading": "Näytä osion otsikko", diff --git a/packages/visual-editor/locales/platform/fr/visual-editor.json b/packages/visual-editor/locales/platform/fr/visual-editor.json index 70ed902d4c..eeafe91d4c 100644 --- a/packages/visual-editor/locales/platform/fr/visual-editor.json +++ b/packages/visual-editor/locales/platform/fr/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Oui" }, "pageHeading": "En-tête de page", + "pageType": "Type de page", "phone": "Téléphone", "phoneFormat": "Format de téléphone", "phoneNumber": "Numéro de téléphone", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Afficher le CTA primaire", "showProfessionalTitle": "Afficher le titre professionnel", "showPublishTime": "Afficher l'heure de publication", + "showSearchResultsSection": "Afficher la section des résultats de recherche", "showSecondaryCTA": "Montrer le CTA secondaire", "showSecondaryHeader": "Afficher l'en-tête secondaire", "showSectionHeading": "Afficher le titre de la section", diff --git a/packages/visual-editor/locales/platform/hr/visual-editor.json b/packages/visual-editor/locales/platform/hr/visual-editor.json index 8f21824b94..715f98f0ea 100644 --- a/packages/visual-editor/locales/platform/hr/visual-editor.json +++ b/packages/visual-editor/locales/platform/hr/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Da" }, "pageHeading": "Naslov stranice", + "pageType": "Vrsta stranice", "phone": "Telefon", "phoneFormat": "Format telefona", "phoneNumber": "Telefonski broj", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Pokažite primarni CTA", "showProfessionalTitle": "Prikaži profesionalni naslov", "showPublishTime": "Prikaži vrijeme objave", + "showSearchResultsSection": "Prikaži odjeljak s rezultatima pretraživanja", "showSecondaryCTA": "Pokažite sekundarni CTA", "showSecondaryHeader": "Prikaži sekundarno zaglavlje", "showSectionHeading": "Prikaži naslov odjeljka", diff --git a/packages/visual-editor/locales/platform/hu/visual-editor.json b/packages/visual-editor/locales/platform/hu/visual-editor.json index 8f5497decf..ddfbbf3fdb 100644 --- a/packages/visual-editor/locales/platform/hu/visual-editor.json +++ b/packages/visual-editor/locales/platform/hu/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Igen" }, "pageHeading": "Oldalfejléc", + "pageType": "Oldal típusa", "phone": "Telefon", "phoneFormat": "Telefonformátum", "phoneNumber": "Telefonszám", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Mutassa meg az elsődleges CTA -t", "showProfessionalTitle": "Szakmai cím megjelenítése", "showPublishTime": "Közzétételi idő megjelenítése", + "showSearchResultsSection": "Keresési eredmények szakasz megjelenítése", "showSecondaryCTA": "Mutasd meg a másodlagos CTA -t", "showSecondaryHeader": "Másodlagos fejléc megjelenítése", "showSectionHeading": "A szakasz címsorának megjelenítése", diff --git a/packages/visual-editor/locales/platform/it/visual-editor.json b/packages/visual-editor/locales/platform/it/visual-editor.json index 4697309722..ff00a88bc4 100644 --- a/packages/visual-editor/locales/platform/it/visual-editor.json +++ b/packages/visual-editor/locales/platform/it/visual-editor.json @@ -397,6 +397,7 @@ "yes": "SÌ" }, "pageHeading": "Intestazione della pagina", + "pageType": "Tipo di pagina", "phone": "Telefono", "phoneFormat": "Formato del telefono", "phoneNumber": "Numero di telefono", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Mostra CTA primario", "showProfessionalTitle": "Mostra titolo professionale", "showPublishTime": "Mostra ora di pubblicazione", + "showSearchResultsSection": "Mostra la sezione dei risultati della ricerca", "showSecondaryCTA": "Mostra CTA secondario", "showSecondaryHeader": "Mostra intestazione secondaria", "showSectionHeading": "Mostra l'intestazione della sezione", diff --git a/packages/visual-editor/locales/platform/ja/visual-editor.json b/packages/visual-editor/locales/platform/ja/visual-editor.json index b3c812f8b4..909de0ac27 100644 --- a/packages/visual-editor/locales/platform/ja/visual-editor.json +++ b/packages/visual-editor/locales/platform/ja/visual-editor.json @@ -397,6 +397,7 @@ "yes": "はい" }, "pageHeading": "ページ見出し", + "pageType": "ページの種類", "phone": "電話", "phoneFormat": "電話形式", "phoneNumber": "電話番号", @@ -452,6 +453,7 @@ "showPrimaryCTA": "プライマリCTAを表示します", "showProfessionalTitle": "専門職の肩書を表示", "showPublishTime": "公開時間を表示", + "showSearchResultsSection": "検索結果セクションを表示", "showSecondaryCTA": "二次CTAを表示します", "showSecondaryHeader": "セカンダリヘッダーを表示", "showSectionHeading": "セクション見出しを表示", diff --git a/packages/visual-editor/locales/platform/lt/visual-editor.json b/packages/visual-editor/locales/platform/lt/visual-editor.json index d9863e6a4d..232f7843cf 100644 --- a/packages/visual-editor/locales/platform/lt/visual-editor.json +++ b/packages/visual-editor/locales/platform/lt/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Taip" }, "pageHeading": "Puslapio antraštė", + "pageType": "Puslapio tipas", "phone": "Telefonas", "phoneFormat": "Telefono formatas", "phoneNumber": "Telefono numeris", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Rodyti pirminę CTA", "showProfessionalTitle": "Rodyti profesionalų titulą", "showPublishTime": "Rodyti paskelbimo laiką", + "showSearchResultsSection": "Rodyti paieškos rezultatų skyrių", "showSecondaryCTA": "Parodykite antrinę CTA", "showSecondaryHeader": "Rodyti antrinę antraštę", "showSectionHeading": "Rodyti skyriaus antraštę", diff --git a/packages/visual-editor/locales/platform/lv/visual-editor.json b/packages/visual-editor/locales/platform/lv/visual-editor.json index 89e5bf70ab..6afd791ce4 100644 --- a/packages/visual-editor/locales/platform/lv/visual-editor.json +++ b/packages/visual-editor/locales/platform/lv/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Jā" }, "pageHeading": "Lapas virsraksts", + "pageType": "Lapas veids", "phone": "Tālrunis", "phoneFormat": "Tālruņa formāts", "phoneNumber": "Tālruņa numurs", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Rādīt primāro CTA", "showProfessionalTitle": "Rādīt profesionālo titulu", "showPublishTime": "Rādīt publicēšanas laiku", + "showSearchResultsSection": "Rādīt meklēšanas rezultātu sadaļu", "showSecondaryCTA": "Rādīt sekundāro CTA", "showSecondaryHeader": "Rādīt sekundāro galveni", "showSectionHeading": "Rādīt sadaļas virsrakstu", diff --git a/packages/visual-editor/locales/platform/nb/visual-editor.json b/packages/visual-editor/locales/platform/nb/visual-editor.json index 7b61bde523..c53e746e95 100644 --- a/packages/visual-editor/locales/platform/nb/visual-editor.json +++ b/packages/visual-editor/locales/platform/nb/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Ja" }, "pageHeading": "Sideoverskrift", + "pageType": "Sidetype", "phone": "Telefon", "phoneFormat": "Telefonformat", "phoneNumber": "Telefonnummer", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Vis primær CTA", "showProfessionalTitle": "Vis profesjonell tittel", "showPublishTime": "Vis publiseringstid", + "showSearchResultsSection": "Vis søkeresultatseksjonen", "showSecondaryCTA": "Vis sekundær CTA", "showSecondaryHeader": "Vis sekundær overskrift", "showSectionHeading": "Vis seksjonsoverskrift", diff --git a/packages/visual-editor/locales/platform/nl/visual-editor.json b/packages/visual-editor/locales/platform/nl/visual-editor.json index 2741e8e293..06a68fdef0 100644 --- a/packages/visual-editor/locales/platform/nl/visual-editor.json +++ b/packages/visual-editor/locales/platform/nl/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Ja" }, "pageHeading": "Paginakop", + "pageType": "Paginatype", "phone": "Telefoon", "phoneFormat": "Telefoonformaat", "phoneNumber": "Telefoonnummer", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Toon primaire CTA", "showProfessionalTitle": "Toon professionele titel", "showPublishTime": "Toon publicatietijd", + "showSearchResultsSection": "Sectie Zoekresultaten weergeven", "showSecondaryCTA": "Toon secundaire CTA", "showSecondaryHeader": "Secundaire koptekst weergeven", "showSectionHeading": "Sectiekop weergeven", diff --git a/packages/visual-editor/locales/platform/pl/visual-editor.json b/packages/visual-editor/locales/platform/pl/visual-editor.json index 1b054b02cf..838763ab26 100644 --- a/packages/visual-editor/locales/platform/pl/visual-editor.json +++ b/packages/visual-editor/locales/platform/pl/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Tak" }, "pageHeading": "Nagłówek strony", + "pageType": "Typ strony", "phone": "Telefon", "phoneFormat": "Format telefonu", "phoneNumber": "Numer telefonu", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Pokaż podstawowy CTA", "showProfessionalTitle": "Pokaż tytuł zawodowy", "showPublishTime": "Pokaż czas publikacji", + "showSearchResultsSection": "Pokaż sekcję wyników wyszukiwania", "showSecondaryCTA": "Pokaż wtórną CTA", "showSecondaryHeader": "Pokaż dodatkowy nagłówek", "showSectionHeading": "Pokaż nagłówek sekcji", diff --git a/packages/visual-editor/locales/platform/pt/visual-editor.json b/packages/visual-editor/locales/platform/pt/visual-editor.json index c24cb7b8c5..7ab49c0b8c 100644 --- a/packages/visual-editor/locales/platform/pt/visual-editor.json +++ b/packages/visual-editor/locales/platform/pt/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Sim" }, "pageHeading": "Título da página", + "pageType": "Tipo de página", "phone": "Telefone", "phoneFormat": "Formato de telefone", "phoneNumber": "Número de telefone", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Mostrar CTA primário", "showProfessionalTitle": "Mostrar título profissional", "showPublishTime": "Mostrar horário de publicação", + "showSearchResultsSection": "Mostrar seção de resultados de pesquisa", "showSecondaryCTA": "Mostre CTA secundário", "showSecondaryHeader": "Mostrar cabeçalho secundário", "showSectionHeading": "Mostrar título da seção", diff --git a/packages/visual-editor/locales/platform/ro/visual-editor.json b/packages/visual-editor/locales/platform/ro/visual-editor.json index ad12931fe5..3974fdc4e0 100644 --- a/packages/visual-editor/locales/platform/ro/visual-editor.json +++ b/packages/visual-editor/locales/platform/ro/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Da" }, "pageHeading": "Titlul paginii", + "pageType": "Tip pagină", "phone": "Telefon", "phoneFormat": "Format telefonic", "phoneNumber": "Număr de telefon", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Arată CTA primară", "showProfessionalTitle": "Afișați titlul profesional", "showPublishTime": "Afișează ora publicării", + "showSearchResultsSection": "Afișați secțiunea cu rezultatele căutării", "showSecondaryCTA": "Arată CTA secundară", "showSecondaryHeader": "Afișați antetul secundar", "showSectionHeading": "Afișați titlul secțiunii", diff --git a/packages/visual-editor/locales/platform/sk/visual-editor.json b/packages/visual-editor/locales/platform/sk/visual-editor.json index afe1df539e..884ea4ea34 100644 --- a/packages/visual-editor/locales/platform/sk/visual-editor.json +++ b/packages/visual-editor/locales/platform/sk/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Áno" }, "pageHeading": "Záhlavie stránky", + "pageType": "Typ stránky", "phone": "Telefón", "phoneFormat": "Formát telefónu", "phoneNumber": "Telefónne číslo", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Ukazovať primárnu CTA", "showProfessionalTitle": "Zobraziť profesionálny titul", "showPublishTime": "Zobraziť čas zverejnenia", + "showSearchResultsSection": "Zobraziť sekciu s výsledkami vyhľadávania", "showSecondaryCTA": "Ukazovať sekundárne CTA", "showSecondaryHeader": "Zobraziť sekundárnu hlavičku", "showSectionHeading": "Zobraziť nadpis sekcie", diff --git a/packages/visual-editor/locales/platform/sv/visual-editor.json b/packages/visual-editor/locales/platform/sv/visual-editor.json index 82dbc03d69..a39422f823 100644 --- a/packages/visual-editor/locales/platform/sv/visual-editor.json +++ b/packages/visual-editor/locales/platform/sv/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Ja" }, "pageHeading": "Sidrubrik", + "pageType": "Sidtyp", "phone": "Telefon", "phoneFormat": "Telefonformat", "phoneNumber": "Telefonnummer", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Visa primär CTA", "showProfessionalTitle": "Visa yrkestitel", "showPublishTime": "Visa publiceringstid", + "showSearchResultsSection": "Visa sökresultatsektionen", "showSecondaryCTA": "Visa sekundär CTA", "showSecondaryHeader": "Visa sekundär rubrik", "showSectionHeading": "Visa avsnittsrubrik", diff --git a/packages/visual-editor/locales/platform/tr/visual-editor.json b/packages/visual-editor/locales/platform/tr/visual-editor.json index ddb63c204a..7e560827a0 100644 --- a/packages/visual-editor/locales/platform/tr/visual-editor.json +++ b/packages/visual-editor/locales/platform/tr/visual-editor.json @@ -397,6 +397,7 @@ "yes": "Evet" }, "pageHeading": "Sayfa Başlığı", + "pageType": "Sayfa Türü", "phone": "Telefon", "phoneFormat": "Telefon formatı", "phoneNumber": "Telefon numarası", @@ -452,6 +453,7 @@ "showPrimaryCTA": "Birincil CTA'yı göster", "showProfessionalTitle": "Profesyonel Ünvanı Göster", "showPublishTime": "Yayınlama Zamanını Göster", + "showSearchResultsSection": "Arama Sonuçları Bölümünü Göster", "showSecondaryCTA": "İkincil CTA göster", "showSecondaryHeader": "İkincil Başlığı Göster", "showSectionHeading": "Bölüm Başlığını Göster", diff --git a/packages/visual-editor/locales/platform/zh-TW/visual-editor.json b/packages/visual-editor/locales/platform/zh-TW/visual-editor.json index 1b52e1636b..d6abc79aad 100644 --- a/packages/visual-editor/locales/platform/zh-TW/visual-editor.json +++ b/packages/visual-editor/locales/platform/zh-TW/visual-editor.json @@ -397,6 +397,7 @@ "yes": "是的" }, "pageHeading": "頁面標題", + "pageType": "頁面類型", "phone": "電話", "phoneFormat": "電話格式", "phoneNumber": "電話號碼", @@ -452,6 +453,7 @@ "showPrimaryCTA": "顯示主要CTA", "showProfessionalTitle": "顯示職稱", "showPublishTime": "顯示發佈時間", + "showSearchResultsSection": "顯示搜尋結果部分", "showSecondaryCTA": "顯示次要CTA", "showSecondaryHeader": "顯示輔助標題", "showSectionHeading": "顯示章節標題", diff --git a/packages/visual-editor/locales/platform/zh/visual-editor.json b/packages/visual-editor/locales/platform/zh/visual-editor.json index e1a68fbbe1..aab2d70cf9 100644 --- a/packages/visual-editor/locales/platform/zh/visual-editor.json +++ b/packages/visual-editor/locales/platform/zh/visual-editor.json @@ -397,6 +397,7 @@ "yes": "是的" }, "pageHeading": "页面标题", + "pageType": "页面类型", "phone": "电话", "phoneFormat": "电话格式", "phoneNumber": "电话号码", @@ -452,6 +453,7 @@ "showPrimaryCTA": "显示主要CTA", "showProfessionalTitle": "显示职称", "showPublishTime": "显示发布时间", + "showSearchResultsSection": "显示搜索结果部分", "showSecondaryCTA": "显示次要CTA", "showSecondaryHeader": "显示辅助标题", "showSectionHeading": "显示章节标题", From c101fdee40e7681ace80836fb32872b65bf46368 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 21:33:18 +0000 Subject: [PATCH 72/74] docs: auto-generate component documentation --- packages/visual-editor/src/docs/ai/components.d.ts | 1 + packages/visual-editor/src/docs/components.md | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/packages/visual-editor/src/docs/ai/components.d.ts b/packages/visual-editor/src/docs/ai/components.d.ts index cbea91b26f..076449def5 100644 --- a/packages/visual-editor/src/docs/ai/components.d.ts +++ b/packages/visual-editor/src/docs/ai/components.d.ts @@ -657,6 +657,7 @@ interface VideoSectionProps { } interface SearchComponentProps { + showSearchResultsSection: boolean; /** @internal */ slots: { SearchBarSlot: Slot; diff --git a/packages/visual-editor/src/docs/components.md b/packages/visual-editor/src/docs/components.md index 3c7dc8ac4e..0f3bc1b2e9 100644 --- a/packages/visual-editor/src/docs/components.md +++ b/packages/visual-editor/src/docs/components.md @@ -785,6 +785,12 @@ If 'true', the component is visible on the live page; if 'false', it's hidden. ### Props +#### Other Props + +| Prop | Type | Description | Default | +| :------------------------- | :-------- | :---------- | :------ | +| `showSearchResultsSection` | `boolean` | | | + --- ## SecondaryFooterSlot From 0f732ecdb7d565e3cf1393cd1b6f190a59edbe7f Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 27 Feb 2026 15:40:29 +0530 Subject: [PATCH 73/74] test: commented out onsearch --- .../SearchSection/SearchBarSlot.tsx | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx index b7f90e1057..d46bbf08f4 100644 --- a/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx +++ b/packages/visual-editor/src/components/pageSections/SearchSection/SearchBarSlot.tsx @@ -4,7 +4,6 @@ import { PuckComponent, setDeep, } from "@puckeditor/core"; -import { useSearchActions } from "@yext/search-headless-react"; import { SearchBar } from "@yext/search-ui-react"; import React from "react"; import { FaMicrophone } from "react-icons/fa"; @@ -14,7 +13,7 @@ import { useDocument } from "../../../hooks/useDocument.tsx"; import { msg } from "../../../utils/i18n/platform.ts"; import { useEntityPreviewSearcher } from "./searchConfig.ts"; import { useTypingEffect } from "./useTypeEffect.ts"; -import { createVisualAutocompleteConfig, updateSearchUrl } from "./utils.tsx"; +import { createVisualAutocompleteConfig } from "./utils.tsx"; export interface SearchBarSlotProps { styles: { @@ -101,7 +100,7 @@ const SearchBarSlotInternal: PuckComponent = ({ visualAutoCompleteVerticalKey = "products", limit = 3, }, - parentData, + // parentData, }: SearchBarSlotProps) => { const document = useDocument(); const { placeholder } = useTypingEffect({ @@ -110,7 +109,7 @@ const SearchBarSlotInternal: PuckComponent = ({ }); const entityPreviewSearcher = useEntityPreviewSearcher(document); - const searchActions = useSearchActions(); + // const searchActions = useSearchActions(); const visualAutocompleteConfig = React.useMemo(() => { return createVisualAutocompleteConfig( enableVisualAutoComplete, @@ -128,20 +127,20 @@ const SearchBarSlotInternal: PuckComponent = ({ return (
        { - const trimmed = (query ?? "").trim(); + // onSearch={({ query }) => { + // const trimmed = (query ?? "").trim(); - if (!parentData?.showSearchResultsSection) { - const target = `/search.html${ - trimmed ? `?searchTerm=${encodeURIComponent(trimmed)}` : "" - }`; - window.location.href = target; - return; - } + // if (!parentData?.showSearchResultsSection) { + // const target = `/search.html${ + // trimmed ? `?searchTerm=${encodeURIComponent(trimmed)}` : "" + // }`; + // window.location.href = target; + // return; + // } - searchActions.setQuery(trimmed); - updateSearchUrl({ vertical: null, searchTerm: trimmed }); - }} + // searchActions.setQuery(trimmed); + // updateSearchUrl({ vertical: null, searchTerm: trimmed }); + // }} visualAutocompleteConfig={visualAutocompleteConfig} placeholder={isTypingEffect ? placeholder : "Search here...."} customCssClasses={{ From fb9af883c50e3be4adf8264d577f6b86799729d7 Mon Sep 17 00:00:00 2001 From: rkeerthient Date: Fri, 27 Feb 2026 22:42:30 +0530 Subject: [PATCH 74/74] Revert "feat: handle head deploy state (#1066)" This reverts commit a980cfcc269dcdc8c0e8034d49a32c7e2a8c5de7. --- .../locales/platform/cs/visual-editor.json | 2 -- .../locales/platform/da/visual-editor.json | 2 -- .../locales/platform/de/visual-editor.json | 2 -- .../locales/platform/en-GB/visual-editor.json | 2 -- .../locales/platform/en/visual-editor.json | 2 -- .../locales/platform/es/visual-editor.json | 2 -- .../locales/platform/et/visual-editor.json | 2 -- .../locales/platform/fi/visual-editor.json | 2 -- .../locales/platform/fr/visual-editor.json | 2 -- .../locales/platform/hr/visual-editor.json | 2 -- .../locales/platform/hu/visual-editor.json | 2 -- .../locales/platform/it/visual-editor.json | 2 -- .../locales/platform/ja/visual-editor.json | 2 -- .../locales/platform/lt/visual-editor.json | 4 +-- .../locales/platform/lv/visual-editor.json | 2 -- .../locales/platform/nb/visual-editor.json | 2 -- .../locales/platform/nl/visual-editor.json | 2 -- .../locales/platform/pl/visual-editor.json | 2 -- .../locales/platform/pt/visual-editor.json | 2 -- .../locales/platform/ro/visual-editor.json | 2 -- .../locales/platform/sk/visual-editor.json | 2 -- .../locales/platform/sv/visual-editor.json | 2 -- .../locales/platform/tr/visual-editor.json | 2 -- .../locales/platform/zh-TW/visual-editor.json | 2 -- .../locales/platform/zh/visual-editor.json | 2 -- .../components/InternalThemeEditor.tsx | 2 +- .../internal/puck/components/LayoutHeader.tsx | 19 +++++++------- .../internal/puck/components/ThemeHeader.tsx | 17 ++++++------ .../src/internal/types/templateMetadata.ts | 6 ++--- ...blishTooltipMessageFromHeadDeployStatus.ts | 26 ------------------- 30 files changed, 23 insertions(+), 99 deletions(-) delete mode 100644 packages/visual-editor/src/internal/utils/getPublishTooltipMessageFromHeadDeployStatus.ts diff --git a/packages/visual-editor/locales/platform/cs/visual-editor.json b/packages/visual-editor/locales/platform/cs/visual-editor.json index 2a207eced3..f6b1a0c694 100644 --- a/packages/visual-editor/locales/platform/cs/visual-editor.json +++ b/packages/visual-editor/locales/platform/cs/visual-editor.json @@ -585,8 +585,6 @@ "promoBanner": "Promo banner", "promoMedia": "Promo média", "publishBlocked": { - "deploymentFailed": "Publikování je zakázáno, protože nejnovější nasazení se nezdařilo. Opravte problémy a zkuste to znovu", - "deploymentInactive": "Publikování je zakázáno, protože nasazení je neaktivní", "deploymentInProgress": "Během nasazování je aktualizace zakázána" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/da/visual-editor.json b/packages/visual-editor/locales/platform/da/visual-editor.json index c0f9f50f7f..7c0a93787e 100644 --- a/packages/visual-editor/locales/platform/da/visual-editor.json +++ b/packages/visual-editor/locales/platform/da/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "Promo banner", "promoMedia": "Promo Media", "publishBlocked": { - "deploymentFailed": "Udgiv er deaktiveret, fordi den seneste implementering mislykkedes. Løs problemerne, og prøv igen", - "deploymentInactive": "Udgiv er deaktiveret, fordi implementeringen er inaktiv", "deploymentInProgress": "Opdatering er deaktiveret, mens implementering er i gang" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/de/visual-editor.json b/packages/visual-editor/locales/platform/de/visual-editor.json index 1d8eef9ea3..668cde5a02 100644 --- a/packages/visual-editor/locales/platform/de/visual-editor.json +++ b/packages/visual-editor/locales/platform/de/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "Promo-Banner", "promoMedia": "Promo-Media", "publishBlocked": { - "deploymentFailed": "Die Veröffentlichung ist deaktiviert, da die letzte Bereitstellung fehlgeschlagen ist. Bitte beheben Sie die Probleme und versuchen Sie es erneut", - "deploymentInactive": "Die Veröffentlichung ist deaktiviert, da die Bereitstellung inaktiv ist", "deploymentInProgress": "Während der Bereitstellung ist die Aktualisierung deaktiviert" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/en-GB/visual-editor.json b/packages/visual-editor/locales/platform/en-GB/visual-editor.json index bb9d9c22e8..236a58fc02 100644 --- a/packages/visual-editor/locales/platform/en-GB/visual-editor.json +++ b/packages/visual-editor/locales/platform/en-GB/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "Promo Banner", "promoMedia": "Promo Media", "publishBlocked": { - "deploymentFailed": "Publish is disabled because the latest deployment failed. Please fix the issues and try again", - "deploymentInactive": "Publish is disabled because the deployment is inactive", "deploymentInProgress": "Update is disabled while deployment is in progress" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/en/visual-editor.json b/packages/visual-editor/locales/platform/en/visual-editor.json index 962006a03e..d7ccb4a0c4 100644 --- a/packages/visual-editor/locales/platform/en/visual-editor.json +++ b/packages/visual-editor/locales/platform/en/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "Promo Banner", "promoMedia": "Promo Media", "publishBlocked": { - "deploymentFailed": "Publish is disabled because the latest deployment failed. Please fix the issues and try again", - "deploymentInactive": "Publish is disabled because the deployment is inactive", "deploymentInProgress": "Update is disabled while deployment is in progress" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/es/visual-editor.json b/packages/visual-editor/locales/platform/es/visual-editor.json index 162fc983da..e594836184 100644 --- a/packages/visual-editor/locales/platform/es/visual-editor.json +++ b/packages/visual-editor/locales/platform/es/visual-editor.json @@ -580,8 +580,6 @@ "promoBanner": "Banner promocional", "promoMedia": "Medios promocionales", "publishBlocked": { - "deploymentFailed": "La publicación está deshabilitada porque falló la última implementación. Soluciona los problemas y vuelve a intentarlo.", - "deploymentInactive": "La publicación está deshabilitada porque la implementación está inactiva", "deploymentInProgress": "La actualización está deshabilitada mientras la implementación está en progreso" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/et/visual-editor.json b/packages/visual-editor/locales/platform/et/visual-editor.json index 09952765ac..ded8c3343d 100644 --- a/packages/visual-editor/locales/platform/et/visual-editor.json +++ b/packages/visual-editor/locales/platform/et/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "Reklaamibänner", "promoMedia": "Promo meedia", "publishBlocked": { - "deploymentFailed": "Avaldamine on keelatud, kuna viimane juurutus ebaõnnestus. Parandage probleemid ja proovige uuesti", - "deploymentInactive": "Avaldamine on keelatud, kuna juurutus on passiivne", "deploymentInProgress": "Värskendus on juurutamise ajal keelatud" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/fi/visual-editor.json b/packages/visual-editor/locales/platform/fi/visual-editor.json index f53030a1a9..15725a3537 100644 --- a/packages/visual-editor/locales/platform/fi/visual-editor.json +++ b/packages/visual-editor/locales/platform/fi/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "Promo-banneri", "promoMedia": "Promootiomedia", "publishBlocked": { - "deploymentFailed": "Julkaiseminen on poistettu käytöstä, koska viimeisin käyttöönotto epäonnistui. Korjaa ongelmat ja yritä uudelleen", - "deploymentInactive": "Julkaiseminen on poistettu käytöstä, koska käyttöönotto ei ole aktiivinen", "deploymentInProgress": "Päivitys on poistettu käytöstä, kun käyttöönotto on käynnissä" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/fr/visual-editor.json b/packages/visual-editor/locales/platform/fr/visual-editor.json index 9a54c806fd..eeafe91d4c 100644 --- a/packages/visual-editor/locales/platform/fr/visual-editor.json +++ b/packages/visual-editor/locales/platform/fr/visual-editor.json @@ -580,8 +580,6 @@ "promoBanner": "Bannière promotionnelle", "promoMedia": "Médias promotionnels", "publishBlocked": { - "deploymentFailed": "La publication est désactivée car le dernier déploiement a échoué. Veuillez résoudre les problèmes et réessayer", - "deploymentInactive": "La publication est désactivée car le déploiement est inactif", "deploymentInProgress": "La mise à jour est désactivée pendant le déploiement" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/hr/visual-editor.json b/packages/visual-editor/locales/platform/hr/visual-editor.json index 76a1caeb77..715f98f0ea 100644 --- a/packages/visual-editor/locales/platform/hr/visual-editor.json +++ b/packages/visual-editor/locales/platform/hr/visual-editor.json @@ -580,8 +580,6 @@ "promoBanner": "Promo banner", "promoMedia": "Promo medija", "publishBlocked": { - "deploymentFailed": "Objava je onemogućena jer posljednja implementacija nije uspjela. Riješite probleme i pokušajte ponovno", - "deploymentInactive": "Objavljivanje je onemogućeno jer je implementacija neaktivna", "deploymentInProgress": "Ažuriranje je onemogućeno dok je implementacija u tijeku" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/hu/visual-editor.json b/packages/visual-editor/locales/platform/hu/visual-editor.json index d7e68c3afc..ddfbbf3fdb 100644 --- a/packages/visual-editor/locales/platform/hu/visual-editor.json +++ b/packages/visual-editor/locales/platform/hu/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "Promó banner", "promoMedia": "Promóciós média", "publishBlocked": { - "deploymentFailed": "A közzététel le van tiltva, mert a legutóbbi telepítés meghiúsult. Kérjük, javítsa a problémákat, és próbálja újra", - "deploymentInactive": "A közzététel le van tiltva, mert a központi telepítés inaktív", "deploymentInProgress": "A frissítés le van tiltva, amíg a telepítés folyamatban van" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/it/visual-editor.json b/packages/visual-editor/locales/platform/it/visual-editor.json index 29314e9896..ff00a88bc4 100644 --- a/packages/visual-editor/locales/platform/it/visual-editor.json +++ b/packages/visual-editor/locales/platform/it/visual-editor.json @@ -580,8 +580,6 @@ "promoBanner": "Striscione promozionale", "promoMedia": "Media promozionale", "publishBlocked": { - "deploymentFailed": "La pubblicazione è disabilitata perché l'ultima distribuzione non è riuscita. Risolvi i problemi e riprova", - "deploymentInactive": "La pubblicazione è disabilitata perché la distribuzione è inattiva", "deploymentInProgress": "L'aggiornamento è disabilitato mentre la distribuzione è in corso" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/ja/visual-editor.json b/packages/visual-editor/locales/platform/ja/visual-editor.json index 69467f2373..909de0ac27 100644 --- a/packages/visual-editor/locales/platform/ja/visual-editor.json +++ b/packages/visual-editor/locales/platform/ja/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "プロモーションバナー", "promoMedia": "プロモーションメディア", "publishBlocked": { - "deploymentFailed": "最新のデプロイメントが失敗したため、公開は無効になっています。問題を修正して再試行してください", - "deploymentInactive": "デプロイメントが非アクティブであるため、公開は無効になっています", "deploymentInProgress": "導入の進行中は更新が無効になります" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/lt/visual-editor.json b/packages/visual-editor/locales/platform/lt/visual-editor.json index 165f5af4da..232f7843cf 100644 --- a/packages/visual-editor/locales/platform/lt/visual-editor.json +++ b/packages/visual-editor/locales/platform/lt/visual-editor.json @@ -585,9 +585,7 @@ "promoBanner": "Reklaminė reklamjuostė", "promoMedia": "Promo žiniasklaida", "publishBlocked": { - "deploymentFailed": "Paskelbimas išjungtas, nes naujausias diegimas nepavyko. Išspręskite problemas ir bandykite dar kartą", - "deploymentInactive": "Paskelbimas išjungtas, nes diegimas neaktyvus", - "deploymentInProgress": "Paskelbimas išjungtas, kol vyksta diegimas" + "deploymentInProgress": "Atnaujinimas išjungtas, kol vyksta diegimas" }, "publishError": { "components": "ištrinti arba ištaisyti skyrius su klaidomis", diff --git a/packages/visual-editor/locales/platform/lv/visual-editor.json b/packages/visual-editor/locales/platform/lv/visual-editor.json index 06c99c2d47..6afd791ce4 100644 --- a/packages/visual-editor/locales/platform/lv/visual-editor.json +++ b/packages/visual-editor/locales/platform/lv/visual-editor.json @@ -580,8 +580,6 @@ "promoBanner": "Reklāmas reklāmkarogs", "promoMedia": "Promo Media", "publishBlocked": { - "deploymentFailed": "Publicēšana ir atspējota, jo pēdējā izvietošana neizdevās. Lūdzu, novērsiet problēmas un mēģiniet vēlreiz", - "deploymentInactive": "Publicēšana ir atspējota, jo izvietošana ir neaktīva", "deploymentInProgress": "Atjaunināšana ir atspējota, kamēr notiek izvietošana" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/nb/visual-editor.json b/packages/visual-editor/locales/platform/nb/visual-editor.json index 2bf4e955e6..c53e746e95 100644 --- a/packages/visual-editor/locales/platform/nb/visual-editor.json +++ b/packages/visual-editor/locales/platform/nb/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "Kampanjebanner", "promoMedia": "Promo Media", "publishBlocked": { - "deploymentFailed": "Publisering er deaktivert fordi den siste distribusjonen mislyktes. Løs problemene og prøv igjen", - "deploymentInactive": "Publisering er deaktivert fordi distribusjonen er inaktiv", "deploymentInProgress": "Oppdatering er deaktivert mens distribusjon pågår" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/nl/visual-editor.json b/packages/visual-editor/locales/platform/nl/visual-editor.json index b5d3b710d9..06a68fdef0 100644 --- a/packages/visual-editor/locales/platform/nl/visual-editor.json +++ b/packages/visual-editor/locales/platform/nl/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "Promobanner", "promoMedia": "Promo media", "publishBlocked": { - "deploymentFailed": "Publiceren is uitgeschakeld omdat de laatste implementatie is mislukt. Los de problemen op en probeer het opnieuw", - "deploymentInactive": "Publiceren is uitgeschakeld omdat de implementatie inactief is", "deploymentInProgress": "Update is uitgeschakeld terwijl de implementatie bezig is" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/pl/visual-editor.json b/packages/visual-editor/locales/platform/pl/visual-editor.json index 31d54080ce..838763ab26 100644 --- a/packages/visual-editor/locales/platform/pl/visual-editor.json +++ b/packages/visual-editor/locales/platform/pl/visual-editor.json @@ -585,8 +585,6 @@ "promoBanner": "Baner promocyjny", "promoMedia": "Media promocyjne", "publishBlocked": { - "deploymentFailed": "Publikowanie jest wyłączone, ponieważ najnowsze wdrożenie nie powiodło się. Rozwiąż problemy i spróbuj ponownie", - "deploymentInactive": "Publikowanie jest wyłączone, ponieważ wdrożenie jest nieaktywne", "deploymentInProgress": "Aktualizacja jest wyłączona w trakcie wdrażania" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/pt/visual-editor.json b/packages/visual-editor/locales/platform/pt/visual-editor.json index 400a91f7f6..7ab49c0b8c 100644 --- a/packages/visual-editor/locales/platform/pt/visual-editor.json +++ b/packages/visual-editor/locales/platform/pt/visual-editor.json @@ -580,8 +580,6 @@ "promoBanner": "Banner promocional", "promoMedia": "Mídia promocional", "publishBlocked": { - "deploymentFailed": "A publicação está desabilitada porque a implantação mais recente falhou. Corrija os problemas e tente novamente", - "deploymentInactive": "A publicação está desabilitada porque a implantação está inativa", "deploymentInProgress": "A atualização está desativada enquanto a implantação está em andamento" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/ro/visual-editor.json b/packages/visual-editor/locales/platform/ro/visual-editor.json index 404d6646ae..3974fdc4e0 100644 --- a/packages/visual-editor/locales/platform/ro/visual-editor.json +++ b/packages/visual-editor/locales/platform/ro/visual-editor.json @@ -580,8 +580,6 @@ "promoBanner": "Banner promoțional", "promoMedia": "Media promo", "publishBlocked": { - "deploymentFailed": "Publicarea este dezactivată deoarece cea mai recentă implementare a eșuat. Remediați problemele și încercați din nou", - "deploymentInactive": "Publicarea este dezactivată deoarece implementarea este inactivă", "deploymentInProgress": "Actualizarea este dezactivată în timp ce implementarea este în curs" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/sk/visual-editor.json b/packages/visual-editor/locales/platform/sk/visual-editor.json index 42e00e4760..884ea4ea34 100644 --- a/packages/visual-editor/locales/platform/sk/visual-editor.json +++ b/packages/visual-editor/locales/platform/sk/visual-editor.json @@ -585,8 +585,6 @@ "promoBanner": "Propagačný banner", "promoMedia": "Propagačné médiá", "publishBlocked": { - "deploymentFailed": "Publikovanie je zakázané, pretože najnovšie nasadenie zlyhalo. Opravte problémy a skúste to znova", - "deploymentInactive": "Publikovanie je zakázané, pretože nasadenie je neaktívne", "deploymentInProgress": "Aktualizácia je počas nasadenia zakázaná" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/sv/visual-editor.json b/packages/visual-editor/locales/platform/sv/visual-editor.json index 193f246b3e..a39422f823 100644 --- a/packages/visual-editor/locales/platform/sv/visual-editor.json +++ b/packages/visual-editor/locales/platform/sv/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "Kampanjbanner", "promoMedia": "Promo media", "publishBlocked": { - "deploymentFailed": "Publicera är inaktiverat eftersom den senaste distributionen misslyckades. Åtgärda problemen och försök igen", - "deploymentInactive": "Publicera är inaktiverat eftersom distributionen är inaktiv", "deploymentInProgress": "Uppdateringen är inaktiverad medan distributionen pågår" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/tr/visual-editor.json b/packages/visual-editor/locales/platform/tr/visual-editor.json index f16a6c2b19..7e560827a0 100644 --- a/packages/visual-editor/locales/platform/tr/visual-editor.json +++ b/packages/visual-editor/locales/platform/tr/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "Promosyon Banner'ı", "promoMedia": "Promosyon medyası", "publishBlocked": { - "deploymentFailed": "En son dağıtım başarısız olduğundan yayınlama devre dışı bırakıldı. Lütfen sorunları düzeltip tekrar deneyin", - "deploymentInactive": "Dağıtım etkin olmadığından yayınlama devre dışı bırakıldı", "deploymentInProgress": "Dağıtım devam ederken güncelleme devre dışı bırakılır" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/zh-TW/visual-editor.json b/packages/visual-editor/locales/platform/zh-TW/visual-editor.json index d77e5ff6b3..d6abc79aad 100644 --- a/packages/visual-editor/locales/platform/zh-TW/visual-editor.json +++ b/packages/visual-editor/locales/platform/zh-TW/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "促銷橫幅", "promoMedia": "促銷媒體", "publishBlocked": { - "deploymentFailed": "由於最新部署失敗,發布被停用。請修復問題並重試", - "deploymentInactive": "由於部署處於非活動狀態,因此發布被禁用", "deploymentInProgress": "部署期間禁用更新" }, "publishError": { diff --git a/packages/visual-editor/locales/platform/zh/visual-editor.json b/packages/visual-editor/locales/platform/zh/visual-editor.json index 08f031825b..aab2d70cf9 100644 --- a/packages/visual-editor/locales/platform/zh/visual-editor.json +++ b/packages/visual-editor/locales/platform/zh/visual-editor.json @@ -575,8 +575,6 @@ "promoBanner": "促销横幅", "promoMedia": "促销媒体", "publishBlocked": { - "deploymentFailed": "由于最新部署失败,发布被禁用。请修复问题并重试", - "deploymentInactive": "由于部署处于非活动状态,发布被禁用", "deploymentInProgress": "部署期间禁用更新" }, "publishError": { diff --git a/packages/visual-editor/src/internal/components/InternalThemeEditor.tsx b/packages/visual-editor/src/internal/components/InternalThemeEditor.tsx index 17bb464eb4..1e58dfd8c3 100644 --- a/packages/visual-editor/src/internal/components/InternalThemeEditor.tsx +++ b/packages/visual-editor/src/internal/components/InternalThemeEditor.tsx @@ -193,7 +193,7 @@ export const InternalThemeEditor = ({ setClearLocalChangesModalOpen={setClearLocalChangesModalOpen} totalEntityCount={templateMetadata.totalEntityCount} localDev={localDev} - headDeployStatus={templateMetadata.headDeployStatus} + deploymentInProgress={templateMetadata.deploymentInProgress} /> ), actionBar: () => <>, diff --git a/packages/visual-editor/src/internal/puck/components/LayoutHeader.tsx b/packages/visual-editor/src/internal/puck/components/LayoutHeader.tsx index b285754418..925fd6f6bd 100644 --- a/packages/visual-editor/src/internal/puck/components/LayoutHeader.tsx +++ b/packages/visual-editor/src/internal/puck/components/LayoutHeader.tsx @@ -41,7 +41,6 @@ import { type ErrorSource, } from "../../../contexts/ErrorContext.tsx"; import { getPublishErrorMessage } from "../../../utils/publishErrors.ts"; -import { getPublishTooltipMessageFromHeadDeployStatus } from "../../utils/getPublishTooltipMessageFromHeadDeployStatus.ts"; const usePuck = createUsePuck(); const devLogger = new DevLogger(); @@ -125,15 +124,17 @@ export const LayoutHeader = (props: LayoutHeaderProps) => { } }; + const deploymentInProgress = templateMetadata.deploymentInProgress; const publishDisabled = - histories.length === 1 || - hasErrors || - templateMetadata.headDeployStatus !== "ACTIVE"; - const publishTooltipMessage = - (hasErrors ?? getPublishErrorMessage(errorSources, errorDetails)) || - getPublishTooltipMessageFromHeadDeployStatus( - templateMetadata.headDeployStatus - ); + histories.length === 1 || hasErrors || deploymentInProgress; + const publishTooltipMessage = deploymentInProgress + ? pt( + "publishBlocked.deploymentInProgress", + "Update is disabled while deployment is in progress" + ) + : hasErrors + ? getPublishErrorMessage(errorSources, errorDetails) + : undefined; return ( <> diff --git a/packages/visual-editor/src/internal/puck/components/ThemeHeader.tsx b/packages/visual-editor/src/internal/puck/components/ThemeHeader.tsx index 532a5cdea3..f318006883 100644 --- a/packages/visual-editor/src/internal/puck/components/ThemeHeader.tsx +++ b/packages/visual-editor/src/internal/puck/components/ThemeHeader.tsx @@ -12,14 +12,12 @@ import { RotateCcw, RotateCw } from "lucide-react"; import { Separator } from "@radix-ui/react-separator"; import { LocalDevOverrideButtons } from "./LayoutHeader.tsx"; import { pt } from "../../../utils/i18n/platform.ts"; -import { HeadDeployStatus } from "../../types/templateMetadata.ts"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "../ui/Tooltip.tsx"; -import { getPublishTooltipMessageFromHeadDeployStatus } from "../../utils/getPublishTooltipMessageFromHeadDeployStatus.ts"; type ThemeHeaderProps = { onPublishTheme: () => Promise; @@ -33,7 +31,7 @@ type ThemeHeaderProps = { setClearLocalChangesModalOpen: (newValue: boolean) => void; totalEntityCount: number; localDev: boolean; - headDeployStatus: HeadDeployStatus; + deploymentInProgress: boolean; }; export const ThemeHeader = (props: ThemeHeaderProps) => { @@ -49,7 +47,7 @@ export const ThemeHeader = (props: ThemeHeaderProps) => { setClearLocalChangesModalOpen, totalEntityCount, localDev, - headDeployStatus, + deploymentInProgress, } = props; const getPuck = useGetPuck(); @@ -141,10 +139,13 @@ export const ThemeHeader = (props: ThemeHeaderProps) => { }, []); const publishDisabled = - themeHistories?.histories?.length === 1 || headDeployStatus !== "ACTIVE"; - - const publishTooltipMessage = - getPublishTooltipMessageFromHeadDeployStatus(headDeployStatus); + themeHistories?.histories?.length === 1 || deploymentInProgress; + const publishTooltipMessage = deploymentInProgress + ? pt( + "publishBlocked.deploymentInProgress", + "Update is disabled while deployment is in progress" + ) + : undefined; return (
        diff --git a/packages/visual-editor/src/internal/types/templateMetadata.ts b/packages/visual-editor/src/internal/types/templateMetadata.ts index ac2b83747d..1bba8cddd2 100644 --- a/packages/visual-editor/src/internal/types/templateMetadata.ts +++ b/packages/visual-editor/src/internal/types/templateMetadata.ts @@ -1,8 +1,6 @@ import { FontRegistry } from "../../utils/fonts/visualEditorFonts.ts"; import DOMPurify from "dompurify"; -export type HeadDeployStatus = "RUNNING" | "INACTIVE" | "FAILED" | "ACTIVE"; - export type TemplateMetadata = { siteId: number; templateId: string; @@ -20,9 +18,9 @@ export type TemplateMetadata = { platformLocale?: string; locales: string[]; layoutTaskApprovals: boolean; + deploymentInProgress: boolean; locatorDisplayFields?: Record; customFonts?: FontRegistry; - headDeployStatus: HeadDeployStatus; }; export type FieldTypeData = { @@ -50,7 +48,7 @@ export function generateTemplateMetadata(): TemplateMetadata { platformLocale: "en", locales: ["en", "es", "fr"], layoutTaskApprovals: false, - headDeployStatus: "ACTIVE", + deploymentInProgress: false, locatorDisplayFields: { name: { field_id: "name", diff --git a/packages/visual-editor/src/internal/utils/getPublishTooltipMessageFromHeadDeployStatus.ts b/packages/visual-editor/src/internal/utils/getPublishTooltipMessageFromHeadDeployStatus.ts deleted file mode 100644 index bb81aa3123..0000000000 --- a/packages/visual-editor/src/internal/utils/getPublishTooltipMessageFromHeadDeployStatus.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { HeadDeployStatus } from "../types/templateMetadata.ts"; -import { pt } from "../../utils/i18n/platform.ts"; - -export const getPublishTooltipMessageFromHeadDeployStatus = ( - headDeployStatus: HeadDeployStatus -): string | undefined => { - switch (headDeployStatus) { - case "RUNNING": - return pt( - "publishBlocked.deploymentInProgress", - "Update is disabled while deployment is in progress" - ); - case "FAILED": - return pt( - "publishBlocked.deploymentFailed", - "Publish is disabled because the latest deployment failed. Please fix the issues and try again" - ); - case "INACTIVE": - return pt( - "publishBlocked.deploymentInactive", - "Publish is disabled because the deployment is inactive" - ); - default: - return undefined; - } -};